AVRr单片机:第8章 定时计数器的结构与应用

上传人:努力****83 文档编号:192496605 上传时间:2023-03-07 格式:PPT 页数:53 大小:2.36MB
收藏 版权申诉 举报 下载
AVRr单片机:第8章 定时计数器的结构与应用_第1页
第1页 / 共53页
AVRr单片机:第8章 定时计数器的结构与应用_第2页
第2页 / 共53页
AVRr单片机:第8章 定时计数器的结构与应用_第3页
第3页 / 共53页
资源描述:

《AVRr单片机:第8章 定时计数器的结构与应用》由会员分享,可在线阅读,更多相关《AVRr单片机:第8章 定时计数器的结构与应用(53页珍藏版)》请在装配图网上搜索。

1、第 8 章 定时计数器的结构与应用 第 8 章 定时计数器的结构与应用 定时计数器(Timer/Counter)是单片机中最基本的接口之一,它的用途非常广泛,常用于计数、延时、测量周期、频率、脉宽、提供定时脉冲信号等。相对于一般 8 位单片机而言,AVR 不仅配备了更多的定时计数器接口,而且还是增强型的,如通过定时计数器与比较匹配寄存器相互配合,生成占空比可变的方波信号,即脉冲宽度调制输出 PWM 信号,用于 D/A、马达无级调速控制、变频控制等,功能非常强大。ATmega16 一共配置了 2个 8 位和1个 16 位,共3 个定时计数器,它们是 8 位的定时计数器 T/C0、T/C2 和16

2、 位的定时计数器 T/C1。8.1 定时计数器的结构 定时计数器最基本的功能就是对脉冲信号“自动”进行计数。这里所谓的“自动”,指计数的过程是由硬件完成的,不需要 MCU的干预。但 MCU 可以通过指令设置定时计数器的工作方式,以及根据定时计数器的计数值或工作状态做必要的处理和响应。学习和使用定时计数器时,必须注意以下的基本要素:定时计数器的长度。脉冲信号源。计数器类型。计数器类型是指计数器的计数运行方式,可分为加一(减一)计数器,单程计数或双向计数等。计数器的上下限。计数器的事件。计数器的事件指计数器处于某种状态时的输出信号,该信号通常可以向 MCU 申请中断。如当计数器计数到达计数上限值

3、255时,产生“溢出”信号,向 MCU 申请中断。8.1.1 8 位定时计数器T/C0 的结构 ATmega16 中有两个 8 位的定时计数器:T/C0、T/C2,它们都是通用的多功能定时计数器,其主要特点是:单通道计数器。比较匹配时清零计数器(自动重装特性,Auto Reload)。可产生无输出抖动(glitch-free)的,相位可调的脉宽调制(PWM)信号输出。频率发生器。外部事件计数器(仅 T/C0)。带 10 位的时钟预分频器。溢出和比较匹配中断源(TOV0、OCF0 和TOV2、OCF2)。允许使用外部引脚的 32768Hz 手表晶振作为独立的计数时钟源(仅 T/C2)。1T/C0

