1、8086是Intel系列的16位微处理器,它有16根数据线和20根地址线,本系统采用它作为处理器,利用8086最小模式进行连接控制。8255是可编程IO口扩展芯片。对8255输入不同的指令可改变I/O口的工作方式。8255内部有4个寄存器:分别为寄存器A、B、C和控制寄存器。A、B、C寄存器的数据就是引脚PA7PA0、PB7PB0、PC7PC0上输入或输出的数据。而控制寄存器的数据则表明PA、PB、PC的工作方式。通过CS、A0、A1、RD和WR对4个寄存器进行操作。1)CS为低电平时选通8255;2)A1、A0为地址选通;3)RD和WR为读、写信号:RD为低、WR为高时为读方式,RD为高、W
2、R为低时为写方式。4)D0D7为数据口。 向控制寄存器写入不同的数据可以使8255工作在三种不同的方式下。3系统主要功能:设计要求: 根据设计要求:正常行驶时指示灯全灭;左转弯时,左边3个指示灯按左循环依次点亮;右转弯时,右边3个指示灯按右循环依次点亮;超车时,指示灯闪烁;刹车时,指示灯全亮。列出尾灯与汽车运行状态表:表1 尾灯与汽车运行状态表L1黄L2红L3白R1黄R2红R3白开关全开正常行驶灯全灭仅闭合K1左转弯按左循环依次点亮仅闭合K2右转弯按右循环依次点亮仅闭合K3刹车灯全亮仅闭合K4超车指示灯按一定频率闪烁设计分析: 1指示灯需要在不同的情况下出现以下四种情况,全灭,全亮,闪烁,循环
3、亮灭。可以利用可编程的并行接口8255A芯片,对8255A输入不同的指令可改变IO口的工作方式,8255A的PA端口用于输出,与发光二极管相连接,用于控制灯的闪烁效果,PB端口用于输入,用其低四位做为输入控制,对于8255A的PC端口则空闲状态。开关K1(左转向控制),K2(右转向控制),K3(刹车控制),K4(超车控制)。来达到预期的实验目的。2用8086微处理器系统来与8255A相连,进而来控制8255A芯片,8086微处理器最小模式由三片8282或74LS373锁存器、两片8286或74LS245收发器、两片6264存储器,再加上8255A由数据总线、地址总线与8086连接构成最小方式系
4、统结构。3用proteus仿真软件来画出硬件连接图并仿真调试,最后把硬件确定好。4用汇编语言编写源程序代码,并用星研软件进行调试、编译生成可执行文件。把可执行文件导入8086微处理器芯片中进行进一步运行调试,并与设计要求相对照不断进行完善,直至与设计要求相符为止,即完成设计。 二系统硬件设计: 本设计利用8086系统为主要控制芯片和可编程计数器/定时器8253及可编程外围接口芯片8255A等设计的一个汽车尾灯电路的控制系统,主要包括8086最小模式系统以及接口电路设计等模块。2.1最小系统介绍: 18086CPU的最小模式系统图1 8086最小方式典型系统结构28086最小系统配置模拟图 在最
5、小模式系统中,除了8086CPU,存储器及I/O接口芯片外,还加入了一片8284A作为时钟发生器,三片8282/8283或74LS373作为地址锁存器,二片8286/8287或74LS245作为双向数据总线收发器。数据总线和地址总线分时复用 图2 最小系统模拟图2.2接口电路设计1.8255A的DATA与8086数据线的低八位相连接,RD与RD相连接,WR与WR相连接,将8086的地址线A1,A2与8255的A0,A1连接起来,CS可以接地也可以通过地址线来选通控制。2.8255的PA端口用于输出,与发光二极管相连接,用于控制灯的闪烁效果,PB端口用于输入,用其低四位做为输入控制,对于8255
6、的PC端口则空闲状态。3.开关K1(左转向控制),K2(右转向控制),K3(刹车控制),K4(超车控制)。 图3接口电路设计三系统软件(程序)设计运用汇编语言编写程序: 1. 采用模块化程序结构设计软件,首先将整个软件分成若干功能模块;2. 对各模块设计写一个详细的程序流程图;3. 根据流程图,编写源程序;4. 上机调试各模块程序;5. 各程序模块联调;6. 与硬件一起联调,最后完成全部调试工作。下图是程序设计流程图3.1程序流程图 3.2汇编程序代码#make_COM#; COM file is loaded at CS:0100h (the value of CS is set by Op
7、erating System)ORG 100hdata segmentPA EQU 0F0HPB EQU 0F2HPP EQU 0F6Hdata endscode segmentassume cs:code , ds:datastart:mov al,82h ;方式0,A口输入,B口输出out PP,alNEXT: in al,PB mov bl,00h ;00h状态正常行驶 cmp bl,al jz CONTIUE jmp z1z1: mov bl,01h ;01h状态左转 jz LEFT jmp z2z2: mov bl,02h ;02h状态右转 jz RIGHT jmp z3z3: mo
8、v bl,04h ;04h状态刹车 jz BREAK jmp NEXTZ4: MOV bl,08H ;08h状态超车 JZ THANTHAN: CALL K0 CALL delay call k1 call delay JMP NEXT LEFT: MOV AL,0FBH OUT PA,AL call delay call k2 call k3RIGHT: MOV AL,0F7H call k4 call k5BREAK: mov al,0C0h out PA,al CONTIUE: ;实现正常行驶 mov al,0FFhk0 proc near ;灯全点亮 out PA,al retk0 endpk1 proc near ;灯全息灭k1 endp k2 proc near mov al,0FDh ;左循环1k2 endp k3 proc near ; 左循环2 mov al,0FEhk3 endp k4 proc near ;右循环1 mov al,0EFhk4 endp k5 proc near ;右循环2 mov al,0DFhk5 endp delay proc near ;延时 mov CX,65535Ddelay1: dec CX jnz delay1delay endpcode endsend start
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1