📄 单片机坐标简单i-o实验(交通灯控制).htm
字号:
face=宋体><BR><BR>以74LS273作为输出口,控制4个双色LED灯(可发红,绿,黄光),模拟交通灯管理。<BR><BR></FONT><FONT
face=黑体><A name=二.实验目的>二.实验目的</A></FONT><FONT
face=宋体><BR><BR>1.学习在单片机系统中扩展简单I/O接口的方法。<BR><BR>2.学习数据输出程序的设计方法。<BR><BR>3.学习模拟交通灯控制的方法。<BR><BR>4.学习双色灯的使用。<BR><BR></FONT><FONT
face=黑体><A name=三.实验电路及连线>三.实验电路及连线</A></FONT></P>
<P><FONT face=黑体><A
href="单片机坐标简单I-O实验(交通灯控制).files/mcuzb.htm"><IMG
src="单片机坐标简单I-O实验(交通灯控制).files/200412867140000.jpg"></A></FONT></P>
<P><A name=四.实验说明><FONT face=黑体>四.实验说明</FONT></A><FONT
face=宋体><BR><BR>1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。<BR><BR>2.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。<BR><BR></FONT><FONT
face=黑体><A name=五.实验程序框图>五.实验程序框图</A></FONT><FONT
face=宋体><BR><BR>程序框图:</FONT></P>
<P><FONT face=宋体><IMG
src="单片机坐标简单I-O实验(交通灯控制).files/200412867151999.jpg"></FONT></P>
<P><FONT face=宋体> </P>
<P><BR>源代码:</FONT></P>
<P>
ORG
0000H<BR>
LJMP
START<BR>
ORG
0040H<BR>START:<BR>
MOV
SP,#60H<BR>
LCALL
STATUS0
;初始状态(都是红灯)<BR>CIRCLE: LCALL
STATUS1
;南北绿灯,东西红灯<BR>
LCALL
STATUS2
;南北绿灯闪转黄灯,东西红灯<BR>
LCALL
STATUS3
;南北红灯,东西绿灯<BR>
LCALL
STATUS4
;南北红灯,东西绿灯闪转黄灯<BR>
LJMP
CIRCLE<BR>STATUS0:
;南北红灯,东西红灯<BR>
MOV
DPTR,#8300H<BR>
MOV
A,#0FH<BR>
MOVX
@DPTR,A<BR>
MOV
R2,#10
;延时1秒<BR>
LCALL
DELAY<BR>
RET<BR>STATUS1:
;南北绿灯,东西红灯<BR>
MOV
DPTR,#08300H<BR>
MOV
A,#5AH
;南北绿灯,东西红灯<BR>
MOVX
@DPTR,A<BR>
MOV
R2,#50
;延时5秒<BR>
LCALL
DELAY<BR>
RET<BR>STATUS2:
;南北绿灯闪转黄灯,东西红灯<BR>
MOV
DPTR,#8300H<BR>
MOV
R3,#03H
;绿灯闪3次<BR>FLASH: MOV
A,#5FH<BR>
MOVX
@DPTR,A<BR>
MOV
R2,#03H<BR>
LCALL
DELAY<BR>
MOV
A,#5AH<BR>
MOVX
@DPTR,A<BR>
MOV
R2,#03H<BR>
LCALL
DELAY<BR>
DJNZ
R3,FLASH<BR>
MOV
A,#0AH
;南北黄灯,东西红灯<BR>
MOVX
@DPTR,A<BR>
MOV
R2,#10
;延时1秒<BR>
LCALL
DELAY<BR>
RET<BR>STATUS3:
;南北红灯,东西绿灯<BR>
MOV
DPTR,#8300H<BR>
MOV
A,#0A5H<BR>
MOVX
@DPTR,A<BR>
MOV
R2,#50
;延时5秒<BR>
LCALL
DELAY<BR>
RET<BR>STATUS4:
;南北红灯,东西绿灯闪转黄灯<BR>
MOV
DPTR,#8300H<BR>
MOV
R3,#03H
;绿灯闪3次<BR>FLASH1: MOV
A,#0AFH<BR>
MOVX
@DPTR,A<BR>
MOV
R2,#03H<BR>
LCALL
DELAY<BR>
MOV
A,#0A5H<BR>
MOVX
@DPTR,A<BR>
MOV
R2,#03H<BR>
LCALL
DELAY<BR>
DJNZ
R3,FLASH1<BR>
MOV
A,#05H
;南北红灯,东西黄灯<BR>
MOVX
@DPTR,A<BR>
MOV
R2,#10
;延时1秒<BR>
LCALL DELAY<BR>
NOP<BR>
RET<BR>DELAY:
;延时子程序<BR>
PUSH
2<BR>
PUSH
1<BR>
PUSH 0<BR>DELAY1:
MOV 1,#00H<BR>DELAY2:
MOV
0,#0B2H<BR>
DJNZ
0,$<BR>
DJNZ
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -