1、单片机原理及应用技术MCS51中断应用报警器设计Project3 项目四 MCS51中断应用报警器设计任务一 中断入门任务1中断入门4 项目四 MCS51中断应用报警器设计任务一 中断入门中断的基本原理one与生活中的“”现象相似,单片机的中断是指在正常执行某一程序过程中,由于内部或外部的突发事件,CPU暂停执行此程序而转去处理突发事件(即),事件处理结束后返回主程序断点处(被中断的下一条指令)继续执行。中断处理过程如图所示。生活中我们常常遇到这样的事情,正在书房看书的时候,厨房里烧的水开了,接下来我们会将书签放置到读到的位置,然后去厨房处理开水,回到书房时从夹书签的位置开始继续阅读。主程序
2、中断请求 中断服务子程序 中断响应 中断返回 5 项目四 MCS51中断应用报警器设计任务一 中断入门中断的好处two采用中断技术可以提高单片机的性能,主要表现在以下方面:实现分时操作 只有当服务对象向CPU发出中断申请时,才去为它服务,这样单片机可以同时为多个对象服务,从而大大提高工作效率。实现实时处理 利用中断技术,各个服务对象可以根据需要随时向CPU发出中断申请,及时发现和处理中断请求并为之服务,以满足实时控制的要求。进行故障处理 发生难以预料的情况或故障时,例如突然断电、存储出错、运算溢出等,系统及时发出请求中断,由CPU快速作出相应的处理,可以提高系统自身的可靠性。6 项目四 MCS
3、51中断应用报警器设计任务一 中断入门onetwothreefour:外部中断,由引脚P3.2引入中断请求:外部中断,由引脚P3.3引入中断请求five:内部中断,定时计数器0溢出时发出中断请求:内部中断,定时计数器1溢出时发出中断请求:内部中断,包括串行接收中断RI和串行发送中断TI中断源three向CPU发出中断请求的信号称为中断源。在项目二任务一中我们已经了解到MCS-51系列单片机中有5个中断源,其中2个外部中断源,3个内部中断源,具体如下:7 项目四 MCS51中断应用报警器设计任务一 中断入门中断控制寄存器fiveMCS-51系列单片机的中断系统结构图8 项目四 MCS51中断应用
4、报警器设计任务一 中断入门由图可以看出,中断系统中涉及、以及IP四个特殊功能寄存器,它们主要有以下功能:TCON和SCON锁存各中断源的中断请求标志位锁存中断请求标志 控制CPU是否响应中断源的请求中断允许寄存器IE 设置各中断源的优先级,每个中断源可编程为高优先级中断或低优先级中断。中断优先级寄存器IP9 项目四 MCS51中断应用报警器设计任务一 中断入门1、TCON中的中断标志位的字节地址为88H,可进行位寻址,其具体的结构、位名称、位地址以及功能如表所示。TCOND7D6D5D4D3D2D1D0位名称TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8
5、AH89H88H功能用于定时/计数器用于中断10 项目四 MCS51中断应用报警器设计任务一 中断入门020103IT0(D0位)当CPU检测到外部中断请求时,该标志位置“1”,当CPU转向中断处理子程序时,由硬件自动清“0”(只适用于边沿触发方式)。IT0=1时,为边沿触发方式(即当引脚P3.2出现下降沿脉冲信号时,中断请求有效);IT0=0时,为电平触发方式(即当引脚P3.2为低电平信号时,中断请求有效)。IT1(D2位)和IE1(D3位),其含义与IT0和IE0相同。IE0(D1位)在电平触发方式中,CPU转向中断处理子程序时,不能自动清除IE标志位,也不能由软件进行清除。所以在中断返回
6、前需撤销引脚上的低电平,否则就会产生CPU多次响应一次中断的错误。11 项目四 MCS51中断应用报警器设计任务一 中断入门050406TR0(D4位)定时器作加1计数,当最高位产生进位时,定时器计数溢出,此时,由硬件置位TF0=1,CPU响应中断后,由硬件清“0”,TF0=0。TR0=1时,定时器开始计数(即从设定的初值作加1计数);TR0=0时,定时器停止。TR1(D6位)和TF1(D7位),其含义与TR0和TF0相同。TF0(D5位)12 项目四 MCS51中断应用报警器设计任务一 中断入门2、SCON中的中断标志位的字节地址为98H,可进行位寻址,其具体的结构、位名称、位地址以及功能如
7、表所示。SCOND7D6D5D4D3D2D1D0位名称SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH99H98H功能用于串行通信控制串行口中断13 项目四 MCS51中断应用报警器设计任务一 中断入门T1RT1SCON中的中断标志位串行口接收中断标志位,当串行口接收到一帧数据时,RI置1,CPU响应中断后,硬件不能自动清除RI,需要由软件清“0”。串行口发送中断标志位,当串行口发送一帧数据时,T1置1,CPU响应中断后,硬件不能自动清除RI,同样需要由软件清“0”。RI和TI通过一个或门向CPU发中断请求,CPU响应中断请求后,首先需要判断是RI和TI哪
8、一个中断源发出的请求,才能去执行相应的中断子程序。串行中断的有关内容以及SCON中的其他标志位含义将在项目六中进行详细讲述。14 项目四 MCS51中断应用报警器设计任务一 中断入门3、中断允许控制寄存器IE控制所有中断源的和,字节地址为A8H,可进行位寻址,其具体的结构、位名称、位地址以及控制的相应中断源如表所示。IED7D6D5D4D3D2D1D0位名称EAESET1EX1ET0EX0位地址AFHAEHADHACHABHAAHA9HA8H中断源CPU串行口T1INT1T0INT015 项目四 MCS51中断应用报警器设计任务一 中断入门 外部中断INT0的中断允许控制位。EX0=1时,IN
9、T0开中断;EX0=0时,INT0关中断。EX0 定时计数器T0中断允许控制位。ET0=1时,T0开中断;ET0=0时,T0关中断。ET0 外部中断INT1的中断允许控制位。EX1=1时,INT1开中断;EX1=0时,INT1关中断。EX1 定时计数器T1中断允许控制位。ET0=1时,T1开中断;ET0=0时,T1关中断。ET1 串行口中断允许控制位。ES=1时,串行口开中断;ES=0时,串行口关中断。ES CPU中断允许控制位。EA=1时,CPU全部开中断;EA=0时,CPU全部关中断。EACPU复位时,IE各位清0,禁止所有中断。16 项目四 MCS51中断应用报警器设计任务一 中断入门4
10、、中断优先级控制寄存器IPMCS-51单片机中有两个中断优先级,。IP的状态由用户来设定,某位为1,则相应的中断源处于高优先级中断;某位为0,则相应的中断源处于低优先级中断。IP的结构、位名称、位地址以及控制的中断源如表所示。IPD7D6D5D4D3D2D1D0位名称PSPT1PX1PT0PX0位地址BFHBEHBDHBCHBBHBAHB9HB8H中断源串行口T1INT1T0INT0单片机复位时,IP各位清0,各中断源处于低优先级中断。17 项目四 MCS51中断应用报警器设计任务二 中断处理过程任务2中断处理过程18 项目四 MCS51中断应用报警器设计任务二 中断处理过程YNNY中断返回有
11、中断请求?恢复现场执行指令保护现场中断服务满足响应条件?如图所示,单片机工作时,在每个机器周期中都去查询各个中断标记位,;。如果本次查询中没有中断请求或中断请求不能满足响应条件,CPU将继续原来的指令执行操作。19 项目四 MCS51中断应用报警器设计任务二 中断处理过程中断响应oneCPU检测到中断请求后,需要判断此中断请求是否满足响应条件,如下:CPU开中断,申请中断请求的中断源开中断。one没有响应同级别或更高级别的中断。two20 项目四 MCS51中断应用报警器设计任务二 中断处理过程当前处在所执行指令的最后一个周期。单片机有单周期指令、双周期指令、三周期指令和两个四周期指令,如果正
12、在执行的是多字节指令,需要等整条指令执行结束,才能响应中断。three如果正执行的指令是返回指令(RETI)或访问IP、IE寄存器的指令,那么CPU将至少再执行一条指令才能响应中断。four中断二级嵌套的响应原则:同一中断优先级中,有多个中断请求时,按自然优先级进行响应(即查询顺序)。21 项目四 MCS51中断应用报警器设计任务二 中断处理过程 将IP中相应的优先级控制位置1,以阻断后来的同级和低级的中断请求。A 撤销该中断源的中断请求标志,否则,中断返回后将重复响应该中断。B保护断点地址,程序转向执行中断服务子程序。C22 项目四 MCS51中断应用报警器设计任务二 中断处理过程中断处理t
13、wo(1)保护现场中断处理过程一般可以分为、和三个过程。如果主程序和中断服务子程序中都用到一些公共存储空间(如A、PSW和DPTR等),那么执行中断服务子程序前需要将这些数据保存起来,以免返回主程序时出现错误。23 项目四 MCS51中断应用报警器设计任务二 中断处理过程(2)执行中断服务程序在MCS-51系列单片机中,五个中断源都有它们各自的。可以看出,中断服务程序的存储空间很小,如果我们需要的程序超出了空间的限制,这时可以。onetwothreefourfive24 项目四 MCS51中断应用报警器设计任务二 中断处理过程ORG0000HLJMPSTARTORG0003HLJMPAINT0
14、;转外中断0服务程序 START:;主程序AINT0:;中断服务程序RETI;从中断服务程序返回END【例3-36】中断程序示例25 项目四 MCS51中断应用报警器设计任务二 中断处理过程(3)恢复现场恢复现场和保护现场相对,不能使用“RET”指令代替“RETI”指令。26 项目四 MCS51中断应用报警器设计任务三 典型应用报警器设计任务3典型应用报警器设计27 项目四 MCS51中断应用报警器设计任务三 典型应用报警器设计在工业控制中,如果发生一些紧急情况,系统总是会发出警报进行提醒,这里我们设计一个简单的单片机系统来模仿工业控制中的。系统设计思想如下:。28 项目四 MCS51中断应用
15、报警器设计任务三 典型应用报警器设计硬件设计one根据系统的设计思想,系统的如图所示,开关按钮的一端接地,另一端连接P3.3端口(外部中断INT1请求输入端)。29 项目四 MCS51中断应用报警器设计任务三 典型应用报警器设计蜂鸣器的正极连接电源,负极接到三极管的发射极E,三极管的基级经过限流电阻R1后由单片机的P3.5引脚控制。当P3.5输出高电平时,三极管截止,没有电流流过线圈,蜂鸣器不发声;当P3.5输出低电平时,三极管导通,蜂鸣器的电流形成回路,可以发出警报。在P3.5端口连接发生设备蜂鸣器(在元件库中可以通过关键字“”搜索),由于单片I/O引脚输出的电流较小,因此这里。30 项目四
16、 MCS51中断应用报警器设计任务三 典型应用报警器设计软件设计two在软件设计环节需要考虑的三个主要的问题:;。解决这三个问题的思路如下:01P3口内部有上拉电阻,在开关按钮按下之前,端口P3.3会保持在高电平;当开关闭合时,P3.3端口接地,变为低电平。因此,通过检测端口的状态变化就可以判断是否产生中断。02改变单片机P3.5引脚输出波形的频率,就可以调整控制蜂鸣器音调,控制P3.5脚的电平可以使蜂鸣器发出警报(原理详见硬件设计中的提示部分)。03通过对P3.5引脚取反来实现特定频率的报警音频信号的产生:500Hz信号的周期为2ms(1/500Hz),信号电平为每1ms(2ms/2)取反1
17、次;1KHz的信号周期为1ms(1/1KHz),信号电平每500s(1ms/2)取反1次。1ms正好为500s的2倍,可以利用延时500s的延时子程序来实现延时,1ms正好调用2次延时子程序。31 项目四 MCS51中断应用报警器设计任务三 典型应用报警器设计程序如下;ORG0040HAJMPMAINORG0013HAJMPINT_1;MAIN:MOVSP,#60H;堆栈指针初始化SETBIT1;设置触发方式SETBEA;打开中断总开关32 项目四 MCS51中断应用报警器设计任务三 典型应用报警器设计SETBEX1;外部中断1允许控制位置1SJMP$;等待外部中断;INT_1:CLRP3.5
18、MOVR0,#3;循环发声3次ALARM:MOVR2,#200DV1:;输出500Hz音频信号CPLP3.5LCALLDELY500usLCALLDELY500us33 项目四 MCS51中断应用报警器设计任务三 典型应用报警器设计DJNZR2,DV1MOVR2,#200DV2:;输出1KHz的音频信号CPLP3.5LCALLDELY500usDJNZR2,DV2DJNZR0,ALARMRETI;中断返回;DELY500us:MOVR7,#25034 项目四 MCS51中断应用报警器设计任务三 典型应用报警器设计LOOP1:NOPDJNZR7,LOOP1RETEND;程序结束在Protues中进行系统仿真,当系统运行时,戴上电脑的耳机,会听到令你惊喜的报警声。35 MCS51中断应用报警器设计项目总结项目总结在本项目中我们学习的是MCS-51系列单片机的中断系统,首先了解了;随后,任务一中介绍了MCS-51系列单片机的和;接下来讲述了;最后,报警器系统综合前面所学知识,亲自动手设计能够进一步加深对中断机制的理解。36 THANKS FOR WATCHING谢谢收看