单片微机原理 第四章 42定时、中断、串行

上传人:tia****nde 文档编号:70826791 上传时间:2019-01-18 格式:PPT 页数:36 大小:559.81KB
返回 下载 相关 举报
单片微机原理 第四章 42定时、中断、串行_第1页
第1页 / 共36页
单片微机原理 第四章 42定时、中断、串行_第2页
第2页 / 共36页
单片微机原理 第四章 42定时、中断、串行_第3页
第3页 / 共36页
单片微机原理 第四章 42定时、中断、串行_第4页
第4页 / 共36页
单片微机原理 第四章 42定时、中断、串行_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《单片微机原理 第四章 42定时、中断、串行》由会员分享,可在线阅读,更多相关《单片微机原理 第四章 42定时、中断、串行(36页珍藏版)》请在金锄头文库上搜索。

1、4.2 中断系统及应用,4.2.1 中断有关的概念 4.2.2 8051中断标志及控制寄存器 4.2.3中断响应的条件及响应过程 4.2.4 中断程序设计思想 4.2.5 中断应用程序设计举例,4.2.1 中断有关的概念,中断:利用软硬件配合,根据某种需要断开正在执行的程序而转向另一专门 程序,结束后再返回到原断开处继续执行被中止的程序,这个过程称为中断。 中断服务程序或中断处理程序:中断后转向执行的程序。 断点:原程序被断开的位置(地址)。 中断源:发出中断信号的设备。 中断请求或中断申请:中断源要求中断服务所发出的标志信号。 中断源包括:外部设备如键盘、打印机、磁盘驱动器等,还有内部定时器

2、、故障源,以及根据需要人为设置的中断源等等。 中断响应:中断源向CPU发出中断申请,CPU经过判断认为满足条件,则对中断源作出的答复。,中断流程,引入中断的主要优点是:, 实现分时操作,解决了快速CPU与慢速外设的矛盾,可以实现CPU与外部设备同时工作。 实现实时处理,中断源根据外界信息变化可以随时向CPU发出中断请求,若条件满足,CPU会马上响应,对中断要求及时处理。若用查询方式往往不能及时处理。 故障处理。计算机在运行时往往会出现一些故障,如电源断电、运算溢出等,有了中断系统,当出现故障时,CPU可即时转去执行故障处理程序,自行处理故障而不必停机。,1外部中断源2个:INT0(P3.2)、

3、 INT1(P3.3) 由P3.2端口线引入,低电平或下降沿引起。 由P3.3端口线引入,低电平或下降沿引起。 2内部中断源 T0溢出中断:定时/计数器0中断,由T0溢出引起。 T1溢出中断:定时/计数器1中断,由T1溢出引起。 串行口中断TI/RI:串行I/O中断,完成一帧字符发送/接收引起。,805l单片机共有5个中断:,4.2.2 8051中断标志及控制寄存器,一、中断标志寄存器TCON、SCON TCON是定时计数器控制寄存器 SCON是串行口控制寄存器 1TCON 中断标志位 TCON寄存器中与中断有关位如下: D7 D6 D5 D4 D3 D2 D1 D0 TF1和TF0定时器溢出

4、中断申请标志位。 IE1和IE0外部中断申请标志位。IE11表示外部中断1(1NT1)发出中断申请;IE0=1表示外部中断0(1NT0)发出中断申请。, IT1和IT0外部中断触发方式控制位。 IT11 边沿触发方式 INT1端有下跳变 时,发出中断申请,把IE1置“1”; IT1=0 电平触发方式 INT1端加低电平时,发出中断申请,把1E1置“1”。 只有外部中断才有中断触发方式控制。 在边沿触发方式,中断响应后由硬件自动清除中断标志IE1和IE0。 在电平触发方式,无论硬件或软件均不能清除中断标志位,只有把INT1或INT0端的低电平撤掉,才能清除IT1或IT0。,2SCON 中断标志位

