微软公司宣布不再支持你正在使用的 IE浏览器,这会严重影响浏览网页,请使用微软最新的Edge浏览器
厂商专区
产品/技术
应用分类

新人必看 单片机定时器应用实例解析

2016-01-11 09:20 来源:电源网综合 编辑:柚子

对于刚开始接触单片机定时器知识学习的新人工程师来说,牢固巩固知识基础只是迈出的第一步,更重要的是要结合单片机的设计实例,灵活利用单片机定时器来完成相关的程序设计。在今天的文章中,我们将会通过一个实际案例,来为大家解析一下单片机定时器在实际应用中的一些设计步骤和技巧。

在本案例中,我们所提出的条件是利用单片机定时器定时50毫秒,使用定时器0,工作方式1模式。50毫秒一到,即点亮指示灯D1。按照这一设计要求,我们可以按照下列两个大步骤来进行单片机程序的设置。

我们要做的第一个步骤就是确定定时器0初始化程序。这一部分的设计是非常重要的,按照单片机的正常使用程序,我们可以从四个方面出发,来进行相应的设置。

第一步是要完成对TMOD的赋值设置,以此来确定T0和T1的工作方式。

在本案例中,我们已经从前文所提及的设计要求上明确了这一方案中需要使用定时器0工作方式,因此这一步的工作就简单了很多。此时,TMOD=0X01,因此设置定时器0为工作方式1。具体设置过程在一些单片机基础教程上已经讲解的非常叙述,因此在本案例的设计过程中,我们不再做过多的赘述。

在完成了对单片机定时器的对TMOD的赋值设置之后,接下来的工作就是精确计算计数初值X,并在得出相应数值后将其按照要求写入TH0、TL0,或写入TH1、TL1。在本案例中,由于晶振给出的条件为12MHz,所以我们所选取的机器周期Tcy为1ms。因此,定时器要计数50000个就是50毫秒,其换算比例为:

N=t/Tcy=50000/1=50000个

TH0=(65536-50000)/256(求模的意思)

TL0=(65536-50000)%256(求余的意思)

完成了计数初值X的计算和写入工作后,第三个步骤就是在进行单片机定时器的中断方式设置时,同时对IE赋值,开放中断。在这一案例中,我们结合设计要求,设置为当EA=1时,总中断打开;当ET0=1时,定时器0中断打开。

在完成了上面三个步骤的设置后,接下来就是本环节中的最后一个步骤,即使TR0或TR1置位,启动定时/计数器定时或计数。在这里我们设置TRO=1,启动定时器0开始计时。

在已经确定了定时器0初始化程序的前提下,接下来我们就需要完成对定时器0的中断服务程序的编写,这一部分的中断服务程序可按照下图进行编写:


图片1


在我们所编写的这一中断程序中,由于单片机是根据interrupt后的数字来确定是哪个定时器产生的中断,因外部中断序号是0,因此我们这里的定时器0中断序号是1。这里需要注意,再次装入初值是为了防止下次计数出错,这一步骤是不可随意省略的。

以上就是本文针对一个单片机定时器应用实例所进行的解读和分析,希望通过本文的介绍,对各位新人工程师的设计工作提供一定的帮助。

声明:本内容为作者独立观点,不代表电源网。本网站原创内容,如需转载,请注明出处;本网站转载的内容(文章、图片、视频)等资料版权归原作者所有。如我们采用了您不宜公开的文章或图片,未能及时和您确认,避免给双方造成不必要的经济损失,请电邮联系我们,以便迅速采取适当处理措施;欢迎投稿,邮箱∶editor@netbroad.com。

微信关注
技术专题 更多>>
研发工程师的工具箱
智慧生活 创新未来

头条推荐

电子行业原创技术内容推荐
客服热线
服务时间:周一至周五9:00-18:00
微信关注
获取一手干货分享
免费技术研讨会
editor@netbroad.com
400-003-2006