找回密码
 立即注册

QQ登录

只需一步,快速开始

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

我为网友解答 ”51单片机T0计数溢出中断对计时精度影响“问题.

[复制链接]
跳转到指定楼层
楼主
ID:858964 发表于 2020-12-22 16:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Kxuan163 于 2020-12-22 17:00 编辑

【问题】:
51单片机T0计数溢出中断子程序如下:
T0_INT:
     ...
     MOV   TL0,  #1FH   
     MOV   TH0,  #FCH   
     ...
     RETI
问:一次计数溢出中断后, 计数溢出中断子程序重装计数初值会影响计时精度吗?
.
【解答】:
会影响计数精度。影响计数精度有如下两个因数:
1.执行重装TH0、TL0初值两条指令需耗用2个机器周期;
2.等待中断响应须3~6个机器周期,
若还有其它中断源同时申请中断或T0中断未设置为最高优先级,须等待更多个机器周期;
.
解决办法:
为了提高计时精度,中断处理子程序可采取修正重装时间常数的措施,
以下是T0工作于方式1的修正重装时间常数中断处理子示例程序:
T0_INT:
        CLR  EA
        CLR  TR0
        MOV  A,#1FH  ;; 原定初装值低8位
        ADD  A,TL0   ;; A←(原定初装值低8位+TL0实时值)
        MOV  TL0,A   ;; 重装修正后的初装值低8位
        MOV  A,#FCH  ;; 原定初装值高8位
        ADDC A,TH0   ;; A←(进位标志+原定初装值高8位+TH0实时值)
        MOV  TH0,A   ;; 重装修正后的初装值高8位
        SETB TR0
       RETI
;; 若等待中断响应是时间长,重新赋值时TH0已自动计数至溢出、进位标志为1, 所以用带进位加法ADDC指令来修正重装值高8位。  





评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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