第四章定时器课件

上传人:我*** 文档编号:146155700 上传时间:2020-09-27 格式:PPT 页数:23 大小:1.42MB
返回 下载 相关 举报
第四章定时器课件_第1页
第1页 / 共23页
第四章定时器课件_第2页
第2页 / 共23页
第四章定时器课件_第3页
第3页 / 共23页
第四章定时器课件_第4页
第4页 / 共23页
第四章定时器课件_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《第四章定时器课件》由会员分享,可在线阅读,更多相关《第四章定时器课件(23页珍藏版)》请在金锄头文库上搜索。

1、单片机原理与应用技术教学课件,第二节 单片机的定时/计数器,单片机原理与应用技术教学课件,2个16位定时器/计数器 (52系列有3个16位Timer) 定时器:对片内机器时钟(周期方波)进行计数 计数器:对T0/T1引脚输入的负脉冲进行计数,与Timer工作有关的特殊功能寄存器: TCON 和 TMOD,单片机原理与应用技术教学课件,TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0,定时器控制寄存器TCON (88H) P.116,TF0/TF1: Timer0/1计数溢出标志位。 =1 计数溢出; =0 计数未满 TF0/TF1标志位可用于申请中断或供CPU查询。 在进入中断服

2、务程序时会自动清零;但在 查询方式时必须软件清零。,TR0/TR1: Timer0/1运行控制位。 =1 启动计数; =0 停止计数,单片机原理与应用技术教学课件,定时器T0/T1 中断申请过程, 在已经开放T0/T1中断允许且已被启动的前提下: T0/T1加满溢出时 TF0/TF1标志位自动置“1” 检测到TCON中TF0/TF1变“1”后,将产生指令: LCALL 000BH/LCALL 001BH 执行中断服务程序 TF0/TF1标志位会自动清“0”,以备下次中断申请。,定时/计数器可按片内机器周期定时,也可对由T0/T1引脚输入一个负脉冲进行加法计数,单片机原理与应用技术教学课件,定时

3、器方式寄存器TMOD (89H),GATE C / T M1 M0 GATE C / T M1 M0,T1,T0,M1,M0:工作方式定义位 ( 定义4 种方式 ):,C/T :计数器/定时器选择位 = 1 外部事件计数器。对Tx引脚的负脉冲计数; = 0 片内时钟定时器。对机器周期脉冲计数定时,0 0:13位 Timer用它无益,不要记它! 0 1:16位 Timer经常用到 1 0:可自动重装的 8位 Timer经常用到 1 1:T0 分为2个8位 Timer;T1 此时不工作 几乎无用,单片机原理与应用技术教学课件,GATE C / T M1 M0 GATE C / T M1 M0,T1

4、,T0,GATE门控位: Timer可由软件与硬件两者控制 GATE = 0 普通用法 Timer的启/停由软件对TRx位写“1”/“0”控制,定时器方式寄存器TMOD(续),(89H), GATE = 1 门控用法 Timer的启/停由软件对TRx位写“1”/“0” 和在INTx引脚上出现的信号的高/低共同控制,单片机原理与应用技术教学课件,定时器结构与工作方式,工作方式1:16位的定时/计数器,单片机原理与应用技术教学课件, THx/TLx赋初值:THx赋高8位,TLx赋低8位,工作方式1 的编程要点:, TMOD选方式: 写“M1,M0”=01 b 选方式1, 若不用门控位,直接用软件写

5、TRx控制启/停 若使用门控位,先置位TRx,然后由INTx端 的高/低电平来控制其启/停, 若要允许中断,还须先置位ETx、EA等中断 允许控制位,并编写中断服务程序 若不用中断,可查询“计数溢出标志TFx” 的方式工作,但溢出标志TFx须软件清0,单片机原理与应用技术教学课件,定时器(方式1)应用程序举例:,分析:已知fosc = 6MHz 则: (机器周期)1Tm=12Tc=12/6MHz=2S 粗略地说:Tmin 2S 16位定时器最大数值为:216=65536=0FFFFH+1 故选择方式 1 工作可以得到: Tmax = 655362 = 131072S131.072mS,例:若晶

6、振频率为6MHz,计算单片机的最小与最大定时时间:,单片机原理与应用技术教学课件,分析:已知fosc = 6MHz 则: (机器周期)1Tm=12Tc=12/6MHz=2S 100mS2 S = 50000 16位定时器最大数值为: 216 = 65536 (=0FFFFH+1) 故选择方式1工作可以满足要求。,例:要求对T0产生100mS定时进行初始化。 (晶振=6MHz),定时器(方式1)应用程序举例:,计算初值:6553650000=15536=3CB0H,单片机原理与应用技术教学课件,GATE C / T M1 M0 GATE C / T M1 M0,定时器方式 寄存器TMOD,由分析

