微格教学课程教案

  • 格式:doc
  • 大小:44.00 KB
  • 文档页数:7

微格教学课程教案————单片机原理与应用及c51 程序设计(中断系统)班级:姓名:学号:微格教学课程教案教研室:计算机应用授课教师:课程名称单片机原理与应用及C51程序设计授课时间2课时主要教学内容时间分配第6章第六章MCS-51单片机的内部资源及编程(中断系统)一、中断系统的基本概念1 中断源及中断请求2 中断优先权控制3 中断允许与中断屏蔽4 中断响应与中断返回二、外部中断1 外部中断的方式选择2 外部中断的系统设计应用3 多级外部中断的扩展应用;10 10 15 1015 15 15教学目的单片机的中断系统是单片机的一个重要组成部分,中断系统为单片机提供处理外部紧急事件的能力,使CPU不必总是处于查询状态,从而节省了系统的内部资源。

教学重点MCS-51单片机中断源的种类及工作方式;中断控制寄存器IE、中断优先级寄存器IP及定时器/计数器及外部中断控制寄存器TCON的使用方法。

教学难点外部中断的结构及原理;中断服务程序的编写方法。

教学方法使用教具讲授与多媒体教学拟留作业6-3、6-4、6-5授课过程6.4 中断系统6.4.1 中断的基本概念1.中断源及中断请求2.中断优先权控制3.中断允许与中断屏蔽4.中断响应与中断返回6.4.2 MCS-51单片机的中断系统一.中断源1.外部中断INT0和INT1外部引脚P3.2和P3.3输入,有两种触发方式:电平触发及跳变(边沿)触发。

由特殊功能寄存器TCON来管理.TCON D7 D6 D5 D4 D3 D2 D1 D0(88H) TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0IT0(IT1):外部中断0(或1)触发方式控制位。

IT0(或IT1)被设置为0,则选择外部中断为电平触发方式;IT0(或IT1)被设置为1,则选择外部中断为边沿触发方式。

IE0(IE1):外部中断0(或1)的中断请求标志位。

在电平触发方式时,CPU在每个机器周期的S5P2采样P3.2(或P3.3),若P3.2(或P3.3)引脚为高电平,则IE0(IE1)清0,若P3.2(或P3.3)引脚为低电平,则IE0(IE1)置1,向CPU请求中断;CPU响应后能够由硬件自动将IE0(或IE1)清零。

在边沿触发方式时,若第一个机器周期采样到P3.2(或P3.3)引脚为高电平,第二个机器周期采样到P3.2(或P3.3)引脚为低电平时,由IT0(或IT1)置1,向CPU请求中断。

对于电平触发方式,只要P3.2(或P3.3)引脚为低电平,IE0(或IE1)就置1,请求中断,CPU响应后不能够由硬件自动将IE0(或IE1)清零。

如果在中断服务程序返回时,P3.2(或P3.3)引脚还为低电平,则又会中断,这样就会出一次请求,中断多次的情况。

为避免这种情况,只有在中断服务程序返回前撤消P3.2(或P3.3)的中断请求信号,即使P3.2(或P3.3)为高电平。

通常通过下图所示外电路来实现. 外部中断请求信号通过D触发器加到单片机P3.2(或P3.3)引脚上。

当外部中断请求信号使D触发器的CLK端发生正跳变时,由于D端接地,Q端输出0,向单片机发出中断请求。

CPU响应中断后,利用一根口线P1.0作应答线。

并在中断服务程序中加以下两条指令来撤除中断请求。

ANL P1.0,#0FEHORL P1.0,#01H2.定时/计数器T0和T1中断当定时/计数器T0(或T1)溢出时,由硬件置TF0(或TF1)为“1”,向CPU发送中断请求,当CPU响应中断后,将由硬件自动清除TF0(或TF1)。

3.串行口中断MCS-51的串行口中断源对应两个中断标志位:串行口发送中断标志位TI和串行口接收中断标志位RI。

无论哪个标志位置“1”,都请求串行口中断,到底是发送中断TI还是接收中断RI,只有在中断服务程序中通过指令查询来判断。

串行口中断响应后,不能由硬件自动清“0”,必须由软件对TI或RI清“0”。

二.中断允许控制MCS-51单片机中没有专门的开中断和关中断指令,对各个中断源的允许和屏蔽是由内部的中断允许寄存器IE的各位来控制的。

中断允许寄存器IE的字节地址为A8H,可以进行位寻址.IE D7 D6 D5 D4 D3 D2 D1 D0(A8H) EA ET2 ES ET1 EX1 ET0 EX0EA:中断允许总控位。

EA=0,屏蔽所有的中断请求;EA=1,开放中断。

ET2:定时器/计数器T2的溢出中断允许位ES:串行口中断允许位。

ET1:定时器/计数器T1的溢出中断允许位。

EX1:外部中断INT1的中断允许位。

ET0:定时器/计数器T0的溢出中断允许位。

EX0:外部中断INT0的中断允许位。

