历史上的今天
返回首页

历史上的今天

今天是:2024年10月10日(星期四)

正在发生

2018年10月10日 | 51单片机定时器使用经验总结

2018-10-10 来源:eefocus

单片机定时器的使用可以说非常简单,只要掌握原理,有一点的C语言基础就行了。要点有以下几个:


1. 一定要知道英文缩写的原形,这样寄存器的名字就不用记了。


理解是最好的记忆方法。好的教材一定会给出所有英文缩写的原形。


2. 尽量用形像的方法记忆。


比如TCON和TMOD两个寄存器各位上的功能,教程一般有个图表,你就在学习中不断回忆那个图表的形像。


3. TMOD:定时器/计数器模式控制寄存器(TIMER/COUNTER MODE CONTROL REGISTER)


定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。其格式为:其中低四位定义定时器/计数器C/T0,高四位定义定时器/计数器C/T1,各位的说明:


(1)GATE——门控制。


GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1。


当INT0引脚为高电平时TR0置位,启动定时器T0;


当INT1引脚为高电平时TR1置位,启动定时器T1。


GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。


(2)C/T——功能选择位


C/T=0时为定时功能,C/T=1时为计数功能。


置位时选择计数功能,清零时选择定时功能。


(3)M0、M1——方式选择功能


由于有2位,因此有4种工作方式:


M1M0 工作方式 计数器模式 TMOD(设置定时器模式)


0 0 方式0 13位计数器 TMOD=0x00


0 1 方式1 16位计数器 TMOD=0x01


1 0 方式2 自动重装8位计数器 TMOD=0x02


1 1 方式3 T0分为2个8位独立计数器,T1为无中断重装8位计数器 TMOD=0x03


单片机定时器0设置为工作方式1为TMOD=0x01


这里我们一定要知道,TMOD的T是TIMER/COUNTER的意思,MOD是MODE的意思。至于每位上的功能,你只要记住图表,并知道每个英文缩写的原型就可以了。


在程序中用到TMOD时,先立即回忆图表,并根据缩写的单词原形理出每位的意义,如果意义不是很清楚,就查下手册,几次下来,TMOD的图表就已经在脑子里了。


8位 GATE位,本身是门的意思。


7位 C/T Counter/Timer


6位 M1 Mode 1


5位 M0 Mode 0


4. TCON: 定时器/计数器控制寄存器(TIMER/COUNTER CONTROL REGISTER)


TMOD分成2段,TCON控制更加精细,分成四段,在本文中只要用到高四段。


TF0(TF1)——计数溢出标志位,当计数器计数溢出时,该位置1。


(1)TR0(TR1)——定时器运行控制位


当TR0(TR1)=0 停止定时器/计数器工作


当TR0(TR1)=1 启动定时器/计数器工作


(2)IE0(IE1)——外中断请求标志位


当CPU采样到P3.2(P3.3)出现有效中断请求时,此位由硬件置1。在中断响应完成后转向中断服务时,再由硬件自动清0。


(3)IT0(IT1)——外中断请求信号方式控制位


当IT0(IT1)=1 脉冲方式(后沿负跳有效)


当IT0(IT1)=0 电平方式(低电平有效)此位由软件置1或清0。


(4)TF0(TF1)——计数溢出标志位


当计数器产生计数溢出时,此位由硬件置1。当转向中断服务时,再有硬件自动清0。计数溢出的标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。注意记忆方法,理解单词原形,就绝对不会把TF和TR搞混。TF的F也就是溢出Over Flow的F。TR的R就是运行Run。默认是0不运行,当然要置1才运行。


5. 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


计数器低位 = 初始值%6


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


51单片机定时器使用经验总结


推荐阅读

史海拾趣

Ethertronics公司的发展小趣事

Ethertronics公司的发展故事一:技术突破与初创期

Ethertronics公司成立于XXXX年,由一群热衷于无线通信技术创新的工程师共同创立。在创立初期,公司就瞄准了天线技术的未来发展方向,致力于研发高性能、多频段、小型化的天线产品。通过不断的技术创新和实验,Ethertronics成功开发出了一系列具有革命性的天线产品,这些产品不仅性能卓越,而且体积小巧,可以广泛应用于各种电子设备中。这些技术突破为公司赢得了业界的广泛认可,也为公司的后续发展奠定了坚实的基础。

Ethertronics公司的发展故事二:市场拓展与合作伙伴关系

随着技术的不断成熟和产品的不断完善,Ethertronics开始积极拓展市场。公司与多家知名电子设备制造商建立了长期稳定的合作伙伴关系,为其提供定制化的天线解决方案。通过与这些合作伙伴的紧密合作,Ethertronics的产品逐渐打入了主流市场,并被广泛应用于智能手机、平板电脑、笔记本电脑等各种电子设备中。这些合作伙伴的信任和支持,为公司的发展提供了强大的动力。

Ethertronics公司的发展故事三:持续创新与研发投入

作为一家以技术为核心的公司,Ethertronics始终将创新作为公司发展的核心动力。公司不断加大对研发的投入,积极引进和培养高素质的研发人才,不断推出具有竞争力的新产品。同时,公司还与多家高校和科研机构建立了紧密的合作关系,共同开展技术研究和创新。这些持续的创新和研发投入,使Ethertronics在天线技术领域始终保持领先地位。

Ethertronics公司的发展故事四:国际化战略与全球布局

随着全球市场的不断开放和竞争的加剧,Ethertronics开始实施国际化战略,积极拓展海外市场。公司在全球范围内建立了多个研发中心和销售机构,与当地的合作伙伴建立了紧密的合作关系。通过这些机构,Ethertronics能够更好地了解当地市场需求和竞争态势,为客户提供更加优质和高效的服务。同时,公司的国际化战略也为其带来了更多的商业机会和发展空间。

