两位共阳极数码管c语言,89c51驱动两位共阳极数码管倒计时显示程序,60秒到30秒能实现,但从30秒到90秒不能实现,请高手帮忙!...

89c51驱动两位共阳极数码管倒计时显示程序,60秒到30秒能实现,但从30秒到90秒不能实现,请高手帮忙!0

00e27ab806e4881f8254fe7ae8741834.pngseq4342013.11.04浏览199次分享举报

我想实现一开始60秒倒计时,到01之后变成30秒倒计时,到01之后变成90秒倒计时,到01之后再到60秒,然后重复,现在的程序到30秒倒计时后不能跳到90秒倒计时,请高手帮忙修改,谢谢~

ORG 00H

START:

MOV R0,#20

MOV R4,#60

MOV R5,#0

LP0:

MOV TMOD,#01H

MOV TH0,#3CH

MOV TL0,#0B0H

SETB TR0

LP1:

JBC TF0,LP2

ACALL DISP

AJMP LP1

LP2:

DJNZ R0,LP0

CLR TR0

MOV R0,#20

MOV A,R4

CJNE A,#0,DEC1

INC R5

MOV DPTR,#TAB

MOV A,R5

CJNE A,#3,LP3

MOV R5,#0

LP3:

MOVC A,@A+DPTR

MOV R4,A

AJMP JP1

DEC1:

DEC A

MOV R4,A

JP1:

ACALL DISP

AJMP LP0

DISP:

MOV DPTR,#TABLE

MOV A,R4

MOV B,#10

DIV AB ;当前值除以10

MOV 20H,A ;得出的商送给十位

MOV 21H,B ;得出的余数送给个位

MOV A,20H ;十位显示

MOVC A,@A+DPTR

MOV P0,A

SETB P2.1

LCALL DELAY

CLR P2.1

MOV A,21H ;个位显示

MOVC A,@A+DPTR

MOV P0,A

SETB P2.0

LCALL DELAY

CLR P2.0

RET

DELAY: ;误差 0us

MOV R6,#10

DL0:

MOV R5,#50

DJNZ R5,$

DJNZ R6,DL0

RET

TABLE:

DB 0C0H,0F9H,0A4H,0B0H,99H ;共阳极0-9显示代码

DB 92H,82H,0F8H,80H,90H

TAB:

DB 60,30,90

END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值