三.优先权控制每个中断源有两级控制:高优先级和低优先级。

通过由内部的中断优先级寄存器IP来设置.中断优先级寄存器IP的字节地址为B8H,可以进行位寻址.IP D7 D6 D5 D4 D3 D2 D1 D0(B8H) PT2 PS PT1 PX1 PT0 PX0PT2:定时器/计数器T2的中断优先级控制位,只用于52子系列。

PS:串行口的中断优先级控制位。

PT1:定时器/计数器T1的中断优先级控制位。

PX1:外部中断INT1的中断优先级控制位。

PT0:定时器/计数器T0的中断优先级控制位。

PX0:外部中断INT0的中断优先级控制位。

如果某位被置“1”,则对应的中断源被设为高优先级;如果某位被清“0”,则对应的中断源被设为低优先级。

对于同级中断源,系统有默认的优先权顺序,中断源优先级顺序外部中断0 最高定时/计数器T0中断外部中断1定时/计数器T1中断串行口中断定时/计数器T2中断最低通过中断优先级寄存器IP改变中断源的优先级顺序可以实现两个方面的功能:改变系统中断源的优先权顺序和实现二级中断嵌套。

对于中断优先权和中断嵌套,MCS-51单片机有以下三条规定。

(1)正在进行的中断过程不能被新的同级或低优先级的中断请求所中断,一直到该中断服务程序结束,返回了主程序且执行了主程序中的一条指令后,CPU才响应新的中断请求。

(2)正在进行的低优先级中断服务程序能被高优先级中断请求所中断,实现两级中断嵌套。

(3)CPU同时接收到几个中断请求时,首先响应优先级最高的中断请求。

四.中断响应1.中断响应的条件(1) 无同级或高级中断正在处理。

(2) 现行指令执行到最后一个机器周期且已结束。

(3) 若现行指令为RETI或访问IE、IP的指令时,执行完该指令且紧随其后的另一条指令也已执行完毕。

2.中断响应过程(1) 根据中断请求源的优先级高低,对相应的优先级状态触发器置“1”。

(2) 保护断点,即把程序计数器PC的内容压入堆栈保存。

(3) 清内部硬件可清除的中断请求标志位(IE0、IE1、TF0、TF1)。

(4) 把被响应的中断服务程序入口地址送入PC,从而转入相应的中断服务程序执行。

各中断服务程序的入口地址见表中断源入口地址外部中断0 0003H定时/计数器0 000BH外部中断1 0013H定时/计数器1 001BH串行口0023H定时/计数器2(仅52子系列有)002BH3.中断响应时间所谓中断响应时间是指CPU检测到中断请求信号到转入中断服务程序入口所需要的机器周期。

MCS-51单片机响应中断的最短时间为3个机器周期。

6.4.4 MCS-51中断系统的应用【例6-9】某工业监控系统,具有温度、压力、PH值等多路监控功能,中断源的连接如图5.26所示。

对于PH值,在小于7时向CPU申请中断,CPU响应中断后使P3.0引脚输出高电平,经驱动,使加碱管道电磁阀接通1秒钟,以调整PH值。

系统监控通过外中断INT0来实现,这里就涉及多个中断源的处理,处理时往往通过中断加查询的方法来实现。

多个中断源通过“线或”接于INT0上。

那么无论哪个中断源提出请求,系统都会响应中断,响应后,进入中断服务程序,在中断服务程序中通过对P1口线的逐一检测来确定哪一个中断源的提出了中断请求,进一步转到对应的中断服务程序入口位置执行对应的处理程序。

这里只针对PH<7时的中断构造了相应的中断服务程序INT02,接通电磁阀延时1秒钟的延时子程序DELAY已经构造好了,只须调用即可。

汇编程序如下:(只涉及中断程序,注意外中断INT0中断允许,且为电平触发)ORG 0003H ;外部中断0中断服务程序入口JB P1.0,INT00 ;查询中断源,转对应的中断服务子程序JB P1.1,INT01JB P1.2,INT02JB P1.3,INT03ORG 0080H ;PH值超限中断服务程序INT02:PUSH PSW ;保护现场PUSH ACCSETB PSW.3 ;工作寄存器设置为1组,以保护原0组的内容SETB P3.0 ;接通加碱管道电磁阀ACALL DELAY ;调延时1秒子程序CLR P3.0 ;1秒钟到关加碱管道电磁阀ANL P1,#0BFHORL P1,#40H ;这两条用来产生一个P1.6的负脉冲,用来撤除PH<7;的中断请求POP ACCPOP PSWRETIC语言程序:#include <reg51.h>sbit P10=P1^0;sbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;sbit P16=P1^6;sbit P30=P3^0;void int0() interrupt 0 using1{void int00();void int01();void int01();void int01();if (P10= =1) {int00();} //查询调用对应的函数else if (P11= =1) {int01();}else if (P12= =2) {int02();}else if (P13= =1) {int03();}}中断系统是51单片机里最难懂也是最难理解的部分,学懂该部分对授课总结今后的学习起着至关重要的影响。