(完整word版)单片机红绿灯程序完整版

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

交通灯设计

交通灯

设计方案:

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

2:东西路灯变化----

南北路灯变化----

3:红灯延时时间---25S

绿灯延时时间---20S

黄灯延时时间—3S

4: 数码管显示:

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

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

黄灯---3S倒计时显示(若东西路为黄灯,南北路为红灯,那么南北绿的数码管也显示3S)。

5:交通应急事件处理:

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

6:延时程序的使用:

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

注:P1.0---北路绿灯,P1.1--北路黄灯,P1.2---北路红灯。P1.3--东路绿灯,P1.4---东路黄灯,P1.5----东路红灯。

【交通灯流程图】

延时20

5

3

延时25

5

3

程序如下:

ORG 0000H

LJMP LOOP

ORG 000BH ;定时器0中断,实现交通应急事件LJMP WZD0

ORG 0013H ;外部中断1,实现交通应急事件LJMP WZD1

ORG 0030H

LOOP:

MOV R3,#5

MOV R4,#5

MOV R2,#20

MOV SP,#70H

MOV IE,#85H

MOV TMOD,#01H ;置T0为工作方式1

MOV TH0,#3CH ;置T0定时初值50ms

MOV TL0,#0B0H

CLR TF0

SETB TR0 ;启动定时器T0

SETB P1.1 ;东---红灯亮,北---绿灯亮

SETB P1.2

CLR P1.0

SETB P1.3

SETB P1.4

CLR P1.5

ACALL DEL30S

ACALL YELLOW1 ;北---绿灯转黄灯,东---红灯亮ACALL DEL3S ;延时后北---黄灯灭

SETB P1.0 ;东:红灯灭,绿灯亮,北:黄灯灭,红灯亮。SETB P1.1

CLR P1.3

CLR P1.2

SETB P1.4

SETB P1.5

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

ACALL YELLOW2

ACALL DEL3S

SJMP LOOP

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

SETB P1.0

SETB P1.2

CLR P1.1

SETB P1.3

CLR P1.5

SETB P1.4

RET

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

SETB P1.0

SETB P1.1

CLR P1.2

SETB P1.3

SETB P1.5

CLR P1.4

RET

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

CLR P1.0 ; (南北路保持畅通,东西路停止通行)

SETB P1.1

SETB P1.2

SETB P1.3

SETB P1.4

CLR P1.5

JNB P3.2,WZD0

RETI

WZD1: ;实现东西路交通应急事件CLR P1.3 ; (东西路保持畅通,南北路停止通行)

CLR P1.2

SETB P1.1

SETB P1.0

SETB P1.4

SETB P1.5

JNB P3.3,WZD1

RETI

DEL30S: ;红绿灯延时

DEL25S:JNB TF0,DEL25S ;查询50ms到否

CLR TF0

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

MOV TL0,#0B0H

DJNZ R2,DEL25S ;判断1s到否?未到继续状态1

MOV R2,#20 ;置50ms计数初值

DJNZ R4,DEL25S ;状态1维持25s

DEL5S: ;取数延时

MOV R2,#6

DEL5:

MOV A,R2

ACALL ST ;取数

MOV P0,A ;实现数码管显示

ACALL DEL1S ;每隔1S减1

DJNZ R2,DEL5

RET

DEL3S:

MOV R2,#4H

DEL3:

MOV A,R2

ACALL ST ;取数

MOV P2,A

MOV P0,A ;数码管显示

ACALL DEL1S

DJNZ R2,DEL3

RET

DEL55S:

ACALL DEL20S

MOV R2,#6 ;倒计时5S DEL55:

ACALL DEL1S

MOV A,R2

ACALL ST

MOV P2,A ;数码管显示

DJNZ R2,DEL55

RET

DEL1S: ;1S延时子程序MOV R5,#0BH

ST1:

MOV R6,#0DAH

ST2:

MOV R7,#0CFH

DJNZ R7,$

DJNZ R6,ST2

DJNZ R5,ST1

相关文档
最新文档