发明名称 一种51单片机高精度计时方法
摘要 本发明涉及一种51单片机高精度计时方法,采用了连续读取定时器和适当屏蔽定时器的方法,其中:一、连续两次读取定时器的数值,解决了定时器低8位溢出进位造成的计时误差;二、适当屏蔽定时器并配合读取定时器溢出标志位,解决了定时器低16位溢出进位造成的计时误差,实现了51单片机的高精度计时,且本发明方法仅需要51单片中的定时器即可实现,不需要外围复杂的计时电路,具有相对较低的成本,且方法简单,易于实现,具有较强的实用性。
申请公布号 CN103605279A 申请公布日期 2014.02.26
申请号 CN201310487916.X 申请日期 2013.10.17
申请人 北京控制工程研究所 发明人 牛和明;陈朝晖;刘端;杨俊春;王晶;李昊然;刘建军
分类号 G04F10/00(2006.01)I 主分类号 G04F10/00(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 范晓毅
主权项 一种51单片机高精度计时方法,其特征在于:包括如下步骤:(1)、屏蔽51单片机的定时器0;(2)、读取定时器0中的低8位和高8位数值,得到定时器0中寄存器的值Count1,第二次读取定时器0中的低8位和高8位数值,得到定时器0中寄存器的值Count2;(3)、判断当前定时器0是否有溢出,如果没有溢出,进入步骤(4),如果有溢出,重复步骤(2)后直接进入步骤(4);(4)、如果Count1<Count2,则Count1没有发生反转,进入步骤(5);如果Count1≥Count2,则Count1发生了反转,将Count1减去低8位的最大值,再进入步骤(5);(5)、如果在步骤(3)时没有发生定时器0溢出,则最终51单片机的时间计数=中断累加次数×低16位的最大值+Count1;如果在步骤(3)时发生定时器0溢出,则最终51单片机的时间计数=(中断累加次数+1)×低16位的最大值+Count1;(6)、允许响应定时器0中断,结束计时。
地址 100080 北京市海淀区北京2729信箱
您可能感兴趣的专利