第四章--定时器ppt课件_第1页
第四章--定时器ppt课件_第2页
第四章--定时器ppt课件_第3页
第四章--定时器ppt课件_第4页
第四章--定时器ppt课件_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章第四章 中断、定时与串口中断、定时与串口本讲重点:本讲重点: 中断概念中断概念,响应条件响应条件,处理原则处理原则,中断服务中断服务; 定时器定时器/计数器工作方式计数器工作方式1,2的用法的用法; 串行通讯的波特率串行通讯的波特率, 4种工作方式种工作方式.第二节第二节单片机的定时单片机的定时/计数器计数器NoImageNoImage2 2个个1616位定时器位定时器/ /计数器计数器 (52(52系列有系列有3 3个个1616位位Timer)Timer)定时器定时器: :对片内机器时钟对片内机器时钟( (周期方波周期方波) )进行进行计数计数计数器计数器: :对对T0/T1T0/T1

2、引脚输入的负脉冲进行计引脚输入的负脉冲进行计数数与与TimerTimer工作有关的特殊功能寄存器:工作有关的特殊功能寄存器: TCON TCON 和和 TMODTMODNoImageTF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0定时器控制寄存器定时器控制寄存器TCON (88H) P.116TCON (88H) P.116TF0/TF1: Timer0/1TF0/TF1: Timer0/1计数溢出标志位。计数溢出标志位。 =1 =1 计数溢出;计数溢出; =0 =0 计数未满计数未满 TF0/TF1TF0/TF1标志位可用于申请中断或供标志位可用于申请中断或供CPUCPU查询。

3、查询。 在进入中断服务程序时会自动清零;但在在进入中断服务程序时会自动清零;但在 查询方式时必须软件清零。查询方式时必须软件清零。TR0/TR1: Timer0/1TR0/TR1: Timer0/1运行控制位。运行控制位。 =1 =1 启动计数;启动计数; =0 =0 停止计数停止计数NoImage定时器定时器T0/T1 T0/T1 中断申请过程中断申请过程 在已经开放在已经开放T0/T1T0/T1中断允许且已被启动的前提下:中断允许且已被启动的前提下:T0/T1T0/T1加满溢出时加满溢出时 TF0/TF1TF0/TF1标志位自动置标志位自动置“1” 1” 检测到检测到TCONTCON中中T

4、F0/TF1TF0/TF1变变“1 1后后, ,将产生指令:将产生指令: LCALL 000BH/LCALL 001BH LCALL 000BH/LCALL 001BH 执行中断服务程序执行中断服务程序 TF0/TF1 TF0/TF1标志位会自动清标志位会自动清“0”,0”,以备下次中断申请。以备下次中断申请。 定时定时/ /计数器可按片内机器周期定时,也可对由计数器可按片内机器周期定时,也可对由T0/T1T0/T1引脚输入一个负脉冲进行加法计数引脚输入一个负脉冲进行加法计数定时器方式寄存器定时器方式寄存器TMOD (89H) TMOD (89H) GATE C / T M1 M0 GATE

5、C / T M1 M0T1T1T0T0M1,M0M1,M0:工作方式定义位:工作方式定义位 ( ( 定义定义4 4 种方式种方式 ):):NoImageC/T C/T :计数器:计数器/ /定时器选择位定时器选择位 = 1 = 1 外部事件计数器。对外部事件计数器。对TxTx引脚的负脉冲计数;引脚的负脉冲计数; = 0 = 0 片内时钟定时器。对机器周期脉冲计数定时片内时钟定时器。对机器周期脉冲计数定时0 00 0:1313位位 TimerTimer用它无益用它无益, ,不要记它!不要记它!0 10 1:1616位位 TimerTimer经常用到经常用到1 01 0:可自动重装的:可自动重装的

6、 8 8位位 TimerTimer经常用到经常用到1 11 1:T0 T0 分为分为2 2个个8 8位位 TimerTimer;T1 T1 此时不工作此时不工作 几乎无用几乎无用NoImageGATE C / T M1 M0 GATE C / T M1 M0T1T0GATEGATE门控位门控位: Timer: Timer可由软件与硬件两者控制可由软件与硬件两者控制 GATE = 0 GATE = 0 普通用法普通用法 TimerTimer的启的启/ /停由软件对停由软件对TRxTRx位写位写“1”/“01”/“0控制控制定时器方式寄存器定时器方式寄存器TMODTMOD续)续)(89H)(89H

7、) GATE = 1 GATE = 1 门控用法门控用法 TimerTimer的启的启/ /停由软件对停由软件对TRxTRx位写位写“1”/“0” 1”/“0” 和在和在INTxINTx引脚上出现的信号的高引脚上出现的信号的高/ /低共同控制低共同控制定时器结构与工作方式定时器结构与工作方式NoImage工作方式工作方式1 1:1616位的定时位的定时/ /计数器计数器振荡器振荡器 12TLx THx (8位位) (8位位)TFx申请申请中断中断TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端11& &C/T=0C/T=1控制控制 =1开关接通开关接通或门或

