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

    C定时器计数器.pptx

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

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

    C定时器计数器.pptx

    教学内容 MCS-51的中断系统的中断系统 MCS-51的定时器的定时器/计数器计数器 教学目标掌握中断技术的应用掌握中断技术的应用掌握定时器掌握定时器/计数器的应用计数器的应用本任务本任务第1页/共45页本讲主要内容本讲主要内容定时器定时器/计数器的结构及工作原理计数器的结构及工作原理1方式方式寄存器和控制寄存器寄存器和控制寄存器2定时器定时器/计数器的工作方式计数器的工作方式3定时器定时器/计数器应用举例计数器应用举例4第2页/共45页控制系统中实现定时控制系统中实现定时1、软件定时延时函数2、硬件定时例如:5553、可编程定时器例如:8253 DS1302MCSMCS5151子系列:子系列:T0T0、T1T1MCSMCS5252子系列:子系列:T0T0、T1T1、T2T2v可实现定时、计数功能,有利于实时控制可实现定时、计数功能,有利于实时控制v不占用不占用CPU时间时间v定时精度高,修改方便定时精度高,修改方便AT89SAT89S系列有看门狗系列有看门狗计数器计数器(WatchDog Timer)(WatchDog Timer)第3页/共45页一种计数装置计数内部的时钟脉冲定时器计数外部的脉冲计数器在应用时可采用中断方式,也可采用查询方式8051的定时器的定时器/计数器计数器(timer/counter)第4页/共45页一、一、定时定时/计数器的结构及工作原理计数器的结构及工作原理1、定时/计数器的结构微微处处理理器器TH1TL1TH0TL0TCONTMOD工作工作方式方式工作工作方式方式T1T0P3.5(T1)P3.4(T0)第5页/共45页 结构组成部分结构组成部分 6两个两个16位的二进制定时位的二进制定时/计数器计数器T0、T1T0/T1分别由两个分别由两个8位的计数器组成,均属位的计数器组成,均属SFR寄存器寄存器T0由由TH0、TL0构成,字节地址为构成,字节地址为8CH、8AHT1由由TH1、TL1构成,字节地址为构成,字节地址为8DH、8BH6相关的控制寄存器相关的控制寄存器方式寄存器方式寄存器TMOD控制寄存器控制寄存器TCON第6页/共45页2 2、定时定时/计数器的工作原理计数器的工作原理定时功能定时功能 对对片内片内机器周期进行计数,即每个机器周期机器周期进行计数,即每个机器周期产生一产生一 个计数脉冲,计数加个计数脉冲,计数加1。实时控制、实时采样、定时控制等实时控制、实时采样、定时控制等计数功能计数功能 对对片外片外从从T0(P3.4)、)、T1(P3.5)引脚输入的外)引脚输入的外部脉冲信号进行计数,下降沿计数加部脉冲信号进行计数,下降沿计数加1。计数频率为。计数频率为晶振频率的晶振频率的1/24生产线上产品计数、检测电机转速等功能生产线上产品计数、检测电机转速等功能振荡器振荡器12 加加 1计数器计数器TFx申请申请中断中断TX端端C/T=0C/T=1控制信号控制信号TRx第7页/共45页定时定时/计数器初值预置计数器初值预置初值X的计算方法 设定时器/计数器最大值为M,计数值为N,初值为X,晶振频率fosc,则计数器初始值:计数器初始值:XMN定时器初始值:定时器初始值:XM定时时间定时时间/Tcy问问1 1:要要求求检检测测到到100100个个脉脉冲冲,发发中中断断请请求求,如如何设置初值?何设置初值?问问2:2:定定时时器器/计计数数器器为为8 8位位加加1 1计计数数器器,要要求求每每隔隔0.1ms0.1ms,发发一一次次中中断断请请求求(机机器器周周期期1us),1us),如何设置初值?如何设置初值?定时功能,初值定时功能,初值156156计数功能,初值计数功能,初值156156第8页/共45页二、二、方式寄存器和控制寄存器方式寄存器和控制寄存器 1、方式控制寄存器TMODSFR寄存器,地址寄存器,地址89H设定设定T0、T1的工作方式的工作方式只能字节寻址只能字节寻址GATEM1 M0GATEM1M0 Timer1 Timer0定时定时/计数模式选择位计数模式选择位功能选择位功能选择位门控位门控位第9页/共45页定时器工作方式选择定时器工作方式选择M1和M0工作方式选择位 M1 M0方式方式说明说明0 0013位计数器(位计数器(THTH的高的高8 8位和位和TLTL的低的低5 5位位)0 1 116位计数器位计数器 1 0 2自动重装入初值的自动重装入初值的8 8位计数器位计数器 1 1 3定时器定时器0 0:分成两个独立的:分成两个独立的8 8位计数器位计数器定时器定时器1 1:停止计数停止计数第10页/共45页功能选择位和门控位功能选择位和门控位C/定时定时/计数功能选择位计数功能选择位 为为“0”,定时器,定时器 为为“1”,计数器,计数器GATE:门控位,定义:门控位,定义T1/T0的启动方式的启动方式 为为0 0,非门控方式,非门控方式(内部启动内部启动):TR0/1=1TR0/1=1,启动定时器工作,启动定时器工作 TR0/1=0TR0/1=0,停止定时器工作,停止定时器工作 为为1 1,门控方式,门控方式(外部启动外部启动)TR0/1=1 TR0/1=1且引脚且引脚INT0/1INT0/1 =1=1才启动才启动第11页/共45页2、状态控制寄存器、状态控制寄存器TCONSFR寄存器,地址寄存器,地址88H即参与定时控制又参与中断控制即参与定时控制又参与中断控制与定时控制相关的有与定时控制相关的有4位位TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0&TF1/TF0:当T1/T0计数溢出时,该位置1&TR1/TR0:T1/T0运行控制位。置1:启动T1/T0二、二、方式寄存器和控制寄存器方式寄存器和控制寄存器 第12页/共45页1、工作方式0 M1M0=?作作定定时时器器:TMOD=?作作计计数数器器:TMOD=?三、三、定时器定时器/计数器工作方式计数器工作方式 00000000=0 x0000000100=0 x0413位计数器位计数器 TH:8位位 TL:低:低5位,高位,高3位不用位不用00第13页/共45页方式方式0的工作原理的工作原理第14页/共45页定时器定时器/计数器初始化编程计数器初始化编程定时器定时器/计数器有两种应用方式:计数器有两种应用方式:1.设定工作方式(对TMOD写工作方式控制字)2.装入初值(TH0/TL0或TH1/TL1)3.启动定时器/计数器(置位TR0/TR1)4.中断设定(置位ET0/ET1、EA、IP)5.中断服务函数1.-3.同中断方式的1-34.判断定时器/计数器的标志位TF1/TF0为1或0,以决定程序流程中断方式中断方式查询方式查询方式第15页/共45页方式方式0的应用的应用计数初值计数初值最大计数值为最大计数值为213=8192定时时间:定时时间:T=(213-T0的初值)的初值)Tcy 计数个数:计数个数:C=213-T0的初值的初值 第16页/共45页方式方式0 0使用范例使用范例1 1解:1)TMOD初始化 2)计数初值 3)启动 4)中断?查询 例例1:已知单片机晶振频率:已知单片机晶振频率6MHz,利用,利用T0的方的方式式0在在P1.0引脚输出周期为引脚输出周期为500us的方波的方波计数初值计数初值=213-欲计数脉冲数欲计数脉冲数=213-T/Tcy=213-250/2=1F83H TH1=0 xfc,TL1=0 x03第17页/共45页中断方式程序清单中断方式程序清单#includesbit P10=P10;void main()TMOD=0;TH0=0 xfc;TL0=0X03;TR0=1;EA=1;ET0=1;while(1)void itr_timer0(void)interrupt 1P10=P10;TH0=0 xfc;TL0=0 x03;采采用用查查询询方方式式如何编程?如何编程?第18页/共45页方式方式0 0使用范例使用范例2 2例例2:单片机晶振频率:单片机晶振频率12MHz,利用,利用T1的方式的方式0实现实现1s延时,每隔延时,每隔1s时间时间P1.0引脚翻转一次引脚翻转一次#includesbit P10=P10;unsigned int c=200;void main()TMOD=0;TH1=0 x63;TL1=0X18;TR1=1;EA=1;ET1=1;while(1)void itr_timer1(void)interrupt 3c-;if(!c)c=200;P10=!P10;TH1=0 x63;TL1=0 x18;第19页/共45页2、工作方式1 M1M0=?作作定定时时器器:TMOD=?作作计计数数器器:TMOD=?三、三、定时器定时器/计数器工作方式计数器工作方式00000001=0 x0100000101=0 x0516位计数器位计数器 TH:8位位 TL:8位位01第20页/共45页16位计数器,逻辑结构框图如下:振荡器振荡器12TF0中断中断T0C/T=0C/T=1GATEINT0端端TR0 TH0(8位位)TL0(8位位)控制控制l&l&EAET0&2、工作方式、工作方式1三、三、定时器定时器/计数器工作方式计数器工作方式 第21页/共45页方式方式1 1使用范例使用范例例例1:已知单片机晶振频率:已知单片机晶振频率6MHz,利用,利用T0的方的方式式1在在P1.0引脚输出周期为引脚输出周期为500us的方波的方波例例2:单片机晶振频率:单片机晶振频率12MHz,利用,利用T1的方式的方式1实现实现1s延时,每隔延时,每隔1s时间时间P1.0引脚翻转一次引脚翻转一次第22页/共45页3、工作方式2 M1M0=?作作定定时时器器:TMOD=?作作计计数数器器:TMOD=?三、三、定时器定时器/计数器工作方式计数器工作方式 00000010=0 x0200000110=0 x06自动重装载的自动重装载的8位计数器位计数器 10问题:从图中可以看出问题:从图中可以看出来哪个寄存器是计数寄来哪个寄存器是计数寄存器,哪个寄存器始终存器,哪个寄存器始终存放的是计数初值?存放的是计数初值?第23页/共45页方式方式2使用范例使用范例某啤酒自动生产线,需要每生产某啤酒自动生产线,需要每生产12瓶执行装箱操作,瓶执行装箱操作,将生产出的啤酒自动装箱,用单片机实现该控制要求。将生产出的啤酒自动装箱,用单片机实现该控制要求。分析:如果啤酒生产线上装有传感装置,每检测一分析:如果啤酒生产线上装有传感装置,每检测一瓶啤酒就向单片机发送一个脉冲信号,使用计数功瓶啤酒就向单片机发送一个脉冲信号,使用计数功能就可实现该控制要求。选定用能就可实现该控制要求。选定用T1第24页/共45页方式方式2使用范例使用范例某啤酒自动生产线,需要每生产某啤酒自动生产线,需要每生产12瓶执行装箱操作,瓶执行装箱操作,将生产出的啤酒自动装箱,用单片机实现该控制要求。将生产出的啤酒自动装箱,用单片机实现该控制要求。1)TMOD初始化初始化2)计数初值)计数初值3)启动)启动4)中断初始化设置)中断初始化设置5)中断服务函数)中断服务函数TMOD0 x60;TH1=TL1=0 xf4;TR11;EA=1;ET1=1;void isr_time1(void)interrupt 3 源程序见下页第25页/共45页方式方式2 2使用范例使用范例#includesbit p37=P37;void main()TMOD=0 x60;TH1=0 xf4;TL1=0Xf4;TR1=1;EA=1;ET1=1;P37=1;while(1);/驱动电机转动的程序驱动电机转动的程序void isr_timer1(void)interrupt 3int i,time=600;P37=0;/驱动电机转动驱动电机转动while(time-)/假设装箱时间固定假设装箱时间固定for(i=500;i0;i-);P37=1;/装箱结束电机停止转动装箱结束电机停止转动第26页/共45页4、工作方式3 -只有T0有此工作方式 M1M0=?作定时器:作定时器:TMOD=?作计数器:作计数器:TMOD=?三、三、定时器定时器/计数器工作方式计数器工作方式 00000011=0 x0300000111=0 x07T0为为2个个8位计数器:位计数器:TH0,TL0T1停止计数,等价于执行了停止计数,等价于执行了TR1=0;11T0和和T1的设置和使用不同的设置和使用不同第27页/共45页4.工作方式工作方式3振荡器振荡器12TF1T1中断中断 TH0(8位位)TR1控制控制T0端端C/T=0C/T=1GATEINT0端端TR0振荡器振荡器12TF0T0中断中断 TL0(8位位)控制控制ll&EAET0仅作定时仅作定时器用器用!第28页/共45页T0两个8位的计数器PTL0:使用:使用T0原有控制资源原有控制资源(C/T、GATE、TR0、TF0、P3.4脚、脚、INT0脚,功能与方式脚,功能与方式0/1相同相同PTH0:占占用用T1的的TR1、TF1及及T1的的中中断断,只只能能对对片片内机器周期脉冲计数,内机器周期脉冲计数,作作8位定时器位定时器T0初值计算同方式24、工作方式、工作方式3第29页/共45页T0工作方式工作方式3时时T1的工作:的工作:T0方式3时,T1仍然可工作于方式02,C/控制位仍可使T1工作在定时器或计数器方式,只是由于其TR1、TF1被T0的TH0占用,因而没有计数溢出标志可供使用,计数溢出时只能将输出结果送至串行口,即用作串行口波特率发生器。T0工作在方式3时,T1可工作于方式2,因定时初值能自动恢复,用作波特率发生器更为合适。若要停止T1,只需送一个设其为方式3的方式字。4、工作方式、工作方式3第30页/共45页方式方式3使用范例使用范例例:已知系统晶振12MHz,试用定时器0的方式3实现1s的延时vTMOD初始化初始化v设置初值设置初值TH0作为定时器,定时时间作为定时器,定时时间250us;初值初值28250=06HTL0作为计数器,计数作为计数器,计数200次;次;初值初值28200=38Hv引进变量引进变量使使TL0计数满后该变量加计数满后该变量加1,直至,直至20则为则为1s第31页/共45页#includesbit P00=P00;sbit P34=P34;unsigned char count;void delay();main()TMOD=7;TH0=0 x06;TL0=0 x38;TR0=1;TR1=1;while(1)P00=P00;delay();void delay()count=0;while(count20)while(TF0=0)while(TF1=0);P34=0;TH0=6;TF1=0;P34=1;TL0=0 x38;TF0=0;count+;第32页/共45页案例案例6 以定时方式控制简单流水灯以定时方式控制简单流水灯 已知系统晶振6MHz,采用定时器T0的工作方式1实现延时,控制P0口的8只发光二极管以100ms的间隔循环点亮。第33页/共45页定时器定时器定时器定时器/计数器控制流水灯计数器控制流水灯计数器控制流水灯计数器控制流水灯定时器T0初值:定时时间:tmax=655362s=131.072,取100msT0 的 初值:=216-100000s/2s =15536=3CB0H TMOD=0000 0001B=01H 第34页/共45页#include#includevoid isr_time0(void);unsigned char cword=0 x01;void main()TMOD=1;TH0=-500008;TL0=-50000;TR0=1;EA=1;ET0=1;P0=cword;while(1);void isr_time0()interrupt 1 TH0=-500008;TL0=-50000;cword=_crol_(cword,1);P0=cword;第35页/共45页单片机控制流水灯单片机控制流水灯要求:要求:8只发光二极管以只发光二极管以1s间隔循环点亮。间隔循环点亮。已知:系统晶振为已知:系统晶振为6MHz。分析:分析:TCY?工作方式?工作方式0、1、2、3下定时时下定时时间最多为多少?能不能先定时一个较小的时间,间最多为多少?能不能先定时一个较小的时间,再循环适当的次数,从而实现再循环适当的次数,从而实现1s延时?延时?第36页/共45页单片机控制流水灯单片机控制流水灯void isr_time0()interrupt 1 TH0=0 x3c;TL0=0 xb0;count-;if(count=0)output=1;if(output!=0 xfe)output|=1;P1=output;count=10;#includeunsigned char count=10,output=0 xfe;void main()TMOD=1;TH0=0 x3c;TL0=0 xb0;TR0=1;EA=1;ET0=1;P1=output;while(1)第37页/共45页CKQQD11+5VUPDOWN830pF30pFT+5VR+5VSTARTOEABCD0D7IN0CLKADC0809P1P2P3.7EA+5VINT0INT1ALEP0P3.0P3.1XTAL1XTAL2VCCRST80C51220VM压缩机指示灯继电器直流电流220V指示灯10F1008.2kR8R888空调制冷系统案例空调制冷系统案例输出口启停压缩机输出口启停压缩机定时检测室内温度定时检测室内温度按键中断设温度按键中断设温度输出口显示温度输出口显示温度第38页/共45页练习练习定时器/计数器的工作方式通过()寄存器编程设定定时器/计数器1的中断号为()若晶振为6MHz,定时器/计数器最大的定时时间是()8位自动重装载的定时器/计数器工作在方式()单片机振荡频率为6MHz,定时器/计数器工作在方式1需要定时1ms,则定时器初值应为()第39页/共45页作业:作业:1、已知晶振为12MHz,试编程使8051的P1.0和P1.1分别输出周期为2ms和500ms的方波2、已知晶振为6MHz,试用T0作为外部计数器,编程实现每当计数到1000个脉冲,使T1开始2ms定时,定时时间到后,T0又开始计数,如此反复循环。第40页/共45页上机:上机:P98 工作单3-1(1)要求:带电路板及杜邦线第41页/共45页补充:补充:看门狗看门狗(watchdog)定时器定时器 1、作用 外界电磁场的干扰,造成单片机程序跑飞,陷入死循环,程序的正常运行被打断,整个系统停滞。“看门狗”可以对单片机运行状态进行实时监测。2、原理 系统运行后若启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。第43页/共45页补充:补充:看门狗看门狗(watchdog)定时器定时器 3、89S51的看门狗由一个14位定时器及WDTRST(地址为0 xA6)寄存器构成。预置状态为停用(disable)4、用法在头文件中增加:sfr WDTRST=0 xA6;初始化激活:WDTRST=0 x1E;WDTRST=0 xE1;/初始化看门狗 在WDT溢出前重置:WDTRST=0 x1E;WDTRST=0 xE1;/喂狗指令 第44页/共45页谢谢您的观看!第45页/共45页

    注意事项

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

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




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

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

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

    收起
    展开