资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,任务四 中断控制,任务一 中 中断局部,1.中断概述,什么是中断,我们从一个生活中的例子引入。学校早上8点20上课,老师开始讲课,到8点25分时,突然有个学生在教室门口喊报告,老师开门一看,是一个叫小明的同学迟到了,这时老师停止给其他同学讲课,对小明作了批评,然后小明回到自己的座位,老师回到讲台继续讲课,那么由于小明的迟到打断了老师原来的上课过程这一事实,叫做生活中的“中断的现象,,中断是指计算机暂时中止其正在执行的某一程序,转去执行请求中断的那个内部或外设事件的效劳程序,等处理完毕后再返回执行原来中止的程序。事实上,计算机在执行某一程序的过程中,由于计算机系统内部或者外部的某种原因,CPU必须暂时停止现行程序的执行,而自动转去执行预先安排好的处理该事件的效劳子程序,待处理完毕后,再回来继续 执行被暂停程序的过程,实现这种中断功能的硬件系统和软件系统称为中断系统,图,4.1,中断示意图,2.中断系统需要解决的问题,1 中断源,谁引起了中断,日常生活中有很多事件可以引起中断:有人突然在喊你,你在走路时 铃响了,早晨你的闹钟闹响了等等诸如此类的事件,即把中断请求信号的来源称之为中断源,中断源包括中断请求信号的产生及该信号怎样被CPU识别。中断请求一次,CPU处理一次,即一对一响应,不能一对多响应,同时,中断响应应及时撤销。,2中断响应与返回,以一个日常例子说明,以本节第一段小明上课迟到为例,小明在教室门口喊报告,即中断请求,此时老师去给小明开门,即中断响应,然后老师回到讲台继续讲课,即中断返回。在事件过程中,中断源发出中断请求信号后,被CPU接收到,此时如何去执行中断效劳子程序,执行完中断效劳子程序又怎样返回到被中断的程序继续执行,我们说在此过程中要考虑到中断的现场保护、现场回复等因素。,3中断的优先级处理与嵌套,设想一下,我们正在看书,铃响了,同时又有人按了门铃,你该先做那样呢?如果你正是在等一个很重要的 ,你一般不会去理会门铃的,而反之,你正在等一个重要的客人,那么可能就不会去理会 了。如果不是这两者即不等 ,也不是等人上门,你可能会按你通常的习惯去处理。总之这里存在一个优先级的问题,单片机中也是如此,也有优先级的问题。优先级的问题不仅仅发生在两个中断同时产生的情况,也发生在一个中断已产生,又有一个中断产生的情况,51系列单片机中断系统原理及组成图如图4.2.,3 中断源,外部中断源有两个,外部中断0 和外部中断1。外部中断请求有两种触发方式:电平触发及边沿触发。这两种触发方式可以通过对特殊功能存放器TCON,下面表4.1给出TCON的位定义格式。,定时器计数器控制存放器TCON:地址为88H,表4.1 TCON的位定义格式,IT0:外部中断0的触发方式控制位。假设IT0被设置为0,那么选择外部中断0为电平触发方式,即IT0=0时,低电平有效;假设IT0被设置为1,那么选择外部中断0为边沿触发方式,即IT0=1时,负沿有效。,IT1:外部中断1的触发方式控制位。具体表示同IT0。,IE0::外部中断0的中断请求标志位。IE:0=1,表示 请求中断;IE0=0,表示 没有请求中断。,IE1:外部中断l的中断请求标志位,其作用与IE0类似。,当IT1=0时,外部中断l为电平触发方式。假设INTI为低电平,那么认为有中断申请,随即使IEI标志位,并以此向CPU请求中断;假设INTI为高电平,那么认为无中断申请,或中断申请已撤除,随即使IEI标志复位。,当ITl=1时,即外部中断1为边沿触发方式时。假设第一个机器周期采样到INT1引脚为,D7,D6,D5,D4,D3,D2,D1,D0,TF1,TR1,TF0,TR0,IE1,IT1,IE0,IT0,高电平,第二个机器周期采样到INT1引脚为低电平时,由硬件置位IE1,并以此向CPU请求中断。当CPU响应中断转向中断效劳程序时,由硬件自动将IEl清零。,TF0(TF1):定时器计数器T0(T1)的中断标志位。当T0(T1)计数溢出时,由硬件置位。,TR0(TR1):T0(T1)的启动控制位。当TR0(TR1)=1时,可启动T0(T1);当 TR0(TR0)=0时,关闭T0(T1)。,IE0(IE 1):外部中断0外部中断1请求标志位。,IT0(IT1):外部中断0外部中断1触发方式选择位。,高电平,第二个机器周期采样到INT1引脚为低电平时,由硬件置位IE1,并以此向CPU请求中断。当CPU响应中断转向中断效劳程序时,由硬件自动将IEl清零。,TF0(TF1):定时器计数器T0(T1)的中断标志位。当T0(T1)计数溢出时,由硬件置位。,TR0(TR1):T0(T1)的启动控制位。当TR0(TR1)=1时,可启动T0(T1);当TR0(TR0)=0时,关闭T0(T1)。,IE0(IE 1):外部中断0外部中断1请求标志位。,IT0(IT1):外部中断0外部中断1触发方式选择位。,4.中断控制两级管理,1 中断屏蔽,在中断源与CPU之间有一级控制,类似开关,其中第一级为一个总开关,,第二级为五个分开关,由IE控制。表4.2 给出了IE的位定义格式。,表4.2 IE的位定义格式,EA:总控制位;EA:中断允许总控位。EA=O,禁止所有的中断请求;EA=1,开放所有的中断请求,,ES:串行口中断允许位。ES=0,禁止串行口中断;ES=1允许串行口中断。,EX0(EX1):外部中断0(1)的中断允许位。EX0(EX1)=0,禁止外部中断0中断;EX0(EX1)=1允许外部中断0(1)中断。,ET0(ET1):定时器计数器T0(Tl)的溢出中断允许位。ET0=0,禁止T0中断;ET0=1,允许T0中断。,ET2:定时器计数器T2的溢出中断允许位,只用于52子系列,51子系列无此位。ET2=0,禁止T2中断;ET2=1,允许T2中断。,2 中断优先级,CPU同一时间只能响应一个中断请求,假设同时来了两个或两个以上中断请求,就必须有先有后。为此将5个中断源分成高级、低级两个级别,高级优先,由IP控制。专用存放器IP为中断优先级控制存放器,锁存各中断源优先级控制位,IP中的每一位,PT0:定时器计数器T0的中断优先级控制,PT0:定时器计数器T0的中断优先级控制位。,PX1:外部中断1的中断优先级控制位。,PT1:定时器计数器T1的中断优先级控制位。,PS:串行口的中断优先级控制位。,PT2:定时器计数器T2的中断优先级控制位,只用于52子系列。,以上各位与IE的低五位相对应,为“1时为高级。初始化编程时,由软件确定。同一级中的5个中断源的优先顺序如图4.3。,5.中断效劳函数的一般形式:,函数类型 函数名(形式函数)interrupt n using n;,其中,关键字interrupt后面的n代表中断向量号,是一个常量,取值范围是0-4,每个中断向量号都对应一个中断源,见下表,关键字using后面的n代表中断函数将要选择使用的工作存放器组,也是一个常量,取值范围是0-3,在C语言中可表示为如下:,void interservice0(void)interrupt 0 using 1,注意:中断效劳函数不能被其他函数调用。,中断源,入口地址,中断向量号,外部中断,0,0003H,0,定时,/,计数器,0(T0),溢出中断,000BH,1,外部中断,1,0013H,2,定时,/,计数器,0(T1),溢出中断,001BH,3,串行口发送,/,接收中断,0023H,4,二 任务分析,应用中断的方式在亚龙,236,比赛设备上按独立键盘,让,LED,点亮做加计数效果。,三 任务实施,1.,流程图,根据题目要求,本任务按照先开中断,然后等待按键,,LED,加计数的过程,具体流程如图,4.4,所示,,2.,接线图,本任务需用到按键模块、,LED,灯模块,具体接线图如图,4.5,,,图,4.5,系统接线图,3.,源程序,#include reg51.h /,头文件,:,void delay(unsigned int timer);/,延时子函数,/主函数,C语言的入口函数:,void main(void),EA=1;/开启总中断,EX0=1;/开启外部中断 0,即P32引脚,EX1为中断1,P33引脚,IT0=0;/设置成 低电平触发方式,IT0=1为下降沿触发,while(1);/主程序不处理事件,由中断来处理,/*外部中断 0,0的优先级最高,关键字interrupt,这是C语言的中断函数表示法,本中断的响应是P3.2引脚有低电平触发,按板上独立按钮实现,按独立键,。*/,void key_scan()interrupt 0,P2-;/,中断响应,将,P2,口值减,1,,因,LED,灯是共阳接法,看到的,LED,灯是加计数,delay(10000);/,延时,以免程序过快中断而人眼看不到,LED,灯变化,void delay(unsigned int timer),while(timer-);,4 程序效果,经过程序的调试、编译,并下载到单片机,可以在设备上显,示,实际效果图如,4.6,所,示,然后用仿真软件可以仿真得出效果图如,4.7,所示。,项目内容,完成要求,分值,完成情况,中断应用,流程设计正确,20,程序编写正确,30,实物连线正确,20,调试程序正确,30,四、任务自评,通过前面的讲解,同学们应该应该熟悉了中断的应用吧,那就通过下面的表格来反映学习情况。,五、作业,1.,应用中断的方式实现继电器吸合。,2.,应用中断的方式实现蜂鸣器响。,
展开阅读全文