单片机红绿灯程序完整版.docx

上传人:b****6 文档编号:6095136 上传时间:2023-01-03 格式:DOCX 页数:7 大小:15.99KB
下载 相关 举报
单片机红绿灯程序完整版.docx_第1页
第1页 / 共7页
单片机红绿灯程序完整版.docx_第2页
第2页 / 共7页
单片机红绿灯程序完整版.docx_第3页
第3页 / 共7页
单片机红绿灯程序完整版.docx_第4页
第4页 / 共7页
单片机红绿灯程序完整版.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

单片机红绿灯程序完整版.docx

《单片机红绿灯程序完整版.docx》由会员分享,可在线阅读,更多相关《单片机红绿灯程序完整版.docx(7页珍藏版)》请在冰豆网上搜索。

单片机红绿灯程序完整版.docx

单片机红绿灯程序完整版

交通灯

设计方案:

1:

实现东西路----南北路红绿灯的交通指示。

2:

东西路灯变化----红绿黄一

南北路灯变化----绿黄红>T

3:

红灯延时时间---25S

绿灯延时时间---20S

黄灯延时时间一3S

4:

数码管显示:

红灯---前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秒倒计时结束

东西路绿灯亮,黄灯,红灯灭

南北路红灯亮,黄灯,绿灯灭

东西路数码管开始倒计时5秒

其他灯不变

东西路绿灯灭,黄灯亮且数码管开始倒计时3秒

南北路红灯一一数码管开始倒计时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

MOV

TH0,#3CH

;置T0定时初值50ms

MOV

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.4

SETBP1.5

ACALLDEL55S;北---红灯不变,东---绿灯转黄

ACALLYELLOW2

ACALLDEL3S

SJMPLOOP

YELLOW1:

;北---绿灯转黄灯,东---红灯不变

SETBP1.0

SETBP1.2

CLRP1.1

SETBP1.3

CLRP1.5

SETBP1.4

RET

YELLOW2:

;东---绿灯转黄灯,北---红灯不变

SETBP1.0

SETBP1.1

CLRP1.2

SETBP1.5

CLRP1.4

RET

WZD0:

;实现南北路交通应急事件

CLRP1.0

;(南北路保持畅通,东西路停止通

行)

SETBP1.1

SETBP1.2

SETBP1.3

SETBP1.4

CLRP1.5

JNBP3.2,WZD0

RETI

WZD1:

;实现东西路交通应急事件

CLRP1.3

;(东西路保持畅通,南北路停止通

行)

CLRP1.2

SETBP1.1

SETBP1.0

SETBP1.4

SETBP1.5

RETI

DEL30S:

J

红绿灯延时

DEL25S:

JNB

TF0QEL25S

;查询50ms到否

CLR

TFO

MOV

TH0,#3CH

;恢复T0定时初值50ms

MOV

TL0,#0B0H

DJNZ

R2,DEL25S

;判断1s到否?

未到继续状态

MOV

R2,#20

;置50ms计数初值

DJNZ

R4,DEL25S

;状态1维持25s

DEL5S:

5

取数延时

MOVR2,#6

DEL5:

MOVA,R2

ACALLST

;取数

MOVP0,A

;实现数码管显示

ACALLDEL1S

;每隔1S减1

DJNZR2,DEL5

RET

DEL3S:

MOVR2,#4H

DEL3:

MOVA,R2

ACALLST;取数

MOVP2,A

MOVP0,A;数码管显示

ACALLDEL1S

DJNZR2,DEL3

RET

DEL55S:

ACALLDEL20S

MOVR2,#6;倒计时5S

DEL55:

ACALLDEL1S

MOVA,R2

ACALLST

MOVP2,A;数码管显示

DJNZR2QEL55

RET

DEL1S:

;1S延时子程序

MOVR5,#0BH

ST1:

MOVR6,#0DAH

ST2:

MOVR7,#0CFH

DJNZR7,$

DJNZR6,ST2

DJNZR5,ST1

RET

DEL20S:

;20S延时子程序

MOVR5,#0BH;#0DCH

ST3:

MOVR6,#0DAH

ST4:

MOVR7,#0CFH

DJNZR7,$

DJNZR6,ST4

DJNZR5,ST3

RET

ST:

;取数

MOVDPTR,#TAB

MOVCA,@A+DPTR

RET

TAB:

DB0FFH,0FFH,0F9H,0A4H,0B0H,99H,92H

End

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1