中断与定时end_第1页
中断与定时end_第2页
中断与定时end_第3页
中断与定时end_第4页
中断与定时end_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、第六章第六章 定时与中断定时与中断第第6 6章章 中断与定时中断与定时n6.1 6.1 微型计算机中断技术概述微型计算机中断技术概述n6.2 6.2 MCS-51MCS-51中断系统结构及控制中断系统结构及控制n6.3 6.3 定时定时/ /计数器结构特点及控制计数器结构特点及控制n6.4 6.4 定时定时/ /计数器及中断系统综合应用计数器及中断系统综合应用6.1 微型计算机中断技术概述微型计算机中断技术概述一、中断概念一、中断概念二、中断功能二、中断功能三、中断响应及处理流程三、中断响应及处理流程返回本章首页6.1 微型计算机中断技术概述微型计算机中断技术概述一、中断概念一、中断概念l中断

2、l中断源l中断响应l中断入口地址l中断优先级l中断屏蔽返回本节首页一、中断概念一、中断概念l中断中断当CPU正常运行程序时,由于CPU内部事件或外设请求,引起CPU终止正在运行的程序,转而去运行中断服务程序,执行完毕,再返回被终止的程序的过程。l中断源中断源引起程序中断的事件。l中断响应中断响应有中断请求并有效,则保护断点,并转入中断服务程序过程。l中断入口地址(中断向量)中断入口地址(中断向量)有中断源提供的地址信息,引导程序进入中断服务程序。l中断优先级中断优先级系统中断源的查询顺序。由硬件或软件完成l中断屏蔽中断屏蔽可屏蔽中断不可屏蔽中断PC中断请求中断请求主程序中断服务程序返回本节首页

3、中断响应高级中断响应中断返回中断返回二、中断功能二、中断功能l外设并行工作,提高CPU工作效率l实时监控,故障处理l友好的人机界面;反应迅速,错误提示,界面友好返回本节首页三、中断响应及处理流程三、中断响应及处理流程1 1、中断请求并有效、中断请求并有效 CPU处于中断允许; CPU执行完一条指令 2 2、中断响应、中断响应 保护断点; 转向中断入口地址。 3 3、中断处理、中断处理 保护现场; 执行中断服务程序; 恢复现场。 4 4、中断撤除、中断撤除 中断标志复位; 返回断点; 中断流程中断流程中断响应中断响应关中断关中断保护现场保护现场开中断开中断执行中断服务程序执行中断服务程序关中断关