5、,SCON 寄存器只有最后两位TI(D1)和RI(D0)与中断有关。 99H 98H SCON(98H) TI串行口发送中断标志。 在串行通信过程中,CPU每发送完一帧数据自动把TI置“1”,表示发送结束申请中断。 RI串行口接收中断标志。 串行口通信时,每接收完一帧数据,则把RI置“1”,表示接收结束、发出中断申请。 注意:中断响应后,RI或TI不能自动清除,必须由软件来清除。编程时要注意在中断服务程序中使用CLR RI或CLR TI指令使RI或TI清零。,二、中断优先级控制寄存器IP,8051单片机内有 5个中断。若有两个以上中断同时发出中断请求,先响应哪一个的申请则是CPU必须解决的问题

6、 中断优先级:根据每个中断源的重要程度和中断请求的紧急程度,事先排好一个响应中断的顺序,这个顺序叫中断优先级。 1自然优先级(机器内预先安排好的中断顺序) 外部中断0 (INT0) 最高级 定时器T0中断 外部中断1(INT1) 定时器T1中断 串行口中断 最低级 T0、T1同时发出中断申请,CPU自然会先响应T0的中断请求。因为T0的优先级比T1优先级高。,2优先级设定 通过对优先级控制寄存器IP的设置,把中断源分成两大类: 高优先级中断源和低优先级中断源。 若同一级有几个中断源申请,则按自然优先级顺序响应。 IP(B8H)格式如下: D7 D6 D5 D4 D3 D2 D1 D0 INT0

7、 中断优先级控制位 T0 中断优先级控制位 INT1 中断优先级控制位 T1中断优先级控制位 串行口 中断优先级控制位,指令 MOV IP,#09H; 把T1、INT0设置为高优先级,其余为低优先级。 若T1、INT0同时发出中断申请,按自然优先级,先响应外部中断即INT0,后响应定时器T1的中断。,三、中断允许控制寄存器(IE),中断源发出中断请求后,能否被CPU响应,还要由中断允许控制寄存器的状态决定。IE通过软件设置,IE的格式如下: D7 D6 D5 D4 D3 D2 D1 D0 IE (A8H) INT0中断允许/禁止位 T0中断允许/禁止位 INT1中断允许/禁止位 T1中断允许/

8、禁止位 串行口中断允许/禁止位 总中断允许/禁止位 ES、ET1、EX1、ET0、EX0某位为“l”,则允许相应中断源中断,为“0”则禁止该中断源中断(该中断被屏蔽)。 EA是5个中断源的总控制位。EA=1允许有中断,但具体允许哪一个中断源中断,还要看相应控制位是否为“1”。若EA0禁止全部中断,即使五个中断源相应控制位为“1”也不能响应中断请求。,例如,若允许T0中断,禁止其它中断,则中断允许控制字为82H(EA1,ET01),由送数指令设置。 方法一: 程序 MOV IE,#82H ;IE寄存器送入控制字 方法二: 由于IE寄存器可以位寻址,也可用位寻址指令设置它。 程序 SETB EA

9、;开总中断 SETB ET0 ;T0中断允许 805l系统复位后,IE、IP都被清0,若使用中断必须由程序事先对二者进行设置。,4.2.3中断响应的条件及响应过程,中断源发出中断请求后,要得到CPU的响应是有条件的。 基本条件如下: 首先中断源要发出中断请求,即把中断标志寄存器TCON、SCON相应位置“1”。 中断总允许位EA1,CPU允许响应中断申请。 IE寄存器相应中断允许位置“1”,允许该中断源发出中断申请,进行中断。 没有更高一级中断响应。,4.2.3中断响应的条件及响应过程,中断响应过程: 当中断条件满足后,CPU响应中断。 这时,硬件自动产生长调用LCALL指令。此指令把主程序断

10、点地址压入堆栈,然后把中断服务程序入口地址装入PC。在PC指引下进入中断服务程序。 中断服务程序最后都必须有一条中断返回指令RETI。当执行RETI时把程序断点弹出并送往PC,这样程序又返回到主程序断点处,继续执行主程序。,例如,定时器T0溢出时发出中断申请,把TCON中的溢出标志位TF0置“1”。 此时若无更高级中断被响应,而且EAl、ET0l(EA、ET0在T0初始化时已设置好)。这时满足了CPU响应T0中断的条件,则立刻响应中断,通过中断地址入口转去执行T0中断服务程序。 注意:正在执行一条指令的过程中,不能响应中断;另外,在执行RETI或读写IE或IP之后,不能马上响应中断请求,至少在

