您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 定时计数器的结构与应用(dhl).
2020/1/2自动化学院Page1AVR定时器/计数器2020/1/2自动化学院Page2定时与计数原理计数原理(溢出、比较匹配)定时原理事件捕获原理PWM原理2020/1/2自动化学院Page30xF5计数原理(1)计数——对外部事件进行统计,外部事件以输入有效脉冲来表示。计数器溢出标志TF初值中断请求外部脉冲0xF50xF51S1S20xF60xF70xF80xF90xFA0xFB0xFC0xFD0xFE0xFF0中断开放中断响应后溢出标志清“0”当检测到有有效脉冲输入时,计数寄存器加1启动计数器工作当计数器计数溢出时的标志初值寄存器作为计数器回0时的初始值单片机的计数器用户是可以控制的(可编程的),包括计数器的启动、计数脉冲的有效方式、计数器的初值、计数溢出中断请求开放或禁止等。2020/1/2自动化学院Page40xFD0xFF0xFE计数器0xFA0xF80xF90xFB0xFC初值计数原理(2)比值寄存器比较器S1S2溢出标志TF外部脉冲比较匹配标志S30xF8计数器输出OC触发0xFC0xF810xF910xFA0xFB中断请求2中断请求102020/1/2自动化学院Page5定时原理定时——当计数器的计数脉冲频率恒定时,计数器所记录的数值及代表了时间的概念。定时功能是通过计数器的计数来实现的。计数器溢出标志TF初值中断请求外部时钟源S1S2S0用于选择内部/外部时钟源S0内部时钟源定时器的工作原理与计数器相同,只是要求用于计数的脉冲,其频率恒定。单片机的定时器用户是可以控制(可编程)的。2020/1/2自动化学院Page6事件捕获原理捕获寄存器捕获标志ICF捕获事件S1S3S0计数时钟源闸门电路计数器溢出标志TFS2中断请求2中断请求1计数器的工作原理与前述相同0x800x810x820x830x840x850x860x870x880x890x8A闸门电路0x8810x8B0x8C0x8E0x8F02020/1/2自动化学院Page7PWM输出原理与方法PWM输出的最大特点是波形的频率恒定,波形的占空比D却可以改变。占空比的改变很具有实际意义,例如小功率直流电机的驱动与调速,其方法就是控制电机电枢电压接通和断开的比值来驱动电机和改变电机的转速,这种方法称为脉宽调速法。2020/1/2自动化学院Page8PWM原理框图如下图所示:定时器计数器溢出标志TF比较器S1S2中断请求时钟源比较寄存器PWM输出2020/1/2自动化学院Page9定时器/计数器以一定的频率上、下计数,即计数器从00H~FFH(假设定时器/计数器为8位)进行计数,然后计数器反向从FFH~00H进行计数,如此反复。当计数器中的数值与比较寄存器中的数值相等时,比较器的输出按PWM预定的规律输出一系列的脉冲波,如图所示。比较值改变计数器值比较值PWM输出2020/1/2自动化学院Page10AVR单片机的定时器计数器工作原理AVR单片机的定时器计数器的特点AVR单片机的定时器计数器控制寄存器AVR单片机的定时器计数器定时和计数方法AVR单片机的定时器计数器应用实例2020/1/2自动化学院Page11定时计数器概述学习和使用定时计数器时,必须注意以下的基本要素:定时计数器的长度:定时计数器的长度一般为8位或16位。脉冲信号源:脉冲信号源是指输入到定时计数器的计数脉冲信号。通常用于定时计数器计数的脉冲信号可以由外部输入引脚提供,也可以由单片机内部提供。计数器类型:计数器类型是指计数器的计数运行方式,可分为加(减)计数器,单程计数或双向计数等。2020/1/2自动化学院Page12计数器的上下限:计数器的上下限指计数单元的最小值和最大值。一般情况下,计数器的下限值为零,上限值为计数单元的最大计数值,即255(8位)或65535(16位)。需要注意的是,当计数器工作在不同模式下时,计数器的上限值并不都是计数单元的最大计数值255或65535,它将取决于用户的配置和设定。计数器的事件:计数器的事件指计数器处于某种状态时的输出信号,该信号通常可以向MCU申请中断。如当计数器计数到达计数上限值255时,产生“溢出”信号,向MCU申请中断。2020/1/2自动化学院Page138位定时计数器的结构与寄存器配置ATmega16中有两个8位的定时计数器:T/C0、T/C2,它们都是通用的多功能定时计数器,其主要特点是:单通道计数器。比较匹配时清零计数器(自动重装特性)。可产生无输出抖动的,相位可调的脉宽调制(PWM)信号输出。频率发生器。外部事件计数器(仅T/C0)。带10位的时钟预分频器。溢出和比较匹配中断源(TOV0、OCF0和TOV2、OCF2)。允许使用外部引脚的32kHz手表晶振作为独立的计数时钟源(仅T/C2)。2020/1/2自动化学院Page14一、8位T/C01、T/C0的组成结构图1为8位T/C0的硬件结构框图。图中给出了MCU可以操作的寄存器以及相关的标志位。在T/C0中,可操作的8位寄存器有:计数寄存器TCNT0输出比较寄存器OCR0T/C0的控制寄存器TCCR0中断标志寄存器TIFR定时器中断屏蔽寄存器TIMSKT/C0的计数器事件输出信号有两个,计数器计数溢出TOV0比较匹配相等OCF0。2020/1/2自动化学院Page15图18位T/C0的结构框图2020/1/2自动化学院Page16①T/C0的时钟源T/C0的计数时钟源可由来自外部引脚T0的信号提供,也可来自芯片的内部。图2为T/C0时钟源部分的内部功能图。T/C0计数时钟源的选择使用系统内部时钟源使用外部时钟源图2T/C0的时钟源与10位预定比例分频器2020/1/2自动化学院Page17当定时计数器使用外部时钟作为计数源时,通常作为计数器使用,用于记录外部脉冲的个数。图3为外部时钟源的检测采样逻辑功能图。图3T/C0外部时钟检测采样逻辑功能图2020/1/2自动化学院Page18②T/C0的计数单元T/C0的计数单元是一个可编程的8位双向计数器,图4是它的逻辑功能图,图中符号所代表的意义如下:计数(count)TCNT0加1或减1。方向(direction)加或减的控制。清除(clear)清零TCNT0。计数时钟(clkT0)C/T0时钟源顶部值(TOP)表示TCNT0计数值到达上边界。底部值(BOTTOM)表示TCNT0计数值到达下边界(零)。图4T/C0计数单元逻辑功能图2020/1/2自动化学院Page19③输出比较单元图5为T/C0的输出比较单元逻辑功能图。在T/C0运行期间,比较匹配单元一直将寄存器TCNT0的计数值同寄存器OCR0的内容进行比较(硬件进行自动比较处理)。图5T/C0输出比较单元逻辑功能图2020/1/2自动化学院Page20强制输出比较:工作于非PWM模式时,可以通过对强制输出比较位FOC0写”1”的方式来产生比较匹配。强制比较匹配不会置位OCF0标志,也不会重载/清零定时器,但是OC0引脚将被更新,好象真的发生了比较匹配一样。使用输出比较单元:通过写TCNT0寄存器屏蔽比较匹配事件:2020/1/2自动化学院Page21④比较匹配输出单元标志位COM0[1:0]有两个作用:定义OC0的输出状态,以及控制外部引脚OC0是否输出OC0寄存器的值。图6为比较匹配输出单元的逻辑图。图6T/C0比较匹配输出单元逻辑图2020/1/2自动化学院Page222、与T/C0相关的寄存器①T/C0计数寄存器—TCNT02020/1/2自动化学院Page23②输出比较寄存器—OCR02020/1/2自动化学院Page24③定时计数器中断屏蔽寄存器—TIMSK2020/1/2自动化学院Page25④定时计数器中断标志寄存器—TIFR2020/1/2自动化学院Page26⑤T/C0控制寄存器—TCCR02020/1/2自动化学院Page272020/1/2自动化学院Page282020/1/2自动化学院Page293、8位T/C0的工作模式T/C0的控制寄存器TCCR0的标志位WGM0[1:0]和COM0[1:0]的组合构成T/C0的四种工作模式以及OC0不同方式的输出。①普通模式(WGM0[1:0]=0)普通模式是T/C0最简单和基本的一种工作方式。T/C0工作在普通模式下时,计数器为单向加1计数器,一旦寄存器TCNT0的值到达0xFF(上限值),在下一个计数脉冲到来时便恢复为0x00,并继续单向加1计数。当TCNT0由0xFF转变为0x00的同时,溢出标志位TOV0置位为“1”,用于申请T/C0溢出中断。一旦MCU响应T/C0的溢出中断,硬件则将自动把TOV0清零。2020/1/2自动化学院Page30②比较匹配清零计数器CTC模式(WGM2[1:0]=2)T/C0工作在CTC模式下时,计数器为单向加1计数器,一旦寄存器TCNT0的值与OCR0的设定值相等(此时寄存器OCR0的值为计数上限值),就将计数器TCNT0清零为0x00,然后继续向上加1计数。通过设置OCR0的值,可以方便地控制比较匹配输出的频率,也方便了外部事件计数的应用。图7为CTC模式的计数时序图。2020/1/2自动化学院Page31③快速PWM模式(WGM0[1:0]=3)T/C0工作在快速PWM模式可以产生较高频率的PWM波形。当T/C0工作在此模式下时,计数器为单程向上的加1计数器,从0x00一直加到0xFF(上限值),在下一个计数脉冲到来时便恢复为0x00,然后再从0x00开始加1计数。在设置正向比较匹配输出(COM0[1:0]=2)方式中,当TCNT0的计数值与OCR0的值相同匹配时清零OC0,当计数器的值由0xFF返回0x00时置位OC0。而在设置反向比较匹配输出(COM0[1:0]=3)方式中,当TCNT0的计数值与OCR0的值相同匹配时置位OC0,当计数器的值由0xFF返回0x00时清零OC0。2020/1/2自动化学院Page322020/1/2自动化学院Page33④相位可调PWM模式(WGM0[1:0]=1)相位可调PWM模式可以产生高精度相位可调的PWM波形。当T/C0工作在此模式下时,计数器为双程计数器:从0x00一直加到0xFF,在下一个计数脉冲到达时,改变计数方向,从0xFF开始减1计数到0x00。设置正向比较匹配输出(COM0[1:0]=2)方式:在正向加1过程中,TCNT0的计数值与OCR0的值相同匹配时清零OC0;在反向减1过程中,当计数器TCNT0的值与OCR0相同时置位OC0。设置反向比较匹配输出(COM0[1:0]=3)方式:在正向加1过程中,TCNT0的计数值与OCR0的值相同匹配时置位OC0;在反向减1过程中,当计数器TCNT0的值与OCR0相同时清零OC0。2020/1/2自动化学院Page342020/1/2自动化学院Page354、8位T/C0的计数工作时序图10、图11、图12和图13给出了T/C0在同步工作情况下的各种计数时序,同时给出标志位TOV0和OCF0的置位条件。图中MAX=0xFF,BOTTOM=0x00,TOP=[OCRn]。图10T/C0计数时序(无预分频)图11T/C0计数时序,带1/8预分频2020/1/2自动化学院Page36图12T/C0计数时序,OCFn置位,带1/8预分频(CTC模式除外)图13T/C0计数时序,OCFn置位,带1/8预分频(CTC模式)2020/1/2自动化学院Page37二、16位定时计数器T/C1的应用ATmega16的T/C1是一个16位的多功能定时计数器,图14为该16位定时计数器的结构框图。其主要特点有:真正的16位设计。2个独立的输出比较匹配单元。双缓冲输出比较寄存器。一个输入捕捉单元。输入捕捉噪声抑制。比较匹配时清零计数器(自动重装特性,AutoReload)。可产生无输出抖动(glitch-free)的,相位可调的脉宽调制(PWM)信号输出。周期可调的PWM波形输出。频率发生器。外
本文标题:定时计数器的结构与应用(dhl).
链接地址:https://www.777doc.com/doc-2498841 .html