在写一篇定时器的文章

STC单片机STC89C52RC定时器延时时间的计算

延时时间要根据晶振频率计算,不同板子可能有所不同。

时钟周期:
1/时钟源,在我现在这块板子上,晶振频率是11.0592M,也就是时钟周期是 1/11059200秒

机器周期:
一般51单片机是12个时钟周期,我的板子也就是 12/11059200秒

单次定时最长时间:
如果是16位的计数器,16位最大值是65535,共可计数65536次。基本的常数一定要记住,还要记住8位最大值是255,共可计数256次,还要记住8位上每位代表的数值。
12 * 65536/11059200 = 0.0711 s,也就是,71 ms内的定时可以单次定时就完成。如果定时时间超过71 ms,就要循环了。

一次定时需要几次机器周期:
计算公式:定时秒数/机器周期
比如我要定时1秒, 1/(12/11059200)= 921600次,16位计数器最大可计数65536次,921600次早就益出了。我们可以每次定时10 ms,循环100次就可以定时1秒了,1 s缩小100百倍就是10 ms, 也就是每次需要计数9216次。

确实计数器初始值:
定时10 ms时,如果计数器从0开始计数,我们就不知道什么时候到了9216次。所以应该计数了9216次,16位计数器最多计数95536次,然后就溢出,一溢出TCON的TF位就会置1,我们只要经常检测TF位就可以知道什么时候完成10ms的定时了。
计算公式:计数器初始值=最大计数次数 - 需要计数次数
如果定时10 ms,计数器的初始值就是 65536 - 9216

计算计数器的高位和低位:
16位的计数器,也就是两个8位组成,8位的最大计数次数是256。所以:
计数器高位 = 初始值/256
计数器低位 = 初始值%256

STC89C52RC单片机定时器示例代码:

#include <reg52.h>

//如果你的单片机没用74hc138扩展IO口,下面代码可略
sbit enableG1 = P1^3;
sbit enableG2 = P1^4;
sbit selectC  = P1^2;
sbit selectB  = P1^1;
sbit selectA  = P1^0;
void hc138()
{
         enableG1 = 1;
         enableG2 = 0;
         selectC  = 1;
         selectB  = 1;
         selectA  = 0;
}

typedef unsigned char uint8;
typedef unsigned int uint16;
// byhttp://hi.baidu.com/tuenhai/
/**
    1ms需要的机器周期 = 0.001/(12/11059200) = 921.6    
    要让led灯以7.83hz闪动, 周期是 1000 / 7.83 = 127.713 ms, 也就是每64 ms改变亮灭状态
**/
void main(void)
{    
    uint16 counter;

hc138();

TMOD = 0X01;
    TH0  = (65536 - 922) / 256;
    TL0  = (65536 - 922) % 256;
    TR0  =1;

while(1)
    {
         if(TF0 == 1)
        {
            TF0 = 0;
            TH0  = (65536 - 922) / 256;
            TL0  = (65536 - 922) % 256;
            counter++;
        }

if(counter == 64)
        {
             counter = 0;
            P0 = ~P0;
        }
    }
}

在写一篇定时器的文章

时间: 2024-10-27 19:10:37

在写一篇定时器的文章的相关文章

如何写一篇优质的原创文章

对于一个网站来说,网站的内容是其重中之重,而网站的原创优质内容就是一个网站的灵魂.网站就好比一个人,每个人都是独一无二的,世界上没有完全相同的两个人,也就没有完全相同的两个灵魂. 网站要有灵魂,要有自己优质的东西,要有自己的主见.在显示生活中,有很多成功的人,他们的成功引来很多人的模仿,希望他们也能一样的成功.有的人虽然模仿很想了,但是却没有模仿而成功过.人都是在模仿学习中成长,但是在学习模仿的过程中他们加入了自己的思想,而这成为他们成功的关键.而这些思想,是他人无法抄袭和复制的的.同样,一个网

NodeJS写个爬虫,把文章放到kindle中阅读

这两天看了好几篇不错的文章,有的时候想把好的文章 down 下来放到 kindle 上看,便写了个爬虫脚本,因为最近都在搞 node,所以就很自然的选择 node 来爬咯- 本文地址:http://www.cnblogs.com/hustskyking/p/spider-with-node.html,转载请注明源地址. 所谓爬虫,可以简单理解为利用程序操作文件,只是这些文件不在本地,需要我们拉取过来. 一. 爬虫代码解析 1. 拿到目标页码源码 Node 提供了很多接口来获取远程地址代码,就拿

【强烈强烈推荐】《ORACLE PL/SQL编程详解》全原创(共八篇)--系列文章导航

