单片机红绿灯程序完整版Word文档下载推荐.docx
《单片机红绿灯程序完整版Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机红绿灯程序完整版Word文档下载推荐.docx(7页珍藏版)》请在冰豆网上搜索。
红灯---前20S不显示,只在最后5S开始倒计时显示。
绿灯---前15S不显示,只在最后5S开始倒计时显示。
黄灯---3S倒计时显示(若东西路为黄灯,南北路为红灯,那
么南北绿的数码管也显示3S)。
5:
交通应急事件处理:
利用中断分别实现东西路---南北路的交通应急事件处理。
6:
延时程序的使用:
用循环延时和定时器计时的方法。
注:
P1.0---北路绿灯,P1.1--北路黄灯,P1.2---北路红灯c
P1.3--东路绿灯,P1.4---东路黄灯,P1.5----东路红灯。
【交通灯流程图】
开始
延时20秒
5秒倒计时结束
其他灯不变
南北路绿灯亮,红,黄灯灭
东西路红灯亮,绿,黄灯灭
南北路绿灯数码管开始倒计时5秒
南北路绿灯灭,黄灯亮且数码管开始倒计时3秒
东西路红灯——数码管开始倒计时3秒
3秒倒计时结束
延时25秒
东西路绿灯亮,黄灯,红灯灭
南北路红灯亮,黄灯,绿灯灭
东西路数码管开始倒计时5秒
东西路绿灯灭,黄灯亮且数码管开始倒计时3秒
南北路红灯一一数码管开始倒计时3秒
l=LIfc=ER川
程序如下:
ORG0000H
;
定时器0中断,实现交通应急事件
外部中断1,实现交通应急事件
LJMPLOOP
ORG000BH
LJMPWZDO
ORG0013H
LJMPWZD1
ORG0030H
LOOP:
MOVR3,#5
MOVR4,#5
MOVR2,#20
MOVSP,#70H
MOVIE,#85H
MOV
TMOD,#01H
置T0为工作方式1
TH0,#3CH
;
置T0定时初值50ms
TL0,#0B0H
CLR
TF0
SETB
TR0
启动定时器T0
SETBP1.1;
东---红灯亮,北---绿灯亮
SETBP1.2
CLRP1.0
SETBP1.3
SETBP1.4
CLRP1.5
ACALLDEL30S
ACALLYELLOW1
北---绿灯转黄灯,东---红灯亮
ACALLDEL3S
延时后北---黄灯火
SETBP1.0;
东:
红灯火,绿灯亮,北:
黄灯火,红灯
CLRP1.3
CLRP1.2
SETBP1.5
ACALLDEL55S;
北---红灯不变,东---绿灯转黄
ACALLYELLOW2
SJMPLOOP
YELLOW1:
;
北---绿灯转黄灯,东---红灯不变
SETBP1.0
CLRP1.1
RET
YELLOW2:
东---绿灯转黄灯,北---红灯不变
SETBP1.1
CLRP1.4
WZD0:
实现南北路交通应急事件
(南北路保持畅通,东西路停止通
行)
JNBP3.2,WZD0
RETI
WZD1:
实现东西路交通应急事件
(东西路保持畅通,南北路停止通
DEL30S:
J
红绿灯延时
DEL25S:
JNB
TF0QEL25S
查询50ms到否
TFO
恢复T0定时初值50ms
DJNZ
R2,DEL25S
判断1s到否?
未到继续状态
R2,#20
置50ms计数初值
R4,DEL25S
状态1维持25s
DEL5S:
5
取数延时
MOVR2,#6
DEL5:
MOVA,R2
ACALLST
取数
MOVP0,A
实现数码管显示
ACALLDEL1S
每隔1S减1
DJNZR2,DEL5
DEL3S:
MOVR2,#4H
DEL3:
ACALLST;
MOVP2,A
MOVP0,A;
数码管显示
DJNZR2,DEL3
DEL55S:
ACALLDEL20S
MOVR2,#6;
倒计时5S
DEL55:
MOVP2,A;
DJNZR2QEL55
DEL1S:
1S延时子程序
MOVR5,#0BH
ST1:
MOVR6,#0DAH
ST2:
MOVR7,#0CFH
DJNZR7,$
DJNZR6,ST2
DJNZR5,ST1
DEL20S:
20S延时子程序
MOVR5,#0BH;
#0DCH
ST3:
ST4:
DJNZR6,ST4
DJNZR5,ST3
ST:
MOVDPTR,#TAB
MOVCA,@A+DPTR
TAB:
DB0FFH,0FFH,0F9H,0A4H,0B0H,99H,92H
End