1 / 78

模块五

模块五. 80C51 的中断系统及定时 / 计数器. 本章主要内容. 中断的概念. 80C51 中断系统的结构与使用方法. 80C51 定时 / 计数器的结构与使用方法. +5V. 项目五:闪烁灯. 1 、项目内容. 由 80C51 单片机 P1.0 口控制一只发光二极管以 50ms 间隔闪烁。. 2 、项目电路. 单片机. P1.0. 3 、前面所学的程序设计. 用软件定时. +5V. ORG 0030H. START: CLR P1.0. ACALL DELAY. 单片机. P1.0. SETB P1.0.

ailsa
Download Presentation

模块五

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. 模块五 80C51的中断系统及定时/计数器 本章主要内容 中断的概念 80C51中断系统的结构与使用方法 80C51定时/计数器的结构与使用方法

  2. +5V 项目五:闪烁灯 1、项目内容 由80C51单片机P1.0口控制一只发光二极管以50ms间隔闪烁。 2、项目电路 单片机 P1.0

  3. 3、前面所学的程序设计 用软件定时 +5V ORG 0030H START: CLR P1.0 ACALL DELAY 单片机 P1.0 SETB P1.0 ACALL DELAY AJMP START DELAY:MOV R7,#200 DEL1: MOV R6,#123 NOP DEL2: DJNZ R6,DEL2 DJNZ R7,DEL1 RET ▼让CPU循环执行一段程序,通过选择指令和安排循环次数,以实现软件定时。 ▼软件定时不占用硬件资源,但占用了CPU时间,降低了CPU的利用率。 END

  4. 4、采用80C51片内集成的定时/计数器工作于定时模式,一到50ms即将P1.0口的内容取反的程序设计。4、采用80C51片内集成的定时/计数器工作于定时模式,一到50ms即将P1.0口的内容取反的程序设计。 ORG 0000H ▼定时时间到了,CPU才去处理定时中断事务,处理完毕后,又返回主程序继续执行。 AJMP START ORG 000BH AJMP ST0 ▼该设计既不占用硬件资源,又不占用CPU时间,提高了CPU的利用率。 ORG 0030H START: MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H ;中断服务程序 ST0: CPL P1.0 SETB ET0 SETB EA SETB TR0 MOV TH0,#03CH MOV TL0,#0B0H RETI SJMP $ END

  5. 一、中断的概念 看书 生活中的中断例子 电话响 接 电 话 你正在看书, 突然电话铃响, 你记下书的页码, 去接电话, 接完电话后, 继续看书。 继 续 看 书 挂电话

  6. 1、 80C51单片机的中断过程示意 主程序(事件A) 执行主程序 ▼中断是指某种更重要的事件发生,单片机暂停现行的程序,转去执行另一程序,已处理发生的事件,处理完毕后,又回到原来的程序执行。 中断请求 中断响应 断点 中断服务子程序(处理事件B) 继续执行主程序 返回主程序

  7. 2、中断的基本概念 1)中断源:引起CPU中断的根源。 2)中断请求:中断源向CPU提出的处理请求。 3)中断响应过程:CPU暂时中断原来的事务A, 转去处理事件B的过程。 4)中断服务:对事件B的整个处理过程。 5)中断返回:处理完毕后,再回到原来被中断的地方 (即断点)。 6)中断系统(中断机构):实现上述中断功能的部件。

  8. 3、中断技术的优点 1)分时操作: 分时为多个I/O设备服务。 2)实时响应: 处理随机事件。 3)可靠性高: 处理设备故障及断电等突发事件。

  9. 二、 80C51中断系统的结构与使用方法 80C51的中断系统有5个中断源,2个优先级,可实现二级中断嵌套。 ▼本小节主要内容: 1、80C51的中断源; 2、80C51的中断系统结构; 3、80C51的中断处理过程; 4、中断系统实例。

  10. 单片机 1、 80C51的中断源 五个中断源 /INT0 1)外部中断输入/INT0 (P3.2) 或 T0 /INT1 2)外部中断输入/INT1 (P3.3) 或 T1 3)片内定时/计数器T0溢出中断TF0(TCON.5) 串行口 4)片内定时/计数器T1溢出中断TF1(TCON.7) 5)串行接口中断RI(SCON.0)或TI(SCON.1)

  11. 1 PX0 EX0 INT1 INT0 1 1 0 PT0 1 EX1 PX1 1 0 ET1 PT1 0 ES PS ≧1 TI 2、 80C51中断系统的结构 80C51中断系统有5个中断源,2个优先级,可实现二级中断嵌套 TCON IE IP 硬件查询 1 IE0 高 级 EA 自 然 优 先 级 0 TF0 1 ET0 T0 0 入口 1 IE1 0 1 TF1 低 级 T1 自 然 优 先 级 0 1 RX RI 0 入口 TX

  12. ▼定时/计数器控制寄存器TCON锁存2个定时/ 计数器的溢出中断标志及外部中断/INT0和/INT1的中断标志,以及两个外部中断采用何种触发方式。 ▼中断允许寄存器IE控制CPU是否响应中断请求。 ▼中断优先级寄存器IP安排各中断源的优先级。

  13. 中断请求标志 ▼各中断源通过中断请求标志向CPU请求中断。 中断源 中断标志 CPU 1)/INT0 IE0 IE1 2)/INT1 TF0 3)T0 TF1 4)T1 RI (接收) TI(发送) 5)串行口

  14. 外部中断/INT0触发方式控制位 当IT0=0时,/INT0为电平触发 当IT0=1时,/INT0为下降沿触发 控制T0的 启动停止 T0的中断 请求标志 /INT0中断 请求标志 1) TCON的中断标志 ▼应用哪种中断,采用哪种触发方式,要由TCON和SCON的相应位进行规定。 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

  15. ▼当IT0=0时,/INT0为电平触发方式,若采样到/INT0引脚为低电平时,置IE0=1表示/INT0向CPU请求中断;若采样到高电平时,将IE0清0。▼当IT0=0时,/INT0为电平触发方式,若采样到/INT0引脚为低电平时,置IE0=1表示/INT0向CPU请求中断;若采样到高电平时,将IE0清0。 外部中断的触发方式 ▼当IT0=1时, /INT0为边沿触发方式,若第一个周期采样到/INT0=1,第二个周期采样到/INT0=0,则置IE0=1,产生中断请求。

  16. 2) SCON的中断标志 SCON TI RI RI:串行接口接收中断标志位。当允许串行接口接收数据时,每接收完一个串行帧,由硬件置位RI。RI必须由软件清除。 TI:串行接口发送中断标志位,当CPU将一个发送数据写入串行接口发送缓冲器时,就启动了发送过程。每发送完一帧,由硬件置为TI,TI必须由软件清除。

  17. 外部/INT0 中断允许位 CPU 中断允许位 串行口 中断允许位 定时/计数器T0 中断允许位 3) 中断允许控制寄存器 ▼IE寄存器某位设定为1,相应的中断源中断允许;某位设定为0,相应的中断源中断屏蔽。 IE EA ES ET1 EX1 ET0 EX0

  18. 外部中断/INT0 优先级设定位 串行口中断 优先级设定位 T0中断 优先级设定位 4) 中断优先级控制寄存器 ▼中断优先级寄存器IP某位设定为1,相应的中断源为高优先级中断;某位设定为0,相应的中断源为低优先级中断。 IP PS PT1 PX1 PT0 PX0

  19. 外部中断INT0 外部中断INT1 ▼同一优先级中的中断申请不止一个时,由中断系统硬件确定的自然优先级形成。 自然优先级顺序 中断源 高 定时/计数器T0 定时/计数器T1 低 串行接口RI或TI

  20. 80C51中断优先级三条原则 1) CPU同时接到几个中断时,首先响应优先级别最高的中断请求; 2) 正在进行的中断过程不能被新的同级或低优先级的中断请求所中断; 3) 正在进行的低优先级中断服务,能被高优先级中断请求所中断。

  21. 5) TCON和SCON复位后状态及位操作说明 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 SCON TI RI ▼单片机复位后,TCON和SCON各位清0。 ▼TCON和SCON寄存器既可字节操作,又可位操作。

  22. IE和IP复位后的状态及位操作说明 IE EA ES ET1 EX1 ET0 EX0 IP PS PT1 PX1 PT0 PX0 ▼单片机复位后,IE各位清0,禁止所有中断,IP各位清0,各中断源同位低优先级中断。 ▼IE和IP寄存器既可字节操作,又可位操作。

  23. 分电平触发 和边沿触发 硬件自动清0 要用软件清除 6)、中断请求的撤除 TCON IE0 TF1 TR1 TF0 TR0 IE1 IT1 IT0 SCON TI RI

  24. 中断请求的撤除 CPU响应某中断请求后,在中断返回前,应该撤除该中 断请求,否则会引起另一次中断。 ▼电平触发的外部中断:CPU响应中断时不会自动清除IE0或IE1标志,所以在响应中断后应立即撤除INT0或INT1引脚上的低电平。 ▼边沿触发的外部中断:CPU在响应中断后,也是用硬件自动清除有关的中断请求标志IE0或TE1。

  25. 中断请求的撤除 ▼定时器0或1溢出:CPU在响应中断后,硬件清除了有关的中断请求标志TF0或TF1,即中断请求是自动清除的。 ▼串行口中断:CPU响应中断后,没有硬件清除TI、RI,故这些中断不能自动清除,而要靠软件来清除相应的标志。

  26. 3、 80C51中断处理过程 ▼本小节主要内容: 1)、中断响应条件 2)、中断服务 3)、中断返回

  27. 中断处理过程示意图 CPU 中断处理过程分为三个阶段: 主 程 序 中断响应 1)、中断响应 中 断 服 务 断点 2)、中断响应过程 主 程 序 3)、中断返回 中断返回

  28. 1)、中断响应条件 CPU CPU响应中断的条件: 主 程 序 中断响应 ① 中断源有中断请求; 中 断 服 务 ② 此中断源的中断允许位为1; 断点 ③ CPU开中断(即EA=1)。 主 程 序 三个条件缺一不可! 中断返回

  29. 2)、中断响应过程 中断响应:在满足CPU的中断响应条件之后,CPU对中断源中断请求予以处理。 CPU 中断响应过程: 主 程 序 ①将相应的优先级状态触发 器置1; 中断响应 中 断 服 务 ②执行硬件LCALL指令 断点 ▼保护断点地址; 主 程 序 ▼相应的中断服务程序入 口地址送入PC; 中断返回 ③执行中断服务。

  30. 中断受阻 若遇到下列任一条件,硬件将受阻,不能产生LCALL指令: ① CPU正在处理同级或高优先级。 ② 当前查询的机器周期不是所执行指令的最后一个 机器周期。即在完成所执行指令前,不会响应中断。 ③ 正在执行的指令为RET、RETI或任何访问IE或IP寄 存器的指令。

  31. ROM 中断响应过程实例 以外部中断0为例 0003H 主 程 序 中断响应 中断响应过程由 硬件自动完成! 断点 地址 ①将相应的优先级状态触发器置1 ② 保护断点地址 ③相应的中断服务程序入口地址送入PC;

  32. 中断响应过程实例 ROM 以外部中断0为例 0003H 8个字节 AJMP SINT0 主 程 序 中断响应 中 断 服 务 断点 地址 SINT0: 8个字节一般不够存放中断服务程序!

  33. 中断服务程序编写注意事项 ①两个相邻中断服务程序入口地址相距只有8个 单元,一般中断程序是不够存放的,通常是在相应的中断服务程序入口地址单元放一条转移指令LJMP或AJMP; ②硬件LCALL指令,只将PC内的断点地址压入堆栈保护,对程序状态字寄存器PSW、累加器A等的内容并不作保护处理。

  34. 表5.1中断服务程序入口地址表 中断源 入口地址 外部中断0 003H 定时/计数器0 000BH 外部中断1 0013H 定时/计数器0 001BH 串行接口 0023H 入口地址是固定的!

  35. 3)、中断返回(RETI) CPU RETI自动完成: 主 程 序 ① 将压入堆栈保存的断点地址从栈顶弹出送回PC,CPU从原来中断地方继续执行程序 中断响应 中 断 服 务 断点 地址 ②将相应中断优先级状态触发器清0,通知中断系统, 中断服务程序已执行完毕。 主 程 序 中断返回 不能用RET指令代替RETI指令!

  36. 中断响应条件是否满足? 中断是否受阻? 把断点地址压入堆栈 相应中断源的入口地址送入PC,转向中断服务程序 返回 4)、中断处理过程流程图 中断源发出中断请求 由 硬 件 自 动 完 成 N Y N Y

  37. 4、单外部中断源实例 1)实例内容: 将P1接口设置成数据输入口,外围设备每准备好一个 数据时,发出一个选通信号(正脉冲),使得D触器 Q端置1,经/Q端向/INT0送入一个低电平中断请求信 号。

  38. +5V Q VCC D CLR CLK INT0 80C51 74LS74 2)实例电路图及其分析: D7 . . . D0 P1.7 . . . P1.0

  39. 清除IE0标志 Q CLR INT0 CLR IT0 ;设/INT0为电平触发方式 从P3.0脚输出负 脉冲使得74LS74 复位,从而/Q脚 为高电平,以撤 除/INT0引脚的 低电平触发信号 D7 . . . D0 P1.7 . . . P1.0 VCC D P3.0 CLK 80C51 74LS74

  40. 4)主程序: 3)绘流程图: 主程序流程图 ORG 0000H START: AJMP MAIN 程序开始 ORG 0003H LJMP SINT0 设置外部中断0入口 设置外部中断0 为电平触发方式 ORG 0030H MAIN: CLR IT0 开总中断 SETB EA SETB EX0 允许/INT0中断 MOV DPTR,#1000H SJMP $ 设置数据区地址指针

  41. 4)中断服务程序: 3)绘流程图: SINT0 :PUSH PSW 中断服务程序流程图 PUSH ACC 保护现场 CLR P3.0 NOP NOP SETB P3.0 P3.0输出负脉冲以清除中断请求标志 置P1口为输入口 MOV P1,#0FFH 输入数据,并存入1000H开始的单元 MOV A,P1 MOVX @DPTR,A 修改数据指针 INC DPTR 恢复现场 POP ACC POP PSW 返回 RETI

  42. 5、多外部中断源实例 1)实例内容: 将设有5个外部中断源,中断优先级排队顺序为XI0、 XI1、XI2、XI3、XI4。试设计它们与80C51单片机的 接口。 2)设计思路: 采用中断和查询相结合的外部中断扩展法。

  43. +5V INT0 INT1 80C51 XI0 ▼由于外部中断0自然优先级比外部中断1高,所以XI0优先级最高。 XI1 XI2 XI3 ▼XI1~XI4的优先级通过中断服务程序先后查询P1.0~P1.3来区分。 XI4 P1.3 P1.2 P1.1 P1.0

  44. P1.0是高电平吗? P1.1是高电平吗? P1.2是高电平吗? P1.3是高电平吗? 恢复现场 返回 中断服务程序流程图 保护现场 Y N 处理XI1 Y N 处理XI2 Y N 处理XI3 Y N 处理XI4

  45. 部分主程序 ORG 0003H LJMP INSE0;转外部中断0服务程序入口 ORG 0013H LJMP INSE1;转外部中断1服务程序入口 … … … …

  46. 外部中断0服务子程序 INSE0:PUSH PSW;XI0中断服务子程序 PUSH ACC … … … … POP ACC POP PSW RETI

  47. 外部中断1服务子程序 INSE1:PUSH PSW;XI1中断服务子程序 PUSH ACC JB P1.0,DV1;P1.0为1,转XI1中断服务程序 JB P1.1,DV2;P1.1为1,转XI2中断服务程序 JB P1.2,DV3;P1.2为1,转XI3中断服务程序 JB P1.3,DV4;P1.3为1,转XI4中断服务程序 INRET:POP ACC POP PSW RETI

  48. XI1~XI4中断服务程序 DV1:… … ;XI1中断服务程序 AJMP INRET DV2:… … ;XI2中断服务程序 AJMP INRET DV3:… … ;XI3中断服务程序 AJMP INRET DV4:… … ;XI4中断服务程序 AJMP INRET

  49. 三、80C51的定时/计数器 ▼80C51单片机片内集成两个可编程的定时/计数器; T0和T1。即可工作于定时模式,也可工作于外部事件计 数模式。 ▼多种定时方法: ① 软件定时,让CPU循环一段程序。 ② 采用时基电路定时,如采用555电路。 ③采用可编程芯片定时,典型的可编程定时芯片,如Intel 8253。

  50. 80C51的定时/计数器 ▼本大节主要内容: 1、定时/计数器的结构及工作原理 2、定时/计数器的控制 3、定时/计数器的工作方式 4、定时/计数器的应用实例

More Related