4、中断保护现场保护现场开中断开中断中断返回(中断返回( RETI )取下一条指令取下一条指令开中断开中断执行指令执行指令(S6状态查询状态查询)由中断请求否由中断请求否返回本节首页6.2 MCS-51中断系统结构及控制中断系统结构及控制一、一、MCS-51中断系统的总体结构中断系统的总体结构二、二、 MCS-51中断控制中断控制三、三、 MCS-51中断控制过程中断控制过程返回本章首页一、一、 中断系统的总体结构中断系统的总体结构n五个中断源:五个中断源:l1两个外部中断源由P3.2端口线引入,低电平或下降沿引起。由P3.3端口线引入,低电平或下降沿引起。l2两个内部定时/计数器中断源(如图5-

5、8所示)T0:定时/计数器0中断,由T0回零溢出引起。T1:定时/计数器1中断,由T1回零溢出引起。lTI/RI:串行I/O中断,完成一帧字符发送/接收引起。返回本节首页MCS-51中断系统的结构框图定时器控制器TF0TF1返回本节首页二、中断控制二、中断控制1. 定时器控制器定时器控制器TCON(88H)TCON位地址0DD1D2D3D4D5D6D7IT0IE0IT11IETR0TF0TR1TF188898A8B8C8D8E8F外部中断请求标志及信号方式T/C计数启动及中断请求标志TFi(Timer Fleg) 定时器计数溢出标志,计数溢出TF=1; 硬件复位 。TRi(Timer Run)

6、 定时器计数启动标志,TR=1,定时器计数启动。ITi- (Interrupt Toggle) 外部中断信号方式;IT=0电平方式, IT=1下降沿方式IEi(Interrupt External) 外部中断请求标志,INT0/1有效,IE=1;硬件复位定时器控制器单片机在每个机器周期的单片机在每个机器周期的S5P2期间,顺序采样每个中断源,期间,顺序采样每个中断源,CPU在下一个机器周期在下一个机器周期S6期期间按优先级顺序查询中断标志,如查询到某个中断标志为间按优先级顺序查询中断标志,如查询到某个中断标志为1,将在再下一个机器周期,将在再下一个机器周期S1期间按优先级进行中断处理。期间按优

7、先级进行中断处理。返回本节首页二、中断控制二、中断控制2中断允许寄存器中断允许寄存器IE(A8H)0:关INT 中断01:开INT 中断00:关T 中断1:开T 中断001:开T 中断0:关T 中断0:关INT 中断1:开INT 中断11110:关T 中断1:开T 中断221:开所有中断0:关所有中断1:开串行口中断0:关串行口中断位地址IEEAAFADETACESABETAAEXA9ETA8EX00112返回本节首页二、中断控制二、中断控制3中断优先寄存器中断优先寄存器IP(B8H) 两个优先级:高级(1),低级(0); 中断顺序:高级优先;同级按顺序; 中断嵌套:高优先级可中断低优先级;

8、同级或低级禁止返回本节首页三、三、 中断控制过程中断控制过程1、开中断、开中断 SETB EA2、中断源中断、中断源中断请求及响应请求及响应3、中断撤除、中断撤除 RETIT/C中断(中断(2)SETB ET0 / ET1 允许允许SETB TR0 /TR1 启动计数启动计数(内部内部) 计数器溢出计数器溢出TF0 / TF1(硬件硬件) 1保护断点保护断点PC重置重置 PC 000BH (T0) PC 001BH (T1)TF0 / TF1(硬件)硬件) 0恢复断点恢复断点外部中断(外部中断(2)SETB EX0 / EX1 允许允许IT0 / IT1 方式选择(方式选择(0 )(外部外部)

9、 INT0 / INT1 0IE0 / IE1(硬件硬件) 1保护断点保护断点PC重置重置 PC 0003H (INT0) PC 0013H (INT1)(IT=0时,注意撤除中断源)时,注意撤除中断源)1E0 / IE1(硬件)硬件) 0恢复断点恢复断点串行中断(串行中断(1)SETB ES 允许允许数据发送数据发送/接受完接受完TI / RI(硬件硬件) 1保护断点保护断点PC重置重置 PC 0023H TI /RI(软件软件) 0恢复断点恢复断点返回本节首页三、三、 中断控制过程中断控制过程1、开中断、开中断 SETB EA2、中断源中断、中断源中断请求及响应请求及响应3、中断撤除、中断

10、撤除 RETI外部中断(外部中断(2)SETB EX0 / EX1 允许允许IT0 / IT1 方式选择(方式选择(0 )(外部外部) INT0 / INT1 0IE0 / IE1(硬件硬件) 1保护断点保护断点PC重置重置 PC 0003H (INT0) PC 0013H (INT1)(IT=0时,注意撤除中断源)时,注意撤除中断源)1E0 / IE1(硬件)硬件) 0恢复断点恢复断点51J+5V+12VM+220VINT0P1.0例:外部中断暂停控制例:外部中断暂停控制ORG 0000HLJMP MAINORG 0003HSETB P1.0 RETI ORG 0030HMAIN: MOV

11、SP, #50HSETB EASETB EX0CLR P1.0END中断入口地址中断服务程序外部中断允许返回本节首页6.3 定时定时/计数器结构特点及控制计数器结构特点及控制n一、一、 定时定时/计数器结构及功能计数器结构及功能n二、二、 定时定时/计数器四种工作方式计数器四种工作方式返回本章首页一、一、 定时定时/计数器结构及功能计数器结构及功能n构成:构成:l16位,+1计数器;l定时器0(T0)和定时器1(T1);lT0由TH0和TL0构成,T1则由TH1和TL1构成;n功能:功能:l定时:计数激励信号,内部fosc/12; 即一个机器周期(T),定时计数器+1l计数:计数激励信号,外部

12、T0(P3.4)/T1(P3.5) 的负跳变,计数器+1。 CPU采样周期为T,计数的最高频率 fmax1/2T=fosc/24。n定时器定时器/计数器控制寄存器(计数器控制寄存器(TCON)n定时器定时器/计数器工作方式控制寄存器(计数器工作方式控制寄存器(TMOD)返回本节TCONTH1TL1TH0TL0TMODT0T1P3.4P3.5CPU一、一、 定时定时/计数器结构及功能计数器结构及功能n定时器定时器/计数器控制寄存器(计数器控制寄存器(TCON)TCON位地址0DD1D2D3D4D5D6D7IT0IE0IT11IETR0TF0TR1TF188898A8B8C8D8E8F外部中断请求

13、标志及信号方式T/C计数启动及中断请求标志 TF0 / TF1(Timer Fleg) 定时器计数溢出标志位;计数溢出TF=1;中断方式,自动清零;查询方式,软件清零;TR0 / TR1(Timer Run) 定时器计数启动控制TR=1,定时器计数启动。TR=0,定时器计数停止返回本节一、一、 定时定时/计数器结构及功能计数器结构及功能n定时器定时器/计数器工作方式控制寄存器(计数器工作方式控制寄存器(TMOD)GATEC/TM10MGATE C/T1M0M控 制 T1控 制 T089H和T 类同01M0M00011011方 式方式0方式1方式2方式301定时器模式计数器模式01与INT 无关

14、00与INT 有关门控位返回本节二、二、 定时定时/计数器的四种工作方式计数器的四种工作方式n每个定时每个定时/计数器还有计数器还有4种工作模式,也就是每个定时种工作模式,也就是每个定时器可构成器可构成4种电路结构模式。种电路结构模式。n在模式在模式0、1和和2,T0和和T1的工作模式相同,在模式的工作模式相同,在模式3,两个定时器的模式不同。下面以两个定时器的模式不同。下面以T1为例,分述各种工为例,分述各种工作模式的特点和用法。作模式的特点和用法。返回本节1模式模式0(1) 逻辑结构 13位计数器计数C/T= 0,定时C/T= 1,计数GATE=0,计数器仅由TR1控制启停;GATE=1,

15、计数器由TR1&INT1控制启停; 常用来测量INT1高电平脉宽。例:求定时常量为250us 的定时初值(已知:fosc=6MHz)解: X =213- 250/2=8067 =1F83H =0001 1111 1000 0011B13位重组=FC03HTH1=0FCH; TL1=03H定时,计数应用计数方式:计数范围 1 213 = 1 8192定时方式: (fosc=6MHz)定时范围 = (1 213 )T= (216384)us定时计数初值(X)计算定时值 = (满值 X)TX = 满值 - 定时值/T返回本节2模式1(1) 逻辑结构 16位计数器计数定时,计数应用计数方式:计

16、数范围 1 216 = 1 65536定时方式: (fosc=6MHz)定时范围 =(1 216 )T= (2131072)us(2)定时计数初值(X)计算定时值 = (满值 X)TX = 满值 - 定时值/T例:求定时常量为250us 的定时初值(已知:fosc=6MHz)解: X =216- 250/2 =FFFFH+1-(80H-3) =FFFFH-80H+4 =FF83HTH1=0FFH; TL1=83H返回本节3模式2(1) 逻辑结构 8位计数器计数, 初值自动重载初值自动重载。定时,计数应用计数方式:计数范围 1 28 = 1 256定时方式: (fosc=6MHz)定时范围 =(

17、1 28 )T= (2512)us(2)定时计数初值(X)计算定时值 = (满值 X)TX = 满值 - 定时值/T例:求定时常量为500us 的定时初值(已知:fosc=6MHz)解: X =28- 500/2 =FFH+1-(FFH-5) =FFH-FFH+6 =06HTH1=06H; TL1=06H返回本节4模式3返回本节T0 2个独立的8位计数器TL0受TR0、TF0控制TH0受TR1、TF1控制T1 只能工作在模式0、1、2,作串口波特率发生器6.4 定时定时/计数器及中断系统综合应用计数器及中断系统综合应用【例【例1】设】设MCS-51单片机系统时钟频率单片机系统时钟频率fosc为

18、为6MHz,请编出利用定时请编出利用定时/计数器计数器T0在在P1.0引脚上产生周期为引脚上产生周期为200ms,占空比为占空比为50%的方波信号的程序的方波信号的程序返回本章首页源程序如下:源程序如下:ORG 0000HLJMP MAINORG 000BHMOVTH0,#3CHMOVTL0,#0B0H CPL P1.0RETIORG 0030HMAIN:MOVSP, #60HMOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HM O VI E , # 8 2 HSETBTR0SJMP$200ms用中断方式定时:用中断方式定时:主程序主程序(方式(方式1) 1)T0工作方式的

19、设定:工作方式的设定: 选择方式选择方式1(16位方式)位方式) TMOD = 01H (最大定时(最大定时131ms) 2)定时常数的设定:定时常数的设定: TC=216-100ms/2s =3CB0H TH0=3CH,TL0=B0H。3)中断管理:中断管理: 允许允许T0中断,开放总中断中断,开放总中断 即:即:IE=10000010B = 82H 或或: SETB EA, SETB ET0 4)启动定时器启动定时器T0: SETB TR0中断服务程序中断服务程序 P1.0取反取反 中断返回中断返回【例【例1】设】设MCS-51单片机系统时钟频率单片机系统时钟频率fosc为为6MHz,请编

20、出利用定时请编出利用定时/计数器计数器T0在在P1.0引脚上产生周期为引脚上产生周期为200ms,占空比为占空比为50%的方波信号的程序的方波信号的程序源程序如下:源程序如下:ORG 0000HLJMP MAINORG 0030HMAIN:MOVTMOD,#01HM O VI E , # 0 0 HSETBTR0 LOOP: MOVTH0,#3CHMOVTL0,#0B0HJNB TF0, LOOPCPL P1.0CLRTF0LJMPLOOPEND200ms用查询方式定时:用查询方式定时:主程序主程序(方式(方式1) 1)T0工作方式的设定:工作方式的设定: 选择方式选择方式1(16位方式)位方

21、式) TMOD = 01H (最大定时(最大定时131ms) 2)定时常数的设定:定时常数的设定: TC=216-100ms/2s =3CB0H TH0=3CH,TL0=B0H。3)中断管理:中断管理: 中断禁止中断禁止 IE=00000000B = 00H 或或: CLR EA, CLR ET0 4)启动定时器启动定时器T0: SETB TR0 5)查询查询 :TF0=1 则:则:CPL P1.0 CLR TF0 ;软件复位软件复位【例【例2】设】设MCS-51单片机系统时钟频率单片机系统时钟频率fosc为为6MHz,请编出利用定时请编出利用定时/计数器计数器T0在在P1.0引脚上产生周期为

