找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 16301|回复: 2
收起左侧

51单片机定时器初值怎么精确计算?

[复制链接]
ID:5501 发表于 2016-4-2 10:47 | 显示全部楼层 |阅读模式
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.

回复

使用道具 举报

ID:684655 发表于 2020-1-10 15:05 | 显示全部楼层
大哥,如果要把时间调一秒,或者几分钟,要怎样来?
回复

使用道具 举报

ID:456690 发表于 2020-1-11 19:51 来自手机 | 显示全部楼层
xiao2003 发表于 2020-1-10 15:05
大哥,如果要把时间调一秒,或者几分钟,要怎样来?

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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