微机原理课程设计-十字路口交通灯控制器_第1页
微机原理课程设计-十字路口交通灯控制器_第2页
微机原理课程设计-十字路口交通灯控制器_第3页
微机原理课程设计-十字路口交通灯控制器_第4页
微机原理课程设计-十字路口交通灯控制器_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

一、设计题目:十字路口交通灯控制器二、设计要求:通过对红绿黄LED发光二极管的控制,熟练掌握8255A可编程并行接口的编程方法。编写程序控制8255A可编程并行接口芯片,使实验台上的红、绿、黄发光二极管按照十字路口交通信号灯的燃灭规律发光。三、硬件方案:(一)设计原理:通过8255A并口来控制LED发光二极管的亮灭。A口控制红灯,B口控制黄灯,C口控制绿灯。输出为0则亮,输出为1则灭。用8253定时来控制变换时间 。设有一个十字路口,1、3为南,北方向,2、4为东西方向,初始态为4个路口的红灯全亮。之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。延迟30秒后,1、3路口的绿灯熄灭,而1,3路口的黄灯开始闪烁(1HZ)。闪烁5次后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车。延迟30秒时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁。闪烁5次后,再切换到1、3路口方向。之后,重复上述过程。要求使用可编程并行接口8255,8088CPU,双色灯,PC机等实现。(二)部分所使用的芯片极其原理:(1)8255的基本功能:Intel公司生产的可编程并行接口芯片8255A已广泛应用于实际工程中,例如8255A与A/D、D/A配合构成数据采集系统,通过8255A连接的两个或多个系统构成相互之间的通信,系统与外设之间通过8255A交换信息,等等,所有这些系统都将8255A用作为并行接口。8255A为一可编程的通用接口芯片。它有三个数据端口A、B、C,每个端口为8位,并均可设成输入和输出方式,但各个端口仍有差异: 端口A(PA0PA7):8位数据输出锁存/缓冲器,8位数据输入锁存器;端口B(PB0PB7):8位数据I/O锁存/缓冲器,8位数据输入缓冲器; 端口C(PC0PC7):8位输出锁存/缓冲器,8位输入缓冲器(输入时没有锁存);在模式控制下这个端口又可以分成两个4位的端口,它们可单独用作为输出控制和状态输入。 端口A、B、C又可组成两组端口(12位):A组和B组,参见图A.2。在每组中,端口A和端口B用作为数据端口,端口C用作为控制和状态联络线。 在8255A中,除了这三个端口外,还有一个控制寄存器,用于控制8255A的工作方式。因此8255A共有4个端口寄存器,分别用A0和A1指定:A1=0,A0=0,表示访问端口A; A1=0,A0=1,表示访问端口B; A1=1,A0=0,表示访问端口C; A1=1,A0=1,表示访问控制寄存器; 在本实验中使用的工作方式为方式0-基本输入输出:将端口信号线分成4组,分别由方式控制字的D3、D2、D1、D0控制其传送方向,当某位为1时,相应的端口数据线设置成输入方式;当某位为0时,相应的端口数据线设置成输出方式。例如,当方式控制字设置成1000 1010B时,端口A与端口C的低4位数据线设置成输出方式,端口B与端口C的高4位数据线设置成输入方式。 特别注意,当将C口的低4位设置成同一传送方向时,则端口C可用作为独立的端口,因此,8255A提供了3个独立的8为端口。 (2)8253的基本功能:含有3个独立的16位计数器,能够进行3个16位的独立计数。 每一个计数器具有六种工作方式; 能进行二进制十进制计数(减法计数); 计数频率为02MHz; 可作计数器或定时器。其内部结构如图:8253支持二进制计数或十进制计数。二进制计数很容易理解,每来一个计数脉冲计数器的值减l。所谓十进制计数,是指BCD码计数,每个计数器可表示4位十进制数的BCD码,每来一个计数脉冲时,按照十进制数减1规律进行计数。例如,当前的计数值为10000lOl00000000(8500),来一个计数脉冲后,变为100001001001 1001(8499)。 8253的引脚信号与内部结构:8253为24脚,双列直插封装。和8255A一样,其内部有一个三态数据缓冲器,以保证未选中时内部数据线和系统数据总线是“脱开”的。三个计数器在使用时是独立的。每一个计数器对外有三个引脚:CLK为计数脉冲输入,GATE为门控信号(允许禁止计数),OUT为输出信号。每一个计数器占用一个IO端口地址,加上控制字口,一片8253共占用4个IO端口地址。和8255A一样,8253也设置了两个用于端口寻址的引脚A1和A0。这两个信号与片选信号、CPu读写信号相配合,实现对8253内部端口的操作。(3)8279的基本功能:8279是一种可编程的键盘、显示器接口芯片。8279芯片内部有专门用于存储显示数据的RAM 区,共有16个字节,地址排列从00H到0FH。8279芯片的扫描线有译码扫描和编码扫描2种工作方式。当采用译码扫描方式时,8279只能送出显示RAM 中前4个字节的内容,因而最多只能扫描4个LED数码管。当采用编码扫描方式时,扫描输出线SL3SLO经过“416”译码后,可以选择16个LED数码管,这16个LED数码管显示的字符分别对应8279显示RAM 区的00H0FH 中的内容。将8279的命令字设置成:读或写以后地址自动加1,左端输入。当SL3SL0为0000时,显示数据输出线上输出为显示RAM 区中的第1位(00H 中的内容)。当SL3SL0为0001时,显示数据输出为显示RAM 区中的第2位(01H 中的内容)。依次类推,当SL3SL0为1111时,显示数据输出为显示RAM 区中的第16位(0FH 中的内容)。因而,8279送出的显示数据,与CPU写入8279内部16个字节显示RAM 区的数值,存在着一一对应的关系。8279的显示方式又可分为左端入口和右端入口方式。 显示数据只要写入显示RAM,则可由显示器显示出来,因此显示数据写入显示RAM的顺序,决定了显示的次序。左端入口方式即显示位置从显示器最左端1位(最高位)开始,以后显示的字符逐个向右顺序排列;右端入口方式即显示位置从显示器最右端1位(最低位)开始,已显示的字符逐个向左移位。但无论左右入口,后输入的总是显示在最右边。 (4)8088的基本功能:8088CPU的一个基本总线周期由4个时钟周期(T1,T2,T3,T4)组成,时钟周期也称为时钟状态,即T1状态、T2状态、T3状态和T4状态。每一个时钟周期(时钟状态)内完成一些基本操作。例如:在T1状态,CPU往数据/地址多路复用总线上发出访问存储器或I/O端口的地址信息。在T2状态,CPU从总线上撤销地址,若为读周期发出“RD”控制信号,使数据/地址多路复用总线的低8位处于高阻抗状态,以便CPU有足够的时间从输出地址方式转变为输入数据方式,接着在T3T4期间,CPU从总线上接收数据。若为写周期发出“WR”控制信号,由于输出数据和输出地址都是写总线过程,因而不需要缓冲时间,CPU在T2T4期间把数据放到总线上。在T3状态,数据/地址分时复用线的低8位上出现由CPU输出的数据或为CPU从存储器或I/O端口读入的数据。在T4状态,8088完成数据传送,是控制信号变为无效,结束总线周期。 8088的地址和数据线:AD7AD0:8位地址/数据总线,分时复用、双向、三态。A15A8:地址线,三态输出。A19/S6A16/S3:地址/状态线,分时复用、输出、三态。在总线周期的T1状态作地址线用,A19A16输出高4位地址。在总线周期的T2T4状态作状态线用,S6S3输出状态信息,其中:S6恒为0。S5指示中断允许标志IF的当前状态,S5 1,表示当前允许可屏蔽中断请求,S5=0,则禁止一切可屏蔽中断。S4和S3用以指示是哪一个段寄存器正在使用,其编码和使用的段寄存器如下:00为ES,01为SS,10为CS,11为DS。 (三)交通灯变化规律:本实验是模拟交通灯控制实验,是通过并行接口芯片8255和8088计算机的硬件连接,以及通过延时的方法,来实现十字路口交通灯的模拟控制,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯,最后循环至状态1。本实验中模拟交通灯的发光二极管采用的是双色LED,双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加低电平时,黄灯亮,当两端都加高电平时,灯灭。 (四)模拟交通灯控制电路的原理图:控制电路的基本原理图: 整个控制电路的原理图为:四、软件方案:根据原理绘出主程序流程图:使4个路口的红灯全亮置8255控制字,使各端口均为输出口,且均工作于方式0读取PB口数据保存在BL中置8255控制字使B口为输入口8255初始化程序开始延时一段时间点亮1、3路口绿灯 延时1、3路口黄灯闪烁八次四个红灯全亮点亮2、4路口绿灯延时熄灭2、4路口绿灯熄灭1、3路口绿灯熄灭2、4路口绿灯2、4路口黄灯闪烁八次四个红灯全亮延时实验程序:DATA SEGMENT ;初始化程序LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HD1 EQU 10HD2 EQU 200H ;8255A端口AEBA EQU 200H ;8259端口地址EBE EQU 203HCONTROL EQU 20BH ;8253端口地址COUNT0 EQU 208H COUNT1 EQU 209H COUNT2 EQU 20AHZ8279 EQU 222HD8279 EQU 220HLEDMOD EQU 00H ;左边输入LEDFEQ EQU 38H ;扫描频率DATA ENDSCODE SEGMENTASSUME CS:CODE,DSATACODE SEGMENTASSUME CS:CODECONT DB 0CONT1 DB 0CONT2 DB 0BSD DB 0BAD DB 0BDA DB 0TEMP DB 0START: PUSH CS POP DS MOV DX,203H ; 8255A、B、C口设置为全输出 MOV AL,80H OUT DX,AL MOV DX, 200H MOV AL,00 OUT DX,AL ;清LED MOV DX,200H ; 全红 MOV AL,0F0H OUT DX,AL MOV BX,7FH CALL DLYBG: MOV AL,B ;南北绿,东西红 OUT DX,AL MOV BX,D2 CALL DLY MOV CX,03HXH1: AND AL,0F5H ;绿灭 OUT DX,AL MOV BX,D1 CALL DLY OR AL,0AH ; 绿亮 OUT DX,AL MOV BX,D1 CALL DLY LOOP XH1 MOV AL,0A0H ; 南北黄 OUT DX,AL MOV BX,D1 CALL DLY MOV BX,D1 CALL DLY MOV AL,B ;南北红,东西绿 OUT DX,AL MOV BX,D2 CALL DLY MOV CX,03XH2: AND AL,0FAH ;绿灭 OUT DX,AL MOV BX,D1 CALL DLY MOV AL,05H ;绿亮时 OUT DX,AL MOV BX,D1 CALL DLY LOOP XH2 OR AL,50H ;东西黄 OUT DX,AL MOV BX,D1 CALL DLY MOV BX,D1 CALL DLY JMP BGDLY PROC NEAR PUSH CXDDD: MOV CX,0FFFHCCC: LOOP CCC DEC BX CMP BX,0 JNE DDD POP CX RET DLY ENDP CODE ENDSINT: STI ;中断服务程序 HLT JMP INTIR: START ;数码管程序 JMP CPCP: CMP DL,0 JZ ST0 CMP DL,1 JZ ST1 CMP DL,2 JZ ST2 CMP DL,3 JZ ST3ST0: ;东西红南北绿 MOV AL,B OUT D2,AL DEC SI JNZ XXC1 DEC DH MOV SI,100XXC1:DEC CX CMP CX,0 JNZ ZC0 MOV CX,500ST1: DEC DI ;东西方向黄灯闪烁,南北绿灯 CMP DI,0 JNZ HS1 MOV AL, B ;东西灭,南北绿 OUT D2,AL MOV DI,50 JMP XXCHS1:MOV AL,B ;东西黄,南北绿 OUT D2,ALXXC: DEC SI JNZ XXC2 DEC DI MOV SI,100XXC2:DEC CX CMP CX,0 JNZ ZC1 MOV CX,2000 MOV DH,25ST2: MOV AL,B ;东西绿灯,南北红灯 OUT D2,AL DEC SI JNZ XXC3 DEC DH MOV SI,100XXC3:DEC CX CMP CX,0 JNZ ZC2 MOV CX,500ST3: DEC DI ;东西绿灯,南北黄灯闪烁 CMP DI,0 JNZ HS2 MOV AL,B ;东西绿灯,南北灭 OUT D2,AL MOV DI,50 JMP REHS2: MOV AL,B ;东西绿,南北黄 OUT D2,ALRE: DEC SI JNZ XXC4 DEC DH MOV SI,100XXC4:DEC CX CMP CX,0 JNZ ZC3 MOV CX,6000 MOV DH,65ZC0: MOV DL,0 JMP EXITZC1: MOV DL,1 JMP EXITZC2: MOV DL,2 JMP EXITZC3: MOV DL,3EXIT: MOV AL,20H OUT 218H,AL IRETCODE ENDSEND START五、程序调试:(1)用微机实验箱配套的串行通信电缆通过串行线与另一端与PC机的串行口相连。(2)将微机实验箱上用到数据线用导线连至8255的PC0PC7;将8255的片选接至138译码器处的220H插孔。(3)打开电源,启动调试软件,测试串口,如果通讯串口测试不通过,将延时因子置高

温馨提示

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

评论

0/150

提交评论