利用51单片机实现交通红绿灯

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

? MOV A,#0B6H
? MOVX @DPTR,A ;从A口输出数据0B6H,来控制相应二极管发光
? INC DPTR
MOV A,#0DH
MOVX @DPTR,A ;从B口输出数据0DH,来控制相应二极管发光

西


黄绿红 110
黄绿红 110
黄绿红 黄绿红 110 11 0
B 口低4位(ODH)
MOVX @DPTR,A
百度文库
INC DPTR
MOV A,#0CH
MOVX @DPTR,A
;东西黄灯亮,南北红灯亮
MOV 20H,#0AH
?
MOV 21H,#01H
?
LCALL DELY
;延时0.5s
MOV DPTR,#0FF7CH
MOV A,#0F7H
MOVX @DPTR,A
INC DPTR
MOV A,#0DH
MOV A,#75H
MOVX @DPTR,A
INC DPTR
MOV A,#0DH
MOVX @DPTR,A
;东西绿灯亮,南北红灯亮
MOV 20H,#14H
?
MOV 21H,#0AH
LCALL DELY
;延时10s
MOV R7,#03H
;闪烁次数
JOD1: MOV DPTR,#0FF7CH
MOV A,#0F3H
;东西红灯亮,南北绿灯亮
MOV 20H,#14H
?
MOV 21H,#0AH
LCALL DELY
;延时10s
MOV R7,#03H
;闪烁次数
JOD2: MOV DPTR,#0FF7CH
MOV A,#9EH
MOVX @DPTR,A
INC DPTR
MOV A,#07H
MOVX @DPTR,A
;东西红灯亮,南北黄灯亮
MOV DPTR,#0FF7CH
MOV A,#0B6H
MOVX @DPTR,A
INC DPTR
MOV A,#0DH
MOVX @DPTR,A
MOV 20H,#14H
;8255初始化 ;点亮4个红灯
?
MOV 21H,02H
; 延时2s
LCALL DELY
?
? JOD3: MOV DPTR,#0FF7CH
?
MOV DPTR,#0FF7FH
MOV A,#88H
MOVX @DPTR,A 这样将方式控制字送到
控制寄存器。其中方式控制字为88H(10001000),表示
8255工作在方式0,A,B口作为输出口,C口高4位作为
输入口,低4位作为输出口。
状态0:东西红灯,南北红灯 。
? 相应程序为:
? MOV DPTR,#0FF7CH
?
MOVX @DPTR,A
;南北红灯亮
MOV 20H,#0AH
?
MOV 21H,01H
?
LCALL DELY
;延时0.5s
DJNZ R7,JOD1
;闪烁次数未到继续
?
MOV DPTR,#0FF7CH
MOV A,#0AEH
MOVX @DPTR,A
INC DPTR
MOV A,#0BH
MOVX @DPTR,A
A口(0B6H)
状态1:东西绿灯亮,南北红灯亮
? 相应程序为:
?
MOV DPTR,#0FF7CH
MOV A,#75H MOVX @DPTR,A;从A口输出数据75H来控制相应二极管发光 INC DPTR
MOV A,#0DH
MOVX @DPTR,A;从A口输出数据0DH来控制相应二极管发


西


黄绿红 黄绿红 黄绿红 黄绿红
8255控制交通灯
设计者:金勇 电子信息工程
2007.12.6
题目:
? 用8255做输出口,控制十二个发光二极 管亮灭,模拟交通灯管理。十字路口东西南北 走向。
? 初始状态0:为东西红灯,南北红灯。
? 状态1(10s):东西绿灯通车,南北红灯; 状态2(3s):东西绿灯灭,黄灯闪几次,南 北红灯;
;闪烁次数未到继续
状态2的实现过程:
? 实现过程是先将先从A,B 口输出数据控制二极管 使东西绿灯灭,黄灯亮,南北红灯亮 ;然后再调用 一个延时子程序,延时0.5s;延时完成后通过指令从 A,B口输出数据使东西绿灯灭,黄灯灭,南北红灯 亮,然后又调用一个演示0.5s的子程序。整个过程中 通过R7计数使黄灯亮灭3次。
110
101 11 0 101
B 口低4位(ODH)
A口(75H)
状态2 :东西绿灯灭,黄灯闪几次,南北红灯
相应程序为: MOV DPTR,#0FF7CH MOV A,#0F3H MOVX @DPTR,A INC DPTR MOV A,#0CH MOVX @DPTR,A MOV 20H,#0AH
;东西黄灯亮,南北红灯亮
MOV 21H,#01H
?
LCALL DELY
;延时0.5s
MOV DPTR,#0FF7CH
MOV A,#0F7H
MOVX @DPTR,A
INC DPTR
MOV A,#0DH
MOVX @DPTR,A
;南北红灯亮
MOV 20H,#0AH
?
MOV 21H,01H
?
LCALL DELY
; 延时0.5s
DJNZ R7,JOD1
? 10s=50msX20次X10次 ? 0.5s=50msX10次 ? 2s=50msx20次X2次
程序清单:
?
ORG 0000H
?
SJMP JOD0
?
ORG 01B0H
?
SJMP INT1
JOD0: MOV SP,#60H
MOV DPTR,#0FF7FH
MOV A,#88H
MOVX @DPTR,A
? 状态3(10s):东西红灯,南北绿灯通车;
? 状态4(3s):东西红灯,南北绿灯灭,黄灯 闪几次。依次循环。
图程流序程验实
)一(图理原路电
)二(图理原路电
)三(图理原路电
完整的实验原理图:
8255的初始化:
? 根据实验的原理图可以计算出8255的控制字地址为FF7FH, A口的地址为FF7CH,B口的地址为FF7DH,然后对8255初 始化,使用的语句为:
?
同理,状态3和状态4的实现方法与状态1和状态2的实现方法一样, 只是在控制发光二极管的时候从 A,B口输出的数据不相同,而程 序指令是相同的。
延时子程序:
? 程序过程中需要延时10s,0.5 s,2s,因为 定时时间比较大,所以将定时器的时间定为 50ms,然后再根据不同的定时时间循环定时 不同次数就可以得到需要的定时时间:
MOV 20H,#0AH
?
MOV 21H,#01H
LCALL DELY
;延时0.5s
MOV DPTR,#0FF7CH
MOV A,#0BEH
MOVX @DPTR,A
INC DPTR
MOV A,#0FH
MOVX @DPTR,A
;东西红灯亮
MOV 20H,#0AH
相关文档
最新文档