1、 微机原理与接口技术微机原理与接口技术 课程设计课程设计 题题 目:目: 交通灯显示系统交通灯显示系统 学学 院:院: 计算机科学与技术学院计算机科学与技术学院 一一. . 设计设计任务任务 利用唐都实验箱,模拟十字路口交通灯显示系统。 具体要求如下: 一:东西与南北的交通灯定时 30 秒交换红绿灯一次。 二:每次红绿灯交换之间要求黄色灯闪烁 3 秒。 三:在紧急车辆(如消防车、救护车)通过时,四边街道均显示红灯,以便紧急 车辆顺利通过,而其它车辆暂停行驶。紧急车辆通过后,交通灯自动恢复原来的 颜色标志。 四:当一个方向绿灯亮后 6 秒无车通过则切换到另一路绿灯亮。 五:在数码管上显示已计时多
2、少时间。 二方案设计二方案设计 本实验用到的芯片有 8253、8255A、8259A,其中 8253 利用计数器 2 来计时, 8255A 的 A、B 口作输出与七段显示数码管和发光二极管连接,8259A 用来中断控 制及紧急情况。 三三电路原理图、接线图电路原理图、接线图 1.1.实物接线实物接线图图 2.2.硬件接线图硬件接线图 四程序流程图四程序流程图 延时子程序: Y N 8253 GATE2 CLK2 OUT2 +5V OPCLK 8259A IRQ7 IRQ6 IRQ5 IRQ4 IRQ3 IRQ2 IRQ1 IRQ0 K0 KK2+ KK1+ A B C D E F G DP P
3、A0 PA7 R1 R2 Y1 Y2 G1 PB7 PB6 PB54 PB32 PB1 X4 X3 X2 X1 PC0 PC1 PC2 PC3 保护寄存器 把 CX 赋值为 1000 CX=? CX 减 1 入口 恢复寄存器 出口 N N Y 开始 填中断向量表 8253、 8255 初始化 东西方向绿灯,南北方向红灯,LED 显示 30 和 27 东西方向绿灯,南北方向黄灯,LED 显示 3 和 3 东西方向红灯,南北方向绿灯,LED 显示 27 和 30 东西方向黄灯,南北方向绿灯,LED 显示 3 和 3 FLAG=0? LED 显示到 24 (6 秒内无车通过)? 东西方向红灯,南北方
4、向绿灯,LED 显示 27 和 30,同时黄灯闪烁 3 秒 调用显示子程序 调用延时子程序 结束 五源代码五源代码 STACK SEGMENT STACK DB 64 DUP(?) STACK ENDS DATA SEGMENT MSG1 DB START, 0AH, 0DH, 00H MSG2 DB STOP, 0AH, 0DH, 00H MSG3 DB NO CAR, 0AH, 0DH, 00H MSG4 DB RESTART, 0AH, 0DH, 00H TABLE DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH LED DB 4
5、DUP(0) COUNT DB 0 FLAG1 DB 1 FLAG2 DB 0 DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK RUN MACRO ADDR ;宏调用,数码管两位显示 LEA DI, ADDR MOV AX,DI AAD ;除法非压缩指令(AH)-(AH)*10+(AL),(AH)-0 DEC AL CMP AL, 0 AAM ;乘法非压缩指令,将(AL)/0AH,(AH)-商,(AL)-余数 MOV DI, AX ENDM INF MACRO MSG MOV AH, 06H LEA BX, MSG INT 10
6、H ENDM START: MOV AX, DATA MOV DS, AX PUSH DS MOV AX, 0000H MOV DS, AX LEA AX, IRQ7 ;取中断程序入口地址 ADD AX, 2000H ;IP=2000H MOV SI, 003CH ;中断 7 的中断向量 MOV SI, AX ;填偏移量矢量 MOV AX, 0000H ;段地址 CS=0000 MOV SI, 003EH MOV SI, AX ;填段地址矢量 LEA AX, IRQ6 ADD AX, 2000H MOV SI, 0038H MOV SI, AX MOV AX, 0000H MOV SI, 003AH MOV SI, AX LEA AX, IRQ2 ADD AX, 2000H MOV SI, 0028H MOV SI, AX