8、门与门与门 THx/TLx THx/TLx赋初值:赋初值:THxTHx赋高赋高8 8位,位,TLxTLx赋低赋低8 8位位NoImage工作方式工作方式1 1 的编程要点:的编程要点: TMOD TMOD选方式:选方式: 写写“M1,M0”=01 b M1,M0”=01 b 选方式选方式1 1 若不用门控位若不用门控位, ,直接用软件写直接用软件写TRxTRx控制启控制启/ /停停 若使用门控位,先置位若使用门控位,先置位TRxTRx,然后由,然后由INTxINTx端端 的高的高/ /低电平来控制其启低电平来控制其启/ /停停 若要允许中断,还须先置位若要允许中断,还须先置位ETxETx、EA

9、EA等中断等中断 允许控制位,并编写中断服务程序允许控制位,并编写中断服务程序 若不用中断,可查询若不用中断,可查询“计数溢出标志计数溢出标志TFx”TFx” 的方式工作,但溢出标志的方式工作,但溢出标志TFxTFx须软件清须软件清0 0定时器定时器( (方式方式1)1)应用程序举例:应用程序举例:分析:已知分析:已知fosc = 6MHz fosc = 6MHz 那么:那么: (机器周期(机器周期1Tm=12Tc=12/6MHz=21Tm=12Tc=12/6MHz=2S S 粗略地说:粗略地说:Tmin Tmin 2 2S S 16 16位定时器最大数值为:位定时器最大数值为:216=655

10、36=0FFFFH+1216=65536=0FFFFH+1 故选择方式故选择方式 1 1 工作可以得到:工作可以得到: Tmax = 65536 Tmax = 655362 = 1310722 = 131072S S131.072mS131.072mS例:若晶振频率为例:若晶振频率为6MHz6MHz,计算单片机的最小与,计算单片机的最小与最大定时时间:最大定时时间:分析:已知分析:已知fosc = 6MHz fosc = 6MHz 那么:那么: (机器周期(机器周期1Tm=12Tc=12/6MHz=21Tm=12Tc=12/6MHz=2S S 100mS 100mS2 2 S = 50000S

11、 = 50000 16 16位定时器最大数值为:位定时器最大数值为: 216 = 65536 (=0FFFFH+1)216 = 65536 (=0FFFFH+1) 故选择方式故选择方式1 1工作可以满足要求。工作可以满足要求。例:要求对例:要求对T0T0产生产生100mS100mS定时进行初始化。定时进行初始化。 ( (晶振晶振=6MHz)=6MHz)定时器定时器( (方式方式1)1)应用程序举例:应用程序举例:计算初值:计算初值:655366553650000=15536=3CB0H50000=15536=3CB0HGATE C / T M1 M0 GATE C / T M1 M0定时器方式

12、定时器方式寄存器寄存器TMOD由分析得知:由分析得知:T0T0选择方式选择方式1 1,初值,初值=3CB0H=3CB0H X X X X 0 0 0 X X X X 0 0 0 1 1初始化:初始化:MOV TMODMOV TMOD,#01H ;#01H ;选选 T0 T0 方式方式 1 1 MOV TH0 MOV TH0, #3CH ;#3CH ;赋初值高赋初值高8 8位位 MOV TL0MOV TL0, #0B0H ;#0B0H ;赋初值低赋初值低8 8位位 SETB TR0 ;SETB TR0 ;启动启动 T0T0定时定时若需要定时器若需要定时器0 0产生中断还应当写如下语句:产生中断还

13、应当写如下语句: SETB ET0 ;SETB ET0 ;开开T0T0中断允许中断允许 SETB EA ;SETB EA ;开总中断允许开总中断允许以及相应的中断服务程序。以及相应的中断服务程序。NoImage工作方式工作方式2 2:8 8 位自动重装的定时位自动重装的定时/ /计数器计数器振荡器振荡器 12TLx (8位位)TFx申请申请中断中断TxTx端端TRxTRx位位GATEGATE位位INTxINTx端端11& &C/T=0C/T=1控制控制 =1开关接通开关接通或门或门与门与门THx (8位位)溢溢出出位位门开门开 THx/TLxTHx/TLx赋相同初值赋相同初值

14、在在TLxTLx计数达到计数达到0FFH 0FFH 再加再加“1 1时,时,TL0TL0 将溢出将溢出, ,进位位直接进入进位位直接进入“TFxTFx去申请去申请 中断中断, ,同时打开三态门,使同时打开三态门,使THxTHx中的值中的值 自动重装自动重装(Copy)(Copy)进进TLxTLxNoImage工作方式工作方式 2 2 的编程:的编程: TMODTMOD寄存器选方式:寄存器选方式: 写写“M1M1,M0” = 1 0 b M0” = 1 0 b 选中方式选中方式2 2 其他用法与各种方式其他用法与各种方式1 1完全相同完全相同NoImage分析:分析:fosc = 6MHz fo

15、sc = 6MHz 1 1机器周期机器周期 = 2 = 2 S S 1KHz 1KHz方波周期方波周期 = 1 mS = 1 mS 半个方波周期半个方波周期 =500=500S S 500uS 500uS2 uS = 250 2 uS = 250 若选择方式若选择方式2 2 工作工作,8,8位位定时器最大数值为:定时器最大数值为: 28 =256 =0FFH + 1 28 =256 =0FFH + 1 可以满足要求。可以满足要求。计算初值:计算初值:256256250=6250=6例例: :从从P1.0 P1.0 脚输出频率脚输出频率=1KHz=1KHz方波。方波。设:晶振设:晶振=6MHz=

16、6MHz。利用。利用T1T1定时中断。定时中断。Th:半周期:半周期T:周期:周期定时器方式定时器方式2 2应用程序举例:应用程序举例:NoImage ORG 0000H ORG 0000H AJMP MAIN AJMP MAIN ORG 001BH ORG 001BH ;T1T1的中断矢量的中断矢量 ;中断服务;中断服务 RETI RETI ;中断返回;中断返回MAIN: MAIN: MOV TH1 MOV TH1, #6#6 SETB ET1 SETB ET1 SETB EA SETB EA HERE: AJMP HERE HERE: AJMP HERE ;原地等待中断;原地等待中断 EN

17、DEND初初始始化化;选;选T1T1方式方式2 2;赋重装值;赋重装值;赋初值;赋初值;开;开T1T1中断中断;开总中断;开总中断;启动;启动T1T1CPL P1.0 MOV TMOD,#20HMOV TL1, #6SETB TR1 NoImageT0T0: 组织成组织成TL0TL0和和TH0TH0两个两个8 8位定时位定时/ /计数器计数器TimerTimer工作方式工作方式 3 3 几乎无用几乎无用T1T1: 不再是定时不再是定时/ /计数器了计数器了 T1 T1 的的TR1TR1和和TF1TF1出借给出借给TH0TH0当控制位使用当控制位使用, , 剩下的剩下的TH1/TL1TH1/TL

18、1寄存器只能当作普通寄存寄存器只能当作普通寄存 器用。器用。振荡器振荡器 12TL0 (8位位)TF0申请申请中断中断T0T0端端TR0TR0位位GATEGATE位位INT0INT0端端11& &C/T=0C/T=1控制控制 =1开关接通开关接通或门或门与门与门TH0 (8位位)TF1申请申请中断中断TR1TR1位位控制控制 =1TimerTimer工作方式工作方式 3 3 构造:构造:NoImage T0T0成为双成为双 8 8位位TimerTimer T1T1不再有不再有TimerTimer功能功能 TF1TF1,TR1TR1出借给出借给TH0 TH0 定时器小结:定时器小

19、结: (2 2个个1616位加法计数器)位加法计数器)NoImage运行运行/ /停止由停止由TRxTRx位控制,位控制,( (当当GATE=1GATE=1时:时: 由由TRxTRx位和位和TxTx引脚上的信号共同控制引脚上的信号共同控制) )工作方式由工作方式由TMODTMOD决定决定; ; 计数计数/ /定时由定时由C/TC/T位决定位决定 工作方式工作方式0 01313位)位) 几乎不用几乎不用 工作方式工作方式3 3T0T0拆为双拆为双8 8位)位) 几乎无用几乎无用 工作方式工作方式1 11616位)位) 经常用到经常用到 工作方式工作方式2 28 8位自动重装)位自动重装) 经常用

