微机原理课程设计:8255模拟交通灯
1、目的:学习8255使用方法,学习模拟交通灯控制的方法,学习双色灯的使用。
2、要求:控制4个双色LED灯(可发红,绿,黄光),模拟十字路口交通灯管理。
3、电路及连线
PC0-PC3连DG1-DG4,PC4-PC7连DR1-DR4。8255片选CS8255连138译码处210H。
4、说明 (1) 因为本实验是模拟交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。
(2)双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。 (3)74LS240为8输入输出的反向驱动器。
5、完成的任务
(1)利用计算机和微机原理试验箱,将实验6的程序Tlamp_88.asm在试验箱运行和调试。全速运行,观察整体效果。单步运行,观察程序每条语句额执行效果,理解语句含义。 (2)修改实验连线为,PC7-PC4连DG1-DG4,PC3-PC0连DR1-DR4。8255片选CS8255连138译码处210H孔。将Tlamp_88.asm另存为jiaotong.asm。修改jiaotong.asm,实现交通灯原有功能。
(3)修改实验连线为,PB7-PB4连DG1-DG4,PB3-PB0连DR1-DR4。8255片选CS8255连138译码处210H孔。将jiaotong.asm另存为jiaotong2.asm。修改jiaotong2.asm,实现交通灯原有功能。
(4)将jiaotong2.asm另存为jiaotong3.asm。修改jiaotong3.asm,实现交通灯各个灯亮和灭的时间是原有时间的3倍。
6、实验程序框图
7、源程序: Tlamp_88.asm
;FOR
EAT 598 PC55
EQU 212H
211 P55CTL EQU 213H D1
EQU 10H
30 D2
EQU 50H
3 DATA
SEGMENT PB
DB ? DATA
ENDS STACK
SEGMENT STACK STA
DW 50 DUP(?) TOP
EQU LENGTH STA STACK
ENDS CODE
SEGMENT ASSUME CS:CODE,DS:DATA START:
PUSH
CS
POP
DS
MOV
DX,P55CTL
;设置为全输出
MOV
AL,80H
OUT
DX,AL
MOV
DX,204H
MOV
AL,00H
OUT
DX,AL
;清LED
MOV
DX,PC55
;全红
MOV
AL,0FH
OUT
DX,AL
MOV
BX,7fH
CALL
DLY BG:
MOV
AL,96H
;南北绿,东西红
OUT
DX,AL
MOV
BX,D2
CALL
DLY
MOV
CX,03H XH1:
MOV
AL,9FH
; 南北绿灭
OUT
DX,AL
MOV
BX,D1
CALL
DLY
MOV
AL,96H
; 南北绿亮
OUT
DX,AL
MOV
BX,D1
CALL
DLY
LOOP
XH1
MOV
AL,06H
;南北黄
OUT
DX,AL
MOV
BX,D1
CALL
DLY
MOV
BX,D1
CALL
DLY
MOV
AL,69H ;南北红,东西绿
OUT
DX,AL
MOV
BX,D2
CALL
DLY
MOV
CX,03
XH2:
MOV
AL,6FH ; 东西绿灭
OUT
DX,AL
MOV
BX,D1
CALL
DLY
MOV
AL,69H
; 东西绿亮
OUT
DX,AL
MOV
BX,D1
CALL
DLY
LOOP
XH2
MOV
AL,09H
; 东西黄
OUT
DX,AL
MOV
BX,D1
CALL
DLY
MOV
BX,D1
CALL
DLY
JMP
BG
DLY
PROC
NEAR
PUSH
CX
DDD:
MOV
CX,0FFFH CCC:
LOOP
CCC
DEC
BX
CMP
BX,0
JNE
DDD
POP
CX
RET
DLY
ENDP
CODE
ENDS END
START