7、得知:T0选择方式1,初值=3CB0H,X X X X 0 0 0 1,初始化:MOV TMOD,#01H ;选 T0 方式 1 MOV TH0, #3CH ;赋初值高8位 MOV TL0, #0B0H ;赋初值低8位 SETB TR0 ;启动 T0定时 若需要定时器0产生中断还应当写如下语句: SETB ET0 ;开T0中断允许 SETB EA ;开总中断允许 以及相应的中断服务程序。,单片机原理与应用技术教学课件,工作方式2:8 位自动重装的定时/计数器,单片机原理与应用技术教学课件, THx/TLx赋相同初值 在TLx计数达到0FFH 再加“1”时,TL0 将溢出,进位位直接进入“TFx

8、”去申请 中断,同时打开三态门,使THx中的值 自动重装(Copy)进TLx,工作方式 2 的编程:, TMOD寄存器选方式: 写“M1,M0” = 1 0 b 选中方式2, 其他用法与各种方式1完全相同,定时计数器的初始化,1、初始化的步骤: 1)确定定时器/计数器的工作方式、操作模式、启动控制方式,并利用传送指令将其写入TMOD寄存器。 2)设置定时器/计数器的初值。直接将初值写入TH0、TL0或TH1、TL1中。 3)根据要求考虑是否采用中断方式,直接对IE位赋值。开放中断时,对应位置1;采用程序查询方式时,IE中对应位应清0进行中断屏蔽。,定时计数器的初始化,4)启动定时器/计数器工作

9、。 当GATE设置0时,执行SETB TRi后,启动定时器/计数器; 若GATE设置l时,由外部中断引脚共同控制,只有当INT0/INT1引脚电平为高时,指令以上执行后定时器/计数器方可启动工作。 定时器/计数器一旦启动就按规定的方式定时或计数。,2计数初值的计算,当T0或T1工作于定时器或计数器方式时,不同的工作方式、不同的操作模式其计数初值均不相同。若设最大计数值(溢出值)为M(模),各操作模式下的M值为: 模式0: M=213=8192 模式1: M=216=65536 模式2: M=28=256 模式3: M=28=256定时器T0分成2个独立的8位计数器,所以TH0、TL0的M均为2

10、56。,2计数初值的计算,MCS-51的两个定时器均为加1计数器,当加到溢出值时产生溢出,将TF位置l,可发出溢出中断,因此,计数器初值X的计算式为: X=M-计数值(通式) T0或T1工作于定时器与计数器方式时,X的确定方法有别。,1)计数器方式,当T0或T1工作于计数器方式时,计数脉冲由外部引入,它是对外部脉冲进行计数。因此计数值应根据实际要求来确定。计数初值可采用通式计算,即: X=M-计数值 【举例】:在方式1时,每接收100个外部事件,要求产生一个中断,确定计数初值。 X=M-计数值=65536-100=65436=FF9CH,THi=FFH TLi=9CH,定时器初值计算公式:,当

11、T0或T1工作于定时器方式时,由于是对机器周期进行计数,故计数值应为定时时间对应的机器周期个数。为此,应首先将定时时间转换为所需要记录的机器周期个数(计数值)。其转换公式为: 机器周期个数(计数值)= Tc / Tp 式中 Tc定时时间;Tp机器周期,Tp=12/ fosc ;fosc为机器时钟(震荡器)的振荡频率。 故计数初值的计算公式为: X=M-计数值=M- Tc / Tp =M-(TCfosc)12。,【举例】:请计算定时50ms所需要的定时初值。 fosc=12MHz 1)确定模式:选择模式1 ; 2)计算定时初值。,X=65536-50ms/1=65536-50000 =15536

12、 =3CB0H,即: THi=3CH;TLi=B0H,定时器方式1应用举例,例1:用T1产生一个50Hz的对称方波,由P1.l输出,采用用程序查询方式,fosc=12MHz。,TMOD 0001 0000,【解】:首先确定工作方式、工作模式和定时初值。 1)选定时方式(C/T=0); 2)模式1(M2 M1=01) ,,3)方波周期T=l/50=O.02s=20ms,用T1定时10ms,,计数初值为:X1=216-1010-31210612= 65536-10000=55536=D8F0H; 即TH1=D8H,TL1=F0H。,源程序如下(查询方式):,ORG 0000h LJMP T1BUS

13、 ORG 0030h T1BUS: ;T1模式1,定时 LOOP:MOV TH1,#0D8H ;T1计数初值 MOV TL1,#0F0H ;启动T1 LOOP1: JNB TF1,LOOP1 ;T1没有溢出等待 ;清溢出标志位 CPL P1.1 ;P1.l取反输出 SJMP LOOP ;循环,MOV TMOD,#10H,SETB TRl,CLR TF1,利用中断方式编程,ORG 0000h LJMP T1MIN ORG 001Bh LJMP LOOP ORG 0030h T1MIN: MOV TMOD,#10H ;T1模式1,定时 MOV TH1,#0D8H ;T1计数初值 MOV TL1,#0F0H SETB EA ;CPU、T1开中断 SETB ET1 SETB TRl ;启动T1 T1MIN2: NOP LJMP T1MIN2 ORG 0100h LOOP:MOV TH1,#0D8H ;T1计数初值 MOV TL1,#0F0H CPL P1.1 ;P1.l取反输出 RETI,

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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