《计算机课件 第4章-MCS-51内部标准功能单元-4.1MCS-51单片机的中断系统》由会员分享,可在线阅读,更多相关《计算机课件 第4章-MCS-51内部标准功能单元-4.1MCS-51单片机的中断系统(33页珍藏版)》请在金锄头文库上搜索。
1、第4章 MCS - 51单片机内部标准功能单元4.1 MCS-51单片机的中断系统本章内容p4.1 MCS-51单片机的中断系统p4.2 MCS-51单片机的定时/计数器p4.3 MCS-51单片机的串行接口4.1 MCS-51单片机的中断系统p4.1.1 中断的概念及其优点p4.1.2 中断源p4.1.3 中断系统的功能p4.1.4 MCS-51单片机的中断结构p4.1.5 中断系统的控制与实现p4.1.6 中断系统的处理过程p4.1.7 中断系统设计举例4.1.1 中断的概念及其优点p等待执行任务n查询方式、中断方式p查询n程序询问状态准备就绪?没有查询n缺点:CPU不能进行其它操作p中断
2、n计算机内部/外部,请求CPU处理pCPU暂时中断当前工作处理发生事件继续被中止的工作优点: 分时操作 实时处理 故障处理中断源/主程序/断点4.1.2 中断源p有以下几种n输入/输出设备:键盘、打印机等n实时时钟:定时器n故障源:电源掉电pMCS-51单片机,5个中断源n外部中断(2个)、定时中断(2个)、串行中断(1个 )n矢量地址:(ROM中)p固定的中断服务程序入口地址中断源 符号名称中断标志中断服务程序 入口地址优先级 顺序 /INT0外部中断0IE00003H高T0定时器0中断TF0000BH/INT1外部中断1IE10013HT1定时器1中断TF1001BHTI/RI串行口中断R
3、I或TI0023HT2定时器2中断TF2或EXF2002BH低P99 表414.1.3 中断系统的功能p实现中断及返回n响应?响应保护断点/现场转中断服务程序恢复断点/现场返回断点执行主程序p优先权排队 n轻重缓急,每个中断源一个中断级别p先处理高级别,后处理底级别p可以中断嵌套高级能中断低级4.1.4 MCS-51单片机的中断结构外部中断触发方式控制位中断请求标志位中断允许标志位串口接收/发送 中断标志位中断优先级设定位4.1.5 中断系统的控制与实现p1.定时/计数器的控制寄存器 TCONp2.串行口控制寄存器 SCONp3.中断允许寄存器 IEp4.中断优先级寄存器 IP1.定时/计数器
4、的控制寄存器 TCON位D7D6D5D4D3D2D1D0字节地 址TCON TF1TR1TF0 TR0IE 1IT 1IE0 IT088H定时/计数器0和1的运 行控制位定时/计数器器0和1的溢出中断请求标志 1:T0计数最高位溢出时,硬件置位 0:中断响应后,硬件自动清零外部中断请求标志 1:外部事件请求中断时,硬件置位 0:中断响应后、转向中断服务时,硬件清零中断触发方式 0:低电平 1:下降沿可位寻址2.串行口控制寄存器 SCON位D7D6D5D4D3D2D1D0字节地 址 SCONTIRI98H串口接收中断请求标志位 1:CPU每接收完一个串行帧,由硬件置位 0:响应中断时,不能自动清
5、0,必须软件清0串口发送中断请求标志位 1:CPU每发送完一个串行帧,由硬件置位 0:响应中断时,不能自动清0,必须软件清0可位寻址单片机复位后,TCON和SCON各位清0所有能产生中断的标志位均可由软件置1或清03.中断允许寄存器 IEp控制:中断源的开放和屏蔽n1,开放;0,屏蔽p可由软件设定pCPU复位时,IE各位清“0”,禁止所有中断位D7D6D5D4D3D2D1D0字节地 址 IEEAESET1 EX 1ET0 EX0A8H CPU中断总允许位外部中断允许位串行口中断允许位 定时/计数器T0中断允许位可位寻址4.中断优先级寄存器 IPpMCS-51单片机,2个中断优先级n可二级中断嵌
6、套nIP相应位,规定中断优先级p1,高级;0,低级位D7D6D5D4D3D2D1D0字节地 址 IPPSPT1 PX1 PT0 PX0B8H定时/计数器T0和T1中断优先级设定位外部中断优先级设定位串行口中断优先级设定位可位寻址同一优先级内, 各中断同时提出中断请求时, 按自然优先级次序响应MCS-51中断优先级控制原则p同时接收几个中断n按自然响应优先级顺序确定执行哪一个中断p中断过程n不能被新的同级或低级中断请求所中断n低级中断服务能被高级中断请求所中断4.1.6 中断系统的处理过程p四个阶段n中断请求中断响应中断服务中断返回p中断请求和响应硬件自动完成p以下内容n1. 中断响应条件 n2
7、. 中断响应过程n3. 执行中断服务程序n4. 中断返回n5. 中断请求的清除1. 中断响应条件 p响应条件n中断源发出中断申请nEA=1n中断源的中断允许位为1p不响应的条件?2. 中断响应过程p(1)相应的优先级状态触发器置1n阻断后来的同级或低级中断请求p(2)硬件LCALL指令nPC堆栈n中断服务程序入口地址PCp(3)进入中断服务程序后n自动清除中断请求标志:TF0、TF1、IE0、IE1n不能清除TI和RI3. 执行中断服务程序p注意n在主程序中,中断初始化n中断服务程序入口地址单元p放LJMP(跳转范围:64KB)n硬件LCALL指令p断点地址堆栈n中断服务程序p保护现场p中断服
8、务之后、中断返回之前恢复现场4. 中断返回pRETIn中断服务程序的最后一条指令n返回到断点,执行主程序pRETI指令操作n断点地址PCn相应中断优先级状态触发器清0n中断服务程序中,PUSH、POP必须成对使用p不能用RET指令代替RETI指令5. 中断请求的清除p中断响应后nTCON 或 SCON 中的中断请求标志应及时清除,否则 会引起另一次中断。pTF0、TF1 硬件自动清除pTI、RI 用软件清除pIE0、IE1 边沿触发中断,硬件自动清除 电平触发中断,硬件自动清除不能彻底解决撤除问题,应该在外部连接电路上采取措施电平触发的外部中断请求撤除电路CPDQnQn+1 Qn 00 118
9、051QP1.0CPD外部中断 请求信号D触发器CPU响应中断后可用如下两条指令:ANL P1,#0FEHORL P1,#01H4.1.7 中断系统设计举例p例1 如图4.3所示,按键K1接至外部中断,按一次键LED 点亮,蜂鸣器发声,再按一次键LED灭,蜂鸣器关闭,循 环往复。图4.3 按键控制声光电路 在ROM内存放?p例2 中断里的堆栈操作n现有外部中断 1 提出申请, 且主程序中有DPTR、A需 保护ORG0000H AJMPMAIN ORG0013H LJMPINT1 ORG0100HMAIN:; 主程序 SJMP $ORG1000H INT1:PUSH ACC;中断服务程序PUSH
10、 DPHPUSH DPL POP DPL POP DPH POP ACC RETI 多中断源系统p当外部中断源多于中断输入引脚时,可采取以下措施:n1.用定时器计数输入信号端T0、T1作外部中断入口引脚n2.用一个中断入口接受多个外部中断源,并加入中断查询 电路。例 P107ORG0000H; 复位入口地址 AJMP TO_INTMA; 转主程序ORG2003H AJMP IO; 转中断服务程序TO_INTMA: MOVP1, #0FFH; 置P1口输出全为1 SETB IT0; INT0为沿触发中断方式 SETB EX0; 允许INT0中断 SETB EA; CPU开中断LOOP1_YO:
11、SJMP LOOP1_YO; 去LOOP1_YO等待中断IO_POOP:JNBP1.0,L1_POOP;查询中断源CLRP1.1SJMP L2_POOP;P1.1送“1”使对应灯亮 L1_POOP:SETB P1.1L2_POOP:JNBP1.2, TO_L23 CLRP1.3 SJMP TO_L4_P TO_123:SETB P1.3TO_L4_P:JNBP1.4, TO_L5_P CLRP1.5 SJMP TO_L6_P TO_L5_P:SETB P1.5TO_L6_P:JNBP1.6, TO_L7_P CLRP1.7 SJMP TO_L8_P TO_L7_P:SETB P1.7TO_L8_P:RETI;返回主程序小结p中断的概念p中断系统的功能pMCS-51单片机的中断结构p中断系统的控制与实现p中断系统的处理过程p作业:P109:4.8