CF单片机的定时器计数器分析.pptx
《CF单片机的定时器计数器分析.pptx》由会员分享,可在线阅读,更多相关《CF单片机的定时器计数器分析.pptx(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、10.1 C8051F020定时器/计数器概述10.2 定时器的一般结构和工作原理10.3 定时器/计数器T0和T110.4 定时器/计数器T2和T4第1页/共47页10.1C8051F020定时器/计数器概述定时操作:定时采样,定时扫描,定时中断测量外部信号:累加统计,测量周期等定时输出:PWM等(1)定时器/计数器的功用 C8051F020内部有5 个定时器/计数器:其中三个16 位定时器/计数器与标准8051 中 的计数器/定时器兼容,还有两个16 位自动重装载定时器可用于ADC、SMBus、UART1 或作 为通用定时器使用。(2)C8051F020单片机定时器/计数器资源第2页/共4
2、7页C8051F020定时器/计数器的工作方式 第3页/共47页10.2 定时器的一般结构和工作原理方式选择计数器定时器启/停控制执行机构加1计数器:如T0T4溢出标志查询中断第4页/共47页实质是计数器,脉冲每一次下降沿,计数寄存器数值将加1。计数的脉冲如果来源于单片机内部的晶振,由于其周期极为准确,这时称为定时器。计数的脉冲如果来源于单片机的引脚,由于其周期一般不确定,可表示事件发生,这时称为计数器。第5页/共47页 外部输入信号的下降沿触发计数。计数器在每个时钟周期或时钟周期的12分频采样外部输入信号,若一个周期的采样值为1,下一个周期的采样值为0,则计数器加1,故识别一个从1到0的跳变
3、需2个周期。所以,对外部输入信号最高的计数速率是时钟频率的1/2或1/24(取决于是否12分频)。同时,外部输入信号的高电平与低电平保持时间均需大于一个周期。(1)计数方式第6页/共47页(2)定时方式 每一个计数周期计数器加1,直至计满溢出,产生中断请求。对于一个N位的加1计数器,若计数周期Tclock是已知的,则从初值a开始加1计数至溢出所占用的时间为:则,最大定时时间:式中n由工作方式决定,Tclock为定时器/计数器的计数脉冲周期,由C8051F的系统时钟或系统时钟经12分频提供,是否需要12分频取决于对时钟控制寄存器CKCON的设定。第7页/共47页时钟控制寄存器CKCON位7:未用
4、。读=0b,写=忽略。位6-3:T4M-T0M:T4到T0的时钟选择(不包含T3,T3的时 钟选择由T3控制寄存器TMR3CN的第0位T3XCLK决定)。0:定时器按系统时钟的12分频计数 1:定时器按系统时钟频率计数位2-0:保留。读=000b,写入值必须是000b。第8页/共47页10.3 定时器/计数器T0和T1对定时器0 和定时器1 的访问和控制是通过SFR 实现的。定时器/计数器控制寄存器(TCON)用于允许/禁止定时器0 和定时器1 以及指示它们的状态.定时器/计数器方式寄存器(TMOD)中的方式选择位M1-M0 来选择工作方式。T0和T1都是16位的加1计数器,访问时以两个字节的
5、形式出现:TH0+TL0、TH1+TL1第9页/共47页1、计数寄存器TH与TL2、定时器控制寄存器TCON(88H)TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0TRx:Timer0/1运行控制位。=1 启动计数;=0 停止计数10.3.1 与定时器有关的特殊功能寄存器TFx:Timer0/1计数溢出标志位。=1 计数溢出;=0 计数未满TFx标志位可用于申请中断或供CPU查询。在进入中断服务程序时会自动清零;但在查询方式时必须软件清零。第10页/共47页3、定时器方式寄存器TMOD(89H)T0M0T0M1C/T0GATE0T1M0T1M1C/T1GATE1TMOD字节地址
6、89H D7 D6 D5 D4 D3 D2 D1 D0控制T0控制T1方式选择00:方式001:方式110:方式211:方式3定时/计数选择0:定时器1:计数器门控位第11页/共47页定时器T0、T1的工作方式第12页/共47页(1)工作方式1:16位的定时/计数器10.3.2 T0和T1的工作方式和电路结构16位计数器启/停控制GATE0=0时:TR0=1 启动计数GATE0=1时:TR0=1且INT0=1启动计数时基选择定时/计数选择第13页/共47页方式1:定时初值/定时时间计算若T0的计数初值为a,则T0从初值a加1计数至溢出所需的时间为:式中fOSC为系统时钟频率,T0M为T0的时钟
7、选择位。第14页/共47页 THx/TLx赋初值:THx赋高8位,TLx赋低8位工作方式1 的编程要点:TMOD选方式:写“M1,M0”=01b选方式1 若不用门控位,直接用软件写TRx控制启/停 若使用门控位,先置位TRx,然后由INTx端 的高/低电平来控制其启/停 若要允许中断,还须先置位ETx、EA等中断 允许控制位,并编写中断服务程序 若不用中断,可查询“计数溢出标志TFx”的方式工作,但溢出标志TFx须软件清0第15页/共47页2、工作方式2:8 位自动重装的定时/计数器用于需要重复定时和计数的场合。最大计数值:256(28)第16页/共47页 THx/TLx赋相同初值 在TLx计
8、数达到0FFH 再加“1”时,TL0 将溢出,“TFx”置1去申请中断,同时THx中的 值自动重装(Copy)进TLx工作方式 2 的编程:TMOD寄存器选方式:写“M1,M0”=10 b 选中方式2 其他用法与各种方式1完全相同第17页/共47页3、工作方式3 方式3只适用于定时器0。此时,定时器0的TH0、TL0成为两个独立的计数器。TL0可作为定时器/计数器,占用定时器0在TCON和TMOD中的控制位和标志位。TH0只能作为定时器使用,占用定时器1在TCON和TMOD中的控制位和标志位。第18页/共47页10.3.3 T0和T1的编程 确定定时器/计数器的工作方式-初始化TMOD 根据需
9、要初始化CKCON 计算定时器/计数器的计数初值,装载TH和TL寄存器。中断设置(IE、IP)启动定时/计数器(TCON)1、初始化步骤第19页/共47页2、计数初值的计算 初值a=MC a为计数初值初值为计数器的模,与工作方式有关,C为所需要的计数值最大定时时间(设 fOSC12MHz、T0M=0):方式0:TMAX=2131s=8.192ms方式1:TMAX=2161s=65.536ms方式2、3:TMAX=28 1s=0.256ms第20页/共47页10.3.4 定时器/计数器的应用实例例1 若fOSC=12MHz,用系统时钟的十二分频作为计数源,请计算定时2ms所需的初值,并给出初始化
10、程序。解:(1)工作方式的选择 fOSC=12MHz,用系统时钟的十二分频作为计数源时,方式2、3的最大定时时间只有0.256ms,因此要想获得2ms的定时时间,必须用方式0或方式1。(2)定时器初值计算方式0a=2132ms/1us=6192=1830H 即:TH0=0C1H;TL0=10H(高三位为0)方式1a=2162ms/1us=63536=F830H 即:TH0=0F8H;TL0=30H第21页/共47页(3)初始化程序void T0_mode1_2ms_init(void)CKCON&=0 xf7;/T0计数源选择系统脉冲的12分频 TMOD=0 x01;/T0,方式1 TH0=0
11、 xf8;/初值 TL0=0 x30;TCON|=0 x10;/启动T0,可用TR0=1代替 第22页/共47页n给定时器赋初值的语句也可以采用如下方法:TH0=(65536-2000)/256;TL0=(65536-2000)%256;或 TH0=-2000/256;TL0=-2000%256;第23页/共47页例2 若fOSC=12MHz,T1工作于方式1,产生50ms的定时中断,TF1为高级中断源。试编写主程序和中断服务程序,使P1.0产生周期为1s的方波。解:让P1.0每500ms取反一次即可实现。定时器的单次定时时间不可能达到500ms,可让定时器多次定时产生500ms的定时时间,如
12、让T1工作在方式1,单次定时时间为50ms,那么T1中断10次就是500ms的时间。(1)定时器初值计算a=21650ms/1us=63536-50000=15536=3CB0H即:TH0=0 x3c;TL0=0 xb0第24页/共47页(2)初始化程序 包括T1初始化和中断系统初始化,主要是对IP、IE、CKCON、TCON、TMOD的相应位进行正确的设置,并将时间常数送入T1。本例中将初始化操作放在主程序中完成,当程序规模较大时,应编写单独的初始化程序,以利于程序的模块化设计。(3)中断服务程序 中断服务程序除了完成要求的方波产生这一工作之外,还要注意将时间常数重新送入T1中,为下一次产生
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CF 单片机 定时器 计数器 分析
限制150内