《定时器和中断》PPT课件.ppt

上传人:小飞机 文档编号:5493668 上传时间:2023-07-13 格式:PPT 页数:33 大小:313.99KB
返回 下载 相关 举报
《定时器和中断》PPT课件.ppt_第1页
第1页 / 共33页
《定时器和中断》PPT课件.ppt_第2页
第2页 / 共33页
《定时器和中断》PPT课件.ppt_第3页
第3页 / 共33页
《定时器和中断》PPT课件.ppt_第4页
第4页 / 共33页
《定时器和中断》PPT课件.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《《定时器和中断》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《定时器和中断》PPT课件.ppt(33页珍藏版)》请在三一办公上搜索。

1、第4章 定时器和中断,4.1 定时器/计数器概述,4.1.1 定时方法概述4.1.2 定时/计数器的结构和工作原理4.1.3 定时器/计数器工作方式控制寄存器 TMOD4.1.4 定时/计数器控制寄存器TCON 4.1.5 定时器/计数器的初始化,1软件定时软件定时是靠执行一个循环程序以进行时间延时。软件定时要占用CPU。2硬件定时 对于定时时间较长的定时,常使用硬件定时完成。不占CPU时间。3可编程定时器定时 这种定时方法是通过对系统时钟脉冲的计数来实现。,4.1.1 定时方法概述,4.1.2 定时/计数器的结构和工作原理,定时/计数器的结构,定时器/计数器工作原理 16位的定时器/计数器实

2、质上是一个加1计数器,其控制电路受软件控制、切换。定时器工作前先装入初值,利用送数指令将初值装入TH0和TL0或TH1和TL1,高位数装入TH0和TH1,低位数装入TL0和TL1。当发出启动命令后,装初值寄存器开始计数,连续加1,每一个机器周期加1一次,加到满值(各位全1)。若再加1,则溢出,同时将初值寄存器清零。,4.1.3 定时器/计数器工作方式控制寄存器 TMOD,TMOD,(89H),GATE C/T M1 M0 GATE C/T M1 M0,T1,T0,M1,M0:工作方式定义位(定义4 种方式):0 0:13位 Timer用它无益,不要记它!0 1:16位 Timer经常用到1 0

3、:可自动重装的 8位 Timer经常用到1 1:T0 分为2个8位 Timer;T1 此时不工作 因为没有带来甚麽好处,几乎无用C/T:计数器/定时器选择位=1 外部事件计数器。对Tx引脚的负脉冲计数;=0 片内时钟定时器。对机器周期脉冲计数,GATE门控位:Timer可由软件与硬件两者控制 GATE=0 普通用法Timer的启/停由软件对TRx位写“1”/“0”控制 GATE=1 门控用法 Timer的启/停由软件对TRx位写“1”/“0”和在 INTx引脚上出现的信号的高/低共同控制注意:TMOD不能位寻址,只能由字节设置T/C的工作方式,低半字节设定T/C0,高半字节设定T/C1。,4.

4、1.4 定时/计数器控制寄存器TCON,TCON,TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0,(88H),TF0/TF1:定时器溢出中断申请标志位:为0:定时器未溢出;为1:定时器溢出申请中断,进中断后自动清零。TR0/TR1:定时器运行启停控制位:为0:定时器停止运行;为1:定时器启动运行IE0/IE1:外部中断申请标志位:为0:没有外部中断申请;为1:有外部中断申请。IT0/IT1:外部中断请求的触发方式选择位:为0:在INT0/INT1端申请中断的信号低电平有效;为1:在INT0/INT1端申请中断的信号负跳变有效.,选择工作方式,即对TMOD 赋初值。给定时器赋初值

5、,即把初始常数装入TH0 TL0或TH1 TL1。根据需要设置中断控制字。启动定时/计数器。设初值为X,最大计数值为M。初值X与机器周期T机及定时时间T的关系为(MX)T机=T其中,T机=12个时钟周期=12/fOSC X=MT/T机,4.1.5 定时器/计数器的初始化,4.2 定时器/计数器的工作方式,方式0 13位计数方式当TL1的低5 位溢出时,向TH1进位,而TH1溢出(回零)时向TF1标志进位(硬件置位TF1),并申请中断。还可以通过查询TF1是否置位来判断TH1是否回零溢出。,振荡器,12,TLx THx(5位)(8位),TFx,申请中断,Tx端,TRx位,GATE位,INTx端,

