找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2564|回复: 8
打印 上一主题 下一主题
收起左侧

单片机一分钟定时 秒表 但是时间有点偏快 各位大佬可以告诉是什么问题吗

[复制链接]
跳转到指定楼层
楼主
ID:821845 发表于 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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:96682 发表于 2020-9-24 04:42 来自手机 | 只看该作者
这些都可以通过修改数值来实现,如快慢及刷新时长
回复

使用道具 举报

板凳
ID:276663 发表于 2020-9-24 09:07 | 只看该作者
晶振的频率需要校准
回复

使用道具 举报

地板
ID:691028 发表于 2020-9-24 09:58 | 只看该作者
可能需要微调定时器值。晶振的频率没办法做到很准确。
回复

使用道具 举报

5#
ID:822760 发表于 2020-9-24 12:16 | 只看该作者
单片机晶振是有频率误差的,软件运行也需时间。可以通过软件进行补差
回复

使用道具 举报

6#
ID:822760 发表于 2020-9-24 12:18 | 只看该作者
测试时间误差值,在软件中进行补差
回复

使用道具 举报

7#
ID:584814 发表于 2020-9-27 10:40 | 只看该作者
买个高精度的时钟源,大概十元左右的样子就可以,低于5元的不好说,高于十元的看你的需要。
任何时钟都会有偏差,而且随着环境温度等条件改变,高级点的时钟芯片内建了自动补偿机制相对准些。
回复

使用道具 举报

8#
ID:106821 发表于 2020-9-29 15:07 | 只看该作者
需要微调定时器值
回复

使用道具 举报

9#
ID:807522 发表于 2020-9-29 21:51 | 只看该作者
可以换个时钟源  这个不太行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表