汽车尾灯实验报告.doc_第1页
汽车尾灯实验报告.doc_第2页
汽车尾灯实验报告.doc_第3页
汽车尾灯实验报告.doc_第4页
汽车尾灯实验报告.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

合肥学院电子信息工程专业微机原理课程设计报告课题名称:基于8086的汽车尾灯控制电路的设计学生班级:07级自动化1班学生学号:0705072013 学生姓名:徐 明指导教师:王敬生 张盈盈 成绩评定:同组成员:孔鹏 周洁 2010年 4 月 3 日汽车尾灯控制电路的设计(硬件部分)1设计需求与解决方案1.1设计需求分析1.1.1题目要求假设汽车尾部左右两侧各有三个指示灯。要求:正常行驶时指示灯全灭;左转弯时,左边3个指示灯按左循环依次点亮;右转弯时,右边3个指示灯按右循环依次点亮;超车时,指示灯闪烁;刹车时,指示灯全亮。1.1.2根据要求提出的问题1.如何实现尾灯功能,是用软件还是硬件实现;2.硬件图与软件流程图应如何搭配;3.选择何种接口芯片以及考虑该接口芯片的技术参数,考虑最大工作电流,需不需要其他辅助芯片等;4.主要接口芯片与8086CPU接口应如何连接;5.对设计题目功能的扩展,在设计中加入其他功能;6.可否用不同的设计方法完成设计,与其他计算机语言设计相比其异同之处。1.2 解决问题方法及思路1.2.1 硬件设计选择部分1.芯片接口的选择完成这个实验的第一步,就是选择何种芯片用于CPU与外设之间传送信息。接口芯片是微型机系统中实现输入输出的常用器件,是CPU与外设之间的界面,一方面要接收CPU进行输入/输出所发出的一系列信息,另一方面又要与外设交换数据以及一些联络信号等。经过选择,我们决定使用8255A芯片。8255A的结构和功能:它是一种可编程通用并行接口芯片,由以下几部分组成:数据端口A、B、C(其中,C口被分成C口上半部分和C口下半部分两个部分),A组和B组控制逻辑,数据总线缓冲器和读写控制逻辑.1) 数据端口A、B、C8255A内部包含3个8位的输入输出端口A、B、C,端口A和端口B都可以用作一个8位的输入口或8位的输出口,C口既可以作为一个8位的输入口或输出口用,又可作为两个4位的输入输出口(C口上半部分和C口下半部分),还常常配合A口和B口工作,分别用来产生A口和B口的输出控制信号和输入A口和B口的端口状态信号.2) A组和B组控制逻辑8255A的端口A和端口C的上半部分由A组控制逻辑管理,端口B和端口C的下半部分由B组控制逻辑管理.3) 数据总线缓冲器这是一个双向3态的8位缓冲器,用作8255A和数据总线之间的接口.4) 读/写控制逻辑A1A0控制端口00PA01PB10PC11控制8255A的控制字:8255A有两类控制字,一类控制字用于定义各端口的工作方式,称为方式选择控制字;另一类控制字用于对C端口的任一位进行置位或复位操作,称为置位复位控制字。1) 方式选择控制字方式0基本输入输出方式方式1选通输入输出方式方式2双向总线I/O方式方式选择控制字的格式如图:D7D6D5D4D3D2D11=输入D01=输入0=输出C口低4位I/O 0=输出B口I/O 0=方式0D7=0,标志位00=方式001=方式11X=方式21=输入A口方式0=输出A口I/O 0=输出1=输入C口高4位I/O 1=方式1B口方式 2) 置位复位控制字 置位复位控制字格式如图:D7D6 D5 D4D3 D2 D11 置位D0任意值D7=0,标志位001 选中PC1000 选中PC0111 选中PC7位选择0 复位 2 硬件设计设计思路及连接图2.1 选择芯片82552.1.1 芯片8255 A在本设计中的功能作用8255是并行的I/0接口芯片,内部有三个相互独立的8位数据端口。8255实现了外设与8086之间的数据传输。根据星研公司研发的STAR ES598PCI试验仪器,可知硬件连接如下表:B4区:CS(8255)A3区:CS1B4区:A0,A1ESPCI:A0,A1B4区:JP56(PA口)G6区:JP65B4区:JP53(PB口)G6区:JP742.1.2 芯片8255的功能分析1、8255A是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、B口和C口。三个端口都可以作为输入端口或输出端口。A口有三种工作方式:方式0、方式1和方式2;B口可以工作在方式0或方式1下;C口通常作为联络信号使用。8255的工作只有当片选CS有效时才能进行工作,而控制逻辑端口实现对其他端口的控制。当8255工作在方式0时,即基本输入输出方式时,可将三个数据端口划分为四个独立的部分:A口和B口作为两个8位端口,C口的高4位和低4位可以用作两个4位的输入输出口,各个端口都可独立地用作输入或输出。2、数据总线缓冲器是一个8位双向三态缓冲器,三态是由读/写控制逻辑控制的,它可与系统的DB直接相连,实现CPU和8255A之间的信息传送;读写控制器用于管理数据、控制字或状态字的传送,接收来自CPU的地址信息及一些控制信号,然后向A组、B组控制电路发送命令,控制端口数据的传送方向。2.1.3 8255与外设相连的逻辑图 2.3 硬件设计思路及连接图2.3.1 硬件设计思路8255A的CS与CPU总线、片选区的CS1相连,8255A的A0、A1与ESPCI的A0、A1相连,8255A芯片的PA口与发光管控制接口JP65相连,8255A芯片的PB口与开关控制接口JP74相连。2.3.2 硬件接线原理图2.4 软件设计流程图开始8255初始化正常行驶?超车?指示灯全灭指示灯闪烁刹车?指示灯全亮左转?左边3个灯依次点亮右转?右边3个灯依次点亮结束YNYYYYNNN接收信号?YN3上机调试过程3.1 硬件调试本次课程设计采用的是STAR ES598PCI实验仪,由于之前我们已经多次使用此实验仪器,所以对它的各部分构造较为熟悉。首先,我们所做的这个汽车尾灯的实验与曾经的8255交通灯实验有异曲同工之妙,但是我们需要在交通灯的实验硬件接口部分加入我们自己的理解,才能成为我们需要的。由于这个实验是由开关控制灯的闪烁情况,所以我们加入了8255A的PB口与逻辑电平开关的连接,这样一来,整个尾灯控制的硬件设计就算完成。经过上机调试,我们的思路完全正确,硬件设计得到完美的解决。3.2 联机调试在联机调试的部分,我们遇到了不小的困难。由于软件编写的部分完全是在7#904实验室完成的,所以无法保证软件与硬件的连接。我们首先编写了一份符合实验要求的程序,在星研软件上运行无误后,经过老师的检查,我们本以为可以通过的,可是令我们难堪的是,在706实验室的最终调试当中,那几个发光二极管并没有按照预期的计划亮灭,这无疑给我们三个人浇了一头的凉水。我们阵脚有些乱了,不过还好的是,我们很快的调整了状态,三个人分头开始找寻出现问题的原因,最终在老师和同学的帮助下,我们顺利的修改出了正确的程序,硬件和软件达到了完美的配合。3.3 调试中出现的问题、解决方案及调试结果3.3.1 出现问题及解决方案在联机调试当中,我们遇到了很多问题,下面一一列举。1、 发光的是整个8个二极管,而并非6个原程序:LED_Data DB 00000011B ;刹车情况,灯全亮 从高位7到低位0为0则亮,1则灭。排线反接则顺序颠倒亮。 DB11111111B;正常行驶,灯全灭 DB 01111111B;右转情况,右3灯依次闪烁 DB10111111B DB11011111B DB11101111B ;左转情况,左3灯依次闪烁 DB 11110111B DB 11111011B;我们将前两个灯设为永久灭的状态,即不参加整个亮灭的过程,但是我们发现在运行的过程当中,仍然是8个灯齐亮齐灭,经过讨论,我们将后两个灯设为永久灭的状态,则能够实现功能。现程序:LED_Data DB 11000000B ;刹车情况,灯全亮 从高位7到低位0为0则亮,1则灭。排线反接则顺序颠倒亮。 DB 11111111B;正常行驶,灯全灭 DB 11011111B;右转情况,右3灯依次闪烁 DB 11101111B DB 11110111B DB 11111011B ;左转情况,左3灯依次闪烁 DB 11111101B DB 11111110B2、闪烁的次数设定的是5次,但是实际上闪烁无限次之后的刹车灯全亮情况及正常行驶灯全灭的情况都实现的很顺利,但是到了超车闪烁的部分,我们又遇到了问题。我们在闪烁的部分设定的闪烁次数是5次,但是实际上却闪烁无限次。原程序:START3: MOV AL,0;超车情况,灯闪烁 XLAT OUT DX,AL CALL DL500ms MOV AL,1 XLAT OUT DX,AL CALL DL500ms LOOP START3 MOV CX,5经过询问老师,了解到如果将MOV CX,5语句放在这个子程序的最后的话,整个START3程序将陷入死循环,闪烁当然会无限次。随即,我们调整了MOV CX,5语句的位置。现程序: MOV CX,5START3: MOV AL,0;超车情况,灯闪烁 XLAT OUT DX,AL CALL DL500ms MOV AL,1 XLAT OUT DX,AL CALL DL500ms LOOP START33、根据上面的程序修改经验,我们将下面的循环程序的MOV CX,5语句全部调整到了子程序的前面,就没有再发生陷入死循环的情况。4、左转弯时,三个灯是按照L3,L2,L1的顺序亮的在初始化当中,我们设定的左三灯是按照L1,L2,L3的顺序依次点亮的,显然,现在的结果不符合当时的要求。这个情况比较容易解决,只需调整指令的顺序即可。原程序:MOV CX,5START5: MOV AL,5 ;左转情况,左1灯亮 XLAT OUT DX,AL CALL DL500ms MOV AL,6 ;左转情况,左2灯亮 XLAT OUT DX,AL CALL DL500ms MOV AL,7 ;左转情况,左3灯亮 XLAT OUT DX,AL CALL DL500ms LOOP START5现程序:MOV CX,5START5: MOV AL,7 ;左转情况,左1灯亮 XLAT OUT DX,AL CALL DL500ms MOV AL,6 ;左转情况,左2灯亮 XLAT OUT DX,AL CALL DL500ms MOV AL,5 ;左转情况,左3灯亮 XLAT OUT DX,AL CALL DL500ms LOOP START53.3.2 调试结果调试后,硬件与软件配合良好,能够实现预期的所有功能。4 对此次实验的总结体会微机原理和接口技术是一门实践性强的学科,其中很多的原量、规则、现象等仅仅靠学习教科书是无法完全掌握的,必须通过实践才能比较直观和深刻的理解。在进行课程设计的过程中,可以让学生体验分析问题、提出解决方案、通过编程等手段实现解决方案、不断调试最终达到设计要求的全过程,从而系统地掌握微机原理的接口技术的相关知识,达到将知识融会贯通的目的。学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下的是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。这次实验并不是很难,主要的困难来自对程序的理解和编写。功夫不负有心人,经过我们三个人的合作和努力,最后对实验的原理有了清晰的认识。虽然实验台上的很多模块单元没有用到,但是就系统功能来说,我觉得我们做的还是不错的。这次课程设计,首先,让我学习和掌握计算机中常用接口电路及8255A的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过实践,进一步加深了对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。再次,让我们对实验台有了足够的了解,让我们知道了实验台上各个模块的用法;而且它还让我们对自己动手写程序来控制实验台的运作有了一定的基础。虽然实验台只是一个小型的模拟平台,但是通过对它的学习和操作,我们对有关接口的知识将会有一个更广泛的认识,而且它对我们以后的学习也会有帮助的。通过本次实验,我对微机原理与接口技术这门课,我认识到以下几点可能对汇编的学习有所帮助。(1)记清8086CPU的通用寄存器以及标志寄存器,如AX 、BX、 CX、DX 及、。以及AF CF SF PF OF ZF 和4个段寄存器、 、SS 、ES 知道他们的意义就行了。 (2)指令部分: 记住 常用的就行了。 (3)汇编:就是前面的综合题目 一般比较简单 (4)接口: 记住控制字或者状态字就行了,需要记住的接口芯片有 8259 8253 8237本次设计给我最大的收获就是动手能力的重要性,实践和理论上是有差距的,理论与实际相结合是很重要的。就像是一开始,我们已经作出了一个没有一点错误的程序,但是一用到实际当中,它就只是一纸空文而已。只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。动手试验也让自己对书本知识有了更深刻的认识,把书本知识真正的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论