找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 16574|回复: 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.

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

使用道具 举报

沙发
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 单片机教程网

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