1 / 29

5.1 I/O 接口的作用 / 功能 / 定义 5.2 数据的输入 / 输出传送方式 5.3 单片机的中断系统 5.4 中断的举例

第五章 MCS-51 的中断系统. 5.1 I/O 接口的作用 / 功能 / 定义 5.2 数据的输入 / 输出传送方式 5.3 单片机的中断系统 5.4 中断的举例. 5.1 I/O 接口的作用 / 功能 / 定义. 一、作用. 计算机 / 单片机与外设 之间 起 桥梁 的 电路或部件 —— 接口 (interface) 。 协调 两者间的 差异 。. 速度 不一致. 数据 性质 不同. 数据 协议 / 格式 不同. 所需 功率 / 电平 不匹配. 所需 测控点数量 不匹配. 二、接口与端口.

zahir-horne
Download Presentation

5.1 I/O 接口的作用 / 功能 / 定义 5.2 数据的输入 / 输出传送方式 5.3 单片机的中断系统 5.4 中断的举例

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. 第五章 MCS-51的中断系统 5.1 I/O接口的作用/功能/定义 5.2 数据的输入/输出传送方式 5.3 单片机的中断系统 5.4 中断的举例

  2. 5.1 I/O接口的作用/功能/定义 一、作用 计算机/单片机与外设之间起桥梁的 电路或部件——接口(interface)。 协调两者间的差异。 速度不一致 数据性质不同 数据协议/格式不同 所需功率/电平不匹配 所需测控点数量不匹配

  3. 二、接口与端口 本课程中讲到的接口可以是→器件→电路板卡 →设备/装置→ …… 口地址→ 可寻址的寄存器/端口 地址由选用的地址线条数与地址线名决定 地址线条数n决定:寻址范围 = 2n MCS-51寻址范围 = 216 = 65536 = 64K字节 地址线在地址总线中的序名决定具体地址 一个端口可能有多个口地址; 一个口地址只能唯一地指向某个端口。

  4. 接口地址的编址/译码/寻址概念: 通过适当的地址线(或控制线,或I/O线), 物理上形成某个或某些片选/使能等信号, 实现与接口对象的一一对应的过程。 站在单片机/计算机一侧来看待上述过程叫编址。 站在单片机/计算机外侧来看待上述过程叫译码。 通过软件与译码电路硬件实现对外设的片选或使能控制过程叫寻址。

  5. 三、编址方式 编址是设计过程(在先) 译码和寻址是应用过程(在后) 对I/O与存储器编址通常有两种方式: 独立编址方式: I/O与存储器分别编址 (例如IBM-PC) 统一编址方式: I/O与存储器合在一起编址(单片机应用系统)

  6. 单片机对外部器件实现一一对应的“片选”通常要用单片机的地址总线A15—A0中的部分或全部,甚至也可以用某些I/O线。单片机对外部器件实现一一对应的“片选”通常要用单片机的地址总线A15—A0中的部分或全部,甚至也可以用某些I/O线。 P0口是低8位地址与数据复用口 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 A7/D7A6/D6A5/D5A4/D4A3/D3A2/D2A1/D1A0/D0 P2口是高8位地址口 P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 A15 A14 A13 A12 A11 A10 A9 A8

  7. 1、线选寻址:用一条或几条地址线对外寻址 MCS-51单片机 P2.7 P2.5 P0口 P2.2-2.0 P2.6 Q7-0 D7-0 /CE /CE /CE AD7-0 A10 A9 A8 Q7-0 RAM(2K) D7-0 P2.5 做RAM 片选线 (0000H—07FFH) P2.2,P2.1,P2.0与P0口共同寻址2K字节存储单元 地址范围:XX0X X0000000 0000 XX0X X1111111 1111

  8. MCS-51单片机 P2.7 P2.5 P0口 P2.2-2.0 P2.6 D7-0 /CE /CE /CE AD7-0 A10 A9 A8 Q7-0 RAM (2K) D7-0 缓冲器 锁存器 P2.7 做输出锁存器的片选线 地址范围:0XXX XXXX XXXX XXXX (例:7FFFH) P2.6 做输入缓冲器的片选线 地址范围:X0XX XXXX XXXX XXXX (例:0BFFFH)

  9. 2、译码寻址:用地址线加译码器件对外寻址 +5V P0.7-P0.0 74LS138 0# 1# 2# G G2A G2B MCS-51 /CE /CE /CE /CE Y0 Y1 P2.5 A Y2 P2.6 B C P2.7 Y7 常用译码器件:74LS138:3-8译码器 74LS139:双2-4译码器

  10. 5.2 数据的输入/输出传送方式 一、数据的输入/输出传送方式 无条件传送方式: 一方对另一方来说总是准备好的 查询传送方式(LOOK UP): 传送前一方先查询另一方的状态,若已经准备好就传送,否则就继续查询/等待 中断传送方式(IRQ): 一方通过申请中断的方式与另一方进行数据传送 直接存储器存取方式(DMA): 双方直接通过总线传送数据, 不经CPU中转

  11. 二、中断传送方式特点 数据传送的双方平时各自做自己的工作,一旦甲方要求与乙方进行数据传送,就主动发出信号提出申请,乙方接到申请后若同意传送,安排好当前的工作,再响应与甲方发生数据传送。完事后,回去继续做打断前的工作。 中断功能强弱是计算机性能优劣的重要标志 提高CPU效率解决速度矛盾实现并行工作应付突发事件……

  12. 中断涉及的几个环节 (前面提到的甲方) (甲方发出信号提出申请) (乙方同意传送) (安排好当前的工作) (响应乙方的要求) (完事后,回去……) (继续做打断前的工作) ①中断源 ②中断申请 ③开放中断 ④保护现场 ⑤中断服务 ⑥恢复现场 ⑦中断返回

  13. 5.3单片机的中断系统 5.3.1单片机的中断源 一、51子系列允许5个(52子系列6个)中断源 2个外部中断请求:INT0,INT1 2个片内定时器/计数器T0和T1中断请求: TF0,TF1,(TF2——52子系列有T2) 1个串行口中断请求:TI/RI 二、CPU识别中断申请的依据: CPU在每个机器周期的S5P2期间,会自动查询各个中断申请标志位,若查到某标志位被置位,将启动中断机制。

  14. Tc=1/fosc Ts=6Tc Tm=12Tc=6Ts Tc S2 S3 S4 S5 S6 S1 S2 S3 S4 S6 S5 Ts Tm Tm ——此图见P.40 CPU识别中断申请的依据: CPU 在每个机器周期的S5P2期间,会自动查询各个中断申请标志位,若查到某标志位被置位,将启动中断机制。

  15. TCON:Timer控制寄存器,是管理定时器工作的SFR(其中低4位管外部中断)TCON:Timer控制寄存器,是管理定时器工作的SFR(其中低4位管外部中断) TCON TF1TR1 TF0TR0IE1IT1IE0IT0 TF0/TF1:定时器溢出中断申请标志位: =0:定时器未溢出; =1:定时器溢出申请中断,进中断后自动清零。 TR0/TR1:定时器运行启停控制位: =0:定时器停止运行; =1:定时器启动运行。

  16. TCON:Timer控制寄存器,低4位管理外部中断 TCON TF1TR1TF0TR0IE1IT1IE0IT0 IE0/IE1:外部中断申请标志位: =0:没有外部中断申请; =1:有外部中断申请。 IT0/IT1:外部中断请求的触发方式选择位: =0:在INT0/INT1端申请中断的信号低电平有效; =1:在INT0/INT1端申请中断的信号负跳变有效.

  17. 5.3.2外部中断(INT0,INT1)申请过程 在CPU已经开放了外部中断允许的前提下: 在INT0/INT1引脚输入一个负脉冲或低电平, TCON寄存器中的IE0/IE1标志位自动变“1”, 检测到IE0/IE1变“1”后,将产生指令: LCALL 0003H(/0013H)执行中断服务程序, 并将IE0/IE1标志位自动清“0”,以备下次申请。

  18. 中 断 源 申请标志 中断矢量 中断优先级 外部中断0( INT0) IE0 0003H 定时/计数器0(T0) TF0 000BH 外部中断1( INT1) IE1 0013H 定时/计数器1(T1) TF1 001BH 串行口接收/发送 RI/TI 0023H 定时/计数器2(T2) TF2 002BH 一、单片机的中断矢量与优先级 中断矢量:MCS-51单片机的 5 个中断源分别对应有各自的中断服务程序入口地址——中断矢量 最高优先级 最低优先级

  19. IP —— PT2 PS PT1 PX1 PT0 PX0 (0B8H) PX0/PX1:INT0/1优先级控制位: =0时属低优先级;=1时属高优先级。 PT0/PT1/PT2:T0/1/2中断优先级控制位: =0时属低优先级;=1时属高优先级。 PS1:串行口中断优先级控制位: =0时属低优先级;=1时属高优先级。

  20. 中断优先级处理原则 对同时发生多个中断申请时: ☞不同优先级的中断同时申请(很难遇到) ——先高后低 ☞相同优先级的中断同时申请(很难遇到) ——按序执行 ☞正处理低优先级中断又接到高级别中断 ——高打断低 ☞正处理高优先级中断又接到低级别中断 ——高不理低

  21. 在中断源提出了中断申请且CPU此前已经允许中断的前提下,还须满足以下三个条件:在中断源提出了中断申请且CPU此前已经允许中断的前提下,还须满足以下三个条件: ☞没有同级的中断或更高级别的中断正在处理; ☞正在执行的指令必须执行完最后 1个机器周期; ☞若正在执行RETI,或正在访问IE或IP寄存器,须执行完上述指令和下一条指令以后方能响应中断。

  22. 中断允许寄存器IE(0A8H) IE 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时允许中断。

  23. 二、中断系统硬件结构 中断源标志位查询机构 各单路开关 总开关 高中断级中断请求 INT0 IE0 外部中断 请求0 EX0 TF0 内部 定时器0 ET0 中断源标志位 中断入口 外部中断 请求1 INT1 IE1 EX1 低中断级中断请求 内部 定时器1 TF1 ET1 TI T 内部 串行口 ES R 中断源标志位 中断入口 RI IE寄存器 EA位 IP寄存器 注:各中断允许控制位=0,开关断开; =1,开关接通

  24. 三、外部中断及中断请求的撤除 低电平/负脉冲→INT0/INT1引脚可触发中断 TCON(88H) TF1 TR1 TF0 TR0IE1 IT1 IE0 IT0 IT0/IT1:INT0/1的触发方式选择位: IT0/IT1=0时,INT0/INT1是低电平有效; IT0/IT1=1时,INT0/INT1是负跳变有效。 低电平触发引脚上的低电平须持续到中断发生。若中断返回前仍未及时撤除低电平,将再次中断。 负脉冲触发CPU在前一机器周期采到INT0/INT1引脚为高,后一机器周期采到为低才认为是一次中断请求。CPU 可记忆申请、可自动撤除中断申请。

  25. 外部低电平中断的撤除 INTx Q D 74LS74 MCS-51 外来中断申请信号(低电平) P1.0 CLK S S=0 则 Q=1 外来的低电平→反相→CLK端产生上跳沿→D端的“0”打到Q端→申请中断 中断返回前对P1.0送“0”→令Q端变为“1” 指令如下: ANL P1,#0FEH= CLR P1.0 ;令Q端置“1” ORL P1, #01H= SETB P1.0 ;令S端置“1”,以免下次中断来时Q端不能变“0”

  26. 四、中断应用前后要做的几项工作 中断前 开中断允许:必须 选择优先级:根据需要选择,可有/可无 设置控制位:INTx—触发方式(ITx) Tx—TCON,TMOD,TRx,初值…… RI/TI—SCON,REN,RB8,TB8,…… 中断后 进入中断服务后:保护现场,关中断,…… 退出中断服务前:恢复现场,开中断,设Tx的初 值,清TI/RI,…… 中断服务程序的最后一条指令必是RETI

  27. 5.4 中断应用的举例 通过外部中断1,在中断服务中将B寄存器里的内容左环移一位。 已知: (B)=01h,要求采用边沿触发,低优先级。 此例的实际意义:在INT1引脚接一个按钮开关到地,每按一下按钮就申请一次中断,中断服务则是:依次点亮八盏灯中的一盏。

  28. 中断应用程序举例: 通过外部中断1,在中断服务中将B寄存器里的内容左环移一位。 已知: (B)=01h,要求采用边沿触发,低优先级。 此例的实际意义:在INT1引脚接一个按钮开关到地,每按一下按钮就申请一次中断,中断服务则是:依次点亮八盏灯中的一盏。 P1.0 P1.7 INT1 300

  29. ORG 0000H LJMP MAIN ORG 0013H;中断矢量 LJMP INT MAIN: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 ;中断返回 中断服 务程序

More Related