6、1,&,C/T=0,C/T=1,控制=1开关接通,或门,与门,方式1 一个16为定时器/计数器。方式1的结构几乎与方式0完全一样,唯一的差别是:方式1中的TH1(TH0)和TL1(TL0)均是8位的,构成16位计数器。,振荡器,12,TLx THx(8位)(8位),TFx,申请中断,Tx端,TRx位,GATE位,INTx端,1,&,C/T=0,C/T=1,控制=1开关接通,或门,与门,方式2 在方式2时,T/C被拆成一个8位的寄存器TH1(TH0)和一个8位计数器TL1(TL0),两者构成可以自动重装载的8位T/C。,振荡器,12,TLx(8位),TFx,申请中断,Tx端,TRx位,GATE位

7、,INTx端,1,&,C/T=0,C/T=1,控制=1开关接通,或门,与门,THx(8位),溢出位,门开,方式3,振荡器,12,TL0(8位),TF0,申请中断,T0端,TR0位,GATE位,INT0端,1,&,C/T=0,C/T=1,控制=1开关接通,或门,与门,TH0(8位),TF1,申请中断,TR1位,控制=1,T0成为双 8位Timer T1不再有Timer功能 TF1,TR1出借给TH0,例如:若晶振频率为6MHz,计算单片机的最小与最大定时时间分析:已知fosc=6MHz 则:(振荡周期)1Tc=1/6MHz(机器周期)1Tm=12Tc=12/6MHz=2S 粗略地说:Tmin 2

8、S 16位定时器最大数值为:216=65536=0FFFFH+1 故选择方式 1 工作可以得到:Tmax=655362=131072S131.072mS,4.3 定时器/计数器的应用举例,例如:要求对T0产生100mS定时进行初始化。(晶振=6MHz)分析:已知fosc=6MHz 则:(机器周期)1Tm=12Tc=12/6MHz=2S 100mS2 S=50000 16位定时器最大数值为:216=65536(=0FFFFH+1)故选择方式1工作可以满足要求。计算初值:6553650000=15536=3CB0H初始化:MOV TMOD,#01H;选 T0 方式 1 MOV TH0,#3CH;赋

9、初值高8位 MOV TL0,#0B0H;赋初值低8位 SETB TR0;启动 T0定时若需要定时器0产生中断还应当写如下语句:SETB ET0;开T0中断允许 SETB EA;开总中断允许以及相应的中断服务程序。,例如:从P1.0 脚输出频率为1KHz方波。设:晶振=6MHz。利用T1定时中断。分析:fosc=6MHz 1机器周期=2 S 1KHz方波周期=1 mS 半个方波周期=500S 500uS2 uS=250 若选择方式2 工作,8位定时器最大数值为:28=256=0FFH+1 可以满足要求。计算初值:256250=6,T:周期,Th:半周期,ORG 0000H AJMP MAIN O

10、RG 001BH;T1的中断矢量 CPL P1.0;中断服务:P1.0取非 RETI;中断返回MAIN:MOV TMOD,#20H MOV TH0,#6 MOV TL0,#6 SETB ET1 SETB EA SETB TR1 HERE:AJMP HERE;原地等待中断 END,利用GATE门控位测量从INT1引脚输入的正脉冲宽度。确定工作方式(TMOD)1001 0000B90H;T/C1定时,方式1,GATE为1。计算初值 由于被测正脉冲宽度未知,假设宽度=65.536ms,fosc12MHz,则:计数个数:X65536(最大)定时初值:C65536-X65536-655360,(TH1)

11、00H,(TL1)00H。,ORG 0000H SJMP 0030H ORG 0030HMAIN:MOV TMOD,#90H;置T1方式控制字 MOV TL1,#00H;MOV TH1,#00H;T1从0开始计数 JB P3.3,$;等 低电平 SETB TR1;T1允许计数 JNB P3.3,$;等 高电平 JB P3.3,$;等 低电平 CLR TR1;停止计数,4.4.1 中断有关的概念 4.4.2 8051中断标志及控制寄存器 4.4.3 中断响应的条件及响应过程 4.4.4 中断程序设计思想,4.4 MCS-51单片机中断系统,4.4.1 中断有关的概念,中断就是利用软硬件配合,根据

