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

    单片机的定时计数器.pptx

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

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

    单片机的定时计数器.pptx

    8051单片机有2个16位的可编程定时/计数器:定时器0(T0)和定时器1(T1)。可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。可用于定时控制、延时、对外部事件计数和检测等场合。在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(定时器控制与中断方式控制寄存器TCON和方式控制寄存器TMOD)。第1页/共48页16位的定时/计数器分别由两个8位专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。其访问地址依次为8AH-8DH。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。启动第2页/共48页TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。当定时器工作在计数方式时,外部事件通过引脚T0(P3.4)和T1(P3.5)输入。启动第3页/共48页一一 定时定时/计数器的功能计数器的功能 在特殊功能寄存器在特殊功能寄存器TMODTMOD中,有一个控制位(中,有一个控制位(C CT T),分),分别用于控制定时别用于控制定时/计数器工作在计数器工作在定时器定时器方式还是方式还是计数器计数器方式。方式。1.定时功能-计数输入信号是内部时钟脉冲,每个机器周期计数器的值加1。2.计数功能-计数脉冲来自相应的外部输入引脚,T0为P3.4,T1为P3.5。定时/计数器的核心部件是二进制加1计数器(TH0、TL0或TH1、TL1)。第4页/共48页定时/计数器的工作原理加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡器输出脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。每来一个脉冲计数器加1,当加到计数器为全1时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断请求(定时/计数器中断允许时)。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。可见,由溢出时计数器的值减去计数初值才是加1计数器的计数值。第5页/共48页v设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t。v设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2s。第6页/共48页二、定时器计数器的特殊功能寄存器 与定时器计数器有关的特殊功能寄存器有:1 1定时器控制与中断触发方式控制寄存器定时器控制与中断触发方式控制寄存器TCONTCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0中断请求标志触发方式选择触发方式选择启动定时/计数器0 低电平低电平1 下降沿下降沿0 停止1 启动第7页/共48页二、定时器计数器的特殊功能寄存器 2工作方式控制寄存器TMODT1控制T0控制M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7GATE门控位C/T计数/定时选择M1 M0工作方式选择第8页/共48页二、定时器计数器的特殊功能寄存器 2工作方式控制寄存器TMODM0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7GATE门控位若GATE1,则T(T0或T1)计数器受引脚(或)和TR(TR0或TR1)共同控制。当和TR都是1时,T计数,否则T停止计数。若GATE0,则T0和T1不受INT0(或INTl)引脚控制而只受TR控制,此时,TR为1,T计数,TR为0,停止计数。可用于测量在INTx端出现的正脉冲的宽度。第9页/共48页二、定时器计数器的特殊功能寄存器 2工作方式控制寄存器TMODM0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7C/T计数/定时选择若C/0,则T0(或T1)为定时器方式,以内部振荡频率的1/12为计数信号;=1,为计数方式,以引脚T0(P3.4)和T1(P3.5)的脉冲为计数脉冲。若C/第10页/共48页 M1、M0工作模式选择位。工作模式选择位。定时器定时器/计数器的工作模式计数器的工作模式M1M0工作模式工作模式功功 能能00模式模式013位定时器位定时器/计数器计数器 01模式模式116位定时器位定时器/计数器计数器10模式模式28位自动重置定时器位自动重置定时器/计数器计数器11模式模式3定时器定时器0:TL0为为8位定时器位定时器/计数器,计数器,TH0为为8位定时器。位定时器。定时器定时器1:无此方式:无此方式M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7二、定时器计数器的特殊功能寄存器 2工作方式控制寄存器TMOD第11页/共48页定时器计数器13位方式0是13位计数结构的工作方式,其计数器由TH0全部8位和TL0的低5位构成。当TL0的低5位计数溢出时,向TH0进位,而全部13位计数溢出时,则向计数溢出标志位TF0进位,并向CPU申请中断。1.方式013位方式 计数脉冲输入CT为定时计数选择CT0,T0为定时器,定时信号为振荡周期12分频后的脉冲;CTl,T0为计数器,计数信号来自引脚T1的外部信号。第12页/共48页1.方式013位方式 13位定时器T0能否启动工作,还受到了TR0、GATE和引脚信号INT0的控制。当GATE0时,只要TR01就可打开控制门,使定时器工作;当GATE1时,只有TR01且INT01,才可打开控制门。GATE,TR0,CT的状态选择由定时器的控制寄存器TMOD,TCON中相应位状态确定,INT0则是外部引脚上的信号第13页/共48页1.方式013位方式 定时器启动后,定时或计数脉冲加到TL0的低5位,从预先设置的初值(时间常数)开始不断增1。TL0计满后,向TH0进位。当TL0和TH0都计满之后,置位T0的定时器回零标志TF0,以此表明定时时间或计数次数已到,以供查询或在打开中断的条件下,可向CPU请求中断。如需进一步定时/计数,需用指令重置时间常数。第14页/共48页1.方式013位方式 13位在一般的应用中,通常使GATE0,从而由TR0的状态控制T0的开闭:TR01,打开T0;TR00,关闭T0。第15页/共48页1.方式013位方式 在特殊的应用场合,例如利用定时器测量接于INT0引脚上的外部脉冲高电平的宽度时,可使GATE1,TR01。当外部脉冲出现上升沿,亦即INT0由0变1电平时,启动T0定时,测量开始;一旦外部脉冲出现下降沿,亦即INT0由l变0时就关闭了T0。第16页/共48页1.方式013位方式 13位在方式0下,当为计数工作方式时,计数值的范围是:18192(213)当为定时工作方式时,定时时间的计算公式为:(213计数初值)晶振周期12或(213计数初值)机器周期第17页/共48页1.方式013位方式 例:当某单片机系统的外接晶振频率为6MHz,该系统的最小定时时间为:213(2131)1/(6106)1221062(s)最大定时时间为:(2130)1/(6106)121638410616384(s)或:最小定时单位21316384(s)第18页/共48页816位与工作方式0基本相同,区别仅在于工作方式1的计数器TL1和TH1组成16位计数器,从而比工作方式0有更宽的定时/计数范围。当为计数工作方式时,计数值的范围是:165536(216)当为定时工作方式时,定时时间计算公式为:(216计数初值)晶振周期12或(216计数初值)机器周期。2.方式116位方式 计数器由TH0全部8位和TL0全部8位构成。第19页/共48页3.方式28位自动装入时间常数方式 定时器T0能否启动工作,还受到了TR0、GATE和引脚信号INT0的控制。当GATE0时,只要TR01就可打开控制门,使定时器工作;当GATE1时,只有TR01且INT01,才可打开控制门。第20页/共48页3.方式28位自动装入时间常数方式 T0的结构:TL0:8位的定时器/计数器;TH0:8位预置寄存器,用于保存初值。工作过程:当TL0计满溢出时,TF0置1,向CPU发出中断请求;同时引起重装操作(TH0的计数初值送到TL0),进行新一轮计数。工作方式2是一种自动装入时间常数的8位计数器方式。第21页/共48页3.方式28位自动装入时间常数方式 由于这种方式省去了用户程序中的重装指令,因而操作方便,在允许的条件下,应尽量使用这种工作方式。当然,这种方式的定时计数范围要小于方式0和方式1,最大只能到255。这种自动重新加载工作方式非常适用于循环定时或循环计数应用,例如用于产生固定脉宽的脉冲,此外还可以作串行数据通信的波特率发送器使用。第22页/共48页4.方式3双8位方式 工作方式3只适用于定时器0。如果使定时器1为工作方式3,则定时器1将处于关闭状态。第23页/共48页4.方式3双8位方式 TL0既可用作定时器,又可用作计数器,并使用原T0的所有控制位及其定时器回零标志和中断源。TH0只能作8位定时器。使用T1所有的资源(中断向量、中断控制ET1、PT1)和控制位(TR1、TF1)当T0为工作方式3时,TH0和TL0分成2个独立的8位计数器。第24页/共48页4.方式3双8位方式 这时,T1往往用作串行口波特率发生器,TH0用作定时器,TL0作为定时器或计数器。所以,方式3是为了使单片机有1个独立的定时器计数器、1个定时器以及1个串行口波特率发生器的应用场合而特地提供的。这时,可把定时器l用于工作方式2,把定时器0用于工作方式3。通常情况下,T0不运行于工作方式3,只有在T1处于工作方式2,并不要求中断的条件下才可能使用。第25页/共48页1计数器初值的计算计数器初值的计算 设计数器的最大计数值为M(根据不同工作方式,M可以是213、216或28),则计算初值X的公式如下:X=M-要求的计数值 四、定时四、定时/计数器常数的计算计数器常数的计算2定时器初值的计算在定时器模式下,计数器由单片机主脉冲fosc经12分频后计数。因此,定时器定时初值计算公式:X=M-(要求的定时值)/(12/fosc)式中,M为定时器模值(根据不同工作方式,M可以是213、216或28)第26页/共48页应用举例应用举例可编程器件在使用前需要进行初始化:确定TMOD控制字:编程时将控制字送TMOD;计算计数器的计数初值:编程时将计数初值送THi、TLi;开中断(如果使用中断方式):编程实置位EA、ETi TRi位置位控制定时器的启动和停止。第27页/共48页例:设晶振频率fOSC=6MHz,使用定时器1以方式1产生周期为500s的方波脉冲,并由P1.0 输出。试以中断方式实现。8051P1.0P1.0500s第28页/共48页 TMOD确定T1控制T0控制XXXX1000M0M1C/TGATEM0M1C/TGATE控制字10H 要产生500s的方波脉冲,只需在P1.0端以250s为间隔,交替输出高低电平即可实现。为此,定时间应为250s。使用6z晶振,则一个机器周期为2s,设待求定时器初值为,则:计算定时器的初值;需要产生周期信号时,选择定时方式。定时时间到了对输出端进行周期性的输出即可。第29页/共48页(216X)210-6=25010-6 即216X=125 X216-125=10000H-7DH 0FF83H所以,初值为:TH1=0FFH,TL1=83H 采用中断方式:编程时打开全局和局部中断。由定时器控制寄存器TCON中的TR1位控制定时器的启动和停止。TR11,启动;TR10,停止。第30页/共48页C语言程序语言程序:#include /包含特殊功能寄存器库包含特殊功能寄存器库sbitP1_0=P10;/进行位定义进行位定义void main()TMOD=0 x10;/T1做定时器,模式做定时器,模式1TL1=0 x83;TH0=0 xFF;/设置定时器的初值设置定时器的初值ET1=1;/允许允许T1中断中断 EA=1;/允许允许CPU中断中断TR1=1;/启动定时器启动定时器while(1);/等待中断等待中断 第31页/共48页void time0_int(void)interrupt 3/中断服务程序中断服务程序 TL1=0 x83;TH0=0 xFF;/定时器重赋初值定时器重赋初值P1_0=P1_0;/P1.0取反,输出取反,输出方波方波 第32页/共48页例:假设单片机的振荡频率假设单片机的振荡频率fosc=6MHz,现要求,现要求产生产生1ms的定时,试分别计算定时器的定时,试分别计算定时器T1在方式在方式0、方式方式1和方式和方式2时的初值。时的初值。方式方式0:最大计数值为:最大计数值为M=213,因此定时器的初值应,因此定时器的初值应为为X=213-(110-3)/(12/(610-6)=7692D=1111000001100B其中高其中高8位为位为TH1的初值,即的初值,即F0H,低低5位为位为TL1的初值这里,的初值这里,TL1的初值应为的初值应为00001100B即即0CH,而不是,而不是60H,因为在方式时,因为在方式时,TL1的高的高3位是不用的,应都设为位是不用的,应都设为0。第33页/共48页方式方式1:最大计数值为:最大计数值为M=216,因此定时器的初值应为,因此定时器的初值应为X=216-(110-3)/(210-6)=65036D=1111111000001100B=FE0CH此时高此时高8位位TH1的初值为的初值为FEH,低,低8位位TL1的初值为的初值为0CH。方式2:最大计数值为M=28,因此定时器的初值应为 X=28-(110-3)/(210-6)=256-500=-254计算得到的初值为负值,说明当fosc=6MHz时,不能采用方式2(即常数自动装入)来产生1ms的定时,除非把单片机的时钟频率降得很低。第34页/共48页例例 利用定时器利用定时器T1的模式的模式2对外部信号进行计数,要求每对外部信号进行计数,要求每计满计满100次,将次,将P1.0端取反。端取反。分析:分析:T1工作在计数方式。脉冲数工作在计数方式。脉冲数100。模式模式2,模式字,模式字TMOD=0110b。1、初值计数:、初值计数:在模式在模式2下:下:X=28-100=156D=9CH2、C语言程序:语言程序:#include sbit p1_0=p10;/进行位定义进行位定义第35页/共48页void main()TMOD=0 x60;/T1工作在模式工作在模式2,计数,计数TL1=0 x9c;/装入计数(重装)初值装入计数(重装)初值TH1=0 x9c;ET1=1;/允许定时器允许定时器1中断中断EA=1;/开中断开中断TR1=1;/启动定时器启动定时器1while(1);voidtime0_int(void)interrupt3/中断服务程序P1_0=P1_0;/取反,产生方波第36页/共48页 例例 某一应用系统需要对某一应用系统需要对INT0引脚的正脉冲测试引脚的正脉冲测试其脉冲宽度。其脉冲宽度。分析:分析:可以设置定时器可以设置定时器/计数器计数器0为定时方式,工为定时方式,工作在模式作在模式1,且置位,且置位GATE位为位为1,将外部需测试的,将外部需测试的脉冲从脉冲从INT0引脚输入,设机器周期为引脚输入,设机器周期为1s。第37页/共48页C语言程序:语言程序:计算脉宽和处理程序略。计算脉宽和处理程序略。#include sbit P3_2=P32;unsigned int_test()TMOD=0 x09;TL0=0 x00;TH0=0 x00;while(P3_2);TR0=1;第38页/共48页while(!P3_2);while(P3_2);TR0=0;return (TH0*256+TL0);第39页/共48页 某应用系统要求通过某应用系统要求通过P1.0和和P1.1口分别输出脉冲周期为口分别输出脉冲周期为200s和和400s的方的方波,波,fosc=6MHz。分析:分析:需要两个定时器需要两个定时器。可以选择使用定时器。可以选择使用定时器/计数器计数器0,设置为定时模式,设置为定时模式,工工作模式作模式3,分成两个,分成两个8位的定时器。位的定时器。1、计算定时初值。、计算定时初值。t=(256-X)12/fosc初值分别为初值分别为0CEH和和9CH。第40页/共48页2、C语言程序:语言程序:#include sbit P1_0=P10;/进行位定义进行位定义sbit P1_1=P11;void main()TMOD=0 x03;/设置设置T0定时,工作定时,工作在模式在模式3TL0=0 xce;/设置设置TL0计数初值,产生计数初值,产生 200s方波方波TH0=0 x9c;/设置设置TH0计数初值,产计数初值,产生生 400s方波方波ET0=1;/设置定时器设置定时器0中断允许位中断允许位第41页/共48页ET1=1;/设置定时器设置定时器/计数计数/器器1中断允许位中断允许位EA=1;/设置总中断允许位设置总中断允许位TR0=1;/启动定时器启动定时器T0TR1=1;/启动定时器启动定时器T1while(1);/等待溢出等待溢出void time0L_int(void)interrupt 1/T0中断服务程序中断服务程序TL0=0 xce;/定时器重赋初值定时器重赋初值P1_0=P1_0;/产生方波产生方波第42页/共48页void time0H_int(void)interrupt 3/T1中断服务程序中断服务程序TH0=0 x9c;/定时器重赋初值定时器重赋初值P1_1=P1_1;/产生方波产生方波第43页/共48页例例 利用定时器精确定时利用定时器精确定时1s控制控制LED以秒为单位闪烁。已知以秒为单位闪烁。已知fosc=12MHz。分析:分析:定时器定时器/计数器在定时方式下,各个模计数器在定时方式下,各个模式最大定时时间分别为:式最大定时时间分别为:定时器0=(8192-0)12/fosc=8.192ms定时器1=(65536-0)12/fosc=65.536ms定时器2=(256-0)12/fosc=0.256ms第44页/共48页 选择模式选择模式1。定时时间为。定时时间为10ms,当,当10ms的定时时间到,的定时时间到,TF1=1,连续定,连续定时时100次,调用亮灯函数;再连续定时次,调用亮灯函数;再连续定时100次,调用灭灯函数。循环工作,即达次,调用灭灯函数。循环工作,即达到到1s闪烁闪烁1次的效果。次的效果。1、初值计算:、初值计算:(256-X)12/fosc=10ms初值初值X=55536=0D8F0H第45页/共48页2、程序设计:、程序设计:C语言程序:语言程序:#include sbit LED=P10;unsigned char i;void main()LED=0;/定义灯的初始状态为灭定义灯的初始状态为灭TMOD=0 x10;/设置定时器设置定时器1工作在模工作在模式式1TL1=0 xf0;TH1=0 xd8;/设置定时初值设置定时初值TR1=1;/启动定时器启动定时器1第46页/共48页ET1=1;/允许定时器允许定时器1中断中断EA=1;while(1);void timer1_int()interrupt 3TL1=0 xf0;/定时器重装初值定时器重装初值TH1=0 xd8;if(+i=100)LED=LED;i=0;第47页/共48页感谢您的观赏第48页/共48页

    注意事项

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

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




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

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

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

    收起
    展开