标题: 51单片机定时器初值怎么精确计算? [打印本页]

作者: shgdd520com    时间: 2016-4-2 10:47
标题: 51单片机定时器初值怎么精确计算?
void main(void)
{
   s1=1;
   TMOD=0x01;                //使用定时器T0的模式1
   TH0=(65536-46083)/256;    //定时器T0的高8位设置初值
   TL0=(65536-46083)%256;    //定时器T0的低8位设置初值

函数功能:定时器T0的中断服务函数
********************************************************/
void Time0(void ) interrupt 1 using 0 //定时器T0的中断编号为1,使用第1组工作寄存器
  {
     count++;  //每产生1次中断,中断累计次数加1
                 if(count==20)  //如果中断次数计满20次
                   count=0;  //中断累计次数清0
                   s++;      //秒加1       
网络上阅读一段程序,定时器初值 46083 是怎么计算出来的? 一般我们如用 AT892051的话 定时50MS 就是  TH0=(65536-50000)/256;  
猜想应该是使用的12M晶体 ,20次为1S.


作者: xiao2003    时间: 2020-1-10 15:05
大哥,如果要把时间调一秒,或者几分钟,要怎样来?
作者: baidi77    时间: 2020-1-11 19:51
xiao2003 发表于 2020-1-10 15:05
大哥,如果要把时间调一秒,或者几分钟,要怎样来?

秒s++60次=一分钟,自己定义一个变量分钟m.




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