Ethertronics公司的发展故事五:社会责任与可持续发展

作为一家有着高度社会责任感的企业,Ethertronics始终将可持续发展作为公司发展的重要目标。公司积极倡导环保和节能的理念,致力于开发更加环保和节能的产品。同时,公司还积极参与各种公益活动和社会责任项目,为社会做出积极贡献。这些举措不仅提升了公司的品牌形象和社会声誉,也为公司的长期发展奠定了更加坚实的基础。

中微股份(Cmsemicon)公司的发展小趣事

在品牌建设方面,中微股份(Cmsemicon)同样取得了显著成果。公司注重品牌形象的塑造和传播,通过参加国内外行业展会、发布新产品、加强与客户和合作伙伴的沟通等方式,不断提升品牌知名度和美誉度。同时,公司还积极拓展市场,与全球众多知名企业建立了长期稳定的合作关系。这些努力不仅为公司带来了更多的商业机会,也为公司的长远发展奠定了坚实基础。

Free2Move公司的发展小趣事

作为一家以技术创新为核心竞争力的企业,中微股份(Cmsemicon)始终坚持以市场需求为导向,持续推动技术创新和产品升级。近年来,公司在刻蚀设备领域取得了一系列重要突破,包括成功研制出针对先进逻辑和存储器件制造中关键刻蚀工艺的高端产品等。这些技术成果不仅提升了公司的核心竞争力,也为行业的发展做出了积极贡献。

Advanced Electronic Packaging公司的发展小趣事

面对电子行业的快速发展和不断变化的市场需求,Advanced Electronic Packaging公司始终保持敏锐的洞察力和强烈的创新意识。公司不断加大研发投入,推动封装技术的持续创新。从最初的单一材料封装,到后来的多功能复合封装,再到如今的智能化封装技术,公司的每一次创新都引领着电子封装行业的发展潮流。这些创新成果不仅提升了产品的附加值,还推动了整个电子产业的升级换代。

汇科公司的发展小趣事

2010年,山东汇科电气技术有限公司在山东淄博成立,标志着汇科公司在电子行业迈出了坚实的第一步。创立之初,公司就确定了以节能环保为发展核心的战略方向。2011年,汇科与日本富士等国内外一线品牌建立了战略合作关系,成为富士一级代理及指定维修中心,这一举措为公司的技术积累和市场拓展奠定了坚实基础。

Galaxy Semi-Conductor Co Ltd公司的发展小趣事

山西飞虹激光科技有限公司于2010年在中国山西成立,并迅速在北京设立分公司,将北京作为战略重心,拓展全国市场。仅两个月后,飞虹激光的研发&生产中心便设立并投入生产,展现了公司的强大执行力和决心。2012年,飞虹激光积极参与国际展会,如慕尼黑上海光博会,展示了其F3015激光切割机、激光熔覆系统等高端产品,不仅提升了公司知名度,也彰显了其在激光技术领域的专业水平和创新能力。

问答坊 | AI 解惑

matlab第六课-图形的修饰

这个好多学问,不过你不想花哨的话,我就简单来几个最常用的了啊…

查看全部问答>

nRF2401 无线传输模块

本帖最后由 paulhyde 于 2014-9-15 03:53 编辑 包括原理图,PCB图和程序,比较全面的资料,内部资料啊!  …

查看全部问答>

整流输出推挽式变压器开关电源 开关电源原理与设计(连载28)

0.2.整流输出推挽式变压器开关电源 整流输出推挽式变压器开关电源,由于两个开关管轮流交替工作,相当于两个开关电源同时输出功率,其输出功率约等于单一开关电源输出功率的两倍。因此,推挽式变压器开关电源输出功率很大,工作效率很高,经桥式 ...…

查看全部问答>

pxa270下键盘编程问题

请问pxa270下键盘编程问题 这个模块是: 按下PXA270下4*4键盘的某个键,运行开发板一个GPRS程序模块,GPRS是用来发短信和打电话的。 请高手指点下,键盘这个如何操作,???…

查看全部问答>

江湖救急!!!请问谁有WAVECOM Q2403A的硬件资料???

江湖救急!!!请问谁有WAVECOM Q2403A的硬件电路资料?做毕业设计用,哪位大侠有的话请发给一份 huwj1986@126.com,小弟感激不尽!!!…

查看全部问答>

RasSetEntryProperties()函数问题?

函数原型 DWORD RasSetEntryProperties(   LPWSTR lpszPhoneBook,   LPWSTR szEntry,   LPRASENTRY lpbEntry,   DWORD dwEntrySize,   LPBYTE lpb,   DWORD dwSize ); ...…

查看全部问答>

通用TFT液晶驱动!!!!

我们公司开发的m600驱动模组能驱动1024*768以下不同厂家不同分辨率的TFT。需要资料的可以跟我联系。 boy_201a@163.com  13501104029 qq 781558807 张凯…

查看全部问答>

做了一块CPLD+ARM的LED显示屏控制卡,但是不会移动显示,求助!

做了一块CPLD+ARM的LED显示屏控制卡,静态显示已经OK,但是不会移动显示,求助!…

查看全部问答>

请各位大侠帮帮忙

上面是主电路图 下面是两个控制信号波形 这两个波形的周期是10us 由于仿真已经仿真过了,现在想要做实验的 请大家介绍款比较简单易用的单片机!! 谢谢 …

查看全部问答>

MDK环境下选Ulink2还是选J-LINKV6.0?

准备试用一下STM32,但不知选那种工具较利于开发,价钱不区谢谢…

查看全部问答>