20、到经常用到从初值按机器周期或外部脉冲递加,溢出位从初值按机器周期或外部脉冲递加,溢出位 TFxTFx申请中断;中断允许由申请中断;中断允许由ETxETx位和位和EAEA位控制,位控制,定时计数器的初始化定时计数器的初始化l1 1、初始化的步骤:、初始化的步骤:l1 1确定定时器确定定时器/ /计数器的工作方式、操作模计数器的工作方式、操作模式、启动控制方式,并利用传送指令将其写式、启动控制方式,并利用传送指令将其写入入TMODTMOD寄存器。寄存器。l2 2设置定时器设置定时器/ /计数器的初值。直接将初值计数器的初值。直接将初值写入写入TH0TH0、TL0TL0或或TH1TH1、TL1TL1

21、中。中。l3 3根据要求考虑是否采用中断方式,直接对根据要求考虑是否采用中断方式,直接对IEIE位赋值。开放中断时,对应位置位赋值。开放中断时,对应位置1 1;采用程;采用程序查询方式时,序查询方式时,IEIE中对应位应清中对应位应清0 0进行中断屏进行中断屏蔽。蔽。定时计数器的初始化定时计数器的初始化4 4启动定时器启动定时器/ /计数器工作。计数器工作。 当当GATEGATE设置设置0 0时,执行时,执行SETB TRiSETB TRi后,启动定时器后,启动定时器/ /计数器;计数器; 若若GATEGATE设置设置l l时,由外部中断引脚共同控制,只时,由外部中断引脚共同控制,只有当有当I

