标题: 单片机一分钟定时 秒表 但是时间有点偏快 各位大佬可以告诉是什么问题吗 [打印本页]

作者: 2894989833    时间: 2020-9-23 22:52
标题: 单片机一分钟定时 秒表 但是时间有点偏快 各位大佬可以告诉是什么问题吗
     ORG 0000H
     MOV TMOD,#01H
LOOP:MOV TH0,#0FCH
     MOV TL0,#18H
     SETB TR0
     JNB TF0,$
     CLR TF0
     CPL P1.7
     SJMP LOOP
     END*/
KEYVAL EQU 30H
DAT  EQU 33H
SCANLED EQU 39H
CLK  EQU 77H
DOT  BIT 00H
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP EXTINT0
ORG 000BH
LJMP T0ISR ;50ms dingshi
ORG 001BH
LJMP T1ISR ;shaomiao xianshi
ORG 0030H
MAIN:
MOV SP,#5FH
MOV TMOD,#11H
MOV TH0,#03CH
MOV TL0,#0B0H;3CB0=15536
MOV TH1,#0ECH;EC78=60536
MOV TL1,#078H
MOV KEYVAL,#2
MOV 33H,#10H
MOV 34H,#10H
MOV 35H,#10H
MOV 36H,#10H
MOV CLK,#0
SETB IT0
SETB EX0
CLR TR0
CLR ET0
MOV R2,#0
SETB TR1
SETB ET1
SETB EA
LOOP:MOV A,KEYVAL
LOOP1:
JNZ LOOP2 ;qidong
SETB TR0
SETB ET0
SJMP LOOP
LOOP2:
DEC A
JNZ LOOP3 ;zhanting
CLR TR0
CLR ET0
SJMP LOOP
LOOP3:
DEC A
JNZ LOOP ;qing 0
MOV 36H,#0
MOV 35H,#0
MOV 34H,#0
MOV 33H,#0
SJMP LOOP
EXTINT0:
PUSH ACC
INC KEYVAL
MOV A,KEYVAL
CJNE A,#3,EXT00
EXT00:
JC EXT01
MOV KEYVAL,#0
EXT01:
POP ACC
RETI
T0ISR:
PUSH ACC
CLR TR0
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
INC CLK
MOV A,CLK
CJNE A,#2,T0ISRE
MOV CLK,#0
INC 36H
MOV A,36H
CJNE A,#10,T0ISRE
MOV 36H,#0
INC 35H
MOV A,35H
CJNE A,#10,T0ISRE
MOV 35H,#0
INC 34H
MOV A,34H
CJNE A,#6,T0ISRE
MOV 34H,#0
INC 33H
MOV A,33H
CJNE A,#10,T0ISRE
MOV 33H,#0
T0ISRE:
POP ACC
RETI
T1ISR:
PUSH ACC
CLR TR1
MOV TH1,#0ECH
MOV TL1,#78H
SETB TR1
MOV DPTR,#LEDTAB
T100:
MOV R0,#DAT
MOV A,SCANLED
ADD A,R0
MOV R0,A
MOV A,SCANLED
JNZ T101
MOV P2,#01H
SETB DOT
SJMP T1DIS
T101:
DEC A
JNZ T102
MOV P2,#02H
CLR DOT
SJMP T1DIS
T102:
DEC A
JNZ T103
MOV P2,#04H
SETB DOT
SJMP T1DIS
T103:
MOV P2,#08H
CLR DOT
T1DIS:
MOV A,@R0
MOVC A,@A+DPTR
JNB DOT,T1DIS1
ORL A,#01H
T1DIS1:
CPL A
MOV P0,A
INC SCANLED
MOV A,SCANLED
CJNE A,#4,T1END
MOV SCANLED,#0
T1END:
POP ACC
RETI
LEDTAB:
DB 0FCH ;"0"
DB 60H ;"1"
DB 0DAH ;"2"
DB 0F2H ;"3"
DB 66H ;"4"
DB 0B6H ;"5"
DB 0BEH ;"6"
DB 0E0H ;"7"
DB 0FEH ;"8"
DB 0F6H ;"9"
END

作者: wc86110    时间: 2020-9-24 04:42
这些都可以通过修改数值来实现,如快慢及刷新时长
作者: IdeaMing    时间: 2020-9-24 09:07
晶振的频率需要校准
作者: 0x00000000    时间: 2020-9-24 09:58
可能需要微调定时器值。晶振的频率没办法做到很准确。
作者: 平方根    时间: 2020-9-24 12:16
单片机晶振是有频率误差的,软件运行也需时间。可以通过软件进行补差
作者: 平方根    时间: 2020-9-24 12:18
测试时间误差值,在软件中进行补差
作者: man1234567    时间: 2020-9-27 10:40
买个高精度的时钟源,大概十元左右的样子就可以,低于5元的不好说,高于十元的看你的需要。
任何时钟都会有偏差,而且随着环境温度等条件改变,高级点的时钟芯片内建了自动补偿机制相对准些。
作者: gfshao    时间: 2020-9-29 15:07
需要微调定时器值
作者: ccsyjq    时间: 2020-9-29 21:51
可以换个时钟源  这个不太行




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1