1 / 45

第六章 MCS-51 中断与定时系统

第六章 MCS-51 中断与定时系统. 6.1 MCS-51 单片机中断系统 6-1-1 单片机中断技术概述. 中断的概念 计算机理论中中断技术的含义: 资源共享技术. 中断的功能 : 实现 CPU 与外部设备的速度配合; 实现实时控制; 实现故障及时发现; 实现人机联系。. 中断处理: 现场保护,恢复现场; 开中断,关中断; 执行中断服务程序; 中断返回。. 向 CPU 发出中断请求的地方,称之为 中断源 。 MCS-51 单片机中断源: 3 类共 5 个。. 6-1-2 中断源.

Download Presentation

第六章 MCS-51 中断与定时系统

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中断与定时系统 6.1 MCS-51单片机中断系统 6-1-1 单片机中断技术概述 中断的概念 计算机理论中中断技术的含义:资源共享技术 中断的功能: 实现CPU与外部设备的速度配合; 实现实时控制; 实现故障及时发现; 实现人机联系。

  2. 中断处理: 现场保护,恢复现场; 开中断,关中断; 执行中断服务程序; 中断返回。

  3. 向CPU发出中断请求的地方,称之为中断源。 MCS-51单片机中断源:3类共5个。 6-1-2 中断源 外部中断0;中断请求信号来自引脚 (P3.2) 外部中断1;中断请求信号来自引脚 (P3.3) 定时中断0; 定时中断1; 串行口中断。

  4. 外部中断请求信号来自引脚 (P3.2)和 ( P3.3) 请求方式有两种:电平方式;脉冲方式。 通过TCON的IT0、IT1选择, 电平方式(IT0(IT1)=0):低电平有效 脉冲方式(IT0(IT1)=1):脉冲负跳变有效 定时中断(内部中断):满足定时、计数的需要。 定时状态,计数状态 两个16位寄存器。对应T0、T1 (专用寄存器8AH、8BH,8CH、8DH) 寄存器溢出作为有效中断请求信号

  5. 串行中断(内部中断):用于串行数据传送 串行口缓冲器SBUF(8位专用寄存器99H), 不能进行位寻址 MOV A, SBUF ;接收 MOV SBUF,A ;发送

  6. 6-1-3 中断控制 定时器控制寄存器(TCON) 字节地址88H 功能: 定时器/计数器控制功能; 中断控制功能。

  7. IE0(IE1)——外中断请求标志位 硬件置位——当CPU采样到 出现有效中断请求时。 中断响应完成,转向中断服务程序时,硬件自动清零。 IT0(IT1)——外中断请求信号方式控制位 IT0(IT1)=1脉冲方式(负跳变有效); IT0(IT1)=0电平方式(低电平有效)。 TF0(IF1)——计数溢出标志 硬件置位——当计数器产生计数溢出时。 转向中断服务程序时,硬件清零。

  8. 串行口控制寄存器(SCON) 字节地址98H TI——串行口发送中断请求标志位 当发送完一帧串行数据后,硬件置位;在转向中断服务程序 后,用软件清零。 RI——串行口接收中断请求标志位 当接收完一帧串行数据后,硬件置位;在转向中断服务程序 后,用软件清零。

  9. 中断允许控制寄存器(IE) 字节地址A8H EA——中断允许总控制位 EA=0 中断总禁止; EA=1 中断总允许 EX0(EX1)——外部中断允许控制位 EX0(EX1)=0 禁止外中断; EX0(EX1)=1 允许外中断

  10. ET0(ET1)——定时/计数中断允许控制位 ET0(ET1)=0 禁止定时(计数)中断; ET0(ET1)=1 允许定时(计数)中断 ES——串行中断允许控制位 ES=0 禁止串行中断; ES=1 允许串行中断

  11. 中断优先级控制寄存器(IE) 字节地址B8H PS——串行中断优先级设定位; PT1——定时中断1优先级设定位 PT0——定时中断0优先级设定位 PX1——外部中断1优先级设定位 PX0——外部中断0优先级设定位 0:优先级低 1:优先级高

  12. 中断优先级控制原则: 1)低优先级中断请求不能打断高优先级中断请求;高优先级中断请求可以打断低优先级中断请求。 2)如果一个中断请求已被响应,则同级的其他中断响应将被禁止。 3)如果同级的多个中断请求同时出现,则按CPU查询次序确定哪个中断请求被响应。 查询次序: 外部中断0定时中断0外部中断1定时中断1串行中断。

  13. 外部中断请求采样:(S5P2对中断请求引脚采样)外部中断请求采样:(S5P2对中断请求引脚采样) 采样 引脚 电平方式:采样到低电平,中断请求有效,IE0(IE1)置1 脉冲方式:在两个相邻机器周期采样到先高电平后低电平,则中断请求有效,IE0(IE1)置1。 6-1-4 中断响应过程

  14. 定时/计数器0 定时/计数器1 串行发送 串行接收 内部中断请求:(定时/计数器中断,串行中断) 中断请求发生在单片机芯片内部,不存在中断请求采样问题 直接置位相应的中断请求标志位。

  15. 中断查询与响应 中断查询 当中断源有了有效的中断请求信号,并将其锁定在相应的 中断请求标志位中,CPU通过对这些标志位的查询,感知 中断请求。 MCS-51单片机在每个机器周期的S6状态按中断优先级次序 对中断请求标志位进行查询。 查询有标志位为1,在紧接的下一个机器周期开始中断响应。

  16. 中断响应 由硬件自动生成一条LCALL长调用指令。 LCALL addr16(指向相应中断入口地址) 对于外部中断0响应 LCALL 0003H 存在下列情况之一,中断响应无法进行 1)CPU正在处于一个同级或高级的中断服务中; 2)查询中断请求的机器周期不是当前执行指令的最后一个 机器周期; 3)当前指令是返回指令(RET,RET1)或访问IE,IP指令。 中断响应时间:3~8个机器周期

  17. 1)定时器/计数器中断硬件撤除; 中断响应后自动清TF0(TF1)标志位。 6-1-5 中断请求的撤消 2)外部中断自动与强制撤除; 中断响应后硬件自动清IE0(IE1)标志位 脉冲请求方式,自动撤除; 电平请求方式强制撤除。

  18. 电平方式外部中断请求撤除电路 电平方式外部中断请求信号的真正撤除,是通过软件实现的 3)串行中断软件撤除 标志位TI,RI不能通过硬件清零。只能在中断响应后用软件 清除。

  19. 6-2 MCS-51单片机的定时器/计数器 6-2-1 定时方法概述 软件定时:执行一个循环程序进行时间延迟。定时准确,不需要外加硬件电路,但增加CPU开销。 硬件定时:通过硬件电路实现定时,不占用CPU时间,但使用不够方便。 可编程定时器定时:通过对系统时钟脉冲的计数实现定时。计数值通过程序设定,定时准确,使用方便灵活。

  20. 6-2-2 定时器/计数器的定时和计数功能 MCS-51系列单片机有两个可编程定时器/计数器:T0、T1, 16位寄存器,加法计数结构,地址为: T0(TH0,TL0):8CH,8AH T1(TH1,TL0):8DH,8BH 特殊功能寄存器 每个寄存器(T0,T1)都具有定时和计数功能

  21. MCS-51定时/计数器核心是一个16位计数器(寄存器)。MCS-51定时/计数器核心是一个16位计数器(寄存器)。 加1信号来源:外部计数脉冲、内部时钟脉冲。 信号来源方式:由特殊功能寄存器TMOD设置位C/T确定。 ,计数方式(外部); ,定时方式(内部)。

  22. 定时方式: MCS-51典型的指令周期(执行一条指令的时间)为一个机器周期。机器频率是振荡频率的12分频。 主频为12MHz,机器周期为1μs,也就是说12M晶振时,每1μs定时寄存器完成加1操作。 一旦振荡周期确定,机器周期亦确定。

  23. 计数方式 计数脉冲来源于T0(P3.4)、T1(P3.5)口。当检测到输入引脚的电平由高跳变到低时,计数器加1。 采样(S5P2)、加1(S3P1)操作。发生在两个机器周期,因此需要2个机器周期才能识别一个从“1”到“0”的跳变。最高计数频率为振荡频率1/24,计数频率周期必须大于2μs才能满足作为计数脉冲。

  24. 6-2-3 MCS-51定时/计数器控制与状态寄存器 工作方式控制寄存器TMOD(状态寄存器) 字节地址89H(不可以位寻址)

  25. M1M0为操作方式选择位 :选择定时/计数器模式 ,计数模式; ,定时模式 GATE:选通控制 GATE=0,选通, 通过TRX启动定时器。 GATE=1, 端口高电平,通过TRX启动定时器。

  26. 启停与中断控制寄存器TCON(控制寄存器) 字节地址88H TCON由定时/计数器和中断系统合用。 TR0:定时/计数器0启停控制位 由软件控制定时/计数器0的启动/停止。 TR1:定时/计数器1启停控制位 由软件控制定时/计数器1的启动/停止。

  27. TF0:定时/计数器0中断请求标志位 当定时/计数器0计数回0时,由内部硬件置位TF0(TF0=1),请求中断。中断服务程序一旦执行,硬件自动清0(TF0=0)。 TF1:定时/计数器1中断请求标志位 当定时/计数器1计数回0时,由内部硬件置位TF1(TF1=1),请求中断。中断服务程序一旦执行,硬件自动清0(TF1=0)。

  28. IE0:外部中断0中断请求标志 IT0=1, 负跳变触发中断,硬件置IE0=1,当转向中断服务程序后,硬件自动清IE0=0。 IT0=0, 低电平触发中断。硬件置IE0=1,当转向中断服务程序后,硬件自动清IE0=0。 IE1:外部中断1中断请求标志 IT1=1, 负跳变触发中断,硬件置IE1=1,当转向中断服务程序后,硬件自动清IE1=0。 IT1=0, 低电平触发中断。硬件置IE1=1,当转向中断服务程序后,硬件自动清IE1=0。

  29. IT0:外部中断0触发方式控制位 软件设置。IT0=1,外部中断 ,发生10跳变,产生中断请求,向主机申请中断。IT0=0,则 端口低电平触发中断。 IT1:外部中断1触发方式控制位 软件设置。IT1=1,外部中断 ,发生10跳变,产生中断请求,向主机申请中断。IT1=0,则 端口低电平触发中断。以上后四项用于中断系统。 TCON可位寻址,其位地址为88H—8FH。

  30. 4-3 定时/计数器的工作方式 设置 (TMOD寄存器)选择定时模式还是计数模式; 对M1M0的设置,用于选择T0、T1的四种操作(工作)方式。 TL0、TL1,TH0、TH1两对定时/计数器

  31. (1)定时/计数方式0(13位计数器) 以定时/计数器0(T0)为例 TH0全部8位,TL0低5位构成13位定时/计数器。 当 时(定时方式),开关接至振荡12分频输出; 当 时(计数方式),开关接通T0(P3.4)当计数脉冲发生负跳变计数器加1。

  32. 定时/计数方式1(16位计数器) 逻辑结构和方式0完全一样,只是TL是8位计数器。 计数范围1—65536 如晶振6MHz,最小定时时间为:2s(机器周期) 最大定时时间为:131ms。

  33. 定时/计数方式2(自动再装入8位计数器) THx,TLx相互独立(x=0,1)。 TLx作为8位计数器,THx是初值寄存器。TLx溢出后,置TFx申请中断。THx初值重新装入TLx。只需通过软件设置一次,启动后无限次定时/计数运行。(自动进行下一次)

  34. 定时/计数方式3(T0分成两个8位计数器,T1无效)定时/计数方式3(T0分成两个8位计数器,T1无效) 将T0分成两个独立的8位计数器。TL0组成完整的8位定时/计数器;既能定时,又能计数。 TH0只能组成8位定时器(内部脉冲)。只能定时。 TL0占用T0全部控制信号及中断请求标志位(TR0、TF0等) TH0只能借用TR1和TF1。 P3.5口(T1外部计数脉冲输入口)不能占用。

  35. 4-4 定时/计数器应用 基本步骤: 工作方式控制字(TMOD)的设置; 计数初值的计算并装入THx、TLx; 中断允许位Etx、EA的设置,使主机开放中断; 启/停位TRx的设置。

  36. 定时应用有查询、中断两种方式。 计数初值的确定 在方式0下,当为计数方式时,计数值范围1—8192(213) 在方式1下,当为计数方式时,计数值范围1—65536(216) 在方式2下,当为计数方式时,计数值范围1—256(28 )

  37. 当为定时方式时, 定时时间:(2n –计数初值)*机器周期

  38. 如晶振周期6MHz,机器周期为2s。 在方式0下 最小定时时间为:2s 最大定时时间为:16384s(8192*2) 在方式1下 最小定时时间为:2s 最大定时时间为:131ms(65536*2)

  39. 例题:生成周期为500 s的等宽正方波。机器晶振 6MHz。使用T1以方式0工作,由P1.0输出 500 s 机器周期:2 s。定时时间250 s。 以250 s为周期在P1.0端交替输出高低电平。

  40. 8067-4096=3971 1 3971-2048=1923 1 1923-1024=899 1 899-512=387 1 387-256=131 1 131-128=3 1 64 0 32 0 16 0 8 0 4 0 二进制表示: 1111110000011

  41. 程序设计(查询方式): MOV TMOD,#00H ;设置T1 MOV TH1,#0FCH ;计数初值 MOV TL1,#03H ; MOV IE,#00H ;禁止中断 SETB TR1 ;启动定时 LOOP: JBC TF1,LOOP1 ;查询计数溢出 AJMP LOOP LOOP1: MOV TH1,#FCH ;重新设置计数初值 MOV TL1,#03H ; CLR TF1 ;清溢出标志 CPL P1.0 ;输出 AJMP LOOP ;重复循环

  42. 定时工作方式1(16位计数器) T1,通过中断方式完成

  43. 程序设计(中断方式): MOV TMOD,#10H ;设置T1 MOV TH1,#0FFH ;计数初值 MOV TL1,#0A1H ; SETB EA ;开中断 SETB ET1 ;T1允许中断 LOOP: SETB TR1 ;定时开始 HERE: SJMP HERE INIT: MOV TH1,#0FFH ;重新设置计数初值 MOV TL1,#0A1H ; CPL P1.0 ;输出 RET1 ;中断返回

  44. 使用T1,以工作方式1,定时5秒 定时100ms,循环50次,进入中断服务程序。

More Related