好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第四章--定时器0.ppt

23页
  • 卖家[上传人]:M****1
  • 文档编号:587183317
  • 上传时间:2024-09-05
  • 文档格式:PPT
  • 文档大小:1.48MB
  • / 23 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第二节第二节单片机的定时单片机的定时/ /计数器计数器《《单片机原理与应用技术单片机原理与应用技术》》教学课件教学课件 2 2个个1616位位定时器定时器/ /计数器计数器 ——( (5252系列有系列有3 3个个1616位位Timer)Timer)定时器定时器: :对对片内机器时钟片内机器时钟( (周期方波周期方波) )进行计数进行计数计数器计数器: :对对T0/T1T0/T1引脚引脚输入的负脉冲输入的负脉冲进行计数进行计数与与TimerTimer工作有关的工作有关的特殊功能寄存器:特殊功能寄存器: TCON TCON 和和 TMODTMOD《《单片机原理与应用技术单片机原理与应用技术》》教学课件教学课件 TF1 TR1TR1 TF0 TR0 IE1 IT1 IE0 IT0 IE1 IT1 IE0 IT0定时器定时器控制控制寄存器寄存器TCON TCON (88H) P.116(88H) P.116TF0/TF1TF0/TF1: Timer0/1: Timer0/1计数溢出标志位。

      计数溢出标志位 =1 =1 计数溢出计数溢出;; =0 =0 计数未满计数未满 TF0/TF1TF0/TF1标志位标志位可用于可用于可用于可用于申请中断申请中断或或或或供供CPUCPU查询查询 在进入在进入在进入在进入中断服务程序中断服务程序时会时会时会时会自动清零自动清零;但在;但在;但在;但在 查询方式查询方式时必须时必须时必须时必须软件清零软件清零TR0/TR1TR0/TR1: : Timer0/1Timer0/1Timer0/1Timer0/1运行控制位运行控制位运行控制位运行控制位 =1 =1 启动计数;启动计数;启动计数;启动计数; =0 =0 停止计数停止计数停止计数停止计数《《单片机原理与应用技术单片机原理与应用技术》》教学课件教学课件 定时器定时器T0/T1 T0/T1 中断申请过程中断申请过程 在已经在已经开放开放T0/T1T0/T1中断中断允许且已被允许且已被启动启动的前提下:的前提下:T0/T1T0/T1加满溢出加满溢出时时 TF0/TF1TF0/TF1标志位自动置标志位自动置““1 1”  检测到检测到TCONTCON中中TF0/TF1TF0/TF1变变“1 1”后后, ,将产生指令:将产生指令: LCALL 000BHLCALL 000BH/ /LCALL 001BHLCALL 001BH 执行中断服务程序执行中断服务程序 TF0/TF1TF0/TF1标志位会自动清标志位会自动清“0 0”, ,以备下次中断申请。

      以备下次中断申请 定时定时/ /计数器可按片内计数器可按片内机器周期机器周期定时,也可对由定时,也可对由T0/T1T0/T1引脚输入一个引脚输入一个负脉冲负脉冲进行进行加法计数加法计数《《单片机原理与应用技术单片机原理与应用技术》》教学课件教学课件 定时器定时器方式方式寄存器寄存器TMOD TMOD (89H) (89H) GATE C / T M1 M0 GATE C / T M1 M0T1T1T0T0M1,M0M1,M0::工作方式定义位工作方式定义位 ( ( 定义定义4 4 种方式种方式 ):):C/T C/T ::计数器计数器/ /定时器选择位定时器选择位 = 1 = 1 外部事件外部事件计数器计数器对TxTx引脚的引脚的负脉冲负脉冲计数;计数; = 0 = 0 片内时钟片内时钟定时器定时器对机器周期脉冲机器周期脉冲计数定时计数定时0 00 0::1313位位 TimerTimer——用它无益用它无益, ,不要记它!不要记它!0 10 1::1616位位 TimerTimer——经常用到经常用到1 01 0:可自动重装的:可自动重装的 8 8位位 TimerTimer——经常用到经常用到1 11 1::T0 T0 分为分为2 2个个8 8位位 TimerTimer;;T1 T1 此时不工作此时不工作 ——几乎几乎无无用用《《单片机原理与应用技术单片机原理与应用技术》》教学课件教学课件 GATE C / T M1 M0 GATE C / T M1 M0T1T0GATEGATE门控位门控位: : TimerTimer可由软件与硬件两者控制可由软件与硬件两者控制  GATE = 0 GATE = 0 ——普通用法普通用法 TimerTimer的的启启/ /停停由由软件软件对对TRxTRx位写位写““1 1”/ /“0 0”控制控制定时器定时器方式方式寄存器寄存器TMODTMOD((续)续)(89H)(89H)  GATE = 1 GATE = 1 ——门控用法门控用法 TimerTimer的的启启/ /停停由由软件软件对对TRxTRx位写位写““1 1”/ /“0 0” 和和在在INTxINTx引脚引脚上出现的信号的上出现的信号的高高/ /低低共同控制共同控制《《单片机原理与应用技术单片机原理与应用技术》》教学课件教学课件 定时器结构与工作方式定时器结构与工作方式工作方式工作方式1 1::——1616位的定时位的定时/ /计数器计数器振荡器振荡器 12TLx THx (8位位) (8位位)TFx申请申请中断中断TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端≥1≥1& &C/T=0C/T=1控制控制 =1开关接通开关接通或门或门与门与门《《单片机原理与应用技术单片机原理与应用技术》》教学课件教学课件  THx/TLxTHx/TLx赋初值赋初值::THxTHx赋高赋高8 8位,位,TLxTLx赋低赋低8 8位位工作方式工作方式1 1 的编程要点的编程要点:: TMODTMOD选方式选方式:: 写写“M1,M0M1,M0”= =0101 b b 选方式选方式1 1 若不用门控位若不用门控位, ,直接用软件写直接用软件写TRxTRx控制启控制启/ /停停 若使用门控位,先置位若使用门控位,先置位TRxTRx,,然后由然后由INTxINTx端端 的的高高/ /低电平低电平来控制其启来控制其启/ /停停 若要允许若要允许中断中断,还须先置位,还须先置位ETxETx、、EAEA等中断等中断 允许控制位,并编写允许控制位,并编写中断服务中断服务程序程序 若不用中断,可若不用中断,可查询查询““计数溢出标志计数溢出标志TFxTFx”” 的方式工作,但溢出标志的方式工作,但溢出标志TFxTFx须软件清须软件清0 0《《单片机原理与应用技术单片机原理与应用技术》》教学课件教学课件 定时器定时器( (方式方式1)1)应用程序举例:应用程序举例:分析分析:已知:已知foscfosc = 6MHz = 6MHz 则:则: ((机器周期)机器周期)1Tm=12Tc=12/6MHz=1Tm=12Tc=12/6MHz=2 2 S S 粗略地说:粗略地说:TminTmin   2 2 S S 16 16位定时器最大数值为:位定时器最大数值为:2 21616=65536=0FFFFH+1=65536=0FFFFH+1 故选择故选择方式方式 1 1 工作可以得到:工作可以得到: TmaxTmax = 65536 = 65536 2 = 1310722 = 131072 S S==131.072mS131.072mS例例:若晶振频率为:若晶振频率为6MHz6MHz,,计算单片机的最小与计算单片机的最小与最大最大定时时间:定时时间:《《单片机原理与应用技术单片机原理与应用技术》》教学课件教学课件 分析分析:已知:已知foscfosc = 6MHz = 6MHz 则:则: ((机器周期)机器周期)1Tm=12Tc=12/6MHz=21Tm=12Tc=12/6MHz=2 S S 100mS 100mS÷2 2  S = S = 5000050000 16 16位定时器最大数值为:位定时器最大数值为: 2 216 16 = = 6553665536 (=0FFFFH+1) (=0FFFFH+1) 故选择方式故选择方式1 1工作可以满足要求。

      工作可以满足要求例例:要求对:要求对T0T0产生产生100mS100mS定时进行初始化定时进行初始化 ( (晶振晶振=6MHz)=6MHz)定时器定时器( (方式方式1)1)应用程序举例:应用程序举例:计算计算初值初值::6553665536--50000=15536=50000=15536=3CB03CB0H H《《单片机原理与应用技术单片机原理与应用技术》》教学课件教学课件 GATE C / T M1 M0 GATE C / T M1 M0定时器方式定时器方式寄存器寄存器TMOD由分析得知:由分析得知:T0T0选择方式选择方式1 1,初值,初值=3CB0H=3CB0H X X X X 0 0 X X X X 0 0 0 10 1初始化:初始化:MOV TMODMOV TMOD,,# #01H01H ; ;选选 T0 T0 方式方式 1 1 MOV TH0MOV TH0,, # #3CH ;3CH ;赋初值高赋初值高8 8位位 MOV TL0MOV TL0,, #0#0B0H ;B0H ;赋初值低赋初值低8 8位位 SETB TR0SETB TR0 ; ;启动启动 T0T0定时定时若需要定时器若需要定时器0 0产生中断产生中断还应当写如下语句:还应当写如下语句: SETB ET0SETB ET0 ; ;开开T0T0中断允许中断允许 SETB EASETB EA ; ;开总中断允许开总中断允许以及相应的以及相应的中断服务程序中断服务程序。

      《《单片机原理与应用技术单片机原理与应用技术》》教学课件教学课件 工作方式工作方式2 2::——8 8 位自动重装的定时位自动重装的定时/ /计数器计数器振荡器振荡器 12TLx (8位位)TFx申请申请中断中断TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端≥1≥1& &C/T=0C/T=1控制控制 =1开关接通开关接通或门或门与门与门THx (8位位)溢溢出出位位门开门开《《单片机原理与应用技术单片机原理与应用技术》》教学课件教学课件 ☞☞ THx/TLxTHx/TLx赋相同初值赋相同初值 在在TLxTLx计数达到计数达到0FF0FFH H 再加再加“1 1”时,时,TL0TL0 将溢出将溢出, ,进位位进位位直接进入直接进入“TFxTFx””去申请去申请 中断中断, ,同时同时打开三态门打开三态门,使,使THxTHx中的值中的值 自动自动重装重装(Copy)(Copy)进进TLxTLx工作方式工作方式 2 2 的编程:的编程:☞☞ TMODTMOD寄存器选方式:寄存器选方式: 写写“M1M1,,M0M0” = = 1 01 0 b b 选中方式选中方式2 2☞☞ 其他用法与各种方式其他用法与各种方式1 1完全相同完全相同《《单片机原理与应用技术单片机原理与应用技术》》教学课件教学课件 定时计数器的初始化定时计数器的初始化l1 1、、初始化的步骤:初始化的步骤:1 1))确确定定定定时时器器/ /计计数数器器的的工工作作方方式式、、操操作作模模式式、、启启动动控制方式控制方式,并利用传送指令将其写入,并利用传送指令将其写入TMODTMOD寄存器。

      寄存器2 2))设设置置定定时时器器/ /计计数数器器的的初初值值直直接接将将初初值值写写入入TH0TH0、、TL0TL0或或TH1TH1、、TL1TL1中3 3))根根据据要要求求考考虑虑是是否否采采用用中中断断方方式式,,直直接接对对IEIE位位赋赋值值开开放放中中断断时时,,对对应应位位置置1 1;;采采用用程程序序查查询询方方式式时时,,IEIE中对应位应清中对应位应清0 0进行中断屏蔽进行中断屏蔽 定时计数器的初始化定时计数器的初始化4 4))启动定时器启动定时器/ /计数器工作计数器工作 当当GATEGATE设设置置0 0时时,,执执行行SETB SETB TRiTRi后后,,启启动动定定时时器器/ /计数器;计数器; 若若GATEGATE设设置置l l时时,,由由外外部部中中断断引引脚脚共共同同控控制制,,只只有有当当INT0/INT1INT0/INT1引引脚脚电电平平为为高高时时,,指指令令以以上上执执行行后后定定时器时器/ /计数器方可启动工作计数器方可启动工作 定定时时器器/ /计计数数器器一一旦旦启启动动就就按按规规定定的的方方式式定定时时或或计数。

      计数 2 2.计数初值的计算.计数初值的计算 当当T0T0或或T1T1工工作作于于定定时时器器或或计计数数器器方方式式时时,,不不同同的的工工作作方方式式、、不不同同的的操操作作模模式式其其计计数数初初值值均均不不相相同同若若设设最最大大计计数数值值( (溢溢出出值值) )为为M(M(模模)),,各各操操作作模式下的模式下的M M值为:值为: 模式模式0 0:: M=2M=21313=8192=8192 模式模式1 1:: M=2M=21616=65536=65536 模式模式2 2:: M=2M=28 8=256=256 模模式式3 3:: M=2M=28 8=256=256定定时时器器T0T0分分成成2 2个个独独立立的的8 8位计数器,所以位计数器,所以TH0TH0、、TL0TL0的的M M均为均为256256 2 2.计数初值的计算.计数初值的计算 MCS-51MCS-51的的两两个个定定时时器器均均为为加加1 1计计数数器器,,当当加加到到溢溢出出值值时时产产生生溢溢出出,,将将TFTF位位置置l l,,可可发发出出溢溢出出中中断断,,因此,因此,计数器初值计数器初值X X的计算式为:的计算式为: X=M-X=M-计数值计数值(通式)(通式) T0T0或或T1T1工作于定时器与计数器方式时,工作于定时器与计数器方式时,X X的确的确定方法有别定方法有别。

      1 1)计数器方式)计数器方式l当当T0T0或或T1T1工工作作于于计计数数器器方方式式时时,,计计数数脉脉冲冲由由外外部部引引入入,,它它是是对对外外部部脉脉冲冲进进行行计计数数因因此此计计数数值值应应根根据据实实际际要要求求来来确确定定计计数数初初值值可可采采用用通通式式计计算算,,即即:: X=M-X=M-计数值计数值 【【举例举例】】::在方式在方式1 1时,每接收时,每接收100100个外部事件,要个外部事件,要求产生一个中断,确定计数初值求产生一个中断,确定计数初值 X=M-X=M-计数值计数值=65536-100=65436==65536-100=65436=FF9CFF9CH H1111111110011100THi=FFHTLi=9CH 定时器初值计算公式:定时器初值计算公式: 当当当当T0T0T0T0或或或或T1T1T1T1工工工工作作作作于于于于定定定定时时时时器器器器方方方方式式式式时时时时,,,,由由由由于于于于是是是是对对对对机机器器周周期期进进进进行行行行计计数数,,,,故故故故计计数数值值应应为为定定时时时时间间对对应应的的机机器器周周期期个个数数。

      为为为为此此此此,,,,应应应应首首首首先先先先将将将将定定定定时时时时时时时时间间间间转转转转换换换换为为为为所所所所需需需需要要要要记记记记录录录录的机器周期个数(计数值)其转换公式为:的机器周期个数(计数值)其转换公式为:的机器周期个数(计数值)其转换公式为:的机器周期个数(计数值)其转换公式为: 机器周期个数(计数值)机器周期个数(计数值)= = T Tc c / / T Tp p式式式式中中中中 T T T Tc c c c————定定定定时时时时时时时时间间间间;;;;T T T Tp p p p————机机机机器器器器周周周周期期期期,,,,T T T Tp p p p=12/ =12/ =12/ =12/ f f f foscoscoscosc ;;;;f f f foscoscoscosc为机器时钟(震荡器)的振荡频率为机器时钟(震荡器)的振荡频率为机器时钟(震荡器)的振荡频率为机器时钟(震荡器)的振荡频率 故计数初值的计算公式为:故计数初值的计算公式为:故计数初值的计算公式为:故计数初值的计算公式为: X=M-X=M-计数计数值值=M- =M- T Tc c / / T Tp p =M-( =M-(T TC C××f foscosc) )//1212。

      【【举例举例】】::请计算定时请计算定时50ms50ms所需要的定时所需要的定时初值 f foscosc= =12MHz12MHz1 1))确定模式:选择模式确定模式:选择模式1 1 ;;2 2))计算定时初值计算定时初值X=65536-50ms/1X=65536-50ms/1μμЅ=65536-50000 =15536 =65536-50000 =15536 = =3CB0H3CB0H即:即: THiTHi=3CH;TLi=B0H=3CH;TLi=B0H 定时器方式定时器方式1 1应用举例应用举例20ms10ms10msl例例1 1::用用用用T1T1T1T1产产产产生生生生一一一一个个个个50Hz50Hz50Hz50Hz的的的的对对对对称称称称方方方方波波波波,,,,由由由由P1.lP1.lP1.lP1.l输输输输出出出出,,,,采用用程序查询方式,采用用程序查询方式,采用用程序查询方式,采用用程序查询方式,f f f foscoscoscosc=12MHz=12MHz=12MHz=12MHzGATEC/TM1M0GATEC/TM1M0TMOD 0001 0000【【【【解解解解】】】】:首先确定工作方式、工作模式和定时初值。

      首先确定工作方式、工作模式和定时初值首先确定工作方式、工作模式和定时初值首先确定工作方式、工作模式和定时初值 1 1 1 1))))选定时方式(选定时方式(C/T=0C/T=0);); 2 2 2 2))))模式模式1 1((M2 M1=01) M2 M1=01) ,, 3 3 3 3)方波周期)方波周期)方波周期)方波周期T=l/50=O.02s=20msT=l/50=O.02s=20msT=l/50=O.02s=20msT=l/50=O.02s=20ms,用,用,用,用T1T1T1T1定时定时定时定时10ms10ms10ms10ms,,,,计数初值为:计数初值为:X1=2X1=2X1=2X1=216161616- - - -10×1010×1010×1010×10-3-3-3-3×12×10×12×10×12×10×12×106 6 6 6////12=12=12=12=65536-10000=55536=D8F0H65536-10000=55536=D8F0H65536-10000=55536=D8F0H65536-10000=55536=D8F0H;;;; 即即即即TH1=D8H,TL1=F0HTH1=D8H,TL1=F0HTH1=D8H,TL1=F0HTH1=D8H,TL1=F0H。

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

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.