硬件课程设计交通灯

上传人:jiups****uk12 文档编号:40017807 上传时间:2018-05-22 格式:DOC 页数:6 大小:115.50KB
返回 下载 相关 举报
硬件课程设计交通灯_第1页
第1页 / 共6页
硬件课程设计交通灯_第2页
第2页 / 共6页
硬件课程设计交通灯_第3页
第3页 / 共6页
硬件课程设计交通灯_第4页
第4页 / 共6页
硬件课程设计交通灯_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《硬件课程设计交通灯》由会员分享,可在线阅读,更多相关《硬件课程设计交通灯(6页珍藏版)》请在金锄头文库上搜索。

1、交通灯交通灯一、一、设计任务设计任务编写一个交通灯控制程序,实现东西路口与南北路口状态灯的转换和紧急处理。使用 LED 显示单元的两组 LED 数码管 D0-D7、D8-D15 分别模拟十字路口的两组交通灯。交通灯 的变化规律要求: 南北绿灯,东西红灯同时亮 20 秒,且数码管 20 秒倒计时显示。 南北黄灯闪烁 5 秒,同时东西路红灯继续亮,且数码管 5 秒倒计时显示。 南北路红灯,东西路绿灯同时亮 20 秒,且数码管 20 秒倒计时显示。 南北路红灯继续亮,同时东西路黄灯闪烁 5 秒,且数码管 5 秒倒计时显示。 转重复 按“东西紧急键” ,则东西方向绿灯,南北方向红灯;再次按“东西紧急键

2、” ,解 除东西紧急通行状态。 按“南北紧急键” ,则南北方向绿灯,东西方向红灯;再次按“南北紧急键” ,解 除南北紧急通行状态。 按“夜间处理键” ,东西南北方向黄灯闪烁,直到再一次按下此键为止。二、二、设计目的设计目的1.通过可编程并行接口芯片 8255A 和可编程定时器计数器芯片 8253 实现十字路口 交通灯的模拟控制。 2.进一步掌握并行接口芯片 8255A 应用。 3.掌握通过 8254 实现准确顶事的方法。三、三、课程设计的环境课程设计的环境TDNCM计算机组成原理教学实验系统一台,计算机一台,排线若干。四、四、硬件和软件设计硬件和软件设计硬件设计框图及连线硬件设计框图及连线/

3、/接图:接图:B7 B6 B5 B4 B3 B2 B1 B0A7 A6 A5 A4 A3 A2 A1 A0C 3 C 2 C 1 C 0C 4 C 58255AA B C D E F G D PX2 X1LEDO U T0C LK0G ATE0C SC S8254 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 K3( )K1( )K2( )I O Y01KH Z+5VI O Y2 设计思想:设计思想:通过 8253 计数,输入始终脉冲为 1KHZ,用方式 0 计满 1000,则送输出信号到 8255的 C0,此时,令计数值 CX 减 1(CX 计数不为零) 。8255 的 A

4、 口 PA7-PA0 输出控制二极管即交通灯的亮灭;8255 的 B 口 PB7-PB0 输出控制数码管的显示;8255 的 C 口高四位输出,低四位输入,PC4 和 PC5 控制数码管使两位十进制数同时显示,PC3、PC2 和 PC1 分别连接K3、K2 和 K1,分别代表东西紧急键、南北紧急键和夜间紧急键。红绿灯转换中检测PC3PC1 的状态,判断是否有紧急键按下。在黄灯显示的时候,通过判断使黄灯亮时灭,灭时亮,以此设置黄灯闪烁。 软件流程图:软件流程图:开始8255、8254 初始化YNNYYNNYNY设置计数初值为 35南北黄灯闪,东西红灯继续亮南北绿灯亮,东西红灯亮计数值5?计数值=

5、0?计数值=0?计数值5?重新设置计数初值为 35南北红灯亮,东西绿灯亮南北红灯继续亮,东西黄灯闪有键按下?返回 DOS软件清单:软件清单:MY8255_A EQU 1400H ;8255 连接端口 IOY0MY8255_B EQU 1401HMY8255_C EQU 1402HMY8255_MODE EQU 1403HMY8254_COUNT0 EQU 1440H ;8254 连接端口 IOY2MY8254_MODE EQU 1443H DATA SEGMENTLEDDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;数码管七段代码表DATA ENDSCO

6、DE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,MY8255_MODE;8255 初始化,连接端口IOY0MOV AL,10000001B ;A 口输出接 LED,B 口输出接数码管,C0C3 输入,C4C7 输出OUT DX,ALMOV CX,25A1: MOV DX,MY8255_A ;8255 的 A 口接 LED()MOV AL,01111011B ;东西红,南北绿OUT DX,AL ;将灯状态传送给 LED 显示CALL INITIAL_8254LOOP2:MOV AH,0BH ;判断有无键按下 INT