22、引脚上产生周期为200us,占空比为占空比为50%的方波信号的程序的方波信号的程序查询查询方式定时源程序如下:方式定时源程序如下:ORG 0000HLJMP MAINORG 0030HMAIN:MOVTMOD,#02HM O VI E , # 0 0 HSETBTR0 MOVTH0,#206MOVTL0,#206LOOP: JNB TF0, LOOPCPL P1.0CLRTF0LJMPLOOPEND200us(方式(方式2)定时常数的计算:定时常数的计算: TC=28-100/2=206 TH0=206,TL0=206。中断中断方式定时源程序:方式定时源程序:ORG 0000HLJMP MAI

23、NORG 000BHCPL P1.0RETIORG 0030HMAIN:MOVSP, #60HMOVTMOD,#02HM O VT H 0 , # 2 0 6M O VT L 0 , # 2 0 6M O VI E , # 8 2 HSETBTR0SJMP$初值自动重载装载计数初值中断允许启动计数器【例【例3】设】设MCS-51单片机系统时钟频率单片机系统时钟频率fosc为为6MHz,请编出利用定时请编出利用定时/计数器计数器T0在在P1.0引脚上产生周期为引脚上产生周期为2s,占空比为占空比为50%的方波信号的程序的方波信号的程序主程序如下:主程序如下:ORG 0000HLJMP MAINO

