单片机60递增秒循环,为什么会变成99→88→77→66→55→44→33→22→11→00→99 程序如下,求大神ORG0000H SJMPMAIN ORG000BH SJMPINTT0 ORG0030HMAIN: MOVTMOD,#01H MOVTH0,#3CH

来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/18 02:57:12
单片机60递增秒循环,为什么会变成99→88→77→66→55→44→33→22→11→00→99程序如下,求大神ORG0000HSJMPMAINORG000BHSJMPINTT0OR

单片机60递增秒循环,为什么会变成99→88→77→66→55→44→33→22→11→00→99 程序如下,求大神ORG0000H SJMPMAIN ORG000BH SJMPINTT0 ORG0030HMAIN: MOVTMOD,#01H MOVTH0,#3CH
单片机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出问题,显示

定时1S

单片机60递增秒循环,为什么会变成99→88→77→66→55→44→33→22→11→00→99 程序如下,求大神ORG0000H SJMPMAIN ORG000BH SJMPINTT0 ORG0030HMAIN: MOVTMOD,#01H MOVTH0,#3CH
楼主的程序,可以实现倒计时: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 循环倒计时.