《MCS-51系列单片机原理及接口技术》5 定时计数器

上传人:飞*** 文档编号:48573160 上传时间:2018-07-17 格式:PPT 页数:39 大小:948.50KB
返回 下载 相关 举报
《MCS-51系列单片机原理及接口技术》5 定时计数器_第1页
第1页 / 共39页
《MCS-51系列单片机原理及接口技术》5 定时计数器_第2页
第2页 / 共39页
《MCS-51系列单片机原理及接口技术》5 定时计数器_第3页
第3页 / 共39页
《MCS-51系列单片机原理及接口技术》5 定时计数器_第4页
第4页 / 共39页
《MCS-51系列单片机原理及接口技术》5 定时计数器_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《《MCS-51系列单片机原理及接口技术》5 定时计数器》由会员分享,可在线阅读,更多相关《《MCS-51系列单片机原理及接口技术》5 定时计数器(39页珍藏版)》请在金锄头文库上搜索。

1、第5章 定时/计数器 定时/计数器的结构及工作原理 定时/计数器方式和控制寄存器 定时/计数器的工作方式 定时/计数器的编程举例 运行中读定时/计数器值 定时/计数器2 l单单片机的51子系列有两个16位的定时时/计计数器:定 时时器0和定时时器1。 l均可用作定时时器或事件计计数器,为单为单 片机系统统提 供计计数和定时时功能。以实现实现 控制系统统中所要求的定 时时或延时时控制、外部事件计计数。 l52子系列单单片机(8032/8052)除了有上述2个定时时/计计 数器外,还还有一个定时计时计 数器2,后者的功能比前两 者强。 5.1 定时/计数器的结构及工作原理 l定时时/计计数器的核心

2、部件是一个加1计计数器,其脉冲 有两个来源:外部脉冲源、系统统的时钟时钟 振荡荡器。 l计计数器对对两个脉冲源之一进进行输输入计计数,每输输入 一个脉冲,计计数值值加1。当计计数到计计数值为值为 全1时时, 再输输入一个脉冲就使计计数值值回零,同时时从最高位溢 出一个脉冲使特殊功能寄存器TCON(定时时器控制寄 存器)的某一位TFx置1,作为计为计 数器的溢出中断标标志 。 定时/计数器的结构框图振荡器12加1 计数器TFx中断 TX端C/T=0C/T=1 控制信号TRxl若工作于定时时状态态,则则表示定时时间时时间 到;若工作于 计计数状态态,则则表示计计数回零。所以,加1计计数器的基本 功

3、能是对输对输 入脉冲进进行计计数。 l用作定时时器时时,在每个机器周期计计数器加1,所以可以把 它看作累加机器周期,1个机器周期包括12个振荡荡周期,则则 计计数频频率为为振荡频荡频 率的十二分之一。 l工作于何种方式,取决于脉冲源,当脉冲源为时钟为时钟 振荡荡器(等间间隔脉冲序列)时时,由于计计数脉冲为为一时间时间 基准,脉冲数乘以脉冲间间隔就是定时时间时时间 ,表现为现为 定 时时功能;当脉冲源为间为间 隔不等的外部脉冲发发生器时时, 就是外部事件的计计数器,表现为计现为计 数功能。 l用作计计数器时时,计计数脉冲来自外部输输入引脚T0或T1, 当输输入信号发发生一个由1到0的跳变时变时

4、,计计数器加1。在 每个机器周期的S5P2期间间采样样外部输输入信号,当一个周 期的采样值为样值为 高电电平、下一个周期的采样值为样值为 低电电平 时时,计计数器加1。新的计计数值值在紧紧接着检测检测 到一个跳变变 后的下一个周期的S3P1期间间在寄存器中出现现。即在第一 个机器周期的S5P2检测检测 到高电电平,在第二个机器周期的 S5P2检测检测 到低电电平,在第三个机器周期的S3P1改变计变计 数 值值。由于识别识别 一个从1到0的跳变变要用两个机器周期,所 以最快的计计数频频率是振荡荡器频频率的二十四分之一。对对 外部输输入信号的占空比没有限制,为为确保某一给给定的电电 平在变变化之前