7、 21HCMP AL,0 JNZ EXIT0 ;有键入则返回 DOS JMP Y1EXIT0:MOV AH,4CHINT 21H Y1: MOV DX,MY8255_CIN AL,DXTEST AL,00001110B ;检测是否有紧急键按下JZ L1 CALL EMERGECY ;有紧急键则转到紧急键处理JMP L2L1: CALL DISPL2: MOV DX,MY8255_C ;检测 1s 是否计完IN AL,DXTEST AL,01HJE LOOP2 DEC CXCMP CX,5JA A1JMP A2A2: MOV DX,MY8255_A ;东西红,南北黄 MOV AL,0111110

8、0BOUT DX,ALCALL INITIAL_8254LOOP4:MOV AH,0BH ;判断有无键按下 INT 21HCMP AL,0 JNZ EXIT1 ;有键入则返回 DOS JMP Y2EXIT1:MOV AH,4CHINT 21H Y2: MOV DX,MY8255_CIN AL,DXTEST AL,00001110B ;检测是否有紧急键按下JZ L3 CALL EMERGECY ;有紧急键则转到紧急键处理JMP L4L3: CALL DISPL4: MOV DX,MY8255_C ;检测 1s 是否计完IN AL,DXTEST AL,01HJE LOOP4 ;若 1s 没计数完,

9、继续 DEC CXCMP CX,0JE PJMP A2 ;20s 或 5s 计数完全?若没计数完,继续P: MOV CX,25JMP A3A3: MOV DX,MY8255_A ;东西绿,南北红 MOV AL,10110111BOUT DX,ALCALL INITIAL_8254LOOP5:MOV AH,0BH ;判断有无键按下 INT 21HCMP AL,0 JNZ EXIT2 ;有键入则返回 DOS JMP Y3EXIT2:MOV AH,4CHINT 21H Y3: MOV DX,MY8255_CIN AL,DXTEST AL,00001110B ;检测是否有紧急键按下JZ L6 CALL

10、 EMERGECY ;有紧急键则转到紧急键处理JMP L7L6: CALL DISPL7: MOV DX,MY8255_C ;检测 1s 是否计完IN AL,DXTEST AL,01HJE LOOP5 DEC CXCMP CX,5JA A3JMP A4A4:MOV DX,MY8255_A ;东西黄,南北红 MOV AL,11000111BOUT DX,ALCALL INITIAL_8254LOOP6:MOV AH,0BH ;判断有无键按下 INT 21HCMP AL,0 JNZ EXIT3 ;有键入则返回 DOS JMP Y4EXIT3:MOV AH,4CHINT 21H Y4: MOV DX

11、,MY8255_CIN AL,DXTEST AL,00001110B ;检测是否有紧急键按下JZ L8 CALL EMERGECY ;有紧急键则转到紧急键处理JMP L9L8: CALL DISPL9: MOV DX,MY8255_C ;检测 1s 是否计完IN AL,DXTEST AL,01HJE LOOP6 ;若 1s 没计数完,继续 DEC CXCMP CX,0JE PPJMP A4 ;20s 或 5s 计数完全?若没计数完,继续PP:MOV AH,0BH ;判断有无键按下 INT 21HCMP AL,0 JNZ EXIT ;有键入则返回 DOSJMP STARTEXIT:MOV AH,

12、4CHINT 21H ;*- *INITIAL_8254 PROC ;8254 初始化,1sPUSH AXPUSH DXMOV DX,MY8254_MODE ;初始化,计数器 0 工作在方式 0,先写低 8 位,再写高 8 位,BCD 方式计数MOV AL,00110001BOUT DX,ALMOV DX,MY8254_COUNT0 MOV AL,00H ;写低 8 位OUT DX,ALMOV AL,10H ;写高 8 位OUT DX,ALPOP OP AXRETINITIAL_8254 ENDP ;*-INITIAL2_8254 PROC ;8254 初始化,0.5sPUSH AXPUSH

13、DXMOV DX,MY8254_MODE ;初始化,计数器0 工作在方式 0,先写低 8 位,再写高 8 位,BCD 方式计数MOV AL,00110001BOUT DX,ALMOV DX,MY8254_COUNT0 MOV AL,00H ;写低 8 位OUT DX,ALMOV AL,05H ;写高 8 位OUT DX,ALPOP OP AXRETINITIAL2_8254 ENDP;*- -*DISP PROC ;数码管显示PUSH AXPUSH BXPUSH USH CXDEC CXMOV DX,MY8255_C ;将 CL 中 16 进制数转化为十进制数MOV AL,11101111B OUT DX,ALMOV AX,CXMOV CL,0AHDIV CLPUSH AXMOV BX,OFFSET LEDXLAT ;显示十位码MOV DX,MY8255_B;将 AL 中 8 位码输出到 B 口,给 LED 显示器OUT DX,ALMOV CX,0FFFFH ;延时DELAY:NOPLOOP DELAYMOV DX,MY8255_CMOV AL,11011111B OUT DX,ALPOP AXMOV AL,AHMOV BX,OFFSET LEDXLAT;显示个位码MOV DX,MY8255_B

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号