原文:[强烈强烈推荐]<ORACLE PL/SQL编程详解>全原创(共八篇)--系列文章导航 <ORACLE PL/SQL编程详解> 系列文章目录导航 ——通过知识共享树立个人品牌. 本是成书的,但后来做其他事了,就无偿的贡献出来,被读者夸其目前为止最“实在.经典”的写ORACLE PL/SQL编程的文章-! 觉得对你有帮助,请留言与猛点推荐,谢谢. [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下) 本篇主要内容如下:第一章 PL/S

100篇大数据文章[转]

摘要:PayPal高级工程总监Anil Madan写了篇大数据的文章,一共有100篇大数据的论文,涵盖大数据技术栈,全部读懂你将会是大数据的顶级高手. 开源(Open Source)用之于大数据技术,其作用有二:一方面,在大数据技术变革之路上,开源在众人之力和众人之智推动下,摧枯拉朽,吐故纳新,扮演着非常重要的推动作用.另一方面,开源也给大数据技术构建了一个异常复杂的生态系统.每一天,都有一大堆"新"框架."新"类库或"新"工具,犹如雨后春笋般涌

【持续更新】是该好好写一篇完整的产品体验报告了

第一次完整地写一篇产品体验报告,未完待续~~有些视角或观点不免局限或欠缺,望各位多多指正! ONE(一个)Android端体验报告 体验设备:OPPO N5117 体验产品:ONE(一个) 软件版本:2.5 设备操作系统:Android4.3 网络:WiFi 体验人:Faye 体验时间:2015.07.29- 一.前言 1. 产品简介 在这个有着无穷多碎片的互联网世界里,用户每天面对的信息越来越丰富,然后用户每日并没有太多时间或精力去了解甚至消化所有的东西,ONE每日精选一张图.一篇文章.一个问

如何优雅的写一篇安利文-以Sugar ORM为例

前言 我最近喜欢把写的十分优美的技术文章叫做安利文.首先,文章必须是原创而非软广:其次,阅读之后不仅能快速吸纳技术要点并入门开发,还能感同身受的体会作者热情洋溢的赞美和急于分享心得体验的心情,让人感觉相见恨晚,醍醐灌顶. 安利文基于技术文章但又高于技术文章,同是经验总结,但却因为作者认真的揣摩每一个标点.断句而变得优雅.一篇满是主观感受的文章却不嚼之乏味,作者用心的指出每一个需要注意的技术亮点在文字中如蛟龙戏水,让阅读者大呼过瘾.因此,我觉得能原创分享一篇技术文章精神已经难能可贵,但若能锦上添花

零知识证明,中间人攻击,盲签名:原理和应用——三篇密码学科普文章

Cocoa:转自科学松鼠会.作者奥卡姆剃刀,貌似是松鼠会的新人,大学教授,写的东西还是很不错的哈- 文章太长,直接附地址了: 盲签名(维基):http://songshuhui.net/archives/37439.html 零知识证明(维基):http://songshuhui.net/archives/36968.html 中间人攻击(维基):http://songshuhui.net/archives/35810.html 零知识证明,中间人攻击,盲签名:原理和应用--三篇密码学科普文章

[程序猿感悟] [悟] 两篇不错的文章 (转载自 stay4it )

[程序猿感悟] [悟]你所憧憬的大神本质   这是一个最好的时代,也是一个最坏的时代:这是明智的时代,这是愚昧的时代:这是信任的纪元,这是怀疑的纪元:这是光明的季节,这是黑暗的季节:这是希望的春日,这是失望的冬日:我们面前应有尽有,我们面前一无所有:我们都将直上天堂,我们都将直下地狱...狄更斯 原 谅我一直不写技术贴,老是B叨叨的来写水贴,但是对于Android我实在是没什么好写的了,我不做framework,不做游戏,就app层那么点东 西,实在是没必要拿粗来翻来覆去的说,网上能搜到的一大把

如何写一篇论文,&lt;一种低耗能的数据融合隐私保护算法ESPART&gt; (计算机学报2011-5,王安琪)

这是我在研究生阶段花了一个月的时间搞出的一篇论文,纯构思和写论文花了才一个月,发稿加改稿.等发表的时间可远不止,记得2010年11月开始要写了,2010年12月写完,2010年底投的稿,2011年初数次改稿,终于5月份出版. 2010年11月份,导师说关于无线传感器网络有很多可以研究的课题,其中的数据融合隐私保护便是以个方向,让我好好研究.自此我便埋头在论文的工作上了,之前的研究生生活就是在图书馆里泡着,看各种看得懂的看不懂的技术.社会科学书籍,现在回想起来,之前的看书生活对这篇论文的创作也是有