5、至少被采样样一次,该该信号至少保持一个完 整的机器周期。 l图图中的两个模拟拟开关,前者决定定时时/计计数器工作状态态 :计计数还还是定时时;后者受控制信号的控制,决定脉冲源是 否加到计计数器输输入端,即决定了加1计计数器的开启与运行 。 对输入信号的基本要求 Tp TpTp为机器周期l在实际线实际线 路中,这这两个模拟拟开关由TMOD与TCON的相 应应位控制。用户户可通过对过对 TMOD和TCON的各位进进行写 入或更改操作,从而选择选择 不同的工作状态态或启动动工作, 并可设设置相应应的控制条件,即定时时/计计数器是可编编程的。 l16位的加1计计数器由两个8位的特殊功能寄存器THx和

6、TLx组组成(x=0或1)。 l由特殊功能寄存器TMOD控制,可被程控为为不同的组组合 状态态,从而形成定时时/计计数器的四种工作方式。 TMOD、TCON与T0、T1结构框图微 处 理 器 PTH1TL1TH0TL0TCONTMOD工作 方式 工作 方式5.2 定时/计数器方式和控制寄存器 l由结结构框图图可以看到,特殊功能寄存器TMOD和TCON 用来确定定时时/计计数器的工作方式,并控制其功能。 l每当执执行一条改变变TMOD和TCON内容的指令时时,所改 变变的值值在下一条指令的第一个机器周期的S1P1期间进间进 入特 殊功能寄存器,并立即产产生效果。 lTMOD控制定时时/计计数器的

7、工作方式; lTCON控制定时时器T0、T1的启动动和停止计计数,并包含了 定时时器的状态态。 5.2.1 定时器工作方式控制寄存器TMOD的格式 位 7 6 5 4 3 2 1 0 GATE C/T M1 M0 GATE C/T M1 M0定时器1 定时器0lGATE:选选通控制。当GATE=1时时,同时时INTx为为高电电平 ,且TRx置位时时,选选通定时时器x。当GATE=0时时,每当 TRx置位时时,就选选通定时时器x。 lC/T:选择选择 定时时器功能还还是计计数器功能。该该位置位时选时选 择计择计 数器功能(计计数出现现在T0或T1引脚上的负负跳变变);该该 位清零时选择时选择 定

8、时时器功能(计计机器周期)。 lM1M0:这这两位指定定时时/计计数器的工作方式,可形成四种 编码编码 ,对应对应 四种工作方式: M1M0方式说说明 000TLx低5位与THx中8位构成13位计计数器 011TLx与THx构成16位计计数器 102可自动动再装入的8位计计数器,当TLx计计数溢出时时,THx内容自 动动装入TLx。 113对对定时时器0,分成两个8位的计计数器;对对定时时器1,停止计计数 。5.2.2 定时器控制寄存器TCON的格式 位76543210 TF1TR1TF0TR0IE1IT1IE0IT0lTF1:定时时器1溢出标标志位。当定时时/计计数器1溢出时时,由 内部硬件

9、置位,申请请中断。当单单片机转转向中断服务务程序 后,由内部硬件自动动清除。 lTR1:定时时器1的运行控制位。由软软件置位/清除来控制定 时时/计计数器1的开启/关闭闭。 lTF0:定时时器0溢出标标志位。当定时时/计计数器0溢出时时,由 内部硬件置位,申请请中断。当单单片机进进入中断服务务程序 后,由内部硬件自动动清除。 lTR0:定时时器0的运行控制位。由软软件置位/清除来控制定 时时/计计数器0的开启/关闭闭。 lIE1:外部中断1边边沿触发请发请 求标标志位。当IT1=0时时,每个机 器周期的S5P2采样样INT1,若INT1为为低电电平,将直接触发发外部 中断。当IT1=1时时,当

10、第一个机器周期采样样到INT1为为高电电平、 第二个机器周期采样样到INT1为为低电电平时时,由硬件置位中断标标 志IE1,并以此向CPU请请求中断,当CPU响应应中断、转转向中断 服务务程序后由硬件清除。 lIT1:外部中断1类类型控制位。控制外部中断1是选择边选择边 沿触发发 还还是电电平触发发方式。当IT1=0时时,选择为电选择为电 平触发发方式,INT1 低电电平有效;当IT1=1时时,选择为边选择为边 沿触发发方式,当INT1输输入 脚上出现电现电 平由高到低的负负跳变时变时 有效。IT1由软软件置位或清 除。 lIE0:外部中断1边边沿触发请发请 求标标志位。当IT0=0时时,每个

