单片机60递增秒循环,为什么会变成99→88→77→66→55→44→33→22→11→00→99 程序如下,求大神
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/08/13 00:30:05
单片机60递增秒循环,为什么会变成99→88→77→66→55→44→33→22→11→00→99 程序如下,求大神
ORG0000H
SJMPMAIN
ORG000BH
SJMPINTT0
ORG0030H
MAIN: MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
MOVIE,#82H
MOVR2,#60
MOVR4,#20
SETBTR0
ACALLLOOP3
SJMP$
INTT0: CLRTR0
MOVTH0,#3CH
MOVTL0,#0B0H
DJNZR4,EXIT
MOVR4,#20
DJNZR2,LOOP
CLRTR1
LOOP: ACALLLOOP3
EXIT: SETBTR0
RETI
LOOP2: INCA
MOVCA,@A+PC
RET
DB0C0H,0F9H,0A4H,0B0H
DB99H,92H,82H,0F8H
DB80H,90H,88H,83H
DB0C6H,0A1H,86H,84H
LOOP3: MOVA,R2
MOVB,#10
DIVAB
ACALLLOOP2
MOVP1,A
MOVA,B
ACALLLOOP2
MOVP2,A
RET
END
应该是LOOP3出问题,显示
ORG0000H
SJMPMAIN
ORG000BH
SJMPINTT0
ORG0030H
MAIN: MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
MOVIE,#82H
MOVR2,#60
MOVR4,#20
SETBTR0
ACALLLOOP3
SJMP$
INTT0: CLRTR0
MOVTH0,#3CH
MOVTL0,#0B0H
DJNZR4,EXIT
MOVR4,#20
DJNZR2,LOOP
CLRTR1
LOOP: ACALLLOOP3
EXIT: SETBTR0
RETI
LOOP2: INCA
MOVCA,@A+PC
RET
DB0C0H,0F9H,0A4H,0B0H
DB99H,92H,82H,0F8H
DB80H,90H,88H,83H
DB0C6H,0A1H,86H,84H
LOOP3: MOVA,R2
MOVB,#10
DIVAB
ACALLLOOP2
MOVP1,A
MOVA,B
ACALLLOOP2
MOVP2,A
RET
END
应该是LOOP3出问题,显示
定时1S
楼主的程序,可以实现倒计时:60、59、58...
变成了99→88→77→66→55→44→33→22→11→00→99,应该是电路的原因.
另外,楼主的程序,在倒计时到了0的时候,没有从60继续,而是出现乱码.
应该如下修改:
……
INTT0:
MOV TH0, #3CH
MOV TL0, #0B0H
DJNZ R4, EXIT
MOV R4, #20
DJNZ R2, LOOP
MOV R2, #60 ;----加上这行
LOOP:
ACALL LOOP3
EXIT:
RETI
LOOP3:
MOV A, R2
DEC A ;----加上这行
MOV B, #10
……
增加两行,其它不用变,即可实现 59~00s 循环倒计时.
变成了99→88→77→66→55→44→33→22→11→00→99,应该是电路的原因.
另外,楼主的程序,在倒计时到了0的时候,没有从60继续,而是出现乱码.
应该如下修改:
……
INTT0:
MOV TH0, #3CH
MOV TL0, #0B0H
DJNZ R4, EXIT
MOV R4, #20
DJNZ R2, LOOP
MOV R2, #60 ;----加上这行
LOOP:
ACALL LOOP3
EXIT:
RETI
LOOP3:
MOV A, R2
DEC A ;----加上这行
MOV B, #10
……
增加两行,其它不用变,即可实现 59~00s 循环倒计时.
单片机60递增秒循环,为什么会变成99→88→77→66→55→44→33→22→11→00→99 程序如下,求大神
51单片机少写了一个循环语句,为什么还能执行循环,错在哪里呢?程序如下:
5800计算器程序→符号是什么意思
1、海上内循环 2、海陆间循环 3、内陆循环.蒸发→水汽输送→降水→下渗→沿地表或地下流动(径流
为什么蛇会飞? → 为什么猫会飞? → 猫头鹰为什么会飞?
求大神解数学题→_→一年级的
求大神帮忙改错,MATLAB程序如下
求…1→1000内所有奇数的和的数学程序框图
0.99循环等于1吗我已经用极限的概念说明0.999····=/=1,证明如下:e=lim n→∞(1+1/n)^ne=
第7题,当x→1+时,f(1)=2/3,为什么不是1,求大神
求大神解释,为什么程序运行出来是这个结果,如下
求助会keil和51单片机的大神,写一段数码管程序