1 / 88

第三讲: I/O, 中断 , 定时与串口

第三讲: I/O, 中断 , 定时与串口. 本讲重点: 接口概念 , 单片机的编址与译码方法 ; 中断概念 , 响应条件 , 处理原则 , 中断服务 ; 定时器 / 计数器工作方式 1,2 的 用法 ; 串行通讯的波特率 , 4 种工作方式. 第五章 I/O , 中断 , 定时与串行通信. I/O 接口的作用 / 功能 / 定义. 计算机 / 单片机 与 外设 之间 起 桥梁 作用的 电路或部件 —— 接口 (interface) 。 协调 两者间的 差异 。. 速度 不一致. 数据 性质 不同. 数据 协议 / 格式 不同.

forest
Download Presentation

第三讲: I/O, 中断 , 定时与串口

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. 第三讲: I/O,中断,定时与串口 本讲重点: 接口概念,单片机的编址与译码方法; 中断概念,响应条件,处理原则,中断服务; 定时器/计数器工作方式1,2的用法; 串行通讯的波特率, 4种工作方式. 《单片微机原理及应用》教学课件

  2. 第五章I/O,中断,定时与串行通信 I/O接口的作用/功能/定义 计算机/单片机与外设之间起桥梁作用的 电路或部件——接口(interface)。 协调两者间的差异。 速度不一致 数据性质不同 数据协议/格式不同 所需功率/电平不匹配 所需测控点数量不匹配 《单片微机原理及应用》教学课件

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

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

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

  6. 线选寻址与译码寻址(P109) 单片机对外部器件实现一一对应的“片选”通常要用单片机的地址总线A15—A0中的部分或全部,甚至也可以用某些I/O线。 P0口是低8位地址与数据复用口 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 A7/D7 A6/D6 A5/D5 A4/D4 A3/D3 A2/D2 A1/D1 A0/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. ☞线选寻址:用一条或几条地址线对外寻址 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 X000 0000 0000 XX0X X111 1111 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. ☞译码寻址:用地址线加译码器件对外寻址 +5V P0.7-P0.0 74LS138 0# 1# 2# 7# 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. 单片机的中断系统 《单片微机原理及应用》教学课件

  11. 第五章I/O,中断,定时与串行通信 数据的输入/输出传送方式 无条件传送方式: 一方对另一方来说总是准备好的 查询传送方式(LOOK UP): 传送前一方先查询另一方的状态,若已经准备好就传送,否则就继续查询/等待 中断传送方式(IRQ): 一方通过申请中断的方式与另一方进行数据传送 直接存储器存取方式(DMA): 双方直接通过总线传送数据, 不经CPU中转 《单片微机原理及应用》教学课件

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

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

  14. 单片机的中断源及TCON 51子系列允许5个(52子系列6个)中断源: 2个外部中断请求:INT0,INT1 2个片内定时器/计数器T0和T1中断请求: TF0,TF1,(TF2——52子系列有T2) 1个串行口中断请求:TI/RI CPU识别中断申请的依据: CPU在每个机器周期的S5P2期间,会自动查询各个中断申请标志位,若查到某标志位被置位,将启动中断机制。 《单片微机原理及应用》教学课件

  15. 单片机的中断源及TCON Tc=1/fosc Ts=6Tc Tm=12Tc=6Ts Tc S2 S3 S4 S5 S6 S1 S2 S3 S4 S5 S6 Ts Tm Tm ——此图见P.40 CPU识别中断申请的依据: CPU 在每个机器周期的S5P2期间,会自动查询各个中断申请标志位,若查到某标志位被置位,将启动中断机制。 《单片微机原理及应用》教学课件

  16. 定时器控制寄存器TCON (88H) TCON:Timer控制寄存器,是管理定时器工作的SFR(其中低4位管外部中断) TCON TF1TR1TF0TR0IE1IT1IE0IT0 TF0/TF1:定时器溢出中断申请标志位: =0:定时器未溢出; =1:定时器溢出申请中断,进中断后自动清零。 TR0/TR1:定时器运行启停控制位: =0:定时器停止运行; =1:定时器启动运行。 《单片微机原理及应用》教学课件

  17. 定时器控制寄存器TCON (88H) TCON:Timer控制寄存器,低4位管理外部中断 TCON TF1TR1TF0TR0IE1IT1IE0IT0 IE0/IE1:外部中断申请标志位: =0:没有外部中断申请; =1:有外部中断申请。 IT0/IT1:外部中断请求的触发方式选择位: =0:在INT0/INT1端申请中断的信号低电平有效; =1:在INT0/INT1端申请中断的信号负跳变有效. 《单片微机原理及应用》教学课件

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

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

  20. 中断优先级控制寄存器IP (0B8H) IP ——PT2 PS PT1 PX1 PT0 PX0 PX0/PX1:INT0/1优先级控制位: =0时属低优先级; =1时属高优先级。 PT0/PT1/PT2:T0/1/2中断优先级控制位: =0时属低优先级; =1时属高优先级。 PS1:串行口中断优先级控制位: =0时属低优先级; =1时属高优先级。 《单片微机原理及应用》教学课件

  21. 中断优先级处理原则 对同时发生多个中断申请时: ☞不同优先级的中断同时申请(很难遇到) ——先高后低 ☞相同优先级的中断同时申请(很难遇到) ——按序执行 ☞正处理低优先级中断又接到高级别中断 ——高打断低 ☞正处理高优先级中断又接到低级别中断 ——高不理低 《单片微机原理及应用》教学课件

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

  23. 中断允许寄存器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时允许中断。 《单片微机原理及应用》教学课件

  24. 中断系统硬件结构 (P.132) 中断源标志位查询机构 各单路开关 总开关 INT0 IE0 外部中断 请求0 高中断级中断请求 EX0 TF0 内部 定时器0 ET0 中断源标志位 中断入口 外部中断 请求1 INT1 IE1 EX1 内部 定时器1 TF1 低中断级中断请求 ET1 TI T 内部 串行口 ES 中断源标志位 R RI 中断入口 IE寄存器 EA位 IP寄存器 注:各中断允许控制位=0,开关断开; =1,开关接通 《单片微机原理及应用》教学课件

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

  26. 外部低电平中断的撤除 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” 《单片微机原理及应用》教学课件

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

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

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

  30. ORG 0000H (P.134) 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 ;中断返回 中断服 务程序 《单片微机原理及应用》教学课件

  31. 单片机的定时/计数器 《单片微机原理及应用》教学课件

  32. 第五章 I/O,中断,定时与串行通信 P.135 2个16位定时器/计数器 ——(52系列有3个16位Timer) 定时器:对片内机器时钟(周期方波)进行计数 计数器:对Tx引脚输入的负脉冲进行计数 与Timer工作有关的特殊功能寄存器: TCON 和TMOD 《单片微机原理及应用》教学课件

  33. Timer的2个特殊功能寄存器(TCON,TMOD) 定时器控制寄存器TCON (88H) P.137 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TFx: Timer0/1计数溢出标志位。 =1 计数溢出; =0 计数未满 TFx标志位可用于申请中断或供CPU查询。 在进入中断服务程序时会自动清零;但在 查询方式时必须软件清零。 TRx: Timer0/1运行控制位。 =1 启动计数; =0 停止计数 《单片微机原理及应用》教学课件

  34. 定时器T0/T1 中断申请过程 定时/计数器可按片内机器周期定时,也可对由T0/T1引脚输入一个负脉冲进行加法计数 在已经开放T0/T1中断允许且已被启动的前提下: T0/T1加满溢出时 TF0/TF1标志位自动置“1”检测到TCON中TF0/TF1变“1”后,将产生指令: LCALL 000BH/LCALL 001BH执行中断服务程序, TF0/TF1标志位会自动清“0”,以备下次中断申请。 TCON (88H) TF1 TR1 TF0TR0IE1 IT1 IE0 IT0 TR0/TR1:Timer0/1运行控制位: TR0/TR1 =0 时,Timer0/1停止计数 TR0/TR1 =1 时,Timer0/1启动计数 《单片微机原理及应用》教学课件

  35. 定时器方式寄存器TMOD (89H) P.137 T1 T0 GATE C / T M1 M0 GATE C / T M1 M0 M1,M0:工作方式定义位 ( 定义4 种方式 ): 0 0:13位 Timer——用它无益,不要记它! 0 1:16位 Timer——经常用到 1 0:可自动重装的 8位 Timer——经常用到 1 1:T0 分为2个8位 Timer;T1 此时不工作 ——因为没有带来甚麽好处,几乎无用 C/T :计数器/定时器选择位 = 1 外部事件计数器。对Tx引脚的负脉冲计数; = 0 片内时钟定时器。对机器周期脉冲计数定时 《单片微机原理及应用》教学课件

  36. 定时器方式寄存器TMOD(续) (89H) GATE C / T M1 M0 GATE C / T M1 M0 T0 T1 GATE门控位: Timer可由软件与硬件两者控制 GATE = 0 ——普通用法 Timer的启/停由软件对TRx位写“1”/“0”控制  GATE = 1 ——门控用法 Timer的启/停由软件对TRx位写“1”/“0” 和在INTx引脚上出现的信号的高/低共同控制 《单片微机原理及应用》教学课件

  37. 阅读书上定时器应用程序举例: P.140例1:晶振=6MHz,估算Timer的定时时长 (max,min) P.141例2:要求对T0产生100mS定时进行初始 化。 (晶振=6MHz) P.141例3:产生T=2mS方波(改为方式2) P.142例4:请改为方式1或2再阅读,务请大家 不要陷入方式0的困惑之中! P.143例5: 定时1 秒 P.144例6: 方式3(双8位定时器)的应用 《单片微机原理及应用》教学课件

  38. 定时器结构与工作方式P.139 工作方式1:——16位的定时/计数器 振荡器 12 C/T=0 申请中断 TLx THx (8位) (8位) TFx C/T=1 Tx端 控制 =1开关接通 TRx位 & GATE位 ≥1 与门 INTx端 或门 《单片微机原理及应用》教学课件

  39. 工作方式1 的编程要点: 参阅P.140 THx/TLx赋初值:THx赋高8位,TLx赋低8位 TMOD选方式: 写“M1,M0”=01 b 选方式1 若不用门控位,直接用软件写TRx控制启/停 若使用门控位,先置位TRx,然后由INTx端 的高/低电平来控制其启/停 若要允许中断,还须先置位ETx、EA等中断 允许控制位,并编写中断服务程序 若不用中断,可查询“计数溢出标志TFx” 的方式工作,但溢出标志TFx须软件清0 《单片微机原理及应用》教学课件

  40. 定时器(方式1)应用程序举例: P140例1:若晶振频率为6MHz,计算单片机的最小与最大定时时间: 分析:已知fosc= 6MHz 则: (振荡周期)1Tc=1/6MHz (机器周期)1Tm=12Tc=12/6MHz=2S 粗略地说:Tmin  2S 16位定时器最大数值为:216=65536=0FFFFH+1 故选择方式 1工作可以得到: Tmax = 655362 = 131072S=131.072mS 《单片微机原理及应用》教学课件

  41. 定时器(方式1)应用程序举例: P141例2:要求对T0产生100mS定时进行初始化。 (晶振=6MHz) 分析:已知fosc= 6MHz 则: (机器周期)1Tm=12Tc=12/6MHz=2S 100mS÷2 S = 50000 16位定时器最大数值为: 216 = 65536 (=0FFFFH+1) 故选择方式1工作可以满足要求。 计算初值:65536-50000=15536=3CB0H 《单片微机原理及应用》教学课件

  42. 由分析得知:T0选择方式1,初值=3CB0H 定时器方式 寄存器TMOD GATE C / T M1 M0 GATE C / T M1 M0 X X X X 0 0 0 1 初始化:MOV TMOD,#01H ;选 T0 方式 1 MOV TH0, #3CH ;赋初值高8位 MOV TL0, #0B0H ;赋初值低8位 SETB TR0 ;启动 T0定时 若需要定时器0产生中断还应当写如下语句: SETB ET0 ;开T0中断允许 SETB EA ;开总中断允许 以及相应的中断服务程序。 《单片微机原理及应用》教学课件

  43. 工作方式2:——8 位自动重装的定时/计数器 振荡器 12 C/T=0 申请中断 TLx (8位) TFx C/T=1 溢出位 Tx端 控制 =1开关接通 TRx位 & 门开 THx (8位) GATE位 ≥1 与门 INTx端 或门 《单片微机原理及应用》教学课件

  44. 工作方式 2 的编程: ☞ THx/TLx赋相同初值 在TLx计数达到0FFH 再加“1”时,TL0 将溢出,进位位直接进入“TFx”去申请 中断,同时打开三态门,使THx中的值 自动重装(Copy)进TLx ☞ TMOD寄存器选方式: 写“M1,M0” = 10b 选中方式2 ☞ 其他用法与各种方式1完全相同 《单片微机原理及应用》教学课件

  45. 定时器(方式2)应用程序举例: P141例3(改):从P1.0 脚输出频率=1KHz方波。 设:晶振=6MHz。利用T1定时中断。 分析:fosc= 6MHz 1机器周期 = 2 S 1KHz方波周期 = 1 mS 半个方波周期 =500S 500uS÷2 uS = 250 若选择方式2 工作,8位定时器最大数值为: 28 =256 =0FFH + 1 可以满足要求。 计算初值:256-250=6 Th:半周期 T:周期 《单片微机原理及应用》教学课件

  46. ORG 0000H AJMP MAIN ORG 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 ;选T1方式2 ;赋重装值 ;赋初值 ;开T1中断 ;开总中断 ;启动T1 初始化 《单片微机原理及应用》教学课件

  47. Timer工作方式 3 ——几乎无用 T0:组织成TL0和TH0两个8位定时/计数器 T1: 不再是定时/计数器了 T1的TR1和TF1出借给TH0当控制位使用, 剩下的TH1/TL1寄存器只能当作普通寄存 器用。 《单片微机原理及应用》教学课件

  48. Timer工作方式 3 结构: TR1位 控制 =1 申请中断 TH0 (8位) TF1 振荡器 12 C/T=0 申请中断 TL0 (8位) TF0 C/T=1 T0端 控制 =1开关接通 TR0位 & GATE位 ≥1 ☞T0成为双 8位Timer ☞T1不再有Timer功能 ☞TF1,TR1出借给TH0 与门 INT0端 或门 《单片微机原理及应用》教学课件

  49. 长定时举例(设晶振=6MHz,要定时1秒): ORG 0000H ;P.143例5 AJMP MAIN ORG 001BH AJMP TINT ;见下一页 MAIN: MOV TMOD,#10H ;选T1方式1 MOV TH1, #3CH ;赋初值3CB0H=15536(只能定100mS) MOV TL1,#0B0H MOV 30H,#10 ;软件计数单元30H 初值=10 CLR F0 ;芯片复位时已经是“0”,此句可有可无 SETB ET1 ;开T1中断 SETB EA ;开总中断 SETB TR1 ;启动T1 HERE: JBC F0,TIMEUP ;原地等待“1秒到”的标志 F0 AJMP HERE TIMEUP:(do something) ;定时1秒到了以后要做的事情 AJMP HERE 中断服务在主程序中 《单片微机原理及应用》教学课件

  50. 长定时举例(续): ORG 0000H AJMP MAIN ORG 001BH AJMP TINT MAIN: ………………… TINT:DJNZ 30H,RTN ;若中断不到10次就返回 SETB F0 ;已经中断够10次了“置1”标志位 MOV 30H,#10 ;为下一个1秒定时做准备 RTN: MOV TH1,#3CH ;再赋定时100mS的初值3CB0H MOV TL1,#0B0H RETI ;中断返回 END 《单片微机原理及应用》教学课件

More Related