1 / 46

第 6 章 单片机的中断与定时系统

第 6 章 单片机的中断与定时系统. 6.1 MCS-51 单片机中断系统. 6.2 MCS-51 单片机的定时 / 计数器. 6.3 MCS-51 单片机外部中断源的扩展. 6.4 定时器 / 计数器与中断综合应用举例. 本章要求. 1 了解掌握 MCS-51 单片机中断系统. 2 了解掌握 MCS-51 单片机的定时 / 计数器. 3 掌握 定时器 / 计数器与中断综合应用. 6.1 MCS-51 单片机中断系统. 一 . 单片机中断技术概述. ● 中断是一相重要的计算机技术. ● 中断技术是一种资源 (CPU) 共享技术.

ince
Download Presentation

第 6 章 单片机的中断与定时系统

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第6章 单片机的中断与定时系统 6.1 MCS-51单片机中断系统 6.2 MCS-51单片机的定时/计数器 6.3 MCS-51单片机外部中断源的扩展 6.4 定时器/计数器与中断综合应用举例

  2. 本章要求 1 了解掌握MCS-51单片机中断系统 2 了解掌握MCS-51单片机的定时/计数器 3 掌握定时器/计数器与中断综合应用

  3. 6.1 MCS-51单片机中断系统 一. 单片机中断技术概述 ●中断是一相重要的计算机技术 ●中断技术是一种资源(CPU)共享技术 ●中断技术能提高CPU的利用率及输入/输出数据的效率 ●中断技术对计算机运行中遇到的突发故障及时处理 ●中断技术主要用于实时控制 —及时处理被控对象提出的分析、计算、控制等 请求,使对象保持最佳工作状态。

  4. 6.1 MCS-51单片机中断系统 二. 中断源 ●MCS-51共有5个中断源。 2个外部中断;2个定时器中断;1个串行口中断。 1. 外中断 ●外中断是由外部信号引起的中断请求。 ●外部中断“0”---INT0(P3.2引入—12脚), 外部中断“1”---INT1(P3.3引入—13脚)。 ●低电平和脉冲下降沿触发,通过设置控制位定义。 2. 定时中断 ●定时器/计数器中断是由内部计数器计数溢出引起 的中断请求。

  5. 6.1 MCS-51单片机中断系统 二. 中断源 ●内部计数器计内部时钟脉冲或外部事件脉冲。 ●计内部时钟脉冲--定时器;计外部脉冲--计数器。 ●定时器/计数器T0---计外部脉冲 (P3.4引入—14脚) 。 定时器/计数器T1---计外部脉冲 (P3.5引入—15脚) 。 3. 串行中断 ●串行口中断是由串行口接收和发送完一组数据引起  的中断请求。 ●串行口接收端RXD- (P3.0引入—10脚)。 ●串行口发送端TXD-(P3.1引入—11脚)。

  6. 6.1 MCS-51单片机中断系统 三. 中断控制 • 定时器控制寄存器(TCON) ●IE0、IE1-外中断请求标志位 当INT0(INT1)出现有效中断请求时,IE0(IE1)位由硬件置“1”,中断响应后再由硬件自动清“0” ●IT0、IT1-外中断请求触发方式控制位 IT0(IT1)=1 脉冲触发方式,后沿负跳有效, IT0(IT1)=0 电平触发方式,低电平有效。 由软件置“1”或清“0” ●TF0、TF1-计数器溢出标志位 由硬件置“1”,中断方式时,硬件清“0”; 查询方式时,软件清“0”。

  7. 6.1 MCS-51单片机中断系统 三. 中断控制 2.串行口控制寄存器(SCON) ● TI——串行口发送中断请求标志位 当发送完一帧串行数据后,由硬件置“1”;在转向中断服务程 序后,用软件清“0”。 ● RI——串行口接收中断请求标志位 当接收完一帧串行数据后,由硬件置“1”;在转向中断服务 程序后,用软件清“0”。 ●串行中断请求由TI和RI的逻辑或得到。 无论是发送标志还是接收标标志,都产生串行中断请求。

  8. 6.1 MCS-51单片机中断系统 三. 中断控制 3.中断允许控制寄存器(IE) ●EA—中断允许总控制位 EA=0 禁止所有中断 EA=1 总中断允许,具体到各中断由该中断允许控制位设置。 ● EX0和EX1——外部中断允许控制位 EX0(EX1)=0 禁止外中断 EX0(EX1)=1 允许外中断

  9. 6.1 MCS-51单片机中断系统 三. 中断控制 3.中断允许控制寄存器(IE) ● ET0和ET1——定时/计数中断允许控制位 ET0(ET1)=0 禁止定时(或计数)中断 ET0(ET1)=1 允许定时(或计数)中断 ● ES——串行中断允许控制位 ES=0 禁止串行中断 ES=1 允许串行中断

  10. 6.1 MCS-51单片机中断系统 三. 中断控制 4.中断优先级控制寄存器(IP) ●PX0——外部中断INT0优先级设定位; ●PT0——定时中断T0优先级设定位; ●PX1——外部中断INT1优先级设定位; ●PT1——定时中断T1优先级设定位; ●PS ——串行中断优先级设定位。 ●位设置为“0”的优先级低;设置为“1”的优先级高。

  11. 6.1 MCS-51单片机中断系统 三. 中断控制 5.中断优先级控制原则和控制逻辑 中断优先级是为中断嵌套服务的,MCS一5l具有两级优先级,具两级中断服务嵌套的功能。 其中断优先级的控制原则是: ●低优先级中断请求不能打断高优先级的中断服务; 但高优先级中断请求可以打断低优先级的中断服务 --中断嵌套。 ●同级的中断不能嵌套 ●如果同级的多个中断请求同时出现,则按CPU查询 次序确定那个中断请求被响应。 外部中断0-定时中断0-外部中断1-定时中断1-串行口中断。

  12. 6.1 MCS-51单片机中断系统 6.中断初始化与中断控制寄存器状态设置 中断的使用是在程序初始化时设置的 ●优先级控制 ●中断总允许 ●中断允许 ●中断方式设定(定时中断没有中断方式控制) 控制寄存器都是既可字节寻址又可进行位寻址。 以中断允许控制寄存器为例,假设开放外中断O。 用字节操作指令为: MOV IE,#81H 用位操作指令则为: SETB EA SETB EXo

  13. 6.1 MCS-51单片机中断系统 四. 中断响应过程 从中断请求发生到被响应,从中断响应到转向执行中断服务程序,完成中断所要求的任务,是一个很复杂的过程。整个过程都是在CPU的控制下有序进行的。 下面叙述MCS一51单片机中断响应的全过程。 1.中断采样 对引脚—INT0(P3.2)和INT1(P3.3)在每个机器周期的S5P2进行采样,根据采样结果来设置TCON寄存器中响应标志位的状态,也就是把外中断请求锁定在这个寄存器中。

  14. 6.1 MCS-51单片机中断系统 四. 中断响应过程 ●若采样为高电平,表明没有中断请求,TCON寄存 器的外中断请求标志位IE0或IE1继续为‘‘0”; ●若为低电平,表明有中断请求,把IE0或IE1置“1”。 ●外中断是使用采样的方法把中断请求锁定在TCON 寄存器的相应标志位中, ●而定时中断和串行中断的中断请求直接去置TCON 和SCON中各自的中断请求标志位,不存在采样。

  15. 6.1 MCS-51单片机中断系统 四. 中断响应过程 2.中断查询 ●所谓查询,就是由CPU测试TCON和SCON中各 标志位的状态,以确定有没有中断请求发生以及 是那一个中断请求。 ● MCS一51单片机是在每一个机器周期的最后一个 状态(S6)、按优先级顺序对中断请求标志位查询, 如果查询到有标志位为“1”,则表明有中断请求发 生,在下一个机器周期的S1状态开始中断响应。 ●中断查询在执行指令的每个机器周期中不停地重 复进行。

  16. 6.1 MCS-51单片机中断系统 四. 中断响应过程 3.中断响应 ●中断响应是由硬件自动生成一条长调用指令LCALL。 其格式为LCALL addrl6, addrl6是程序存储器中断区中相应中断的入口地址。 外部中断O的是0003H,中断响应为:LCALL 0003H 外部中断1的是0013H,中断响应为:LCALL 0013H 定时中断O的是000BH,中断响应为:LCALL 000BH 定时中断1的是001BH,中断响应为:LCALL 001BH 串口中断的是0023H, 中断响应为:LCALL 0023H

  17. 6.1 MCS-51单片机中断系统 四. 中断响应过程 3.中断响应 ●中断响应条件,当存在下列情况之一时,中断响应被封锁: ● CPU正处在为一个同级或高级的中断服务中。 ●查询中断请求的机器周期不是当前指令的最后一 个机器周期。 ●当前指令是返回指令(RET,RETI)或访问IE、IP 的指令。 ●中断查询的结果不作记忆,当有新的查询结果出 现时,因为以上原因而被拖延的查询结果将不复 存在,其中断请求也就不能再被响应了。

  18. 6.1 MCS-51单片机中断系统 四. 中断响应过程 4.中断响应时间 ●从外部中断请求有效(标志位置‘‘1’’)到转向中断区 入口地址所需的机器周期为中断响应时间。 ●中断响应最短响应时间为3个机器周期。 其中中断请求标志位查询占1器周期, 执行LCALL指令需2个机器周期。 ●中断响应最长时间为8个机器周期。 该情况发生在中断标志查询时,刚好是开始执行RET、 RETI或访问IE、IP的指令{需2个机器周期} ,则需把当 前指令执行完再继续执行一条指令{(乘MUL)或 (除DIV) 指令,则又需4个机器周期}后,才能进行中断响应。

  19. 6.1 MCS-51单片机中断系统 五. 中断请求的撤消 中断响应后,TCON或SCON中的中断请求标志应及时清除。否则就意味着中断请求仍然存在,造成中断的重复查询和响应。 1.定时中断请求的撤消 ●定时中断撤销只是标志位的置“0”问题。 ●定时中断响应后,硬件自动把标志位(TF0或TFl) 清“O”,因此定时中断是自动撤销。不需干预。 2.脉冲方式外部中断请求的撤消 ●中断标志位的置“O” 标志位(IE0或IEl)在中断响应后由硬件自动清“O”。

  20. 6.1 MCS-51单片机中断系统 五. 中断请求的撤消 2.脉冲方式外部中断请求的撤消 ●外中断请求信号的撤销。 由于脉冲信号过后就消失了,也可以说中断请求信号是自动撤消的。 3.电平方式外部中断请求的撤消 ●中断标志位自动清“O” ●外中断请求信号的撤销是通过软件实现。 4.串行中断软件撤消 串行中断的标志位是TI和RI,但不能自动清“O”。因为在中断响应后,还需测试这两个标志位的状态,来判定是接收操作还是发送操作,然后才能清除。所以串行中断请求的撤销也应使用软件方法,在中断服务程序中进行。

  21. 执行主程序 开中断 恢复现场 关中断 中断服务 开中断 保护现场和断点 关中断 执行一条指令 取下一条指令 有中断请求吗 N Y 返回断点 6.1 MCS-51单片机中断系统 六. 中断服务流程 1.现场保护和现场恢复 2.关中断和开中断 3.中断处理 4.中断返回 中断服务程序的最后一条指 令必须是中断返回指令RETI。

  22. 6.2 MCS-51单片机的定时器/计数器 一. 定时方法概述 定时方法有: ●软件定时 软件定时是靠执行一个循环程序以进行时间延迟。 特点是时间精确,不需外加硬件电路。但占用CPU。 ●硬件定时 由硬件电路完成。其特点是全部由硬件电路完成, 不占用CPU,定时时间较长,使用上不够灵活方便。 ●可编程定时器定时 是通过对系统时钟脉冲的计数来实现的。计数值通过程序设 定,改变计数值,也就改变了定时时间,使用起来既方便 又灵活。此外,由于采用计数方式定时,因此可编程定时 器都兼有计数功能,可以对外来脉冲进行计数。

  23. 6.2 MCS-51单片机的定时器/计数器 二. 定时器/计数器的定时和计数功能 MCS一51单片机共有两个可编程的定时器/计数器。 定时器/计数器T0和定时器/计数器T1。 16位加法计数结构,由THX和TLX两个8位计数器组成。 1.计数功能 ●计数是指对外部事件进行计数。外部事件的发生 以输入脉冲表示,因此计数功能的实质就是对外 来脉冲进行计数。 ● MCS一51有T0(P3.4)和T1(P3.5)两个外部事件输 入端。外部输入的脉冲在负跳变时有效,进行计 数器加1(加法计数)。

  24. 6.2 MCS-51单片机的定时器/计数器 二. 定时器/计数器的定时和计数功能 2.定时功能 ●定时功能也是通过计数器的计数来实现的。 ●此时的计数脉冲来自单片机的内部,即每个机器 周期产生一个计数脉冲。也就是每个机器周期 计数器加1。

  25. 6.2 MCS-51单片机的定时器/计数器 三. 定时器/计数器的控制寄存器 1.定时器控制寄存器(TCON) ●TF0、TF1-计数器溢出标志位 由硬件置“1”,中断方式时,硬件清“0”; 查询方式时,软件清“0”。 ●TR0、TR1-定时器运行控制位 TR0(TR1 )= 0 停止定时器/计数器工作 TR0(TR1 )= 1 启动定时器/计数器工作 该位根据需要以软件方法使其置“1”或清“0”。

  26. 6.2 MCS-51单片机的定时器/计数器 三. 定时器/计数器的控制寄存器 2.工作方式控制寄存器(TMOD) 定时/计数器1 定时/计数器O ● TMOD不能位寻址,一定义就是4位。 ●GATE——门控位 GATE=O 以运行控制位TR启动定时器 GATE=1 以外中断请求信号(INT1或INT0)启动定时器 ●C/T———定时方式或计数方式选择位 C/T=0 定时工作方式 C/T=1 计数工作方式

  27. 6.2 MCS-51单片机的定时器/计数器 三. 定时器/计数器的控制寄存器 ●M1M0———工作方式选择位 M1M0=00 工作方式0 M1M0=01 工作方式1 M1M0=10 工作方式2 M1M0=11 工作方式3 3.中断允许控制寄存器(IE) ●EA—中断允许总控制位 ● ET0和ET1——定时/计数中断允许控制位 ET0(ET1)=0 禁止定时/计数中断 ET0(ET1)=1 允许定时/计数中断

  28. 6.2 MCS-51单片机的定时器/计数器 定时器/计数器共有4种工作方式。 四. 定时工作方式0 ●方式0是13位计数结构,其计数器由THi(8位)和 TLi的低5位构成,高3位弃之不用。 ●定时器/计数器1与定时器/计数器0完全相同。 1.电路逻 辑结构

  29. 6.2 MCS-51单片机的定时器/计数器 四. 定时工作方式0 2.定时和计数应用 ●在方式0下,当为计数工作方式时,计数范围是:l~8192(213) ●当为定时工作方式时,定时时间的计算公式为: (213-计数初值)×晶振周期×12 或 (213-计数初值)×机器周期 其时间单位与晶振周期或机器周期相同(us)。 如晶振频率为6 MHz,则最小定时时间Tmin为: Tmin= [213-(213-1)]×1/6×10-6×12=2×10-6=2(us) Tmax= [213-0]×1/6×10-6×12=2×10-6=16384(us)

  30. 6.2 MCS-51单片机的定时器/计数器 2.定时和计数应用 例:设单片机晶振频率为6 MHz,使用定时器1以方 式0产生周期为500us的等宽方波连续脉冲,并 由P1.0输出。以查询方式完成。 ●计算计数初值: 欲产生500us的等宽正方波脉冲,只需以250us为周期交替输出高低电平即可设待求的计数初值为X,则: [213-X]×1/6×10-6×12=250×10-6 解得:X=8067。二进制数表示为1111,1100,00011B 高8位为 低5位为 0FCH, 03H。 即: THl=0FCH TL1=03H。

  31. 6.2 MCS-51单片机的定时器/计数器 2.定时和计数应用 ●TMOD初始化: 定时器/计数器1设定为方式0,则M1M0=00; 为实现定时功能,应使C/T=0 实现定时器/计数器1的运行控制,则GATE=0。 定时器/计数器O不用,有设定为O。 因此TMOD寄存器应初始化为OOH。 ●控制寄存器TCON中的TRi位控制定时的启动和停止 TR1=l启动,TR1=0停止。

  32. 6.2 MCS-51单片机的定时器/计数器 2.定时和计数应用 MOV TMOD,#OOH ;设置T1为工作方式0 MOV THl ,#OFCH ;设置计数初值 MOV TLl ,#03H MOV IE ,#00H ;禁止中断 LOOP: SETB TRl ;启动定时 JBC TFl.LOOPl ;查询计数溢出 AJMP LOOP LOOP1:MOV THl,#OFCH ;重新设置计数初值 MOV TLl,#03H CLR TFl;计数溢出标志位清“0” CPL P1.0 ;输出取反 AIMP L00P ;重复循环 ●程序设计

  33. 6.2 MCS-51单片机的定时器/计数器 五.定时工作方式1 ●方式1是16位计数结构,其计数器由THi(8位)和 Tli(8位)构成。 ●逻辑电路和工作情况与方式0完全相同。 ●在方式1下, 计数范围是:l~65536(216) ●当为定时工作方式时,定时时间的计算公式为: (216-计数初值)×晶振周期×12 如晶振频率为6 MHz: Tmin= [216-(216-1)]×1/6×10-6×12=2×10-6=2(us) Tmax= [216-0]×1/6×10-6×12=2×10-6=131072(us)

  34. 6.2 MCS-51单片机的定时器/计数器 五.定时工作方式1 [例] 题目同前,但以中断方式完成。即单片机晶振频率为6 MHz,使用定时器1以工作方式1产生周期为500us的等宽方波连续脉冲,并由P1.0输出。 1.计算计数初值 THl=0FFH TLl=83H 2.TMOD寄存器初始化 TMOD=10H 3.程序设计

  35. 6.2 MCS-51单片机的定时器/计数器 ORG 0000H LJMP MAIN ORG 0013H LJMP FBMC MAIN: MOV TMOD,#10H ;定时器1工作方式1 MOV THl,#OFFH ;设置计数初值 MOV TLl,#83H SETB EA ;开中断 SETB ETl ;定时器1允许中断 SETB TRl ;定时开始 HERE:SJMP $ ;等待中断 主程序: FBMC: MOV THl,#OFFH ;重新设置计数初值 MOV TLl,#83H CPL P1.0 ;输出取反 RETI ;中断返回 中断 服务 程序

  36. 6.2 MCS-51单片机的定时器/计数器 六.定时工作方式2 ●方式2是自动重新加载工作方式。 ●计数器分为两部分,即TL作计数器,TH作预置寄存器。 初始化时初值分别装入TL和TH中。 ●当计数溢出后, 由预置寄存器TH 以硬件方法自动 给计数器TL重新 加载。 1.电路逻辑结构 图6.5 定时器/计数器O的工作方式2逻辑结构

  37. 6.2 MCS-51单片机的定时器/计数器 六.定时工作方式2 2.循环定时和循环计数应用 例:用定时器0以工作方式2产生100us定时,在P1.0输 出周期为200us方波。已知晶振频率fosc=6MHz。 ●计算计数初值: [28-X]×1/6×10-6×12=100×10-6 解得:X=206D=1100,1110B=0CEH 把0CEH分别装入TH0和TL0中 ●TMOD初始化: 定时器/计数器0设定为方式2, 则M1M0=10; 为实现定时功能,应使C/T=0 ; GATE=0 因此TMOD寄存器应初始化为O2H。

  38. 6.2 MCS-51单片机的定时器/计数器 2.循环定时和循环计数应用 ●程序设计(查询方式) MOV IE,#00H ;禁止中断 MOV TMOD,#02H ;设置定时器O为工作方式2 MOV TH0,#OCEH ;保存计数初值 MOV TL0,#OCEH ;设置计数初值 SETB TR0 ;启动定时 L00P: JBC TF0,L00P1 ;查询计数溢出 AJMP L00P L00P1:CPL P1.0 ;输出方波 AJMP L00P ;重复循环 由于方式2具有自动重装载功能,因此计数初值只需设置一次,以后不再需要软件重置。

  39. 6.2 MCS-51单片机的定时器/计数器 [例] 用定时器1以工作方式2实现计数,每计100次进行累 加器加1操作 1.计算计数初值 28-X=100 X=156D=9CH 2.TMOD寄存器初始化 M1M0=10,C/T=1,GATE=0 TMOD=0110XXXXB=0110,0000B=60H MOV IE,#00H ;禁止中断 MOV TMOD,#60H ;设置定时器1为工作方式2 MOV TH1, #9CH ;保存计数初值 MOV TL1, #9CH ;设置计数初值 SETB TR1 ;启动定时 L0PP: JBC TF1,L00P ;查询计数溢出 AJMP L0PP L00P: INC A ;累加器加1 AJMP L00P ;重复循环

  40. 6.2 MCS-51单片机的定时器/计数器 七.定时工作方式3 1.工作方式3下的定时器/计数器0 ●方式3下的定时器/计数器0被拆成两个独立的8 位计数器TL0和TH0。 ●TL0可以计数使用,也可以定时使用。 T0的各控制位(TR0,TF0)和引脚信号归它使用。 其功能和操作与方式0或方式1完全相同。

  41. 6.2 MCS-51单片机的定时器/计数器 七.定时工作方式3 1.工作方式3下的定时器/计数器0 ●TH0只能作定时器使用。 控制位借用定时器/计数器1的控制位。 即计数溢出去置位TF1; 定时的启动和停止则受TR1控制。

  42. 6.2 MCS-51单片机的定时器/计数器 七.定时工作方式3 2.工作方式3下的定时器/计数器1 ●如果T0工作在方式3,T1的控制位TR1、TF1被借 用,T1通常是作为串行口的波特率发生器使用, 确定串行通信的速率。 ●当作为波特率发生器使用时,只需设置好工作方 式,便可自动运行。 T1方式2 Tl方式l(或O)

  43. OC门 反相器 89C51 中断源1 +5V 1 中断源2 1 INT0 中断源n 1 P1.0 P1.1 P1.n 6.3 MCS-51单片机外部中断源的扩展 一. 通过OC门线或实现 INTE: ;现场保护 JB P1.0,LOPl ;转向服务程序1 JB P1.1,LOP2 ;转向服务程序2 : JB P1.n,LOPn ;转向服务程序n IEND: ;现场恢复 RETI LOP1: ;中断服务程序1 AJMP IEND : LOPn: ;中断服务程序n AJMP IEND

  44. 6.3 MCS-51单片机外部中断源的扩展 二. 通过自身的定时器/计数器实现 MOV TMOD,#06H ;设置计数器0为工作方式2 MOV TH0, #0FFH ;保存计数初值 MOV TL0, #0FFH ;设置计数初值 SETB EA ;开中断 SETB ET0 ;允许计数器0中断 SETB TR0 ;启动计数器 ●外中断信号从T0输入端输入

  45. 6. 4定时器/计数器与中断综合应用举例 1.实现时钟计时显示的基本方法 2.程序流程

  46. 作业练习题 P162: 一 . 1、4、6~30 二 . 1、2、4、6、9~14

More Related