1 / 25

《 单片机原理与接口技术 》 电子教案 重庆工商职业学院

《 单片机原理与接口技术 》 电子教案 重庆工商职业学院. 第五章 单片机的中断与定时系统. [内容提要] 本章主要讲述 MCS-51 的单片机的中断系统和定时系统,除硬件结构外还包括一些简单的应用举例。 [学习要求] 掌握单片机中断系统的中断源、中断控制寄存器、中断响应过程,掌握定时 / 计数器系统的电路结构、控制寄存器及功能和使用方法,理解单片机中断、定时和计数的应用。. 5.1 MCS-51 单片机中断系统. 一 . 单片机中断技术概述.

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. 《单片机原理与接口技术》电子教案重庆工商职业学院《单片机原理与接口技术》电子教案重庆工商职业学院

  2. 第五章单片机的中断与定时系统 [内容提要] 本章主要讲述MCS-51的单片机的中断系统和定时系统,除硬件结构外还包括一些简单的应用举例。 [学习要求] 掌握单片机中断系统的中断源、中断控制寄存器、中断响应过程,掌握定时/计数器系统的电路结构、控制寄存器及功能和使用方法,理解单片机中断、定时和计数的应用。

  3. 5.1 MCS-51单片机中断系统 一.单片机中断技术概述 中断是指计算机在执行某一程序的过程中, 由于计算机系统内、 外的某种原因, 而必须中止原程序的执行, 转去执行相应的处理程序, 待处理结束之后, 再回来继续执行被中止的原程序的过程。  采用了中断技术后的计算机, 可以解决CPU与外设之间速度匹配的问题, 使计算机可以及时处理系统中许多随机的参数和信息, 同时, 它也提高了计算机处理故障与应变的能力。

  4. 中断源 入口地址 外部中断0 0003H 定时器T0中断 000BH 外部中断1 0013H 定时器T1中断 001BH 串行口中断 0023H 5.1 MCS-51单片机中断系统 二. 中断源 向CPU发出中断请求的来源称之为中断源。

  5. 5.1 MCS-51单片机中断系统 三. 中断控制 1.定时器控制寄存器(TCON) 寄存器地址为88H,位地址为8FH—88H,其格式如下: TF1—— T1的溢出中断标志。 硬件置1,硬件清0(也可软件清0)。 TF0—— T0的溢出中断标志。(同TF1,只是针对T0的) IE1—— 外部中断1(/INT1)请求标志。 外部有中断请求时,硬件使IE1置1,硬件清0。 IE0—— 外部中断0(/INT0)请求标志。 IT1—— 外部中断1(/INT1)触发类型控制位。 IT1 = 0 ,低电平触发。 IT1 = 1 , 下降沿触发。 IT0—— 外中断0(/INT0)触发类型控制位,用法同IT1。

  6. 5.1 MCS-51单片机中断系统 三. 中断控制 2.串行口控制寄存器(SCON) 寄存器地址为98H,位地址为9FH—98H,其格式如下: TI —— 串口发送中断标志位。 发送完数据,硬件使TI置1,软件清0(CLR TI) RI —— 串行口接收中断标志位。 硬件置1,软件清0。

  7. 5.1 MCS-51单片机中断系统 三. 中断控制 3.中断允许控制寄存器(IE) 寄存器地址为A8H,位地址为AFH—A8H,其格式如下: ◆EA:中断总控制位,EA=1,CPU开放中断。EA=0,CPU禁止所有中断。 ◆ES:串行口中断控制位,ES=1允许串行口中断,ES=0,屏蔽串行口中断。 ◆ET1:定时/计数器T1中断控制位。ET1=1,允许T1中断,ET1=0,禁止T1中断。 ◆EX1:外中断1中断控制位,EX1=1,允许外中断1中断,EX1=0,禁止外中断1中断。 ◆ET0:定时/计数器T0中断控制位。ET1=1,允许T0中断,ET1=0,禁止T0中断。 ◆EX0:外中断0中断控制位,EX1=1,允许外中断0中断,EX1=0,禁止外中断0中断。

  8. 5.1 MCS-51单片机中断系统 三. 中断控制 4.中断优先级控制寄存器(IP) 寄存器地址为B8H,位地址为BFH—B8H,其格式如下: ◆PS:串行口中断口优先级控制位,PS=1,串行口中断声明为高优先级中断,PS=0,串行口定义为低优先级中断。 ◆PT1:定时器1优先级控制位。PT1=1,声明定时器1为高优先级中断,PT1=0定义定时器1为低优先级中断。 ◆PX1:外中断1优先级控制位。PT1=1,声明外中断1为高优先级中断,PX1=0定义外中断1为低优先级中断。 ◆PT0:定时器0优先级控制位。PT1=1,声明定时器0为高优先级中断,PT1=0定义定时器0为低优先级中断。 ◆PX0:外中断0优先级控制位。PT1=1,声明外中断0为高优先级中断,PX1=0定义外中断0为低优先级中断。

  9. 5.1 MCS-51单片机中断系统 三. 中断控制 5.中断优先级控制原则 ◆低级不打断高级 ◆高级不睬低级 ◆同级不能打断 ◆同级、同时中断,事先约定。 同一级中的5个中断源的优先顺序是厂家出厂时已固化好的,其顺序由高到低依次如下: /INT0中断 T0中断 /INT1中断 T1中断 串口中断 除了中断优先级控制寄存器外,MCS-51的中断系统有两个不可寻址的优先级状态触发器,一个指出CPU是否在执行高优先级中断服务程序,另一个指出CPU是否正在执行低优先级的中断服务程序,这两个中断触发器的1状态分别屏蔽所有中断申请和同一级别的其他中断申请。

  10. 5.1 MCS-51单片机中断系统 四. 中断响应过程 MCS-51CPU在每一个机器周期顺序检查每一个中断源,在机器周期的S6按优先级处理所有被激活的中断请求,此时,如果CPU没有正在处理更高或相同优先级的中断,或者现在的机器周期不是所执行指令的最后一个机器周期,或者CPU不是正在执行RETI指令或访问IE和IP的指令(因为按MCS-51中断系统的特性规定,在执行完这些指令之后,还要在继续执行一条指令,才会响应中断),CPU在下一个机器周期响应激活了的最高级中断请求。 ◆中断采样 ◆中断查询 ◆中断响应 ◆中断响应时间 ◆中断返回

  11. 5.1 MCS-51单片机中断系统 五. 中断服务流程 1. 在每条指令结束后, 系统都自动检测中断请求信号, 如果有中断请求,且CPU处于开中断状态下, 则响应中断。  2. 保护现场, 在保护现场前, 一般要关中断, 以防止现场被破坏。保护现场一般是用堆栈指令将原程序中用到的寄存器推入堆栈。 3. 中断服务, 即为相应的中断源服务。  4. 恢复现场, 用堆栈指令将保护在堆栈中的数据弹出来, 在恢复现场前要关中断, 以防止现场被破坏。在恢复现场后应及时开中断。 5. 返回, 此时 CPU将推入到堆栈的断点地址弹回到程序计数器, 从而使CPU继续执行刚才被中断的程序。

  12. 5.2 MCS-51单片机的定时器/计数器 可供选择的定时方法有: ◆软件定时 ◆硬件定时 ◆可编程定时器定时 图5-1 MCS-51定时/计数器结构图 定时电路集成在芯片中,称为定时器/计数器。MCS-51的单片机内有两个16位可编程的定时器/计数器,分别称为定时器/计数器0和定时器/计数器1,它们具有四种工作方式,其控制字和状态均在相应的特殊功能寄存器中,通过对控制寄存器的编程,就可方便地选择适当的工作方式。

  13. 5.2 MCS-51单片机的定时器/计数器 一、定时器/计数器的控制寄存器 1.定时器控制寄存器(TCON) TR0 —— 定时 / 计数器0运行控制位。 软件置位,软件复位。与GATE有关,分两种情况: GATE = 0 时,若TR0 = 1,开启T0计数工作;若TR0 = 0,停止T0计数。 GATE = 1 时,若TR0 = 1 且/INT0 = 1时,开启T0计数; 若TR0 = 1 但 /INT0 = 0,则不能开启T0计数。 若TR0 = 0, 停止T0计数。 TR1 —— 定时 / 计数器1运行控制位。 用法与TR0类似。

  14. 5.2 MCS-51单片机的定时器/计数器 一、定时器/计数器的控制寄存器 2.工作方式控制寄存器(TMOD) GATE —— 门控位。 GATE = 0 启动不受 /INT0或 /INT1的控制;GATE = 1 启动受 /INT0 或 /INT1 的控制。 C/ —— 外部计数器 / 定时器方式选择位。 C/ = 0 定时方式; C/ = 1 计数方式。 M1M0 —— 工作模式选择位。 M1 M0 模式 说明 0 0 0 13位定时/计数器,高八位TH(7 ~ 0)+ 低五位TL(4 ~ 0) 0 1 1 16位定时/计数器,TH(7 ~ 0)+ TL(7 ~ 0) 1 0 2 8位计数初值自动重装,TL(7 ~ 0) TH(7 ~ 0) 1 1 3 T0运行,而T1停止工作,8位定时/计数。

  15. 5.2 MCS-51单片机的定时器/计数器 二、定时器/计数器的四种工作模式 1.定时工作方式0 工作方式0是13位计数结构的工作方式,其计数器由TH的全部8位和TL的低5位构成,TL的高3位没有使用。当C/T=0时,多路开关接通振荡脉冲的12分频输出,13位计数器以次进行计数。这就是定时工作方式。当C/T=1时,多路开关接通计数引脚(To),外部计数脉冲由银南脚To输入。当计数脉冲发生负跳变时,计数器加1,这就是我们常称的计数工作方式 图5-2 定时计数器工作方式0逻辑结构

  16. 5.2 MCS-51单片机的定时器/计数器 二、定时器/计数器的四种工作模式 1.定时工作方式0  在工作方式0下,计数器的计数值范围是: 1—65536(216) 当为定时工作方式0时,定时时间的计算公式为: (213—计数初值)╳晶振周期╳12 或   (213—计数初值)╳机器周期 其时间单位与晶振周期或机器周期相同 如果单片机的晶振选为6.000MHz,则最小定时时间为: [213—(213—1)]╳1/6╳10-6╳12=2╳10-6(s)=2(us) (213—0)╳1/6╳10-6╳12=16384╳10-6(s)=16384(us)

  17. 5.2 MCS-51单片机的定时器/计数器 二、定时器/计数器的四种工作模式 2.定时工作方式1 当M1,M0=01时,定时/计数器处于工作方式1,此时,定时/及数器的等效电路如图所示 图5-3 定时/计数器工作方式1等效电路 可以看出,方式0和方式1的区别仅在于计数器的位数不同,方式0为13位,方式1则为16位,由TH0作为高8位,TL0为低8位,有关控制状态字与方式0相同。

  18. 5.2 MCS-51单片机的定时器/计数器 二、定时器/计数器的四种工作模式 2.定时工作方式1  在工作方式1下,计数器的计数值范围是:1—8192(213) 当为定时工作方式1时,定时时间的计算公式为: (216—计数初值)╳晶振周期╳12 或   (216—计数初值)╳机器周期 其时间单位与晶振周期或机器周期相同 如果单片机的晶振选为6.000MHz,则最小定时时间为: [213—(216—1)]╳1/6╳10-6╳12=2╳10-6(s)=2(us) (216—0)╳1/6╳10-6╳12=131072╳10-6(s)=131072(us)

  19. 5.2 MCS-51单片机的定时器/计数器 二、定时器/计数器的四种工作模式 3.定时工作方式2 当M1,M0=10时,定时/计数器处于工作方式2,此时,定时/及数器的等效电路如图所示 图5-4 定时/计数器工作方式2等效电路 具有自动重装载功能,即自动加载计数初值,在这种工作方式中,16位计数器分为两部分,以TL0为计数器,以TH0作为预置寄存器,当计数溢出时 ,TH以硬件方法自动给计数器TL0重新加载

  20. 5.2 MCS-51单片机的定时器/计数器 二、定时器/计数器的四种工作模式 4.定时工作方式3 当M1,M0=11时,定时/计数器处于工作方式3,此时,定时/及数器的等效电路如图所示 图5-5 定时/计数器工作方式3等效电路

  21. 5.3 定时器/计数器与中断综合应用举例 一、 方式0、方式1的应用 例5-1:选择T1方式0用于定时,在P1.1输出周期为1ms的方波,晶振fosc=6MHZ。 分析:根据题意,只要使P1.1每隔500µs取反一次即可得到1ms方波,因而T1的定时时间为 500µs。 将T1设为定时方式0:GATE=0,C/T(—)=0,M1M0=00;T0不用可为任意,只要不使其进入方式3,一般取0即可。故TMOD=00H。系统复位后TMOD为0,所以不必对TMOD置初值。下面计算500µs定时T1的初值: 机器周期 T=12/fosc=12/6×106=2µs 设初值为X则: (213-X)×2×10-6 s =500×10-6 s X=7942D=1111100000110B=1F06H 因为在作13位计数器用时,TL1高3位未用,应写0,X的低5位装入TL1的低5位,所以TL1=06H;X的高8位应装入TH1,所以TH1=F8H。 源程序如下:

  22. MOV TL1,#06H ;给TL1置初值 MOV TH1,#F8H ;给TH1置初值 SETB TR1 ;启动T1 LP1: JBC TF1,LP2 ;查询计数溢出否 AJMP LP1 LP2: MOV TL1,06H ;重装初值 MOV TH1,F8H CPL P1。1 ;输出取反 AJMP LP1 ;重复循环 5.3 定时器/计数器与中断综合应用举例 一、 方式0、方式1的应用

  23. MOV TMOD,#60H ;设置T1为方式2 MOV TL1,#9CH ;置初值 MOV TH1,#9CH SETB TR1 ;启动T1 DEL: JBC TF1,REP ;查询计数溢出 AJMP DEL REP: CPL P1。0 ;输出取反 AJMP DEL 5.3 定时器/计数器与中断综合应用举例 二、 方式2的应用 例5-2 用定时器1方式2计数,要求每计满100次,将P1.0取反。 分析:根据题意,外部计数信号由T1(P3.5)引脚输入,每跳变一次计数器加1,由程序查询TF1。方式2有自动重装初值的功能,初始化后不必再置初值。 初值 X=28-100=156D=9CH TH1=TL1=9CH TMOD=60H 源程序如下:

  24. 5.3 定时器/计数器与中断综合应用举例 三、 门控位的应用 例5-3 利用T0门控位测试INT0引脚上出现的正脉冲的宽度,并以机器周期数的形式显示在显示器上。 分析:根据要求可这样设计程序:将T0设定为方式1,GATE设为1,置TR0为1。一旦INT0(P3.2)引脚上出现高电平即开始计数,直至出现低电平,停止计数,然后读取T0的计数值并显示。 测试过程如下: 图 5‑6 外部正脉冲宽度测量

  25. INC R0 SWAP A XCHD A,@R0 INC R0 MOV A,TH0 XCHD A,@R0 INC R0 SWAP A XCHD A,@R0 DIS: LCALL DISUP ;长调用显示子程序 AJMP DIS ;重复显示机器周期数 5.3 定时器/计数器与中断综合应用举例 三、 门控位的应用 源程序如下: BEGIN: MOV TMOD,# O9H ;T0工作于方式1,GATE置1 MOV TL0,#00H MOV TH0;#00H WAIT1: JB P3。2,WAIT1 ;等待INT0变低 SETB TR0 ;启动T0 WAIT2: JNB P3。2,WAIT2 ;等待正脉冲到 WAIT3: JB P3。2,WAIT3 ;等待INT0变低 CLR TR0 ;停止T0计数 MOV R0,#DISBUF ;显示缓冲区首地址送R0 MOV A,TL0 ;机器周期的存放格式为低位占低地址,高位占高地址,连续4个显示缓冲单元 XCHD A,@R0 INC R0 SWAP A XCHD A,@R0 INC R0

More Related