




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章 定时器及应用,张文昭,教学内容,基本要求:掌握计数/定时器的应用及编程方法 重点:定时器/计数器工作模式及应用 难点:定时器/计数器的应用编程,定时器/计数器的结构及功能 定时器/计数器的控制 定时器/计数器的4种工作模式及其应用 定时器/计数器的编程方法,6.1 定时器概述,89C51单片机内有两个16位定时器/计数器,即定时器0(T0)和定时器1(T1),都是16位加1计数器。 功能:定时和事件计数,可用于定时控制、延时、对外部件计数和检测等场合。 T0由两个8位特殊功能寄存器TH0和TL0构成;T1由TH1和TL1构成。,每个定时器都可由软件设置为定时工
2、作方式或 计数工作方式。由特殊功能寄存器TMOD和TCON所控制。 定时器工作不占用CPU时间,除非定时器/计数器溢出,才能中断CPU的当前操作。 定时器/计数器有四种工作模式。,定时器对89C51片内振荡器输出经12分频后的脉冲进行计数,即每个机器周期使定时器(T0或T1)的数值加1直至计满溢出。,当89C51采用12MHz晶振时,一个机器周期为1s,计数频率为1MHz。,定时工作方式,若89C51采用6MHz晶振,计数频率为多少?,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。当输入脉冲信号产生由1至0的下降沿时计数器的值加1。 CPU检测一个1至0的跳变需要两个机器周期,
3、故最高计数频率为振荡频率的1/24。 为了确保某个电平在变化之前被采样一次,要求电平保持时间至少是一个完整的机器周期Tcy。,计数工作方式,定时器共有两个控制字,由软件写TMOD和TCON两个8位寄存器,用来设置T0和T1的工作模式和控制功能。单片机系统复位时,两个寄存器所有位都被清0。,6.2 定时器的控制,TMOD用于控制T0和T1的工作模式,其各位的定义格式如下图所示。,一、工作模式寄存器TMOD(89H),TMOD不能位寻址,只能字节寻址。,TMOD GATE C/T M1 M0 用于T0工作模式 (89H),工作模式,00模式0 01模式1 10模式2 11模式3,功能选择,1计数
4、0定时,选通控制,1受/INT1控制 0不受/INT1控制,M1、M0形成四种编码控制四种工作模式,C/T:定时器 /计数器方式选择位 C/T=0:定时方式 计数片内脉冲(即对机器周期计数,周期确定) C/T=1:计数方式 计数片外脉冲(即对通过P3.4/P3.5来自片外的计数信号计数,周期不定),GATE:门控位 GATE =0:软件使TR0/TR1置1,即可启动定时器 GATE =1:只有INT0/INT1输入信号为高电平,软件使TR0/TR1置1,才可启动定时器 定时器的使用: 设置工作方式-置初值-启动-溢出中断,二、控制寄存器TCON(88H),TCON各位的作用如下: TF1(TC
5、ON.7)T1溢出标志位。有溢出,TF1=1. TF0(TCON.5)T0溢出标志位。有溢出,TF0=1. TR1(TCON.6)T1运行控制位。TR1=1,启动T1 TR0(TCON.4)T0运行控制位。 TR0=1,启动T0 IE1,IT1,IE0和IT0(TCON.3TCON.0)外部中断INT1,INT0请求及请求方式控制位。 89C51复位后,TCON的所有位被清0。,6.3 定时器的四种模式及应用,89C51单片机的定时/计数器T0和T1的四种工作模式,在模式0、模式1和模式2时,T0和T1的工作模式相同;在模式3时,两个定时器的工作模式不同。,一、模式 1 及其应用,(一)模式
6、1 的逻辑电路结构(以T0为例),模式1对应的是一个16位的定时器/计数器。,在这种模式下,寄存器(TH0和TL0)以全16位参与计数。TH0占高8位,TL0为低8位。当TL0计数溢出时,向TH0进位;TH0溢出时,向中断标志TF0进位(硬件置位TF0),并申请中断。,(二)模式 1 工作特点,(二)模式 1 工作特点,计100个机器周期数所需的时间为多少?(所接晶振为12MHz),定时时间为: t=计数值机器周期 =(216T0初值)振荡周期12,如何实现定时? 如何得到所需的定时时间?,最大可计数多少个机器周期?,利用溢出中断,并给出相应的计数初值,(二)模式 1 工作特点,例1:设晶振频
7、率为12MHz,试计算定时器T0工作于模式1时的最大定时时间T。 解:当T0处于工作模式1时,加1计数器为16位。 定时时间为: t=(216T0初值)振荡周期12 最大定时时间为“T0初值=0”时。 所以:,T=216振荡周期12,例2:用定时器T1产生一个50Hz的方波,由 P1.1输出。fosc=6MHz。,解:1)确定定时器T1初值 方波周期T=1/50 =0.02s = 20ms 用T1定时10ms,时间到P1.1引脚电平取反。,(TH1)=ECH,(TL1)=78H,解:2)确定工作模式寄存器TMOD的值 定时器T1工作于模式1的定时器工作方式, 高四位: GATE=0,C/T=0
8、,M1M0=01 ,低四位:取0。 (TMOD)=0001 0000 B = 10H,3)编程(查询方式) #include void main() TMOD=0 x10; TH1=0 xec; TL1=0 x78; TR1=1; P1_1=1; while(1) if(TF1=1) TF1=0; TH1=0 xec; TL1=0 x78; P1_1=P1_1; ,3)编程(定时器溢出中断方式) #include void main() TMOD=0 x10; TH1=0 xec; TL1=0 x78; ET1=1; EA=1; TR1=1; P1_1=1; while(1); void ti
9、mer_1() interrupt 3 TH1=0 xec; TL1=0 x78; P1_1=P1_1; ,思考:设定时器T0用于定时10ms,晶振为6MHz。编程实现:P1.0输出周期为40ms,高电平宽为10ms,低电平宽为30ms的矩形波。如何编程?,例3:设定时器T0选择工作模式1的计数器工作方式,其计数器初值为FFFFH,问此时定时器T0的实际用途是什么? 解:因其初值为FFFFH,只要随机外来一脉冲即可溢出,向CPU申请中断,故这一内部中断源实质上已作为外部中断源使用。因此此定时器T0并不用于定时或计数。,该模式对应的是一个13位的定时器/计数器。在这种模式下,(以T0为例)16位
10、寄存器(TH0和TL0)只用了13位。其中TL0的高3位未用,其余5位为整个13位的低5位,TH0占高8位。当TL0的低5位溢出时,向TH0进位;TH0溢出时,向中断标志TF0进位(硬件置位TF0),并申请中断。,二、 模式 0 及其应用,二、 模式 0 及其应用,用于定时工作方式时,定时时间为: t=(213 T0初值)振荡周期12 用于计数工作方式时,计数长度为: (213T0初值)(个外部脉冲)。,例4:设晶振频率为12MHz,试计算定时器T0工作于模式0时的最大定时时间T。 解:当T0处于工作模式0时,加1计数器为13位。 定时时间为: t=(213T0初值)振荡周期12 最大定时时间
11、为“T0初值=0”时。 所以:,模式2把TL0(或TL1)配置成一个可以自动重装载的8位定时器/计数器,逻辑电路结构如下图。,三、 模式 2 及其应用,TL0计数溢出时,不仅使溢出中断标志位TF0置1,而且还自动把TH0中的内容重新装载到TL0中。,在程序初始化时,TL0和TH0由软件赋予相同的初值。,用于定时工作方式时,定时时间为: t=(28TL0初值)机器周期,用于计数工作方式时,计数长度为: (28TL0初值) (外部脉冲的个数),该模式可省去软件中重装常数的语句,并可产生相当精确的定时时间,适合于作串行口波特率发生器。,例5:利用定时器T1的模式2对外部信号计数。要求每计满100次,
12、将 P1.0端取反。,解:(1)选择模式 外部信号由T1(P3.5)引脚输入,每发生一次负跳变计数器加1,每输入100个脉冲,计数器发生溢出中断,中断服务程序将P1.0取反一次。 T1计数工作方式模式2的模式字为 (TMOD)=60H。 T0不用时,TMOD的低4位可任取,但不能进入模式3,一般取0。,(2)计算T1的计数初值 X= 28 100=156=9CH 因此:TL1的初值为9CH,重装初值寄存器TH1=9CH。 (3)程序清单 #include main() TMOD=0 x60; TH1=0 x9c; TL1=0 x9c; ET1=1; EA=1; TR1=1; while(1);
13、 void timer_1() interrupt 3 P1_1=P1_1; ,四、 模式 3 及其应用,工作模式3对T0和T1大不相同。 若将T0设置为模式3,TL0和TH0被分成为两个相互独立的8位计数器,逻辑图如下图:,TL0: 用原T0的各控制位、引脚和中断源,即C/T,GATE,TR0,TF0,T0(P3.4)引脚,INT0(P3.2)引脚。 TL0可工作在定时器方式和计数器方式。其功能和操作与模式0、模式1相同(只是8位)。 TH0: 只可用作简单的内部定时功能。 TH0占用了定时器T1的控制位TR1和T1的中断标志TF1,其启动和关闭仅受TR1的控制。 定时器T1无工作模式3状态
14、。在T0用作模式3时,T1仍可设置为模式02。,五、 综合应用举例,解:(1)定时器T0工作模式的确定 模式0最长可定时16.384ms; 模式1最长可定时131.072ms; 模式2最长可定时512s;LED每1秒闪烁一次。 定时0.5s,可选用模式1,每隔100ms中断一 次,中断5次从而达到0.5s的定时。 (2)求计数器初值X (216X)12/(6 106) =10010-3 s X=15536=3CB0H 因此:(TL0)=0B0H (TH0)=3CH,例6:设时钟频率为6MHz,试编写用T0产生定时使P1.0所接的发光二极管每1秒钟闪烁一次。,源程序清单(使发光二极管闪烁,每1S
15、闪烁1次) #include unsigned char temp=5; main() TMOD=0 x01; TH0=0X3C; TL0=0XB0; ET0=1; EA=1; TR0=1; P1_0=1; while(1); ,void timer_0( )interrupt 1 TH0=0X3C; TL0=0XB0; temp-; if(temp=0) temp=5; P1_0=P1_0; ,例7:设计实时时钟程序。时钟就是以秒、分、时为单位进行计时。用定时器与中断的联合应用。,解:(1)实现时钟计时的基本方法 计算计数初值。 时钟计时的最小单位是秒,可把定时器的定时时间定为100ms,计
16、数溢出10次即得到1秒;10次计数可用软件方法实现。 假定使用定时器T1,以工作模式1进行100ms的定时。如fosc=6MHz,则计数初值X为: X=15536=3CB0H (TL0)=0B0H (TH0)=3CH,例6:设计实时时钟程序。时钟就是以秒、分、时为单位进行计时。用定时器与中断的联合应用。, 采用定时方式进行溢出次数的累计,计满10次即得到秒计时。 设置软件计数器初值为10,每100ms定时时间到溢出中断,使软件计数器减1,直到减到0,则1s到。, 从秒到分和从分到时的计时是通过累计和数值比较实现的。 设置几个累加单元分别进行对1s,1min,1h进行计数。满1s,秒位累加;满60s,分位累加;满60min,时位累加;满24h全部累加单元清0,(2)程序流程及程序清单 主程序流程如右图所示。,设T1为模式1,设中断次数,清计时单元,开中断,启动T1,调用显示子程序,时钟主程序流程,开始, 中断服务流程如右图所示:, 源程序如下: #include unsigned char count=0; unsigned char second=0; unsigned char min=0; unsi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 特拉唑嗪多靶点机制-洞察及研究
- 智能营销2025年互联网广告投放精准算法效果评估与优化路径探索
- 2025数字孪生在城市绿地系统规划中的生态景观设计与生态效益评估报告
- 2022年海东市六年级语文期中考试试卷(苏教版)
- 2012华润地产沈阳、鞍山公司销售暗访报告25p
- 2022年高平市六年级语文第三单元考试试卷(北师大版)
- 天然气水合物开采技术设备研发与制造工艺优化报告
- 高中教学培训课件
- 二零二五年度房产评估服务居间定金合同模板
- 续订劳动合同(资料6篇)
- GB/T 4623-2014环形混凝土电杆
- 混床再生操作培训课件
- 《薄膜材料与薄膜技术》教学配套课件
- 静脉炎的预防及处理课件
- 概述SFBT(焦点解决短程治疗)课件
- (本科)会计学原理(第三版)全套教学课件完整版PPT
- abb机器人编程基本指令
- ISO14001:2015环境管理体系内部审核管理评审合集
- 隧道开挖作业台车计算书
- 煤气作业安全技术实际操作考试标准
- 三年级上人文与社会教案
评论
0/150
提交评论