资料介绍
本连载主要介绍为了应用单片机而无法避开的必需的外设功能。本连载中,将以搭载了瑞萨电子的单片机--RX63N的电路板“GR-SAKURA”为例进行说明,请你也实际操作试试看!
一手包办有关时间和时刻的处理!
在单片机中,不仅频繁地使用“○月○日○点○分”这种时刻显示,显示过去的时间和一定的周期这种形式也被频繁地使用。例如,“该程序从运行开始过去了多少时间?”、“每秒输送128次信号”等等。另外,还经常被用于“等待指定的时间”、“经过指定的时间后将转移到下一个处理”这样的情况。对这些与时间和时刻有关进行处理的外设功能就是定时器(图1)。
图1:定时器就是进行与时间、时刻有关的处理
我们也可以不使用外设功能(硬件)的定时器,而是通过软件来计算时间。下面通过图2来说明使用软件来定时的示例,图中假设循环(重复)部分的处理需要费时1μs(微秒:100万分之1秒)。由此可以计算出该循环部分重复1000次需要花费1ms(毫秒:千分之1秒),重复100万次则需费时1秒。即:通过“等待经过循环处理所指定的时间”来计算时间。但是,CPU将会集中进行时间计算的处理而无法进行其他处理。而且,只能计算一个周期的时间。而现实当中,单片机需要对应0.1秒和1/1024秒等各种周期的时间。
另外,CPU的计时器频率(驱动速度)也将对软件产生影响。如果将100MHz驱动的CPU改为50MHz,那么循环1次所需的时间将变为原来的两倍。因此,需要对计算时间的软件进行修正。如上所述,由于在管理上既花时间又容易出错,所以要极力避免通过软件来计算时间。
图2:通过软件定时的定时器示例
稍微介绍一下中断的内容……
下面,我们简单介绍一下和定时器不可分割的技术——“中断功能”。单片机中的“中断功能”是指某个程序在执行过程中,因某种原因而发出“开始进行其他处理”的请求。由于可以使用中断功能,所以可使CPU不集中进行一个处理。
让我们想象一下日常生活中用到“中断功能”的情景,当我们把热水倒入方便面盒中后,如果我们在3分钟内一直盯着时钟看,那么这段时间内我们就不能做其它事情。但如果用厨房定时器设定3分钟的时间,在厨房定时器的警报响起之前我们便可以去做其它事情。在这个例子中,“一直盯着时钟看”就相当于前一节中所介绍的“等待经过循环处理所指定的时间”,所以在处理结束之前不能去做其它事情。同时,厨房定时器的警报就相当于中断功能。在中断发生前还可以去做其它事情。
单片机的外设功能中有各种各样的定时器,这些定时器在经过指定的时间或处理结束时向CPU发送中断信号。不仅是定时器,很多外设功能都会在“产生变化”、“处理开始/结束”时将中断信息传送给CPU。所以,CPU在中断功能发生前还可以继续做其它工作,因此可提高作业效率。关于中断功能的详细内容,将在本系列第4期的《外部中断功能IRQ》中做详细介绍。本期中,我们先事先了解一下“从外设功能以中断的形式向CPU传送信息”的内容。
各式各样的定时器中,还有“看门狗定时器”!
在单片机的外设功能中,最贴心的定时器是计算到指定时间的定时器和每隔一段时间便发生中断的定时器。另外,在瑞萨电子的RX63N单片机中,搭载了为控制伺服电动机而产生脉宽调制解调(PWM)信号的定时器、计算输入信号间隔的定时器、显示现在时刻的RTC(实时时钟)等各种各样的定时器。
在定时器中,最具特色的是WDT(看门狗定时器)。其名字Watch Dog Time中的Watch dog意思为“看门狗”,它的工作就是监视程序是否出现失控。由WDT监视的程序通过事先将设定的值写入WDT后启动。WDT每隔一定时间便减掉写入的值,当程序正常运行时,处理结束前会对WDT清零再结束。但是,如果程序失控(进入意料之外的重复状态且无法停止)时,写入WDT的值将小于0(称为下溢),因此向CPU通知程序出现了失控。在不允许睡眠的重要系统中,单片机中搭载的“看门狗定时器”―WDT发挥了极其重要的作用。
轻松尝试使用定时器
虽然说:“我们就通过程序来实际使用定时器……”,但是实际上,要想熟练运用定时器,必须先理解单片机的操作步骤。而且,不仅需要了解通过软件进行操作的步骤,还需理解单片机的硬件(结构)以及所使用的零部件的规格等。
因此,需要帮助时请使用“数据库”。对于搭载了RX63N单片机的GR-SAKURA电路板,我们准备了几个与时间和时刻有关的数据库(参照以下链接)。
(仅英文版)
在这个程序中,要让GR-SAKURA上的LED在一定周期内发光。虽然仅是很简单的操作,但是要想让LED在正确的周期内发光就需要使用定时器。在上述樱花程序库的“时间”选项内,有计算经过时间的数据库,所以我们就使用它。
程序如图3所示。第14行的millis函数以从程序开始时经过的时间ms(毫秒:千分之一秒)为单位送回,没有参数。使用该函数,通过获取和最初的测定(第14行)之间的差距来取得1秒后、2秒后的结果。用while语言生成循环,从a的值等待1秒或2秒(第15行、第19行)。于是,1秒后LED0(GR-Sakura电路板的D1)亮灯,2秒后灭灯。灭灯后结束loop函数,但是该操作会再次反复继续执行。另外,millis函数没有符号,将返回long型的整数。
图3:使用定时器功能使LED亮灯的程序。此例中,以1秒钟为周期闪烁。
※//~是用于进行评价,对程序的执行不产生影响
将程序输入Web编译器,再将编译完成后的二进制文件传送给GR-SAKURA。传送结束后,4个LED灯将暂时熄灭后再开始执行,LED0(GR-Sakura电路板的D1)开始闪烁。
本期我们讲解了必要的外设功能之一“定时器”。有关时间和时刻的处理,在各种场合都需要。请大家借此机会实际操作各种数据库。
但是,文中的“毎秒128次”和“1/1024秒”这些数字突然冒出来,是否让你吃了一惊呢?128是2的7次方,1024是2的10次方。RTC中具有每1/128秒产生一次中断的功能……这是在单片机的世界中经常看到的数字。
(mbbeetchina)
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 使用单片机实现定时器的使用C语言程序免费下载 12次下载
- 使用单片机实现定时器控制播放生日快乐歌的仿真设计实例资料合集 4次下载
- 使用51单片机实现定时器控制单灯闪烁的仿真文件免费下载 10次下载
- 使用单片机实现按键控制定时器选播多段音乐的程序和仿真资料免费下载 16次下载
- 使用单片机实现定时器的程序免费下载 6次下载
- 51单片机通过定时器0实现硬件延时的代码免费下载
- 使用单片机实现定时器的程序代码免费下载
- 单片机定时器的程序免费下载 28次下载
- 使用51单片机的定时器实现LED闪烁的程序免费下载
- 使用555定时器和单片机实现定时功能的应用实例程序和电路图免费下载
- 使用单片机的中断及定时器实现时钟功能的程序和资料免费下载
- 如何使用51单片机定时器实现LED闪烁程序和资料免费下载
- 使用51单片机定时器实现LED灯闪烁的应用源代码免费下载
- 单片机定时器的学习资料汇总免费下载
- 单片机定时器控制循环彩灯的程序资料免费下载 11次下载
- 单片机定时器的用法 1147次阅读
- 51单片机定时器和中断的介绍 2030次阅读
- 基于单片机的定时器的设计方法 1w次阅读
- 单片机定时器赋初值的方法解析 7251次阅读
- 51单片机计数器和定时器的本质区别及应用方法 1.4w次阅读
- 单片机学习心得1:89c51单片机定时器应用! 9516次阅读
- 如何基于51单片机利用定时器的实现PWM的方法详细概述 3.3w次阅读
- MSP430单片机定时器A结构及其应用范例 3928次阅读
- 基于555定时器和单片机的RC测量系统设计 4843次阅读
- 什么是单片机仿真器_单片机仿真器有什么用_单片机仿真器怎么用 1.6w次阅读
- 51单片机定时器工作原理 9.3w次阅读
- 详细剖析单片机定时器的寄存器 1w次阅读
- 单片机定时器周期计算公式 4w次阅读
- 单片机中各种周期的关系与定时器原理 1w次阅读
- 单片机C语言程序设计之定时器控制单只LED 3826次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多