24、RG 000BHLJMP T0-IPGORG 0030HMAIN:MOVSP, #60HMOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HMOVR0, #10M O VI E , # 8 2 HSETBTR0SJMP$2S中断定时程序设计:中断定时程序设计:设定堆栈设定堆栈初始化初始化TH0=3CH, TL0=B0HTMOD=01H,计数器计数器R0=10中断允许,计数启动中断允许,计数启动等待中断等待中断中断服务程序中断服务程序R0=R0-1 0R0=10P1.0取反取反主程序主程序初值重载初值重载TH0=3CH, TL0=B0HRETIYN中断服务程序:中断服务程序:T

25、0-IPG: MOVTH0,#3CHMOVTL0,#0B0HDJNZR0, BACKMOVR0, #10CPLP1.0BACK:RETI【例【例4】设】设MCS-51单片机系统时钟频率单片机系统时钟频率fosc为为6MHz,请利用定时中断,实现请利用定时中断,实现时钟计时。时钟计时。中断定时程序设计:中断定时程序设计:1、利用、利用T0方式方式12、确定计数初值、确定计数初值 设:定时时间为设:定时时间为100ms TC=216-100ms/2s =3CB0H3、时钟计时采用中断方式完成时钟计时采用中断方式完成 定时溢出定时溢出10次,次,sec+1 sec=60, min=1 min = 6

