版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 手表晶振作为独立的计数时钟源
4、(仅 T/C2)。 1T/C0 的组成结构 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 计数。 当 TCN
5、T0 由0 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
7、 时,标志位 TOV0 置位。 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,当计数器的
8、值由 0 xFF 返回0 x00 时置位 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。 通过设置寄存器 O
9、CR0 的值,可以获得不同占空比的脉冲波形。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;在反向减
10、1 过程中,当计数器TCNT0 的值与 OCR0 相同时置位 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。通过设置寄存器 OCR
11、0 的值,可以获得不同占空比的脉冲波形。 8.2 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 输出。(采
12、用普通模式:溢出中断+比较匹配中断)8.2 8 位定时计数器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/
13、C0的CTC模式,从PA0引脚输出一个频率为10KHz的方波。(假设系统时钟为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 的值与计数器上限值之比即为占空比。P
15、WM脉宽调制波RC低通滤波器设计:截止频率f=1/(2RC)。因此在实际应用中,常利用 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 功能产生正弦波。设计思路一个周期的
16、PWM波经滤波后会得到一点电压(即正弦波的一个点)。一个正弦波由多点组成,即由多个同频率的不同占空比的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 左右
17、 50%占空比的方波信号(提示:采用CTC模式:OC0输出,不用中断)利用T/C2,产生一个频率为31.25KHz,占空比从0变化到1的PWM波。(提示:采用快速PWM模式,在溢出中断中调OC2即调占空比,由OC2输出 )#include interrupt TIM2_OVF void timer2_ovf_isr(void) OCR2-;void main(void)PORTB=0 x00;DDRB=0 x08;PORTD=0 x00;DDRD=0 x80;TCCR0=0 x1A;TCNT0=0 x00;OCR0=0 x63;TCCR2=0 x69;TCNT2=0 x00;OCR2=0 x0
18、0;TIMSK=0 x40;#asm(sei)while (1); T/C2分频系数8.4 16 位定时计数器T/C1 的应用 8.4.1 16 位T/C1 增强功能介绍16 位的计数器16 位寄存器的读写操作步骤(采用C等高级语言编写程序则可以直接对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
19、1:0 WGM11:0: 波形发生模式T/C1相关寄存器(5)T/C1控制寄存器B TCCR1B Bit 7 ICNC1: 入捕捉噪声抑制器:置位 ICNC1 将使能输入捕捉噪声抑制功能。 Bit 6 ICES1: 输入捕捉触发沿选择:该位选择使用 ICP1 上的哪个边沿触发捕获事件。 ICES 为 “0” 选择的是下降沿触发输入捕捉; ICES1 为 “1” 选择的是逻辑电平的上升沿触发输入捕捉。Bit 2:0 CS12:0: 时钟选择T/C1相关寄存器(6)T/C1 TCNT1H 与 TCNT1LT/C1相关寄存器(7)输出比较寄存器1AOCR1AH与 OCR1AL输出比较寄存器1BOCR
20、1BH与OCR1BLT/C1相关寄存器(8)输入捕捉寄存器1 ICR1H与ICR1LT/C1中断屏蔽寄存器TIMSKT/C1相关寄存器(9)T/C中断标志寄存器 TIFR普通模式普通模式 (WGM13:0 = 0) 为最简单的工作模式。在此模式下计数器不停地累加。计到最大值后 (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 模式快速 PWM 模式 (WGM13:0 = 5、 6、 7、 14 或 15) 可用来产生高频的 PWM 波形。计数器从BOTTOM计到TOP,然后立即回到BOTTOM重新开始。输出的 PWM 频率可以通过如下公式计算得到: 变量 N 代表分频因子 (1、 8、 64、 256 或 1024)。选
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年考研计算机专业数据库系统模拟试题
- 管道穿越工程隐蔽检查记录
- 广东百万联考-2026届高三-2026年2月-生物-试题
- 【8道第一次月考】安徽省亳州市蒙城县汇贤中学2025-2026学年八年级上学期9月月考道德与法治试题(含解析)
- 天津市宝坻区第四中学2026届高三上学期第一次月考物理试卷(含答案)
- 青海省西宁市大通县2025届高三上学期开学摸底考试历史试卷(含答案解析)
- 吉林省长春市汽车经济技术开发区第三中学2025-2026学年高一下学期7月期末生物试卷(含答案)
- 河北省沧州市多校联考2027届高三上学期开学考试生物试卷(含答案)
- 2027届云南省保山市第一中学物理高三上期中联考模拟试题含解析
- 【三年级上册语文】每课重点知识问答清单 26新
- 医学英语考试试题及答案
- 设备管理岗位竞聘
- 人教版小学五年级上册《信息科技》全套完整版课件
- 2024年非高危行业生产经营单位主要负责人考试试题题库
- 第08课 路由路径靠算法 教学设计 2024-2025学年人教版(2024)初中信息技术七年级全一册
- 全国计算机等级考试一级计算机ms-office计算机基础知识
- 人教版小学四年级道德与法治教案上册
- 2024版防火涂料施工承包合同范本
- 小升初专项训练-诗歌鉴赏课件(完美版)
- 施工现场交通安全培训
- 大学语文(第三版)教案 孔子论孝
评论
0/150
提交评论