11、机 器周期的S5P2采样样INT0,若INT0为为低电电平,将直接触发发外部 中断。当IT0=1时时,当第一个机器周期采样样到INT0为为高电电平、 第二个机器周期采样样到INT0为为低电电平时时,由硬件置位中断标标 志IE0,并以此向CPU请请求中断,当CPU响应应中断、转转向中断 服务务程序后由硬件清除。 lIT0:外部中断0类类型控制位。控制外部中断0是选择边选择边 沿触发发 还还是电电平触发发方式。当IT0=0时时,选择为电选择为电 平触发发方式,INT0 低电电平有效;当IT0=1时时,选择为边选择为边 沿触发发方式,当INT0输输入 脚上出现电现电 平由高到低的负负跳变时变时 有效

12、。IT0由软软件置位或清 除。 l由于定时时/计计数器T0、T1是可编编程的,所有在任何一个定时时/ 计计数器开始工作之前,必须对须对 其写入相应应的控制字。 5.3 定时/计数器的工作方式 l寄存器TMOD中的M1、M0两位的四种不同取值值,导导致了THx 、TLx的四种不同组组合,从而形成定时时/计计数器的四种不同工作 方式。 l其中前三种工作方式对对两者都是一样样的,方式3对对两者是不同 的。可以说说,只有定时时/计计数器0有方式3。 5.3.1 方式0 振荡器12TFx中断Tx端C/T=0C/T=1GATEINTx端TRxTLx (低5位)THx (8位)控制转主程序 ORG 000B

13、H;T0中断服务程序 MOV TL0,#30H MOV TH0,#0F8H;重新送2mS时间常数初值 RLA;(A)左环移一次 MOV P1,A;送P1口显示 RET MAIN: MOV TMOD,#01H ;送控制方式字 MOV TL0,#30H;T0初始化 MOV TH0,#0F8H MOV A,#01H;累加器A置初值 SETB TR0;启动T0计数 SETB ET0 ;允许T0中断 SETB EA;CPU开中断 SJMP $;等待中断发生(无事可做) 例5-3. 设定时/计数器T0工作于方式3,TL0、TH0作 为两个独立的8位定时/计数器,分别产生250S和 500S的定时中断,使P

14、1.1和P1.2产生500S和1000S 的方波。设晶振频率为6MHz。 解答: TL0 计数个数:250s/2s=125初值: 28-125=131=83H TH0 计数个数:500s/2s=250 初值: 28-250=6=06H 编程如下: ORG 0000H LJMP MAIN;转主程序 ORG 000BH;定时器0中断服务子程序入口 LJMP TINT0 ORG 001BH;定时器1中断服务子程序入口 LJMP TINT1 MAIN: MOV TMOD,#03H ;T0工作方式3 MOV TL0,#83H;TL0送时间常数 MOV TH0,#06H;TH0送时间常数 SETB TR0

15、;启动定时 SETB TR1 ;等价于MOV TCON,#50H SETB ET0;允许中断 SETB ET1 ;等价于MOV IE,#8AH SETB EA;CPU开中断 SJMP $;等待 TINT0:MOV TL0,#83H;定时器0中断服务子程序 CPLP1.1 RETITINT1:MOV TH0,#06H;定时器1中断服务子程序 CPLP1.2 RETI例5-4. 设定时/计数器0工作于方式2,TL0为8位计数器, 产生500s定时中断,在中断服务程序中将(A)减1,然后 送P1口显示,设晶振为6MHz。 编程如下:ORG 0000HAJMP MAIN;转主程序ORG 000BH D

16、ECA;T0中断服务子程序MOV P1,A RETI MAIN:MOV TMOD,#02H ;初始化MOV TL0,#06H;送500S时间常数 MOV TH0,#06HSETB TR0;启动T0计数 SETB ET0;允许T0中断 SETB EA;CPU开中断 SJMP $ 5.5 运行中读定时/计数器值 l在MCS-51中,随时时可以读读写计计数寄存器的内容,但是读读 取时时需要特别别加以注意; l由于不能在同一时时刻读读取THx和TLx的内容。如不注意 ,读读取的计计数器有可能出错错。 l比如先读读(TLx),后读读(THx),由于定时时器在不断运行, 读读(THx)前,若恰好产产生TLx溢出向THx进进位,则读则读 得的 (TLx)完全不对对。 l同样样先读读(THx)再读读(TLx)也可能出错错(同样问题样问题 )。 l解决错读问题错读问题 的一种方法是:先读读(THx),后

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号