数码管显示,定时器的计时问题。
时间:10-02
整理:3721RD
点击:
个位大神我又来求助了。我将以前做过的数码管动态显示和计时器结合起来,想做一个定时1s的计时器(晶振12mhz) ,程序如下
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP LOOP
ORG 1000H
MAIN:
MOV B,#14H
ACALL I
LOOP1:
MOV DPTR,#TAB
MOV R0,#00H ;R0个位段码
MOV R1,#00H ;R1十位段码
MOV R2,#00H ;R2百位段码
LOOP2:
MOV R4,#07H ;R4位码
MOV P1,R4 ;P1显示位址
MOV A,R0
MOVC A,@A+DPTR
MOV P0,A ;P0显示段码
ACALL DELAY ;短延迟
MOV P0,#00H
LOOP3:
DEC R4
MOV P1,R4
MOV A,R1
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P0,#00H
LOOP4:
DEC R4
MOV P1,R4
MOV A,R2
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P0,#00H
CJNE R0,#0AH,LOOP2
MOV R0,#00H
INC R1
CJNE R1,#0AH,LOOP2
MOV R1,#00H
INC R2
CJNE R2,#0AH,LOOP2
SJMP LOOP2
I:
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB EA
SETB ET0
SETB TR0
RET
LOOP:
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ B,LOOP5
MOV B,#14H
INC R0
LOOP5:
RETI
DELAY:
MOV R7,#50
DD1:
MOV R6,#50
DD2:
DJNZ R6,DD2
DJNZ R7,DD1
RET
TAB: DB 03FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
但是实际上跳一次的时间远远大于1s,我觉得除了显示程序中的延迟程序占了大量的时间之外,请问还有什么原因,该怎么解决,谢谢!
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP LOOP
ORG 1000H
MAIN:
MOV B,#14H
ACALL I
LOOP1:
MOV DPTR,#TAB
MOV R0,#00H ;R0个位段码
MOV R1,#00H ;R1十位段码
MOV R2,#00H ;R2百位段码
LOOP2:
MOV R4,#07H ;R4位码
MOV P1,R4 ;P1显示位址
MOV A,R0
MOVC A,@A+DPTR
MOV P0,A ;P0显示段码
ACALL DELAY ;短延迟
MOV P0,#00H
LOOP3:
DEC R4
MOV P1,R4
MOV A,R1
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P0,#00H
LOOP4:
DEC R4
MOV P1,R4
MOV A,R2
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
MOV P0,#00H
CJNE R0,#0AH,LOOP2
MOV R0,#00H
INC R1
CJNE R1,#0AH,LOOP2
MOV R1,#00H
INC R2
CJNE R2,#0AH,LOOP2
SJMP LOOP2
I:
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB EA
SETB ET0
SETB TR0
RET
LOOP:
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ B,LOOP5
MOV B,#14H
INC R0
LOOP5:
RETI
DELAY:
MOV R7,#50
DD1:
MOV R6,#50
DD2:
DJNZ R6,DD2
DJNZ R7,DD1
RET
TAB: DB 03FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
但是实际上跳一次的时间远远大于1s,我觉得除了显示程序中的延迟程序占了大量的时间之外,请问还有什么原因,该怎么解决,谢谢!
@依然落叶飘零 谢谢大神了
远远大于1s是多久跳一次?将进位的那段代码放在中断里面。
将进位放在主程序中就是差不多7秒调一次,放在中断就一直没有跳了,
你的是不是普中的开发板?我下载进去是正常显示的。我改了一下位选。你的位选为什么这么奇怪的?刚才我就想问了,0x07,0x06,0x05?你的电路是怎样接的。
C语言比较方便,为什么不用呢
对不起,我犯了一个很低级的错误。我兴建错了工程。实在不好意思,拿个07 06 05 是应为线插反了。一直以来,谢谢您的帮助!
学校老师说先学习汇编,有利于理解硬件的知识。
老师也这么教我们,但是汇编我一点都没看懂,太长
学会汇编更好理解单片机内部结构。学过汇编和没学过汇编是有差别的。汇编不要求有多牛,但至少得懂一点。
恩,是的,我们老师也是这么说的!
