c51单片机c语言交通灯的程序设计,51单片机交通灯程序设计

;------闯红灯报警程序------

B0: MOV R2,#03H ;报警持续时间3秒

B01: MOV A,R3

JZ N1 ;若倒计时完毕,不再报警

CLR P3.0 ;报警

CJNE R2,#00H,B01 ;判断3秒是否结束

SJMP N02

;------1秒延时子程序-------

N7: RETI

T0_INT:MOV TL0,#9AH ;给定时器T0送定时10ms的初值

MOV TH0,#0F1H

INC R4

INC R5

CJNE R5,#0FAH,T01 ;判断延时是否够一秒,不够则调用显示子程序

MOV R5,#00H ;R5清零

DEC R3 ;倒计时初值减一

DEC R2 ;报警初值减一

T01: ACALL DISP ;调用显示子程序

RETI ;中断返回

;------显示子程序------

DISP: JNB P2.4,T02

DISP1: MOV B,#0AH

MOV A,R3 ;R3中值二转十显示转换

DIV AB

MOV 79H,A

MOV 7AH,B

DIS: MOV A,79H ;显示十位

MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV DPTR,#0002H

MOVX @DPTR,A

MOV DPTR,#0001H

MOV A,#0F7H

MOVX @DPTR,A

LCALL DELAY

DS2: MOV A,7AH ;显示个位

MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV DPTR,#0002H

MOVX @DPTR,A

MOV DPTR,#0001H

MOV A,#0FBH

MOVX @DPTR,A

RET

;------东西方向车流量检测程序------

T03: MOV A,R3

SUBB A,#00H ;若绿灯倒计时完毕,不再检测车流量

JZ N3

JB P2.0,T03

INC R7

CJNE R7,#64H,E1

MOV R7,#00H ;中断到100次则清零

E1: SJMP N22

;------东西方向车流量显示程序------

T02: MOV B,#0AH

MOV A,R7 ;R7中值二转十显示转换

DIV AB

MOV 79H,A

MOV 7AH,B

DIS3: MOV A,79H ;显示十位

MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV DPTR,#0002H

MOVX @DPTR,A

MOV DPTR,#0001H

MOV A,#0F7H

MOVX @DPTR,A

LCALL DELAY

DS4: MOV A,7AH ;显示个位

MOV DPTR,#TAB

MOVC A,@A+DPTR

MOV DPTR,#0002H

MOVX @DPTR,A

MOV DPTR,#0001H

MOV A,#0FBH

MOVX @DPTR,A

LJMP N7

;------延时4MS子程序----------

DELAY: MOV R1,#0AH

LOOP: MOV R6,#64H

NOP

LOOP1: DJNZ R6,LOOP1

DJNZ R1,LOOP

RET

;------字符表------

TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

2936547a77771607184bbd002cfb94bb.png

51单片机相关文章:51单片机教程

单片机相关文章:单片机教程

单片机相关文章:单片机视频教程

单片机相关文章:单片机工作原理

上一页

1

2

下一页

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值