您好,欢迎访问三七文档
11.定时器/计数器定时器/计数器原理C8051F020/1/2/3内部有5个计数器/定时器:T0-T4这些计数器/定时器可以用于对外部事件计数、产生周期性的中断请求或测量时间间隔(在启动条件上做文章)。定时器0和定时器1类似,有4种工作方式。定时器2、3和定时器4类似,有3种工作方式。11.1.1方式0:13位计数器/定时器(MCS51为兼容MCS48,基本没用了。使用很复杂,所有功能方式1都能实现,而且方式1功能强于方式0,因此不脑残不会使用方式0。)11.1.2方式1:16位计数器/定时器Timer0、Timer116位计数体由TLx、THx构成(x=0,1)TCLK处来一个脉冲加1。Timer0、Timer1方式1字节地址不连续,在C语言中不能用SFR16定义字节地址不连续,在C语言中不能用SFR16定义作为16位定时器,计到0xFFFF(全1)后再加1将溢出。溢出时,计数值回到0x0000,定时器x溢出标志TFx被硬件自动置1。TFx时一个中断源。启动(开门)条件:来脉冲开/关门C/Tx位选择计数器/定时器的时钟源。清除C/Tx选择系统时钟作为定时器的输入(频率固定,此时为定时器)。当C/Tx被设置为逻辑1时,出现在所选输入引脚(Tx)上的负跳变(对5个定时器都有效)使定时器寄存器加1(频率不定,此时为计数器)。脉冲来源:定时器时:输入脉冲可以在预分频时钟和SYSCLK中选择,由定时器方式选择位(TxM)选择。预分频时钟是主频的若干分频,由(SCA1-SCA0)决定。脉冲来源:CKCON:时钟控制寄存器位4:T1M:定时器1时钟选择。位3:T0M:定时器0时钟选择。见上图CKCON:时钟控制寄存器TCON:定时器控制寄存器位7:TF1:定时器1溢出标志当定时器1溢出时由硬件置位。该位可以用软件清0,但当CPU转向定时器1中断服务程序时该位被自动清0。0:未检测到定时器1溢出。1:定时器1发生溢出。位6:TR1:定时器1运行控制0:定时器1禁止。1:定时器1允许。位5,位4与位7,位6类似见上页图位3:IE1:外部中断1电平触发,INT1=低电平,IE1=1,否则清零,当CPU转向外部中断1中断服务程序时该位必须由软件清0;边沿触发,INT1下降沿,IE1=1,否则清零,当CPU转向外部中断1中断服务程序时该位被自动清0位2:IT1:中断1类型选择该位选择/INT1信号检测下降沿中断还是检测低电平有效中断。0:/INT1为电平触发1:/INT1为边沿触发位1,位0与位3,位2类似TCON:定时器控制寄存器见中断那章TMOD:定时器方式寄存器位7:GATE1:定时器1门控位0:当TR1=1时定时器1被允许,与/INT1的逻辑电平无关。1:只有当TR1=1并且/INT1=逻辑1时定时器1被允许。见上图位6:C/T1:计数器/定时器1功能选择。0:定时器功能:定时器1由T1M位定义的时钟加1。1:计数器功能:定时器1由外部输入引脚(T1)负跳变加1。TMOD:定时器方式寄存器见上图位5-4:T1M1-T1M0:定时器1方式选择这些位选择定时器1的工作方式。位3-0与位7-2类似TMOD:定时器方式寄存器在使能定时器之前,应对定时器寄存器赋初值(例如0000H)。GATEx有什么用?可以测量从GATEx引脚上输入信号高电平的宽度。Timer0、1方式2:8位自动重装载的计数器/定时器8位计数体溢出后自动重装目的:老51中仅有T0、T1。有时不够使,把T0掰成2个8位定时器。在新51中不建议使用,考试不要求。Timer0方式3:两个8位计数器/定时器借用了TR1、TF1定时器1在方式3时停止运行(如果T0工作在方式3,T1可工作在方式0,1,2,此时T1产生串口波特率,不用TR1、TF1)。定时溢出频率是输入脉冲频率的若干分频若干=(2^n–定时器初值)定时器2、3、4是一个16位的计数器/定时器。每个定时器由两个8位的SFR组成:TMRnL(低字节)和TMRnH(高字节),其中n=2、3或4。Timer2、3、4字节地址相邻,可以用SFR16定义Timer2、3、4Timer2、3、4有三种工作方式:捕捉方式自动重装载方式电平切换输出方式(定时器3没有该功能)什么是捕捉:当外部某事件发生时,计数体捕捉寄存器,目的是记录下发生外部时间的时刻,并产生中断。什么是重装载:溢出或满足一定条件时,计数体捕捉寄存器,目的是使计数体重新获得初值。什么是电平切换输出:当定时器溢出或满足一定条件时,硬件自动(不需要软件干预)将某一个引脚的电平翻转。Timer2、3、4字节地址相邻,可以用SFR16定义见下页图Timer2、3、4Timer2、3、4定时器2、3共享T2引脚定时器2、3共享T2EX引脚Timer2、3、4可以加或减计数DCEN位TnEX引脚计数方式0X加11加10减注意:当DCEN=1时,TnEX输入的其它功能(即捕捉和重装载)不可用。当DCEN=1时,TnEX只控制定时器的计数方向。注意:如果要使用该功能,TnEX必须在数字交叉开关中被使能并且被配置为数字输入。启动条件输入脉冲选择通过置1CP/RLn选择带捕捉的计数器/定时器方式;捕捉方式加计数(DCEN=0)没有捕捉事件产生:当16位的计数体加1后发生上溢时,定时器溢出标志TFn被硬件置‘1’,TFn是一个中断源(进入中断不自动清除)。捕捉方式加计数(DCEN=0)TnEX作捕捉用捕捉方式加计数(DCEN=0)当定时器外部使能位EXENn被置1时,TnEX输入引脚(定时器3用EXEN2)上的负跳变(有捕捉事件产生)导致:①计数体捕捉寄存器(捕捉)。②EXFn被置1,EXFn是一个中断源(进入中断后不自动清除)TnEX作捕捉用捕捉方式加计数(DCEN=1,TnEX=1)TnEX不作捕捉用不可能有捕捉事件产生。当16位的计数体加1后发生上溢时,定时器溢出标志TFn被硬件置‘1’,TFn是一个中断源(进入中断不自动清除)。减计数时不可能有捕捉事件产生:在发生从0x0000到0xFFFF的变化时产生下溢。与上溢时一样,溢出标志TFn被置‘1’。该位不能由硬件自动清0,必须用软件清0。捕捉方式减计数(DCEN=1,TnEX=0)TnEX不作捕捉用总结:捕捉方式中当DCEN=0时,是带捕捉功能的加定时器当DCEN=1时,是不带捕捉功能的加/减定时器TMRnCN:定时器2、3和4控制寄存器见上页图TMRnCN:定时器2、3和4控制寄存器见前页图TMRnCN:定时器2、3和4控制寄存器见下页图TMRnCF:定时器2、3和4配置寄存器见上页图TMRnCF:定时器2、3和4配置寄存器见前页图自动重装载方式在自动重装载方式,计数器/定时器可以被配置为向上计数或向下计数,并在发生上溢/下溢事件时产生中断。重新装载:满足一定条件时捕捉寄存器计数体或0xFFFF计数体启动条件时钟选择CP/RL=0则自动重装载自动重装载方式加计数(DCEN=0)不来外部事件:当向上计数并发生上溢时,导致:①TFn置‘1’并产生中断请求(不自动清除,以后不说)②进行重装载(捕捉寄存器计数体),定时器重新开始计数。③EXFn电平切换(0则变1,1则变0),可以认为时定时器的第17位。此时EXFn不是一个中断源。TnEX作重装填来外部事件:当定时器的外部使能位(EXENn)被置‘1’(TnEX能进来)时,TnEX引脚上的下降沿将导致:①定时器重装载(捕捉寄存器计数体)。②EXFn电平切换(0则变1,1则变0),此时EXFn不是中断源。自动重装载方式加计数(DCEN=0)TnEX作重装填自动重装载方式加计数(DCEN=1,TnEX=1)不可能来外部事件:当向上计数并发生溢出时,导致:①TFn置‘1’并产生中断请求②进行重装载(捕捉寄存器计数体),定时器重新开始计数。③EXFn电平切换(0则变1,1则变0),此时EXFn不是一个中断源TnEX不作重装填自动重装载方式减计数(DCEN=1,TnEX=0)TnEX不作重装填减计数:当计数体(在变化)=捕捉寄存器时,是一次下溢事件,将导致:①TFn置1,产生中断请求。②重装载:0xFFFF计数体,定时器自动重新开始计数。③EXFn电平切换(0则变1,1则变0),此时EXFn不是一个中断源。不可能产生重填事件自动重装载方式均适用仅适用于定时器模式定时器模式(不使用Tn引脚输入脉冲)下,无论加/减计数,当计数体溢出(上下均可)时,电平翻转逻辑将电平翻转。如果TnOE为1,则Tn引脚电平翻转。因为Timer3没有T3引脚,所以不能工作在电平翻转模式。TOGn位读时,反应“电平翻转逻辑”当前时高电平还是低电平TOGn位写时,设置“电平翻转逻辑”输出。自动重装载方式均适用电平切换输出方式(仅限T2、T4)定时器2和定时器4具有切换对应输出引脚(T2或T4)电平的能力,可以产生50%占空比的输出波形。定时器每发生一次上溢或下溢(取决于定时器是向上计数还是向下计数)时,对应引脚的输出状态发生改变。切换频率由定时器的时钟源和RCAPnH:RCAPnL中的值决定。电平切换输出方式(仅限T2、T4)当向上计数时,定时器的自动重装载值为RCAPnH:RCAPnL,上溢发生在定时器的值从0xFFFF变化到重载值时。当向下计数时,定时器的自动重装载值为0xFFFF,下溢发生在计数体的值与RCAPnH:RCAPnL中的值相等时。电平切换输出方式(仅限T2、T4)为了输出一个方波,要求:CP/RL=0(重装方式);TnOE设置为‘1’来使能定时器输出功能。电平切换输出方式(仅限T2、T4)加计数时从RCAPnFFFF减计数时从FFFFRCAPn。第9章定时器内容结束谢谢!
本文标题:09_定时器
链接地址:https://www.777doc.com/doc-3053433 .html