26、0, hour+14、用、用6个单元作为显示缓冲区个单元作为显示缓冲区 分别存储时、分、秒分别存储时、分、秒BCD代代 码码 sech, secl, minh, minl, hourh, hourl设定堆栈设定堆栈初始化初始化TH0=3CH, TL0=B0HTMOD=01H,计数器计数器tnum=10中断允许,计数启动中断允许,计数启动调用显示程序调用显示程序主程序主程序显示缓冲区请零显示缓冲区请零中断服务程序中断服务程序tnum -1 0tnum=10, Sec+1选选R组,初值重载组,初值重载恢复现场,恢复现场,RETIYN保护现场保护现场Sec=60Min =60Sec=0, Min +

27、1Min=0,hour+1hour =24Hour = 0NNNYYYdisbuf EQU 79H ;显示缓冲区首址显示缓冲区首址disnumEQU 06H ;LED显示位数显示位数tnumEQU 30H ;计时计时溢出计数器溢出计数器tconshEQU 3CH ;计数初值高计数初值高8位位tconslEQU B0H ;计数初值低计数初值低8位位ORG 0000HLJMP MAINORG 000BHLJMP T0-IPGORG 0030HMAIN:MOVSP, #60HMOVR0, #disbufMOVR7, #disnumML1:MOVR0, #00HINC R0DJNZR7, ML1MOV

28、TMOD,#01HMOVTH0,#tconshMOVTL0,#tconslSETBEASETBET0SETBTR0MOVtnum,#10ML0:LCALLDISPLAYSJMPML0主程序设计:主程序设计:设定堆栈设定堆栈初始化初始化TH1=3CH, TL1=B0HTMOD=01H,计数器计数器tnum=10中断允许,计数启动中断允许,计数启动调用显示程序调用显示程序主程序主程序显示缓冲区请零显示缓冲区请零中断定时程序中断定时程序显示缓冲区清显示缓冲区清0装载计数初值装载计数初值开中断,开中断,启动计数启动计数调用显示程序调用显示程序sech EQU 7AH ;显示缓冲区首址显示缓冲区首址minhEQU 7CH ;LED显示位数显示位数hourhEQU 7EH ;计时计时溢出计数器溢出计数器ORG 0100HT0-IPG: PUSHPSWPUSHACCSETBPSW.3MOVTH0, #tconshMOVTL0, #tconslMOVA, tnumDECAMOVtnum, AJNZRET0MOVtnum,

温馨提示

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

评论

0/150

提交评论