22、NT0/INT1INT0/INT1引脚电平为高时,指令以上执行后定引脚电平为高时,指令以上执行后定时器时器/ /计数器方可启动工作。计数器方可启动工作。 定时器定时器/ /计数器一旦启动就按规定的方式定时或计数器一旦启动就按规定的方式定时或计数。计数。 2 2计数初值的计算计数初值的计算2 2计数初值的计算计数初值的计算 MCS-51 MCS-51的两个定时器均为加的两个定时器均为加1 1计数器,当加计数器,当加到溢出值时产生溢出,将到溢出值时产生溢出,将TFTF位置位置l l,可发出溢出,可发出溢出中断,因而,计数器初值中断,因而,计数器初值X X的计算式为:的计算式为: X=M-X=M-计

23、数值通式)计数值通式) T0T0或或T1T1工作于定时器与计数器方式时,工作于定时器与计数器方式时,X X的的确定方法有别。确定方法有别。1 1计数器方式计数器方式l当当T0T0或或T1T1工作于计数器方式时,计数脉冲由外工作于计数器方式时,计数脉冲由外部引入,它是对外部脉冲进行计数。因此计数部引入,它是对外部脉冲进行计数。因此计数值应根据实际要求来确定。计数初值可采用通值应根据实际要求来确定。计数初值可采用通式计算,即:式计算,即:l X=M-X=M-计数值计数值 l【举例】:在方式【举例】:在方式1 1时,每接收时,每接收100100个外部事件,个外部事件,要求产生一个中断,确定计数初值。

24、要求产生一个中断,确定计数初值。l X=M-X=M-计数值计数值=65536-100=65436=FF9CH=65536-100=65436=FF9CHTHi=FFHTLi=9CH定时器初值计算公式:定时器初值计算公式:【举例】:请计算定时【举例】:请计算定时50ms50ms所需要的定时所需要的定时初值。初值。 fosc=12MHzfosc=12MHz1 1确定模式:选择模式确定模式:选择模式1 1 ;2 2计算定时初值。计算定时初值。即:即: THi=3CH;TLi=B0HTHi=3CH;TLi=B0H定时器方式定时器方式1 1应用举例应用举例20ms10ms10msl例例1 1:用:用T1

25、T1产生一个产生一个50Hz50Hz的对称方波,由的对称方波,由P1.lP1.l输出,输出,采用用程序查询方式,采用用程序查询方式,fosc=12MHzfosc=12MHz。TMOD 0001 0000 3 3方波周期方波周期T=l/50=O.02s=20msT=l/50=O.02s=20ms,用,用T1T1定时定时10ms10ms,计数初值为:计数初值为:X1=216-10X1=216-1010-310-3121210610612=12=65536-10000=55536=D8F0H65536-10000=55536=D8F0H; 即即TH1=D8H,TL1=F0HTH1=D8H,TL1=F

26、0H。源程序如下查询方式):源程序如下查询方式):lSJMP LOOP ;循环SETB TRl CLR TF1 利用中断方式编程利用中断方式编程定时器门控位定时器门控位GATEGATE的应用的应用 例:例: 利用利用T0T0门控位测引脚上出现的正脉冲门控位测引脚上出现的正脉冲宽度,将所测得的高宽度,将所测得的高8 8位值存入片内位值存入片内7lH7lH,低,低8 8位值存入片内位值存入片内70H70H单元中。已知单元中。已知fosc=12MHzfosc=12MHz。 lGATE=0GATE=0时,只要时,只要TR=1TR=1便启动定时器开始计数。便启动定时器开始计数。l如果如果GATE=1GATE=1时时, TR=1, TR=1电路是否计数取决于电路是否计数取决于/INT0/INT0:l /INTE0=1 /INTE0=1 时开始计数;时开始计数;/INTE0=0,/INTE0=0,电路不计数。电路不计数。计数器震荡器1/12TF0中断计数控制T0 引脚TR0GATEINT0C/T=0C/T=1 MCS-51 INTE0 MCS-51INT0 启动T0 T0开始计数 计数停止 (TR0=1) (/INT0=1) (/INT0=0)外部脉冲测试程序如下测试程序如下( (仍用查询方式仍用查询方式) )这种方案的最大被这种方案的最大被测

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论