找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

汇编用单片机定时器0产生1s时间不准

查看数: 4404 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2019-7-28 15:44

正文摘要:

想做一个60秒倒计时的单片机程序,晶振为11.0592,在用定时器0产生1S的时间时发现1s的时间产生不准,设定的时间为每50ms产生一次中断,每20次秒减一,实际测试时,每20次秒减一大概为实际时间的7秒左右,每30次减一 ...

回复

ID:267330 发表于 2019-7-30 15:03
汇编定时应该准确的啊定时器进入中断之后并没有重新启动定时器,中断返回之前要先启动定时器
ID:307020 发表于 2019-7-30 11:17
必然的,11.059本身就不是整数,等分多少也成不了整数,准不了;换成整数的晶振试试是个好办法。其它的误差先不管,至少能分出整数。
ID:123289 发表于 2019-7-29 08:49
你用的是硬延时,标准的51是很容易计算准确的。但果是改良51就麻烦了,它采用流水取指结构,取值会提升1-12倍,你必须弄清楚执行的指令所占用的时钟周期,但同样一条指令可能执行周期会不一样(要看这条指令能不能流水)。
估计你不能明白以上说明,查看一下相关流水取指架构,或CALL我。
ID:401564 发表于 2019-7-29 08:39
定时器进入中断之后并没有重新启动定时器,中断返回之前要先启动定时器
晶振最好是用12MHZ的,或者是用片上的24MHZ,11.0592MHZ的时间不好计算
ID:100312 发表于 2019-7-28 22:45
(65536-46080)/256

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

Powered by 单片机教程网

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