单片机红绿灯程序完整版可编辑修改word版.docx

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

单片机红绿灯程序完整版可编辑修改word版.docx

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

单片机红绿灯程序完整版可编辑修改word版.docx

单片机红绿灯程序完整版可编辑修改word版

通灯设计

交通灯

 

设计方案:

1:

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

2:

东西路灯变化红绿黄

南北路灯变化绿黄红

3:

红灯延时时间25S

绿灯延时时间20S

黄灯延时时间—3S4:

数码管显示:

红灯前20S不显示,只在最后5S开始倒计时显示。

绿灯前15S不显示,只在最后5S开始倒计时显示。

黄灯3S倒计时显示(若东西路为黄灯,南北路为红灯,那么

南北绿的数码管也显示3S)。

5:

交通应急事件处理:

利用中断分别实现东西路南北路的交通应急事件处理。

6:

延时程序的使用:

用循环延时和定时器计时的方法。

注:

P1.0---北路绿灯,P1.1--北路黄灯,P1.2---北路红灯。

P1.3--东路绿灯,P1.4---东路黄灯,P1.5东路红灯。

开始

【交通灯流程图】

 

 

延时20秒

 

5秒倒计时结束

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

南北路绿灯数码管开始倒计时5秒其他灯不变

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

3秒倒计时结束

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

延时25秒

 

5秒倒计时结束

东西路数码管开始倒计时5秒其他灯不变

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

南北路红灯——数码管开始倒计时3秒

3秒倒计时结束

程序如下:

 

ORG0000HLJMPLOOP

ORG000BH;定时器0中断,实现交通应急事件

LJMPWZD0

ORG0013H;外部中断1,实现交通应急事件LJMPWZD1

ORG0030HLOOP:

MOVR3,#5MOVR4,#5MOVR2,#20

MOVSP,#70HMOVIE,#85H

 

MOV

TMOD,#01H

;置T0为工作方式1

MOV

TH0,#3CH

;置T0定时初值50ms

MOV

CLR

 

TF0

TL0,#0B0H

SETBTR0;启动定时器T0

 

SETBP1.1;东---红灯亮,北---绿灯亮SETBP1.2

CLRP1.0SETBP1.3SETBP1.4CLRP1.5

ACALLDEL30S

ACALLYELLOW1;北---绿灯转黄灯,东---红灯亮ACALLDEL3S;延时后北---黄灯灭

SETBP1.0;东:

红灯灭,绿灯亮,北:

黄灯灭,红灯亮。

SETBP1.1

CLRP1.3

CLRP1.2SETBP1.4SETBP1.5

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

ACALLYELLOW2ACALLDEL3SSJMPLOOP

YELLOW1:

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

SETBP1.0SETBP1.2CLRP1.1SETBP1.3CLRP1.5SETBP1.4RET

YELLOW2:

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

SETBP1.0SETBP1.1CLRP1.2SETBP1.3SETBP1.5CLRP1.4

RET

WZD0:

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

CLRP1.0;(南北路保持畅通,东西路停止通行)SETBP1.1

SETBP1.2SETBP1.3SETBP1.4CLRP1.5

JNBP3.2,WZD0RETI

WZD1:

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

CLRP1.3;(东西路保持畅通,南北路停止通行)CLRP1.2

SETBP1.1SETBP1.0SETBP1.4SETBP1.5

JNBP3.3,WZD1RETI

DEL30S:

;红绿灯延时

DEL25S:

JNBTF0,DEL25S;查询50ms到否CLRTF0

MOVTH0,#3CH;恢复T0定时初值50ms

MOVTL0,#0B0H

DJNZR2,DEL25S;判断1s到否?

未到继续状态1MOVR2,#20;置50ms计数初值

DJNZR4,DEL25S;状态1维持25s

DEL5S:

;取数延时

MOVR2,#6

DEL5:

MOVA,R2

ACALLST;取数

MOVP0,A;实现数码管显示

ACALLDEL1S;每隔1S减1DJNZR2,DEL5

RET

DEL3S:

MOVR2,#4H

DEL3:

MOVA,R2

ACALLST;取数

MOVP2,A

MOVP0,A;数码管显示

ACALLDEL1SDJNZR2,DEL3RET

DEL55S:

ACALLDEL20S

MOVR2,#6;倒计时5S

DEL55:

ACALLDEL1SMOVA,R2

ACALLST

MOVP2,A;数码管显示

DJNZR2,DEL55RET

DEL1S:

;1S延时子程序

MOVR5,#0BH

ST1:

MOVR6,#0DAH

ST2:

MOVR7,#0CFHDJNZR7,$DJNZR6,ST2DJNZR5,ST1

RET

DEL20S:

;20S延时子程序

MOVR5,#0BH;#0DCH

ST3:

MOVR6,#0DAH

ST4:

MOVR7,#0CFHDJNZR7,$DJNZR6,ST4DJNZR5,ST3

RET

ST:

;取数

MOVDPTR,#TABMOVCA,@A+DPTR

RET

TAB:

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

End

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

当前位置:首页 > 初中教育 > 英语

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

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