




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,定时/计数器资源介绍与应用,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和TCNT2寄存器进行写入时,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;#asm(“sei”)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比较匹配中断开放,/全局中断开放,在TCNT0与OCR0匹配的同时,置比较匹配标志位OCF0为“1”。标志位OCF0可以用于申请中断。一旦MCU响应比较匹配中断,用户在中断服务程序中可以修改OCR0的值。,PWM输出原理与方法(1),PWMPulse-WidthModulation脉冲宽度调制,PWM输出的一般形式:,t,PWM波形的特点:,波形频率恒定,其占空比D可以改变。,定义Dt/为占空比,PWM输出原理与方法(2),计数器,比值寄存器,比较器,S1,S2,溢出标志TF,PWM输出,时钟源,当定时器处于PWM工作方式时,计数器以一定的频率上、下计数:从0 x000 xFF,然后反向从0 xFF0 x00,如此反复。,当计数器中的数值与比值寄存器中的数值相等时,比较器按PWM预定的规律输出脉冲波。,计数器值,比较值,比较值改变,t1,t2,当比较值改变时D1=t1/、D2=t2/随之改变,周期不变,PWM模式下的T/C0、T/C2,当TCCR0、TCCR2设置为PWM模式(WGMn1、WGMn0=0、1)后,T/C0、T/C2以及输出比较寄存器OCR0、OCR2分别组成8位非对称(Glitch-free)、相位可调(PhaseCorrect)的脉宽调制PWM,输出引脚分别为OC0、OC2。,在PWM模式下,OC0、OC2引脚的触发动作由COMn0、COMn1设定。,16位定时/计数器T/C1,如同8位的定时/计数器,ATmega16的16位定时/计数器T/C1用户也是可以控制的:,TCCR1AT/C1控制寄存器ATCCR1BT/C1控制寄存器BTCNT1H和TCNT1LT/C1计数寄存器OCR1AH和OCR1ALT/C1输出比较寄存器AOCR1BH和OCR1BLT/C1输出比较寄存器BICR1H和ICR1LT/C1输入捕获寄存器,T/C1控制寄存器ATCCR1A,COM1B1,COM1B0,FOC1A,FOC1B,WGM11,WGM10,COM1A1,COM1A0,位76:T/C1比较匹配A输出模式。这两位决定了T/C1比较匹配发生时输出引脚OC1A的输出行为。,位54:T/C1比较匹配B输出模式。这两位决定了T/C1比较匹配发生时输出引脚OC1B的输出行为。,位3:强制输出比较A。,位2:强制输出比较B。,位10:波形发生模式。该两位与WGM13、WGM12(位于TCCR1B)相组合,用于控制T/C1的计数和工作方式。,T/C1控制寄存器BTCCR1B,WGM13,WGM12,CS12,CS11,CS10,ICNC1,ICES1,位7:输入捕获噪声抑制。当该位置“1”时,捕获信号要进行连续4次的采样,只有4次采样值都有效时,输入捕获标志才置位。,位6:输入捕获触发方式选择。当该位置“0”时,捕获信号下降沿有效;当该位置“1”时,捕获信号上升沿有效。,位43:波形发生模式。该两位与WGM11、WGM10(位于TCCR1A)相组合,用于控制T/C1的计数和工作方式。,位20:T/C1时钟源选择。,位5:保留。,T/C1计数寄存器TCNT1H和TCNT1L,MSB,LSB,TCNT1H和TCNT1L组成T/C1的16位计数寄存器TCNT1,它是向上计数的计数器(加法计数器)或上/下计数的计数器(在PWM模式下)。若T/C1被置初值,则T/C1将在预置初值的基础上计数。,T/C1输出比较寄存器AOCR1AH和OCR1AL,MSB,LSB,T/C1输出比较寄存器BOCR1BH和OCR1BL,OCR1AH和OCR1AL(OCR1BH和OCR1BL)组成16位输出比较寄存器OCR1A(OCR1B)。该寄存器中的16位数据用于同TCNT1寄存器中的计数值进行连续的匹配比较。一旦TCNT1的计数值与OCR1A(OCR1B)的数据匹配相等,则比较匹配发生。用软件的写操作将TCNT1与OCR1A、OCR1B设置为相等,不会引发比较匹配。比较匹配发生后,将置位相应的中断请求标志OCF1A和OCF1B。,T/C1输入捕获寄存器ICR1H和ICR1L,MSB,LSB,ICR1H和ICR1L组成16位的输入捕获寄存器ICR1。按照ICES1的设定,外部输入捕获引脚ICP发生上跳变或下跳变时,计数器TCNT1中的值写入寄存器ICR1中,同时输入捕获中断标志ICF1将置“1”。,PWM模式下的T/C1,如同T/C0、2,当T/C1选择PWM模式后,T/C1和OCR1A/OCR1B共同组成两个8、9或10位相位可调的PWM,两个8、9或10位的快速PWM,两个相位频率可调的PWM。此时,T/C1作为上/下计数器(或向上计数的计数器快速PWM),从0计数到TOP,然后反向计数到0(或从0计数到TOP,然后再从0计数到TOP)。当计数器中的数值与OCR1A/OCR1B的数值一致时,OC1A/OC1B按照COM1A0/COM1A1和COM1B0/COM1B1的设置动作。,4.16位定时/计数器1应用举例,脉冲频率测量计数法,脉冲频率测量计数法,应用课题:将定时器T/C0作为方波发生器,产生某一频率的方波(高频),并测量其频率。,设计思想,脉冲频率的测量方法,(1)计单位时间内脉冲的个数;,(2)测一个脉冲的周期,周期的倒数即为其频率。,本课题测量的实现,T0为方波发生器,输出引脚OC0;,T1工作于计数方式,记录T0输出的方波数;,T2为定时器,定时时间1毫秒,并扩展成1秒。显然,1秒时间内,T1的计数值即为T0输出方波的频率。,PORTB=0X00;DDRB=0X08;/PB3(OC0)输出TCCR0=0X1B;/T/C0方波发生器,CTC模式,比较匹配后OC0触发,方波频率244.14HzTCNT0=0X00;OCR0=0X80;ASSR=0X00;/T/C2定时1ms,CTC模式、计数频率为系统频率32分频、比
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 邮储银行2025威海市秋招笔试性格测试题专练及答案
- 工商银行2025三沙市数据分析师笔试题及答案
- 2025年3D打印技术的材料
- 工商银行2025忻州市信息科技岗笔试题及答案
- 交通银行2025沈阳市数据分析师笔试题及答案
- 交通银行2025四平市笔试行测高频题及答案
- 2025行业全球市场发展策略
- 2025数字乡村建设与行业发展报告
- 中国银行2025七台河市秋招笔试英语题专练及答案
- 建设银行2025太原市小语种岗笔试题及答案
- 廉租房承包物业合同范本
- 文学社教学课件
- 中小学心理健康c证考试试题及答案
- 污水厂工艺知识培训课件
- 2025年中学教师资格证考试(科目二)教育知识与能力冲刺试卷
- 水利水电工程单元工程施工质量验收标准第8部分:安全监测工程
- 2025年黑龙江全国导游人员资格考试(全国导游基础知识、地方导游基础知识)历年参考题库含答案详解(5套)
- 分级护理落实率
- 中小企业风险管理(新)
- 幼儿园改造提升项目可行性研究报告
- 2025年贵州省行政执法人员考试题库及答案
评论
0/150
提交评论