4、 的组成结构 T/C0 的时钟源2与8 位 T/C0 相关的寄存器(1)2与8 位 T/C0 相关的寄存器(2)2与8 位 T/C0 相关的寄存器(3)2与8 位 T/C0 相关的寄存器(4)2与8 位 T/C0 相关的寄存器(5)8.1.2 8 位T/C0 的工作模式-1 普通模式(普通模式(WGM01:0=0)-溢出中断(同溢出中断(同51)普通模式是 T/C0 最简单和基本的一种工作方式。T/C0 工作在普通模式下时,计数器为单向加 1 计数器,一旦寄存器 TCNT0 的值到达0 xFF(上限值),在下一个计数脉冲到来时便恢复为 0 x00,并继续单向加 1 计数。当 TCNT0 由0

5、xFF 转变为0 x00 的同时,溢出标志位 TOV0置位为“1”,用于申请 T/C0 溢出中断。一旦 MCU 响应 T/C0 的溢出中断,硬件则将自动把TOV0 清零。在普通模式中,同样可以使用比较匹配功能产生定时中断,但最好不要在普通模式下使用输出比较单元来产生 PWM 波形输出,因为这将占用过多的 MCU 的时间。8.1.2 8 位T/C0 的工作模式-2(1)比较匹配清零计数器 CTC 模式(WGM01:0=2)主要用于从OCn输出频率可调的方波(占空比1/2不变)8.1.2 8 位T/C0 的工作模式-2(2)T/C0 工作在 CTC 模式下时,计数器为单向加 1 计数器,一旦寄存器

6、 TCNT0 的值与 OCR0的设定值相等(此时寄存器 OCR0 的值为计数上限值),就将计数器 TCNT0 清零为 0 x00,然后继续向上加 1 计数。通过设置 OCR0 的值,可以方便地控制比较匹配输出的频率。在 CTC 模式下利用比较匹配输出单元产生波形输出时,应设置 OC0 的输出方式为触发方式(COM01:0=1)。OC0 输出波形的最高频率为 fOC0=fclk_I/O/2(OCR0=0 x00)。其他的频率输出由下式确定,式中 N 的取值为1、8、64、256 或1024。除此之外,与普通模式相同,当 TCNT0 计数值由0 xFF 转到 0 x00 时,标志位 TOV0 置位

7、。8.1.2 8 位T/C0 的工作模式-3(1)快速 PWM 模式(WGM01:0=3)主要用于从Ocn输出频率、占空比均可调的信号8.1.2 8 位T/C0 的工作模式-3(2)T/C0 工作在快速 PWM 模式可以产生较高频率的 PWM 波形。当 T/C0 工作在此模式下时,计数器为单程向上的加 1计数器,从 0 x00 一直加到 0 xFF(上限值),在下一个计数脉冲到来时便恢复为0 x00,然后再从0 x00开始加1计数。在设置正向比较匹配输出(COM01:0=2)方式中,当 TCNT0 的计数值与 OCR0 的值相同匹配时清零 OC0,当计数器的值由 0 xFF 返回0 x00 时

8、置位 OC0。而在设置反向比较匹配输出(COM01:0=3)方式中,当 TCNT0 的计数值与 OCR0 的值相同匹配时置位 OC0,当计数器的值由 0 xFF 返回 0 x00 时清零 OC0。8.1.2 8 位T/C0 的工作模式-3(3)在 TCNT0 的计数值到达 0 xFF 时,置溢出标志位 TOV0 为“1”。标志位 TOV0 可以用于申请中断。一旦 MCU 响应TOV0 中断,用户可以在中断服务程序中修改 OCR0的值。OC0 输出的PWM 波形的频率输出由下式确定,式中 N 的取值为 1、8、64、256 或1024。通过设置寄存器 OCR0 的值,可以获得不同占空比的脉冲波形

9、。8.1.2 8 位T/C0 的工作模式-4(1)相位可调 PWM 模式(WGM01:0=1)8.1.2 8 位T/C0 的工作模式-4(2)主要用于从Ocn输出频率、占空比均可调的高精度相位可调的 PWM 波形,输出频率是快速PWM的一半。当 T/C0 工作在此模式下时,计数器为双程计数器:从 0 x00 一直加到 0 xFF,在下一个计数脉冲到达时,改变计数方向,从 0 xFF 开始减 1 计数到 0 x00。设置正向比较匹配输出(COM01:0=2)方式:在正向加 1过程中,TCNT0 的计数值与 OCR0 的值相同匹配时清零 OC0;在反向减 1 过程中,当计数器TCNT0 的值与 O

10、CR0 相同时置位 OC0。设置反向比较匹配输出(COM01:0=3)方式:在正向加 1 过程中,TCNT0 的计数值与 OCR0的值相同匹配时置位 OC0;在反向减1 过程中,当计数器 TCNT0 的值与 OCR0 相同时清零 OC0。8.1.2 8 位T/C0 的工作模式-4(3)在 TCNT0 的计数值到达 0 x00 时,置溢出标志位 TOV0 为“1”。标志位 TOV0 可以用于申请溢出中断。在相位可调 PWM 模式下,OC0 输出的 PWM 波形频率由下式确定,式中 N 的取值为 1、8、64、256 或1024。通过设置寄存器 OCR0 的值,可以获得不同占空比的脉冲波形。8.2

11、 8 位定时计数器T/C0 的应用(1)8.2.1 外部事件计数器 例 8.1 N 分频系统设计一:将外部的 250Hz 的方波信号输出与 ATmega16 的 T0连接,作为 T/C0 计数器的外部输入。从 PA0 输出一个1Hz的方波。(采用普通模式:溢出中断)例 8.2 N 分频系统设计二:将外部的 250Hz 的方波信号输出与 ATmega16 的 T0连接,作为 T/C0 计数器的外部输入。从 PA0 输出一个1Hz的方波。(采用CTC模式:比较匹配中断)例8.3 对从T0输入的250Hz 的方波信号5分频,从PA0 输出。(采用普通模式:溢出中断+比较匹配中断)8.2 8 位定时计

12、数器T/C0 的应用(2)8.2.2 定时器应用设计 8.2.2 定时器应用设计 例 8.4 采用T/C0 硬件定时器的时钟系统(采用CTC模式:比较匹配中断)例 8.5的思考与实践 如果系统需要一个频率为 50Hz 左右 50%占空比的方波信号,那么应该 T/C2、OCR2如何设置和计算?理论上的输出频率是多少?与 50Hz 的误差是多少(假定系统时钟频率为 4M)。(采用CTC模式:OCn输出,不用中断)习题(普通模式和CTC模式)利用T/C0的普通模式,从PA0引脚输出一个频率为10KHz的方波。(假设系统时钟为4MHZ)利用T/C0的CTC模式,从PA0引脚输出一个频率为10KHz的方

13、波。(假设系统时钟为4MHZ)利用T/C0的CTC模式,从OC0引脚输出一个频率为10KHz的方波。(假设系统时钟为4MHZ)利用T/C0输出一个频率为2MHz的方波。(假设系统时钟为4MHZ)小结(普通模式和CTC模式)总结:要利用定时器输出方波(占空比为1/2)时,最好是采用CTC模式,OCRn输出,不用中断的方法。它具有编程简单,频率精度高,能产生高频率的信号(最高频率为系统时钟频率的一半)等特点。8.3 PWM脉宽调制波的产生和应用 8.3.1 PWM脉宽调制波 PWM 是脉冲宽度调制的简称。实际上,PWM 波也是一个连续的方波,但在一个周期中,其高电平和低电平的占空比是不同的。一个典

14、型 PWM 的波形如图 8-15所示。PWM脉宽调制波 在图中,T是 PWM 波的周期,T1 是高电平的宽度,Vcc 是高电平值。当该 PWM 波通过一个积分器后(低通滤波器)后,我们可以得到其输出的平均电压为:式中,T1/T称为 PWM 波的占空比。控制调节和改变 T1 的宽度,即改变 PWM 的占空比,就可以的到不同的平均电压输出。T/CO、T/C2 两种 PWM 模式都是固定 8 位的 PWM,计数器 TCNTn 的上限值为固定的 0 xFF(8 位T/C),而比较匹配寄存器 OCRn 的值与计数器上限值之比即为占空比。PWM脉宽调制波 RC低通滤波器设计:截止频率f=1/(2RC)。因

15、此在实际应用中,常利用 PWM 波的输出,实现 D/A 转换,调节电压或电流控制改变马达的转速,实现变频控制等功能。8.3.2 基于比较匹配输出的脉冲宽度调制PWM 补充:利用T/C0,产生一个频率为15.625KHz,占空比为1/5的PWM波。(采用快速PWM模式,假设系统时钟为4MHZ)补充:利用T/C0,产生一个频率为7.843KHz,占空比为1/4的PWM波。(采用相位可调PWM模式,假设系统时钟为4MHZ)8.3.2 基于比较匹配输出的脉冲宽度调制PWM 例8.6 利用T/C0 的PWM 功能产生正弦波。设计思路 一个周期的PWM波经滤波后会得到一点电压(即正弦波的一个点)。一个正弦

16、波由多点组成,即由多个同频率的不同占空比的PWM周期组成。若一个正弦波由16点组成,且PWM波的周期为T(频率为f),则产生的正弦波的周期为16T(频率为f/16)。采用ATMEGA16的T/C0,系统时钟为4MHz,分频系数为1,则f oc0 PWM=f/(256N)=4M/256=15625Hz,一个正弦波由16点组成,所以正弦波的频率为15625Hz/16=976.56Hz.波形图思考题:如何产生一个频率为244Hz的锯齿波?上机实践题 利用一片ATMEGA16同时实现下面的要求:利用T/C0,产生一个频率为 5KHz 左右 50%占空比的方波信号(提示:采用CTC模式:OC0输出,不用

17、中断)利用T/C2,产生一个频率为31.25KHz,占空比从0变化到1的PWM波。(提示:采用快速PWM模式,在溢出中断中调OC2即调占空比,由OC2输出)#include#include interrupt TIM2_OVF void timer2_ovf_isr(void)interrupt TIM2_OVF void timer2_ovf_isr(void)OCR2-;OCR2-;void main(voidvoid main(void)PORTB=0 x00;PORTB=0 x00;DDRB=0 x08;DDRB=0 x08;PORTD=0 x00;PORTD=0 x00;DDRD=0

18、 x80;DDRD=0 x80;TCCR0=0 x1A;TCCR0=0 x1A;TCNT0=0 x00;TCNT0=0 x00;OCR0=0 x63;OCR0=0 x63;TCCR2=0 x69;TCCR2=0 x69;TCNT2=0 x00;TCNT2=0 x00;OCR2=0 x00;OCR2=0 x00;TIMSK=0 x40;TIMSK=0 x40;#asm(sei#asm(sei)while(1);while(1);T/C2分频系数8.4 16 位定时计数器T/C1 的应用 8.4.1 16 位T/C1 增强功能介绍 16 位的计数器 16 位寄存器的读写操作步骤(采用C等高级语言编

19、写程序则可以直接对16位的寄存器进行操作)更加强大和完善的 PWM 功能 可产生频率、相位均可调整的 PWM波。可同时产生 2 路相同频率不同占空比的 PWM 波 输入捕捉功能 T/C1相关寄存器(1)T/C1控制寄存器A TCCR1AT/C1相关寄存器(2)T/C1相关寄存器(3)Bit 1:0 WGM11:0:波形发生模式 T/C1相关寄存器(4)Bit 1:0 WGM11:0:波形发生模式T/C1相关寄存器(5)T/C1控制寄存器B TCCR1B Bit 7 ICNC1:入捕捉噪声抑制器:置位 ICNC1 将使能输入捕捉噪声抑制功能。Bit 6 ICES1:输入捕捉触发沿选择:该位选择使

20、用 ICP1 上的哪个边沿触发捕获事件。ICES 为“0”选择的是下降沿触发输入捕捉;ICES1 为“1”选择的是逻辑电平的上升沿触发输入捕捉。Bit 2:0 CS12:0:时钟选择T/C1相关寄存器(6)T/C1 TCNT1H 与 TCNT1LT/C1相关寄存器(7)输出比较寄存器1AOCR1AH与 OCR1AL 输出比较寄存器1BOCR1BH与OCR1BLT/C1相关寄存器(8)输入捕捉寄存器1 ICR1H与ICR1L T/C1中断屏蔽寄存器TIMSKT/C1相关寄存器(9)T/C中断标志寄存器 TIFR普通模式 普通模式(WGM13:0=0)为最简单的工作模式。在此模式下计数器不停地累加

21、。计到最大值后(TOP=0 xFFFF)由于数值溢出计数器简单地返回到最小值 0 x0000 重新开始。CTC(比较匹配时清零定时器)模式 在CTC模式(WGM13:0=4 或12)里OCR1A 或ICR1寄存器用于调节计数器的分辨率。当计数器的数值TCNT1等于OCR1A(WGM13:0=4)或等于ICR1(WGM13:0=12)时计数器清零。OCR1A 或 ICR1 定义了计数器的 TOP 值,亦即计数器的分辨率。用于产生占空比为50%的波形,OCnA和OCnB可独立或同时工作。频率由如下公式确定:变量 N 代表预分频因子(1、8、64、256 或 1024)。快速 PWM 模式 快速 P

22、WM 模式(WGM13:0=5、6、7、14 或 15)可用来产生高频的 PWM 波形。计数器从BOTTOM计到TOP,然后立即回到BOTTOM重新开始。输出的 PWM 频率可以通过如下公式计算得到:变量 N 代表分频因子(1、8、64、256 或 1024)。选模式5,6,7时,TOP值是固定的 选模式14,15时,TOP值是可调的 选模式15时,上限值TOP由OCR1A决定,占空比由OCR1B决定相位修正 PWM 模式 相位修正 PWM 模式(WGM13:0=1、2、3、10 或 11)为用户提供了一个获得高精度的、相位准确的 PWM 波形的方法。与相位和频率修正模式类似,此模式基于双斜坡

23、操作。计时器重复地从 BOTTOM 计到 TOP,然后又从 TOP倒退回到 BOTTOM。输出的 PWM 频率可以通过如下公式计算得到,变量 N 代表分频因子(1、8、64、256 或 1024)。选模式1,2,3时,TOP值是固定的 选模式10,11时,TOP值是可调的相位与频率修正 PWM 模式 相位与频率修正 PWM 模式(WGM13:0=8 或 9)-以下简称相频修正 PWM 模式-可以产生高精度的、相位与频率都准确的 PWM波形。与相位修正模式类似,相频修正 PWM 模式基于双斜坡操作。计时器重复地从 BOTTOM 计到 TOP,然后又从 TOP 倒退回到BOTTOM。输出的 PWM 频率可以通过如下公式计算得到,变量 N 代表分频因子(1、8、64、256 或 1024)。8.4.2 16 位T/C1 应用示例 例 8.7 利用T/C1 设计实现的单音手机音乐播放器 在编写程序前,通常要先知道各不同的音符所对应的振荡频率,也就是确定各音符所对应的脉冲输出频率值。另外就是该音符发生的长度(节拍)值。接下来是根据所要产生曲谱的音调和节拍,建立相对应发声数据组(参考手机上自编音乐的功能)。然后才能编写发生控制程序。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!