定时器计数器原理及应用.ppt

上传人:tia****nde 文档编号:12671750 上传时间:2020-05-13 格式:PPT 页数:24 大小:853.55KB
返回 下载 相关 举报
定时器计数器原理及应用.ppt_第1页
第1页 / 共24页
定时器计数器原理及应用.ppt_第2页
第2页 / 共24页
定时器计数器原理及应用.ppt_第3页
第3页 / 共24页
点击查看更多>>
资源描述
,定时/计数器资源介绍与应用,0 xF5,计数原理(1),计数对外部事件进行统计,外部事件以输入有效脉冲来表示。,计数器,溢出标志TF,初值,中断请求,外部脉冲,0 xF5,0 xF5,1,S1,S2,0 xF6,0 xF7,0 xF8,0 xF9,0 xFA,0 xFB,0 xFC,0 xFD,0 xFE,0 xFF,0,中断开放,中断响应后溢出标志清“0”,当检测到有有效脉冲输入时,计数寄存器加1,启动计数器工作,当计数器计数溢出时的标志,初值寄存器作为计数器回0时的初始值,单片机的计数器用户是可以控制的(可编程的),包括计数器的启动、计数脉冲的有效方式、计数器的初值、计数溢出中断请求开放或禁止等。,0 xFD,0 xFF,0 xFE,计数器,0 xFA,0 xF8,0 xF9,0 xFB,0 xFC,初值,计数原理(2),比值寄存器,比较器,S1,S2,溢出标志TF,外部脉冲,比较匹配标志,S3,0 xF8,计数器输出OC触发,0 xFC,0 xF8,1,0 xF9,1,0 xFA,0 xFB,中断请求2,中断请求1,0,定时原理,定时当计数器的计数脉冲频率恒定时,计数器所记录的数值及代表了时间的概念。定时功能是通过计数器的计数来实现的。,计数器,溢出标志TF,初值,中断请求,外部时钟源,S1,S2,S0用于选择内部/外部时钟源,S0,内部时钟源,定时器的工作原理与计数器相同,只是要求用于计数的脉冲,其频率恒定。单片机的定时器用户是可以控制(可编程)的。,ATmega16定时/计数器资源,T/C的预分频器8位定时/计数器T/C0、T/C2T/C2的异步操作PWM模式下的T/C0、T/C216位定时/计数器T/C1PWM模式下的T/C1,T/C1、0的预分频器,。,预分频器的作用是将系统时钟(如系统时钟为4.000MHz)按设定的比例进行分频,以产生不同周期的时钟clkT0、clkT1,分别作为时钟源提供给T/C0和T/C1使用,8位定时/计数器T/C0、T/C2(1),ATmega16的定时/计数器共有3个:1个16位的定时/计数器定时/计数器1(简称T/C1)2个8位定时/计数器定时/计数器0(简称T/C0)、定时/计数器2(简称T/C2),这3个定时/计数器各具特点:T/C0功能普通(8位二进制)计数、定时、PWMT/C1功能多(16位二进制)计数、定时、PWM、输入捕获T/C2功能少且特殊(8位)定时(有异步定时功能,可作为实时时钟RTC)、PWM,8位定时/计数器T/C0、T/C2(2),ATmega16的8位定时/计数器用户可以控制:,TCCR0T/C0控制寄存器TCCR2T/C2控制寄存器TIMSKT/C中断屏蔽寄存器TIFRT/C中断标志寄存器TCNT0T/C0计数寄存器TCNT2T/C2计数寄存器OCR0T/C0输出比较寄存器OCR2T/C2输出比较寄存器ASSR异步模式状态寄存器,位6、位3:计数器计数模式,用于控制T/C0的计数和工作方式。,位7:强制输出比较,该位只在WGM位被置为非PWM模式下有效。,T/C0控制寄存器TCCR0,WGM00,COM01,COM00,WGM01,CS02,CS01,CS00,FOC0,位54:比较匹配输出模式,决定T/C0比较匹配发生时,输出引脚OC0(PB3)的行为方式。这是I/O的第二功能,相应的方向控制位要置“1”,以便将其配置为输出。,位20:T/C0的时钟选择位,用于定义T/C0的时钟源。,T/C2控制寄存器TCCR2,WGM20,COM21,COM20,WGM21,CS22,CS21,CS20,FOC2,TCCR2的位73与TCCR0位73的作用完全相同。,位20:T/C2的时钟选择位,用于定义T/C2的时钟源。其功能与T/C0有不同点,无外部计数功能的选项。,T/C中断屏蔽寄存器TIMSK,TOIE2,TICIE1,OCIE1A,OCIE1B,TOIE1,OCIE0,TOIE0,OCIE2,位7:T/C2输出比较匹配中断使能,为“1”时允许中断,为“0”时禁止中断。,位6:T/C2溢出中断使能,为“1”时允许中断,为“0”时禁止中断。,位5:T/C1输入捕获中断使能,为“1”时允许中断,为“0”时禁止中断。,位4:T/C1输出比较A匹配中断使能,为“1”时允许中断,为“0”时禁止中断。,位3:T/C1输出比较B匹配中断使能,为“1”时允许中断,为“0”时禁止中断。,位2:T/C1溢出中断使能,为“1”时允许中断,为“0”时禁止中断。,位1:T/C0输出匹配中断使能,为“1”时允许中断,为“0”时禁止中断。,位0:T/C0溢出中断使能,为“1”时允许中断,为“0”时禁止中断。,T/C中断标志寄存器TIFR,TOV2,ICF1,OCF1A,OCF1B,TOV1,OCF0,TOV0,OCF2,位7:T/C2输出比较匹配标志。当T/C2计数器TCNT2与OCR2的值匹配时,该位由硬件置“1”。中断响应后,由硬件清“0”,或通过对该位写“1”来清“0”。,位6:T/C2溢出中断标志。当T/C2计数器TCNT2溢出时,该位由硬件置“1”。中断响应后,由硬件清“0”,或通过对该位写“1”来清“0”。,位5:T/C1输入捕获中断标志。当T/C1输入捕获事件发生时,该位置“1”。,位4:T/C1输出比较A匹配中断标志。,位3:T/C1输出比较B匹配中断标志。,位2:T/C1溢出中断标志。,位1:T/C0输出比较匹配中断标志。,位0:T/C0溢出中断标志。,ATmega16的定时/计数器共有8个中断源对应8个中断标志位,这些标志位当条件满足后,由硬件置“1”,中断响应后由硬件清“0”,也可以对这些位通过软件写“1”清“0”。,T/C0计数寄存器TCNT0,LSB,MSB,T/C2计数寄存器TCNT2,LSB,MSB,T/C0、T/C2是可以进行读/写访问的向上计数(加法计数)的计数器。只要有有效脉冲输入,TCNT0、TCNT2就会在写入值(初值)的基础上开始计数。一旦TCNT达到0 xFF,下一个计数脉冲到来时便回到0 x00,并继续向上开始计数。在TCNT0、2回“0”的同时,溢出标志TOV0、2置“1”。TOV0、2标志置“1”可以用于申请中断,也可以作为计数器的第“9”位使用。,T/C0输出比较寄存器OCR0,LSB,MSB,T/C2输出比较寄存器OCR2,LSB,MSB,OCR0、OCR2中的8位数据用于同TCNT0、TCNT2寄存器中的计数值进行连续的匹配比较。如果TCNT0、TCNT2的值与OCR0、OCR2相等,则比较匹配发生(比较匹配发生时,对应的定时/计数器输出引脚OC0、OC2会产生触发事件)。比较匹配发生后,置“1”相应的中断标志OCF0、OCF2。,异步模式状态寄存器ASSR,AS2,TCN2UB,OCR2UB,TCR2UB,位3:T/C2异步设定位。,当AS2=0时,T/C2使用系统I/O时钟clkI/O作为时钟源(同步方式);当AS2=1时,T/C2使用连接在TOSC1引脚上的晶振作为时钟源(异步方式)。通常连接在TOSC1引脚上的晶振频率为32.768KHz。,位2:TCNT2更新忙,TCN2UB=0表明TCNT2可以被更新。,位1:OCR2更新忙,OCR2UB=0表明OCR2可以被更新。,位0:TCCR2更新忙,TCR2UB=0表明TCCR2可以被更新。,位74:保留位。,T/C2的异步操作,T/C2的异步操作当AS2=1时,T/C2的计数时钟直接取自于外部引脚TOSC1及TOSC2所接的外部石英晶振,计数时钟与系统时钟不同步。,在使用异步方式时注意以下几点:,在同步与异步方式之间切换时,TCNT2、OCR2和TCCR2的内容会受到破坏;,ATmega16芯片已经对32.768kHz的晶振进行了优化,加一个其它频率的外部时钟到TOSC1引脚可能会导致T/C2工作不正常;,在对TCNT2、OCR2和TCCR2寄存器进行写入时,ASSR寄存器的位2、1和0会自动置“1”。在ASSR寄存器的位2、1和0置“1”期间,不能对相应位所指的寄存器进行操作。,3.8位定时/计数器应用举例,T/C0作定时器,T/C2用作实时时钟,T/C0作定时器,应用课题2:使用定时器T/C0的内部时钟晶振,产生1ms中断,并扩展成1s定时信号,每秒钟使PA口的状态改变1次。,设计思想,定时器时间常数的计算:,系统时钟4.000MHz,64分频62.5kHz作为定时器计数脉冲频率。,定时计数器加1的时间为1/62.5=0.016ms,定时1ms,需要计数1/0.016=62.5。使用定时器CTC工作方式,比较值应置为62即0 x3E或63即0 x63。1ms的定时有误差。,从1ms到1s:,1s=1000ms,在1ms的中断程序中设计一计数器jishu,当jishu=1000时,时间即为1s。,程序设计与分析,#include#pragmainterrupt_handlerzhixing:20intjishu=0;voidzhixing(void)jishu+;if(jishu=1000)PORTA=PORTA;jishu=0;voidmain(void)PORTA=0 x00;DDRA=0 xFF;TCCR0=0 x0B;TCNT0=0 x00;OCR0=0 x3E;TIMSK=0 x02;SREG|=0 x80;while(1);,/应该定义成int,不能定义成char,/计数器jishu加1,/当jishu=1000,表明1s时间到,/按课题要求输出,/jishu清“0”,很重要,/定义PA口输出,/CTC模式,系统频率64分频,OC0引脚断开,/1ms定时的比较值,/T/C0比较匹配中断开放,/总中断开放SREG|=0 x80;,T/C2用作实时时钟,应用课题1:利用定时器T/C2的实时时钟晶振,产生1s中断,并在PD7引脚输出0.5Hz的方波。,T/C2的时钟源PC6(TOSC1)、PC7(TOSC2)的32.768kHz的晶振;32.768kHz的晶振128分频分频后的晶振频率为256Hz,周期为1/256秒,计录256个脉冲时,所需时间为1秒;32.768kHz的晶振256分频分频后的晶振频率为128Hz,周期为1/128秒,记录128个脉冲所需时间也正好为1秒。为什么将32.768kHz称为“手表晶振”或“实时时钟晶振”,T/C2为什么可用作“实时时钟RTCRealTimeClock”,其道理就在如此。,设计思想,使用定时器的比较匹配工作方式、计数频率256分频,比较匹配值应为128即0 x80;,引脚PD7为T/C2输出OC2,1s反转一次,输出波形频率为0.5Hz。OC2设置为T/C2比较匹配后触发。,程序设计与分析,#include#pragmainterrupt_handlerzhixing:4voidzhixing(void)voidmain(void)PORTD=0 x00;DDRD=0 xFF;TCCR2=0 x1E;ASSR=0 x08;TCNT2=0 x00;OCR2=0 x80;TIMSK=0 x80;SREG|=0 x80;while(1);,/定义PD口为输出,/定时器2比较匹配中断服务程序,/定时器2定时频率为外部32768HZ,/0 x1E=0b00011110,CTC模式,比较匹配后OC2触发,计数频率256分频,/比较匹配值为128,/T/C2比较匹配中断开放,/全局中断开放,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


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

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


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