利用单片机的定时器6.1 前言这一章包含一个描述的定时器系统微控制器,包括通用定时器,该定时器,和看门狗。
6.2 总体结构和功能,计时器系统时间是必不可少的操作微控制器系统,可以生成信号的精确确定的期限,或外部事件计数。
这原因,定时器子系统,是目前所有的微控制器的实现,和涵盖的范围广泛的功能包括:•生成精确的时间间隔•测量时间的外部事件•计数外部事件。
多数微控制器提供专用定时器,或使用通用计时器实现以下功能:•实时时钟•产生的脉冲宽度调制(脉宽调制)信号•看门狗检测程序失控情况。
虽然有很大的差异在不同的实现通用定时器在不同的微控制器,有许多相似在操作的原则和结构的定时器子系统。
图6.1显示了一个定时器系统总体框图,说明原则实施最单片机定时器。
核心要素的定时器子系统是一个计数器,tcnt(8或16位在长度),这可能是读或写的软件(有时)。
时钟tcnt 得到从系统时钟,除以一个可编程分频器,或外部时钟应用到一个单片机引脚。
软件控制的计时器68使用6单片机定时器。
采用控制寄存器晶体管和信息方面的各种事件相关的计时器,可以读取状态寄存器tflg。
几种工作模式是可能的计时器:定时器溢出。
在这种模式下,如果感兴趣的是当tcnt计数器达到它的最大数量和返回到零在下一个时钟脉冲。
溢出信号这标志着这一事件是应用于中断控制逻辑(Ⅱ),这可能产生一个中断请求处理器。
之间的时间间隔连续溢出控制通过修改输入时钟频率应用到tcnt,或以书面tcnt 一初始值的计算。
•输入捕获。
在这种经营模式,内容tcnt此刻的发生外部事件,定义边缘的一个输入信号,转移在捕获寄存器(民事),和一个中断请求可能会生成。
由比较连续值捕获率,有可能确定之间的时间间隔的外部事件。
•输出比较。
在这种经营模式,内容tcnt不断比较了硬件的内容的光学字符识别(比较寄存器的输出)指数字比较器的比较。
当一个寄存器的内容比赛中,一个中断请求可能会生成。
或者,可以比较匹配通过编程改变现状的一个或多个输出线。
•外部事件计数器。
在这种经营模式,输入tcnt连接一个单片机输入线,和tcnt计数脉冲与外部事件。
该软件是了解记录一些外部通过阅读tcnt事件。
6.3 特点鲜明的通用定时器HC 1116位tcnt计数器HC 11可以依靠内部时钟,只有向上的。
它可以读取软件,但不能被清除或书面。
分频器是一个可编程的4位计数器,它将系统时钟的1,4,8,或16。
有四个16位输出比较寄存器(光学字符识别),称为toc1,toc2,toc3,和toc4,三输入捕获寄存器(民事),称为tic1,tic2,和tic3,和一个额外的寄存器,可通过软件配置为五分之一光学字符识别寄存器,笔名TOC五,或作为四分之一个输入捕获寄存器tic4。
各种定时器功能相关的输入/输出线端口,如图所示在表6.1。
表6.1 替代功能的输入/输出线端口1控制和状态寄存器的HC 11定时器虽然反tcnt,和分频器是独一无二的,在场的八民事/光学字符识别寄存器,各有不同的状态标志,相关的输入/输出线,随着可能产生不同的中断请求,使得HC 11定时器作为八种不同的定时器。
因此,一些控制和状态寄存器相关与计时器是高于平均人数登记的外围接口。
清晰的介绍,寄存器定时器系统的描述连接的基本运营模式计时器。
6.3.1.1定时器溢出操作模式分频器是由位催化剂:pr0注册tmsk2(定时器中断2位掩码寄存器,[0]),其中选择分率的系统时钟来tcnt获得时钟。
转型后的反tcnt ffff美元到0000美元,一个标志设置硬件。
这是飞行时间(时间溢出标志位的状态寄存器tflg2)(7)。
如果相关的局部中断遮罩,蒲台(时间溢出中断允许)从注册tmsk2(7位),是集,然后产生中断请求。
请注意,中断服务程序必须清楚地写在相应的飞行时间1位置的tflg2寄存器。
70使用6单片机定时器6.3.1.2输入捕获操作模式为了使用的输入捕捉功能,第一步是配置相应的行门作为输入,通过清除相应位ddra。
为IC 4,然后IC 4/ oc5控制位在各项登记必须设置为1。
这位被清零,复位,从而oc5启用。
下一步是选择边缘的输入信号触发捕获。
为四个捕捉输入,2位被分配在tctl2寄存器(定时器控制寄存器2),称为edgxb和edgxa。
结构tctl2如下:影响[ edgxb:edgxa ]描述表6.2。
表6.2。
选择捕捉边缘输入捕捉发生的一个边缘与选定的极性的输入线与输入捕捉定时器设置一个标志,在tflg1寄存器(定时器中断标志1)登记。
此标志可由软件,或可能产生一个中断,如果输入捕获中断启用通过设置本地掩码位在tmsk1寄存器(定时器中断屏蔽寄存器1)。
结构的tflg1和tmsk1寄存器如下:icxf是标志,表示事件的icx输入,而ocxf报告比赛的内容和ocxr tcnt。
icxi和ocxi的地方6.3.1.3 个特点鲜明的通用定时器HC 1171中断的面具,当设置为1的软件,允许icxf和ocxf生成中断。
该icxf和ocxf标志被清除的写作1到相应的位置,该tflg1寄存器。
中断服务例程必须明确标志,生成中断,否则一个新的产生中断后,执行的它(从中断返回指令)。
软件初始化序列输出比较计时是非常相似的所需的输入捕捉定时器。
它开始通过配置相关的线港口作为输出线通过写1到相应的位ddra。
该软件必须指定应采取的行动,在比较匹配。
本注册tctl1(定时器控制寄存器1)为这个目的服务。
omxandolxare,分别,输出方式和输出电平控制位对文件输出。
这些影响是在表6.3。
表6.3。
影响的控制位tctl1事件标志相关的控件和中断屏蔽位设在寄存器tflg1和tmsk1,前一节中描述。
增加灵活性的HC 11定时器,该定时器提供了toc1有能力同时控制多个门线,该定时器,即肝门–[37]。
另外2个寄存器提供了,为此,称为oc1m(oc1面具)和oc1d(oc1数据)。
只有五位是实施这些寄存器,如下:•oc1m表明行门线的影响下oc1比赛,和oc1d包含的数据被写入到门。
oc1mx =1–线的门会写在下oc1d价值比较匹配。
oc1mx =0–线的门不受oc1。
请注意,tocx中断可能被使用而不影响相关产出门(OM X =0,olx =0),只有产生中断在精确的时间间隔。
6.3.1.4计数外部事件主定时器HC 11不能指望外部时钟。
解决问题计算外部事件,一个额外的8位计数器,称为脉冲累加器,已提供。
这是一个补充,简化定时器,没有输入捕获和输出比较寄存器,但有能力或者外部脉冲计数,应用于一个输入引脚,或一个内部时钟。
本线要用作脉冲累加器输入(岛)的外部时钟。
当配置计数的内部时钟,这个时钟有一个固定频率/64,而排线用于启用/禁用计数。
控制寄存器定时器是主动,具有以下结构:•oc1m表明行门线的影响下oc1比赛,•攀–脉冲累加器定时器使能。
写作1在这个位置使整个子系统。
•pamod–脉冲累加器模式pamod =0。
脉冲累加器作为事件计数器,计数脉冲适用于排输入。
pamod =1。
脉冲累加器经营门控时间积累模式,指望一个内部时钟除以系统时钟的64。
什么时候pamod =1,计数的内部时钟脉冲是由逻辑电平在排气线。
pamod配合位pedge,如图所示表6.4。
•pedge–脉冲累加器边缘控制。
在事件计数器的操作模式(pamod =0),这一点选择输入信号的优势,增量计数器。
在门控时间积累模式(pamod =1),pedge选择信号水平的排输入,抑制计数的内部时钟。
表6.4。
脉冲累加器操作模式另一位主动提及其他子系统,或是未实现的。
有一个状态位与脉冲累加器定时器接口,位于tflg2:•paovf–脉冲累加器溢出标志。
这是自动设置时霸溢出$法郎至00美元,不管时钟(内部或外部)选择计数。
paovf清除写作1在相应的位置(5位)该tflg2。
•沛富基金–脉冲累加器输入边旗。
这一点是自动设置在边缘检测(选定的pedge)的信号输入的排。
它是清除写作1在相应的条件(4)的tflg2。
这些标志有关联的中断屏蔽位在tmsk2寄存器。
什么时候paovfi =1(5位从tmsk2),设置paovf产生中断。
同样的,当paii =1(4位从tmsk2),产生一个中断的发生所选的输入边缘排。
6.3.2练习就使用通用定时器HC 11取6.1写的初始化例程,使中断检测上升边缘的一个信号应用于pa0。
解决方案pa0是与输入捕捉定时器电路(见表6.1)。
初始化序列必须配置此点门作为输入,连同以下额外的操作:•选择信号的上升沿对pa0,写位edg3b edg3a [:]在tctl2与[0 : 1]。
•使tic3中断设置1当地面具ic3i(IC 3中断使能)在tmsk1这是程序的顺序执行这些操作:知道外部振荡器频率为8兆赫,写初始化序列和中断程序生成一个时钟pa5500。
解决方案pa5是与toc3。
初始化序列必须配置pa5作为输出,确定要执行的动作的oc3输出比较匹配,通过写作[ OM 3:ol3]位tctl1,使toc3中断。
中断服务例程必须清除中断标志,并准备下一个中断写作一个新的价值toc3。
一个8-mhz外部频率的振荡器内部电子时钟频率为2兆赫(0.5微秒/期)。
自pr0] [催化剂:位在tmsk2清除复位,分频器的配置分割1。
输出频率为500赫兹,对应于一个时期2毫秒,即4000期的电子时钟。
中断例程必须添加常数4000的当前值寄存器toc3,写toc3寄存器其结果。
因此,下一刻,当tcnt匹配的内容toc3在4000个时钟周期,这相当于2毫秒。
输出线相关的toc3必须在每一个程序切换比较匹配,写控制位[ OM 3:ol3]与[0 : 1]在tctl1。
这里是起始序列符合这些要求:和中断服务例程是toc3:取6.3写的初始化序列脉冲累加器定时器,使之产生一个中断每第十个信号的上升沿上要应用。
解决方案所需的初始化序列必须执行以下操作:•配置7门位作为输入线。
•使脉冲累加器定时器。
•选择事件计数模式。
•选择的上升沿输入信号的有效边。
•初始化计数器pacnt246,使第十个脉冲产生溢出。
•使paovf中断设置paovfi位在tmsk2。
由此产生的初始化序列如下:中断例程必须做以下:•清除paovf旗,写1个在位置5tflg2。
•写定246panct,使下溢出发生在第十脉冲排。
下面列出的中断服务例程,这:6.4 个鲜明特点的嵌入式微控制器定时器不像HC 11家庭,在定时器子系统仍然是相同的所有家庭会员,为单片机可能存在重大差异的实现计时器从一个到另一个家庭成员。
本节包含描述该定时器子系统的单片机AT90S 8515。
事实上,包含不同的定时器,命名的timer 0和timer 1。