微机原理与接口技术实
验报告
综合实验一
红绿灯仿真及实现
专业: 电气工程及其自动化 班级:
学号:
姓名:
预习报告成绩
实验成绩:
实验日期及时间: 2018/5/5
机位号:
1
综合实验项目基本要求:设计实现交通信号灯系统。设 A 车道与 B 车道
交叉组成十字路口,A 是主道,B 是支道,直接对车辆进行交通管理,
基本要求如下(用常规逻辑电路,如 74LS138、74LS273/373、74LS245
等芯片):
(1)用发光二极管模拟交通信号灯;
(2)正常情况下,A、B 两车道轮流放行,A 车道放行绿灯亮,其中 3
秒用于警告(黄灯亮);B 车道放行绿灯亮,其中 3 秒用于警告(黄灯亮);
A、B 车道放行、禁止通行时间自己定义;
(3)有紧急车辆通过时,按下某开关使 A、B 车道均为红灯,紧急情况
解除后,恢复正常控制(解除方式自选)
(4)根据自己实际情况可以扩充控制功能:如时间显示、左右转向提
示、掉头指示灯复杂路况的控制。(选做部分或全部功能)
实验内容: 在 Proteus 仿真实现交通信号灯系统。
一、 交通信号灯系统设计描述(自己具体实现内容)
设计实现交通信号灯系统。设 A 车道与 B 车道交叉组成十字路口,A 是主道,B 是
支道,直接对车辆进行交通管理。实现的基本功能及要求如下:
1、用发光二极管模拟交通信号灯;
2、正常情况下,A、B 两车道轮流放行,A 车道放行绿灯亮 8 秒,警告黄灯亮 3 秒,禁
止通行红灯亮 11 秒;B 车道放行绿灯亮 8 秒,警告黄灯亮 3 秒,禁止通行红灯亮 11 秒;
有紧急情况时,按下某开关使 A、B 车道均为红灯,11 秒后,恢复正常控制;
3、红绿灯系统有时间显示的功能;
二、 Proteus 中实现原理图(预习时可以手绘设计草图,实验时在
Proteus 中截屏、粘贴)
三、 源程序清单
2
;共阴极数码管输出显示,并延时 1S
CODE
SEGMENT PUBLIC 'CODE'
ASSUME CS:CODE
START:
AGAIN:
MOV DX,8000H;DX 是地址
;DX 是地址
MOV DX,8000H
MOV AL,11100001B;|R-G,红、绿
OUT DX,AL
MOV DX,0A000H
MOV AL,4FH
OUT DX,AL
MOV DX,0B000H
MOV AL,7DH
OUT DX,AL
CALL DELAY1 ;6
MOV DX,0A000H
MOV AL,5BH
OUT DX,AL
MOV DX,0B000H
MOV AL,6DH
OUT DX,AL
CALL DELAY1 ;5
MOV DX,0A000H
MOV AL,06H
OUT DX,AL
MOV DX,0B000H
MOV AL,66H
OUT DX,AL
CALL DELAY1 ;4
;共阴极数码管输出显示,并延时 1S
;共阴极数码管输出显示,并延时 1S
AL,DX
MOV DX,9000H ;判断开关状态
IN
AND AL,01H
CMP AL,00
JZ EXIT ;关
MOV DX,8000H
MOV AL,11010001B;|R-Y,红、黄
OUT DX,AL
MOV DX,0A000H
MOV AL,4FH
OUT DX,AL
MOV DX,0B000H
MOV AL,4FH
;共阴极数码管输出显示,并延时 1S
3
;共阴极数码管输出显示,并延时 1S
;共阴极数码管输出显示,并延时 1S
OUT DX,AL
CALL DELAY1 ;3
MOV DX,0A000H
MOV AL,5BH
OUT DX,AL
MOV DX,0B000H
MOV AL,5BH
OUT DX,AL
CALL DELAY1 ;2
MOV DX,0A000H
MOV AL,06H
OUT DX,AL
MOV DX,0B000H
MOV AL,06H
OUT DX,AL
CALL DELAY1 ;1
;共阴极数码管输出显示,并延时 1S
;共阴极数码管输出显示,并延时 1S
AL,DX
MOV DX,9000H ;判断开关状态
IN
AND AL,01H
CMP AL,00
JZ EXIT ;关
MOV DX,8000H
MOV AL,11001100B;|G-R,绿、红
OUT DX,AL
MOV DX,0A000H
MOV AL,7DH
OUT DX,AL
MOV DX,0B000H
MOV AL,4FH
OUT DX,AL
CALL DELAY1 ;6
MOV DX,0A000H
MOV AL,6DH
OUT DX,AL
MOV DX,0B000H
MOV AL,5BH
OUT DX,AL
CALL DELAY1 ;5
MOV DX,0A000H
MOV AL,66H
OUT DX,AL
MOV DX,0B000H
MOV AL,06H
;共阴极数码管输出显示,并延时 1S
4
OUT DX,AL
CALL DELAY1 ;4
AL,DX
MOV DX,9000H ;判断开关状态
IN
AND AL,01H
CMP AL,00
JZ EXIT ;关
MOV DX,8000H
MOV AL,11001010B;|Y-R,黄、红
OUT DX,AL
MOV DX,0A000H
;共阴极数码管输出显示,并延时 1S
MOV AL,4FH
OUT DX,AL
MOV DX,0B000H
MOV AL,4FH
OUT DX,AL
CALL DELAY1 ;3
MOV DX,0A000H
MOV AL,5BH
OUT DX,AL
MOV DX,0B000H
MOV AL,5BH
OUT DX,AL
CALL DELAY1 ;2
MOV DX,0A000H
MOV AL,06H
OUT DX,AL
MOV DX,0B000H
MOV AL,06H
OUT DX,AL
CALL DELAY1 ;1
;共阴极数码管输出显示,并延时 1S
;延时;共阴极数码管输出显示,并延时 1S
AL,DX
MOV DX,9000H ;判断开关状态
IN
AND AL,01H
CMP AL,00
JZ EXIT ;关
EXIT:
JMP AGAIN
MOV DX,8000H
MOV AL,11001001B
OUT DX,AL
EXIT1:MOV DX,9000H
5
AL,DX
IN
AND AL,01H
CMP AL,00
JZ EXIT1 ;开关关
JMP AGAIN ;开关开
DELAY1
PROC
NEAR
;延时 1S 程序
;保护现场
PUSH CX
MOV CX,0
LOOP $
LOOP $
LOOP $
MOV CX,15000
LOOP $
POP CX
RET
;恢复现场
DELAY1 ENDP
CODE
ENDS
END START
ENDLESS:
CODE
JMP ENDLESS
ENDS
END START
; Write your code here
四、 仿真实现结果描述
正常情况下,A、B 两车道轮流放行,A 车道放行绿灯亮 8 秒,警告黄灯亮 3 秒,
这期间 B 车道禁止通行红灯亮 11 秒;之后 B 车道放行绿灯亮 8 秒,警告黄灯亮 3
秒,这期间 A 车道禁止通行红灯亮 11 秒;
有紧急情况时,按下 74LS245 输入接口处开关后 A.B 车道都变为红灯,打开开关
全红状态解除恢复正常循环状态。
五、 遇到的问题几解决方法
1、一开始,A、B 两车道轮流放行的循环无法实现,需加 JMP 指令
6
要求及评分标准:
1. 实验前应将每题的前 3 项按要求完成,未完成者不得上机。
2. 实验结束应将每题的第(二)、(三)、(四)、(五)项根据
实验结果补充完整。
3. 实验报告要求交电子版,即压缩文件(含实验报告 word 版、
Proteus 原理图、汇编源程序等),以 学号+班级+姓名+综
合 1.rar 发给任课老师或通过红蜘蛛提交。
4. 本次实验总分 20 分,现场验收:
(1) 交通信号灯系统设计描述(3 分,看完整性扣 1-3 分)
(2) Proteus 中实现原理图(5 分,看正确性扣 1-5 分)
(3) 源程序清单(7 分,看正确性扣 1-7 分)
(4)仿真实现结果描述(5 分,看完整性扣 1-5 分)
(5) 遇到的问题几解决方法
7