数码管倒计时显示20秒。我的数码管是2个的共阳。用汇编语言

2025-02-06 12:55:21
推荐回答(2个)
回答1:

直接静态显示吧,不做扫描了,用延时做1S计数,也不做定时了。
共阳的数码管代码从0-9是:3F,06,5B,4F,56,6D,7D,07,7F,6F
你的共阳数码管没有控制阳极的话,复位是全亮的,单片机复位后各IO口都是高电平。
P1口是个位
P2口是十位
ORG 0000H
MAIN:
MOV P1,#3FH ;字符0

MOV P2,#5BH ;字符2

ACALL DELAY1S

MOV P1,#6FH ;字符9

MOV P2,#06H ;字符1

ACALL DELAY1S







;以此类推到20秒时候两个数码管都变成0显示
MOV P1,#3FH

MOV P2,#3FH

LOOP:
AJMP LOOP

;下面是延时1S的子程序。
DEALY1S:
MOV R7,#0A7H
DL1:
MOV R6,#0ABH
DL0:
MOV R5,#10H
DJNZ R5,$
DJNZ R6,DL0
DJNZ R7,DL1
NOP
RET
END
要是相重复显示,就把LOOP改成MAIN.
你要是相在延时期间相干别的,就改成定时器中断显示。

回答2:

是用proteus仿真吗?画完了仿真图了吗?把图贴上来,好按仿真图写程序。