12、某种需要断开正在执行的程序而转向另一专门程序,结束后再返回到原断开处继续执行被中止的程序,这个过程称为中断。中断后转向执行的程序叫中断服务或中断处理程序。原程序被断开的位置(地址)叫做断点。发出中断信号的设备称为中断源。中断源要求中断服务所发出的标志信号称为中断请求或中断申请。中断源向CPU发出中断申请,CPU经过判断认为满足条件,则对中断源做出答复,叫中断响应。,TCON见定时部分。SCON:串行口控制寄存器SCON(低两位与串行口中断有关)(SCON,4.4.2 8051中断标志及控制寄存器,TI R1,(98H),RI,TI:串行口收/发数据申请中断标志位 为1:申请中断;为0:不申请中

13、断,IE,(A8H),EA ET2 ES ET1 EX1 ET0 EX0,EX0/EX1/ET1/ET0/ES 位:分别是INT0/1,Timer0/1,串行口的中断允 许控制位:=0 时禁止中断;=1 时允许中断。ET2:T2中断允许控制位(仅52子系列有)=0 时禁止中断;=1 时允许中断。EA:总的中断允许控制位(总开关):=0 时禁止全部中断;=1 时允许中断。,IP,(B8H),PT2 PS PT1 PX1 PT0 PX0,PX0/PX1:INT0/1优先级控制位:=0 时属低优先级;=1 时属高优先级。PT0/PT1/PT2:T0/1/2中断优先级控制位:=0 时属低优先级;=1

14、时属高优先级。PS1:串行口中断优先级控制位:=0 时属低优先级;=1 时属高优先级。,4.4.3 中断响应的条件及响应过程,IE0,EX0,TF0,IE1,TF1,TI,ES,ET1,EX1,ET0,外部中断 请求0,外部中断 请求1,内部 定时器0,内部 定时器1,内部 串行口,T,R,RI,IE寄存器,EA位,IP寄存器,各单路开关,总开关,中断源标志位查询机构,高中断级中断请求,低中断级中断请求,中断入口,中断源标志位,INT0,INT1,中断入口,中断源标志位,中断响应条件在中断源提出了中断申请且CPU此前已经允许中断的前提下,还须满足以下三个条件:没有同级的中断或更高级别的中断正在

15、处理;正在执行的指令必须执行完最后 1个机器周期;若正在执行RETI,或正在访问IE或IP寄存器,须执行完上述指令和下一条指令以后方能响应中断。,中断处理过程外部中断(INT0,INT1)申请过程:在CPU已经开放了外部中断允许的前提下:在INT0/INT1引脚输入一个负脉冲或低电平,TCON寄存器中的IE0/IE1标志位自动变“1”,检测到IE0/IE1变“1”后,将产生指令:LCALL 0003H(/0013H)执行中断服务程序,并将IE0/IE1标志位自动清“0”,以备下次申请。,定时器T0/T1 中断申请过程:在已经开放T0/T1中断允许且已被启动的前提下:T0/T1加满溢出时 TF0

16、/TF1标志位自动置“1”检测到TCON中TF0/TF1变“1”后,将产生指令:LCALL 000BH/LCALL 001BH 执行中断服务程序,TF0/TF1标志位会自动清“0”,以备下次中断申请。,中断请求的撤除CPU响应某中断请求后,在中断返回前,应撤除相应的中断请求,否则会引起下一次中断。对于T0、T1和边沿激活的外中断,CPU响应中断后,内部的硬件结构会自动清除,无须其他措施。对于串行口和由低电平触发的外部中断,CPU响应后,必须通过软件清除中断请求。,4.4.4 中断程序设计思想,中断程序设计的基本任务(1)设置中断允许控制寄存器IE,允许相应中断源中断。(2)设置中断优先级寄存器

17、IP,选择分配所使用中断源的优先级。(3)若是外部中断源,还要设置中断请求触发方式IT1或IT0,决定采用边沿触发方式还是电平触发方式。(4)编写中断服务程序,处理中断请求。注意:前3条一般放在初始化主程序中。,采用中断时主程序结构 由于各中断入口地址是固定的,而程序又必须先从主程序起始地址0000H执行,所以在0000H起始地址的几个字节中,要用无条件转移指令,跳转到主程序;另外,各种中断入口地址之间依次只差8个字节,一般在中断进入后,利用一条无条件转移指令,把中断服务程序调转到远离其他中断入口的适当地址。,中断举例 已知:(B)=01h,要求采用边沿触发,低优先级。此例的实际意义:在INT

18、1引脚接一个按钮开关到地,每按一下按钮就申请一次中断,中断服务则是:依次点亮八盏灯中的一盏。,INT1,300,ORG 0000H LJMP MAIN ORG 0013H;中断矢量 LJMP INTMAIN:SETB EA;开总中断允许“开关”SETB EX1;开分中断允许“开关”CLR PX1;0 优先级(也可不要此句)SETB IT1;边沿触发 MOV B,#01H;给 B 寄存器赋初值HERE:SJMP HERE;原地等待中断申请INT:MOV A,B;自B寄存器中取数 RL A;左环移一次 MOV B,A;存回B,备下次取用(MOV P1,A);输出到P1口 RETI;中断返回 END,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号