11、执行一条其它指令之后才会响应。,4.2.4 中断程序设计思想,中断系统虽是硬件系统,但必须由相应软件配合才能正确使用。设计中断程序需要弄清以下几个方面的问题。 一、中断程序设计的任务 设置中断允许控制寄存器IE,允许相应中断源中断。 设置中断优先级寄存器IP,选择、分配所使用中断源的优先级。 若是外部中断源,还要设置中断请求触发方式IT1或IT0,决定采用边沿触发方式还是电平触发方式。 编写中断服务程序,处理中断请求。 前3条一般放在初始化主程序中。,例如,假设允许外部中断0中断,并设定它为最高级中断,其它中断源为低级中断,采取边沿触发方式。在主程序中可使用如下指令: SETB EA ; 开总

12、中断 SETB EX0 ;允许外部中断0产生中断 SETB PX0 ;外部中断0为高级中断 SETB IT0 ;外部中断0申请信号为边沿触发方式,二、中断入口地址,中断入口地址和中断源是一一对应关系。 MCS51系列有5个中断对应5个入口地址: 中断源 入口地址 INT0 0003H T0 000BH INT1 0013H T1 001BH 串行口 0023H 中断服务程序必须从相应入口地址开始存放。当中断响应时由硬件生成的长调用指令(LCALL)先把断点压入堆栈保存,然后把上述相应入口地址装入PC。中断服务程序从入口地址开始执行,直到返回指令RETI为止。,三、采用中断时主程序结构,常用程序

13、结构如下: ORG 0000H ;程序起始地址 LJMP MAIN ;跳转到主程序入口地址 ORG 中断入口地址 LJMP INT ;跳转到中断服务程序 MAIN: 主程序 INT: 中断服务程序 注意:多个ORG地址必须由小到大排列。,四、中断服务程序基本结构,关中断 保护现场 开中断 中断处理 关中断 恢复现场 开中断 中断返回,4.2.5 中断应用程序设计举例,例1 使用定时器定时,每隔10s使与P10口连接的发光二极管闪烁10次;设 P1.0高电平灯亮,反之灯灭。 分析:中断源T0,入口地址000BH。当T0溢出时TF0为“l”发出中断申请,条件满足CPU响应,进入中断处理程序。,主程

14、序框图,中断服务程序框图,主程序中要进行中断设置和定时器初始化,中断服务程序中安排灯闪烁。 程序如下: ORG 0000H ;程序起始地址 LJMP MAIN ;主程序入口地址 ORG 000BH ;T0中断入口地址 LJMP INT ;中断人口地址 ORG 0100H MAIN:MOV R0,#200 ;10s循环次数 MOV TMOD,#01H ;T0定时方式1 MOV TH0,#3CH ;50MS初值高位 MOV TL0 ,#0B0H ;50ms初值低位 MOV R1,#10 ;闪烁次数 SETB EA ;开总中断 SETB ET0 ;开T0中断 SETB TRO ;启动T0 LP: S

15、JMP LP ;循环等待中断,INT: MOV TH0,#3CH MOV TL0,#0B0H DJNZ R0,DE ;R00,不到10s,灯不闪,直接返回 MOV R0,#200 ;重装定时常数 DE0: SETB P1.0 ;R00,10s到,灯闪烁 LCALL DELAY CLR P1.0 ;闪烁 LCALL DELAY DJNZ R1,DE0 ;R10,不够10次继续闪,闪够10次中断返回 MOV R1,#10 ;重装闪烁次数 DE: RETI DELAY:MOV R6,#0FFH DL0: MOV R7,#0FFH DL1: NOP DJNZ R7,DL1 DJNZ R6,DL0 RET END,定时/计数器及中断系统综合,【例】设MCS-51单片机系统时钟频率fosc为6MHz,请编出利用定时/计数器T0在P1.0引脚上产生周期为2秒,占空比为50%的方波信号的程序 (1)主程序 任务:1)T0工作方式的设定: 选择方式1(16位方式) (最大定时131ms) 2)定时常数的设定: TC=216-100ms/2s =15536=3CB0H,即:TH0应装3CH,TL0应装B0H。 3)中断管理: 允许T0中断,开放总中断 即:IE应装10000010B。 4)启动定时器T0:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号