欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    CF单片机的定时器计数器分析.pptx

    • 资源ID:77751013       资源大小:904.71KB        全文页数:47页
    • 资源格式: PPTX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    CF单片机的定时器计数器分析.pptx

    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页/共47页C8051F020定时器/计数器的工作方式 第3页/共47页10.2 定时器的一般结构和工作原理方式选择计数器定时器启/停控制执行机构加1计数器:如T0T4溢出标志查询中断第4页/共47页实质是计数器,脉冲每一次下降沿,计数寄存器数值将加1。计数的脉冲如果来源于单片机内部的晶振,由于其周期极为准确,这时称为定时器。计数的脉冲如果来源于单片机的引脚,由于其周期一般不确定,可表示事件发生,这时称为计数器。第5页/共47页 外部输入信号的下降沿触发计数。计数器在每个时钟周期或时钟周期的12分频采样外部输入信号,若一个周期的采样值为1,下一个周期的采样值为0,则计数器加1,故识别一个从1到0的跳变需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:未用。读=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计数器,访问时以两个字节的形式出现: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字节地址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的时钟选择位。第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计数达到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 根据需要初始化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所需的初值,并给出初始化程序。解:(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 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的定时时间,如让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中,为下一次产生中断作准备。第25页/共47页#include sbit P1_0=P10;int count=10;/10次T1中断为500msvoid main(void)WDTCN=0 xde;/关看门狗WDTCN=0 xad;XBR2=0 x40;/使能端口输出CKCON&=0 xef;/T1的计数源选择系统脉冲的12分频 TMOD=0 x10;/T1方式1 P1_0=0;TH1=0 x3c;/初值 TL1=0 xb0;IE|=0 x88;/允许T1中断 IP|=0 x08;/TF1中断为高级中断 TCON|=0 x20;/启动T1 while(1);/死循环,等待中断,产生方波主主 程程 序序第26页/共47页void Timer1_ISR(void)interrupt 3 TH1=0 x3c;/重装初值 TL1|=0 xb0;count-;/中断计数 if(count=0)/500ms到,重赋计数初值,P1.0取反 count=10;P1_0=!P1_0;中断服务程序中断服务程序问题:为什么用TL1|=0 xb0;而非TL1=0 xb0?第27页/共47页例3 在频率为12MHz 的标准51单片机上,在P1.0引脚上输出周期为2.5S,占空比为20的脉冲信号。中断次数加1次数高电平?次数周期?P1.0=0P1.0=1返回解:第28页/共47页#include sbit WAVE=P10;uchar period=250;uchar high=50;uchar overflow_count=0;void main(void)WDTCN=0 xde;/关看门狗WDTCN=0 xad;XBR2=0 x40;/使能端口输出CKCON&=0 xef;/T1的计数源选择系统脉冲的12分频TMOD=0 x10;/T1方式1WAVE=0;TH0=(65536 10000)/256;/初值 TL0=(65536 10000)%256;IE|=0 x88;/允许T1中断IP|=0 x08;/TF1中断为高级中断while(1);/死循环,等待中断,产生方波第29页/共47页void timer1_ISR(void)interrupt 1 TH0=(65536 10000)/256;TL0=(65536 10000)%256;if(+overflow_count=high)WAVE=0;else if(overflow_count=period)overflow_count=0;WAVE=1;中断服务程序中断服务程序第30页/共47页10.4 定时器/计数器T2和T4定时器/计数器T2 和T4的结构基本相同,具有三种工作方式:(1)T2用做UART0的波特率发生器 T4用做UART1的波特率发生器T2 和T4其主要区别在于:自动重装初值的16位定时器/计数器方式、带捕捉的16位定时器/计数器方式 波特率发生器方式10.4.1 概 述(2)T2可以用于启动ADC数据转换和触发DAC输出更新 T4可用于触发DAC输出更新第31页/共47页10.4.2 定时器/计数器T2的功能特点 T2为16位定时/计数器,由TL2(低字节)和TH2(高字节)组成。C/T2=0时作为定时器,系统时钟作为定时器的输入(由CKCON的T2M位指定不分频或12分频)。C/T2=1时作为计数器,T2输入引脚上的负跳变使计数器加“1”。T2还可以用于启动ADC数据转换。三种工作方式(由T2CON中的配置位选择):自动重装初值的16位定时器/计数器方式、带捕捉的16位定时器/计数器方式和波特率发生器方式。第32页/共47页T2控制寄存器T2CONCP/RL2C/T2TR2EXEN2TCLK0RCLK0EXF2TF2字节地址C8H D7 D6 D5 D4 D3 D2 D1 D0n位7(TF2):T2溢出标志位qT2溢出时由硬件置位。允许T2中断时,使CPU转向T2的中断服务程序。不能由硬件自动清0,必须用软件清0。qRCLK0或TCLK0为1时(波特率发生器方式),TF2不会被置1。n位6(EXF2):T2外部中断标志位qEXEN2为“1”时,当T2EX输入引脚发生负跳变时,由硬件置位。允许T2中断时,使CPU转向T2的中断服务程序。不能由硬件自动清0,必须用软件清0。第33页/共47页CP/RL2C/T2TR2EXEN2TCLK0RCLK0EXF2TF2字节地址C8H D7 D6 D5 D4 D3 D2 D1 D0n位5(RCLK0):UART0接收时钟选择标志位q0:T1溢出作为接收时钟。q1:T2溢出作为接收时钟。n位4(TCLK0):UART0发送时钟选择标志位q0:T1溢出作为发送时钟。q1:T2溢出作为发送时钟。n位3(EXEN2):T2外部允许标志位q0:T2EX上的负跳变被忽略。q1:T2EX上的负跳变导致一次捕捉或重载。n位2(TR2):T2启/停控制位q0:停止。q1:启动。第34页/共47页CP/RL2C/T2TR2EXEN2TCLK0RCLK0EXF2TF2字节地址C8H D7 D6 D5 D4 D3 D2 D1 D0n位1(C/T2):定时器/计数器功能选择位q0:定时器功能,由T2M(CKCON.5)定义的时钟加“1”。q1:计数器功能,由外部输入引脚(T2)的负跳变加“1”。n位0(CP/RL2):捕捉/重载选择位qEXEN2必须为1才能使T2EX上的负跳变能够被识别并触发捕捉和重载。当RCLK0或TCLK0为“1”时,该位被忽略,T2将工作在自动重装载方式。q0:T2溢出或T2EX上发生负跳变时将自动重装载q1:T2EX发生负跳变时捕捉。第35页/共47页第36页/共47页10.4.3 定时器/计数器T2的工作方式和电路结构(1)方式0:自动重装初值的16位定时器/计数器方式自动重装初值两中断标志为0时忽略T2EX负跳变,不产生EXF2中断第37页/共47页TH2、TL2构成16位加“1”计数器。RCAP2H、RCAP2L构成16位初值寄存器。EXEN2=1时,当T2EX上有负跳变或T2溢出时,将RCAP2H、RCAP2L中预置的初值自动重新装入TH2、TL2,T2重新开始计数,并置位中断标志EXF2或TF2,向CPU申请中断。EXEN2=0时,T2EX上的负跳变被忽略,只有当T2溢出时才重载初值并向CPU申请中断。第38页/共47页(2)方式1:带捕捉的16位定时器/计数器方式 RCLK0=0、TCLK0=0、CP/RL2=1时,T2工作在此方式。EXEN2=1时为允许捕捉方式。T2EX引脚上的负跳变将TH2、TL2的当前值捕捉到RCAP2H、RCAP2L寄存器,同时置EXF2=1,发出中断请求。EXEN2=0时为禁止捕捉,RCAP2H、RCAP2L不起作用,此时T2与T1、T0的方式1完全相同。即:C/T20时为16位定时器方式,C/T21时为16位计数器方式,计数溢出时TF21,发送中断请求信号。CP/RL2C/T2TR2EXEN2TCLK0RCLK0EXF2TF2字节地址C8H D7 D6 D5 D4 D3 D2 D1 D0第39页/共47页是否捕捉捕捉并产生EXF2中断带捕捉的16位定时器/计数器方式的电路结构第40页/共47页(3)方式2:波特率发生器方式 RCLK0或TCLK0置1时,T2工作于波特率发生器方式。与自动重装载方式相似。但不置位TF2,也不产生中断。溢出事件用作UART0的移位时钟输入。T2溢出可用于产生独立的发送或接收波特率,也可同时产生发送和接收波特率,取决于T2CON的设置。T2的计数源可以是系统时钟的二分频,也可以是T2引脚上的输入,取决与C/T2的设置。CP/RL2C/T2TR2EXEN2TCLK0RCLK0EXF2TF2字节地址C8H D7 D6 D5 D4 D3 D2 D1 D0第41页/共47页做UART0波特率发生器T1作UART0波特率发生器产生外部中断时基选择T2用做波特率发生器方式的电路结构第42页/共47页当选择系统时钟的二分频做计数源时,T2 为UART0提供的波特率可以用如下公式计算:当选择外部引脚T2上的输入作为时基时,T2为UART0提供的波特率可以用如下公式计算:波特率的计算第43页/共47页10.5 定时器/计数器T316位定时/计数器,由TMR3L(低字节)和TMR3H(高字节)组成 T3的时钟输入可以通过程序选择为外部振荡器的8分频、系统时钟或系统时钟的12分频。T3只有自动重装初值一种工作方式,初值保存在TMR3RLL(低字节)和TMR3RLH(高字节)两个SFR中,T3没有计数器方式。除作为通用定时/计数器使用外,T3还可以用于启动ADC数据转换、SMBus定时等。1.定时器T3的结构第44页/共47页时基选择仅此一种方式启动ADC定时器T3的电路结构第45页/共47页2.定时器T3控制寄存器TMR3CN 位7(TF3):T3溢出标志位溢出时置1,不能由硬件自动清0,必须用软件清0 位2(TR3):T3运行控制位 0:停止。1:启动。位1(T3M):T3时钟选择位 0:T3使用系统时钟的12分频。1:T3使用系统时钟。位0(T3XCLK):T3外部时钟选择位 0:由T3M定义。1:外部振荡器输入的8分频。T3XCLKT3MTR3-TF3字节地址C8H D7 D6 D5 D4 D3 D2 D1 D0第46页/共47页感谢您的观赏!第47页/共47页

    注意事项

    本文(CF单片机的定时器计数器分析.pptx)为本站会员(莉***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开