任务引入
在我们日常生活中会常常需要对种种危险进行检测、报警,例如煤气泄漏、火灾、非法入侵等。当这些状况发生时,应立即知道并作相应的响应。这就需要我们有必要的检测设备和高级别的系统响应。本次任务我们来学习如何设置突发高级别事件响应?
任务目标
知识目标:1.理解中断的概念。
2.理解中断的响应过程和处理方式。
3.掌握中断设置方式和过程。
技能目标:1.能使用相关仪表检测报警系统元器件。
2.会各电子元器件的焊接方法。
3.会编写报警器相关控制的程序。
4.会调试报警器控制软硬件。
情感目标:1.在制作任务过程中养成严谨的工作态度。
2.在任务过程中加强沟通,团队合作。
3.逐步培养学生建立工作的质量意识、安全意识。
任务描述
1.利用开发板,设计按键(代替红外对射器)控制蜂鸣器报警系统:
1)当未按下按键SW1,蜂鸣器不工作,系统处于监控状态。
2)按下SW1时,蜂鸣器鸣叫。
3)按下SW2时,清除蜂鸣器鸣叫,系统处于监控状态。
2.能绘制按键(代替红外对射器)控制蜂鸣器报警系统的流程图和编写相关程序。
3.对本任务中的相关电子元器件进行检测和安装,并完成联机调试。如图5-2所示,为蜂鸣器报警电路。
图5-2 蜂鸣器报警电路
任务实施
一、任务分析
本次任务我们制作红外监视报警器。报警器采用红外对射器自动探测是否有外来入侵人员:如没有人员入侵,系统正常工作。当有外来人员入侵时,产生声音报警。本任务利用中断控制进行设计制作。
设计要求:
1)红外对射器的输入利用按键模拟信号代替。
2)利用按键进行报警系统的报警解除。
3)系统正常工作时报警器不响,当人员入侵时,报警器长响。设计思路:设置报警信号输入P3.2(),报警输出P1.5,清除报警P3.7。系统采用中断控制,首先对系统进行中断初始化。由中断子程序完成报警操作。
二、画程序流程图
编写任务程序流程图,如图5-3所示。
图5-3 程序流程图
三、编写程序
根据流程图和相关指令编写程序。
四、硬件制作
1.器材准备
本任务所需硬件包含有:基本电路、2个按键、报警输出部分。其中基本电路、2个按键已安装。
①元器件表如表5-1所示。
表5-1 元器件表
2)红外监视报警器电路如图5-4所示。
图5-4 红外监视报警器电路
2.工具准备
安装基本电路的焊接工具有:电烙铁、镊子、焊锡、松香等,如图1-58所示。
3.制作要求
(1)按元器件表清点所需安装元器件
(2)检测所有元器件的特性、好坏
(3)焊接要求
1)焊接元器件整体美观、分布均匀、焊接过程先焊接大件,再焊接小件。
2)要求焊接的焊点光滑、饱满、无毛刺,导电性能良好。
3)焊接整体应居中部以底座分布,为以后的电路焊接调试预留布置地方。
4.电路安装
五、联机调试
1)打开Keil软件,输入调试程序并编译生成hex文件。
2)将hex文件通过双龙下载器烧入单片机并联机调试。
知识链接
一、相关知识学习
中断技术是计算机中一项很重要的技术,是CPU与外部设备交换信息的一种方式。若无中断,则当计算机与外部设备进行信息交换时会遇到CPU的速度大于外设速度,从而导致CPU不得不花大量的时间用以查询等待。当引入中断技术后,解决了CPU与外设之间的速度匹配问题,从而提高了CPU的效率。中断系统由硬件和软件组成。中断系统可以使计算机的功能更强、效率更高。
1.中断的概念
1)中断:当CPU正在处理某件事情时,外部发生了另一件事情要求CPU处理,于是它中断当前的工作,转去处理正在发生的事件,当处理完成后,再回到被中断的地方,继续做原来的工作,这个过程被称为“中断”。
2)中断源:引起中断的原因或者产生申请中断的来源。它是指引起中断发生的事件、设备、部件。中断源可以是外部设备,如打印机、键盘,它们在与计算机进行输入/输出数据交换时需向CPU发出中断请求。当计算机用于实时控制时,被控的电压、电流、湿度、压力、流量和流速等超越上限或下限,开关或继电器的闭合、断开等都可以作为中断源来产生中断请求;当计算机发生诸如掉电、计算溢出、被零除等故障时,这些故障源也可用作中断源。计算机还存在内部定时器和外部定时器中断源,定时器中断可以使CPU进行计时处理,以便达到时间控制的目的。
3)中断请求信号:由中断源向CPU发出的请求中断的信号。
4)中断响应:CPU接收中断源的中断请求,暂停当前程序的执行,转而处理请求事物的过程。
5)中断服务子程序:中断响应后所执行的处理程序。
6)主程序:原来正常执行的程序。
7)断点:主程序被断开的位置。响应中断时先自动关闭CPU中断,将原执行程序的PC地址压入堆栈保护,以便中断子程序执行完后按照此地址返回原程序执行。
8)调用子程序和中断子程序的区别:调用子程序是预先安排好的,而调用中断子程序是事先无法确定的,因为中断的发生是由外部因素决定的,有可能是突发的,所以中断子程序的调用过程是由硬件自动完成的。
2.中断的优点
(1)实现分时操作
中断技术实现了CPU和外部的并行工作,从而消除了CPU的等待时间,提高了CPU的利用率。另外,CPU可同时管理多个外部设备的工作,提高了输入/输出数据的吞吐量。CPU与外部设备进行数据传输的过程如下:CPU启动外部设备工作后,执行自己的主程序,此时外部设备也开始工作。当外部设备需要数据传输时,发出中断请求,CPU停止它的主程序,转去执行中断子程序。中断处理结束以后,CPU继续执行主程序,外部设备也继续工作。如此不断重复,直到数据传送完毕。在此操作过程中,对CPU来说是分时的,即在执行正常程序时,接收并处理外部设备的中断请求,CPU与外部设备同时运行,并行工作。
(2)进行实时处理
实时控制是计算机系统,特别是单片机控制系统的一个重要部分。在实时控制系统中,现场定时或随机地产生各种参数、信息,要求CPU立即响应。利用中断机制,计算机就能实时地进行处理,特别是对紧急事件的处理。
(3)故障处理
在计算机运行过程中,如果出现某些故障,如电源掉电、存储出错、运算溢出等,利用中断技术就可以将掉电前的一切有用信息及时送入采用备用电池供电的存储器中保护起来,正常供电后可继续执行原来的程序。
3.中断系统的功能
(1)实现中断及返回
当某一中断源发出中断请求时,CPU能决定是否响应这个中断请求。若允许响应这个中断请求,则CPU必须在现行的指令执行完之后,就进行保护断点和保护现场,然后转去执行需要处理的中断源所对应的中断子程序。当中断处理完后,再恢复现场和断点,使CPU继续执行主程序。
(2)实现中断优先级排队
一个CPU通常可以和多个中断源相连。这样当多个中断源同时向CPU发出中断请求时,CPU就能找到优先级别最高的中断源,并响应其中断请求。在处理完优先级别高的中断源的中断请求后,再响应优先级别低的中断源。
(3)实现中断嵌套
一般计算机系统允许有多个中断源,当几个中断源同时向CPU发出中断请求,要求为它服务的时候,CPU只能响应若干中断源中的一个中断请求,究竟响应哪一个中断源,要根据中断源的轻重缓急排队,优先处理最紧急的中断请求。这就必须给每个中断源的中断请求赋给一个中断优先级,中断优先级又叫中断优先权,可以直接反映每个中断源的中断请求为CPU响应的优先程度。
中断是允许嵌套的。当CPU正在处理一个中断源的中断子程序时,又发生了另一个优先级比它高的中断源请求,若CPU此时的中断是开放的,则CPU中止执行原来中断源的中断子程序,转而去处理优先级更高的中断请求,待处理完后再转回来执行原来的低优先级中断子程序,这个过程就是中断嵌套。中断的嵌套示意图如图5-5所示。
4.MCS-51系列单片机的中断系统
(1)中断源
MCS-51系列单片机有5个中断源,分为3类,设置为两个中断优先级。
1)外部中断。外部中断有和两个。CPU通过
引脚及
引脚即可接收外部中断的请求。外部中断信号的采样方式可以分为电平触发(低电平触发)和边缘触发(负缘触发)两种。
图5-5 中断的嵌套示意图
若采用电平触发,需将TCON寄存器中的
(IT1)设为0,只要
(INT1)引脚为低电平,即视为外部中断请求;若采用边缘触发,需将TCON寄存器中的
(IT1)设为1,只要
(INT1)引脚的信号由高态转为低态瞬间,即视为外部中断请求。
这些中断请求将反应在IE0(IE1)中,若IE寄存器的EX0(EX1)=1且EA=1,CPU将进入该中断的服务。
2)定时器/计数器中断。定时器/计数器中断有T0和T1两个,若是定时器,CPU将计数内部的时钟脉冲,而产生内部中断;若是计数器,CPU将计数外部的脉冲,而产生中断。
3)串行口中断。串行口中断为RI和TI两个,CPU通过RXD引脚及TXD引脚,要求接收(RI)中断请求或传送(TI)中断请求。
当中断发生时,CPU将暂停当时所执行的程序,立即按中断的种类,执行中断程序。
例如,当
中断时,程序将跳到03H地址(INT0的中断子程序入口地址),而03H地址可能只有一条命令,即“JMP ×××”,其中的“×××”才是该中断子程序的地址,然后CPU将执行×××这个地址的中断子程序。中断子程序的最后一条指令是“RE-TI”,只要执行这条命令,即可返回主程序,继续执行刚才中断时的下一条指令。
MCS-51系列单片机的中断系统硬件结构图如图5-6所示。
(2)中断的控制与管理
中断的控制与管理由4个特殊功能寄存器完成,即TCON(定时器/计数器控制寄存器)、SCON(串行口控制寄存器)、IE(中断允许寄存器)、IP(中断优先级寄存器)。牢固掌握这4个特殊功能寄存器是解决中断问题的关键。
1)定时器/计数器控制寄存器TCON。TCON是一个8位的特殊功能寄存器,其地址为88HTCON格式见表5-2。
表5-2 TCON格式(www.daowen.com)
①IE0:外部中断0(INT0)的中断请求标志位。当IE0=1时,表示外部中断0发出中断申请;当IE0=0时,表示外部中断0请求被终止。
图5-6 中断系统硬件结构图
②IE1:类似于IE0,但作用的对象是外部中断1(INT1)。
③TF0:定时器/计数器T0的中断溢出标志位。当定时器T0被允许计数后,从初始值开始加1计数。当计满溢出时,由硬件将TF0置1,并向CPU发出中断申请,该申请一直保持到CPU响应中断时,才由硬件将该位清0。
④TF1:定时器/计数器T1的中断溢出标志位,与
类似。
⑤IT0:
中断触发方式控制位。当
时,为电平触发方式,低电平触发;当IT0=1时,为边沿触发方式,下降沿触发。
⑥IT1:
中断触发方式控制位,与IT0类似。
2)串行口控制寄存器SCON。SCON是一个8位的特殊功能寄存器,其地址为98H,用于锁存串行口中断标志。串行口中断标志分为发送中断标志和接收中断标志。串行口中断标志见表5-3。
表5-3 串行口中断标志
①TI:串行口发送中断标志位。CPU将一个数据写入发送缓冲器SBUF之后,就启动发送器工作。此时,串行口若以方式0发送,则每发送完1B的数据,就由硬件将TI置1;若以其他工作方式发送数据,则在发送停止位时将TI置1。TI=1表示串行口正在向CPU发送中断申请。
特别提示:
当CPU响应TI中断转向执行中断子程序时,并不将TI清0,必须由用户在中断子程序中用“CLRTI”等命令将其清0。
②RI:串行口接收中断标志位。在串行口允许接收时,每接收一串数据,便由硬件将RI置1。同样,CPU响应RI中断后必须由软件将RI清0。
3)中断允许寄存器IE。IE是一个8位的特殊功能寄存器,其地址为A8H,用于控制中
断的禁止与允许。控制中断的禁止与否,可以由用户程序设置IE的相应位是1或0,可通过相应的字节指令或者位指令实现。IE标志位各位功能见表5-4。
表5-4 IE标志位各位功能
表5-5 中断优先级寄存器
①PS:串行口中断优先级控制位。当PS=1时,设定串行口为高优先级;当PS=0时,设定串行口为低优先级。
②PT1:定时器/计数器T1中断优先级控制位。当PT1=1时,设定T1为高优先级;当PT1=0时,设定T1为低优先级。③PX1:
中断优先级控制位。当PX1=1时,设定
为高优先级;当PX1=0时,设定INT1为低优先级。
④PT0:定时器/计数器T0中断优先级控制位。当PT0=1时,设定T0为高优先级;当PT0=0时,设定T0为低优先级。
⑤PX0:
中断优先级控制位。当PX=1时,设定
为高优先级;当PX0=0时,设定
为低优先级。
①EA:CPU中断总允许位。当EA=1时,CPU允许中断;当EA=0时,CPU禁止所有中断请求。
②ES:串行口中断允许位。当ES=1时,允许串行口中断;当ES=0时,禁止串行口中断。
③ET1:定时器/计数器T1中断允许位。当ET1=1时,允许T1中断;当ET1=0时,禁止T1中断。
④EX1:
中断允许位。当EX1=1时,允许
中断;当EX1=0时,禁止
中断。
⑤ET0:定时器/计数器T0中断允许位。当ET0=1时,允许T0中断;当ET0=0时,禁止T0中断。
⑥EX0:
中断允许位。当EX0=1时,允许
中断;当EX0=0时,禁止
中断。
4)中断优先级寄存器IP。IP是一个8位的特殊功能寄存器,其地址为B8H,用于设定中断的优先级。在MCS—51系列单片机中,优先级有两级,即高优先级与低优先级。当系统复位后,所有中断源设置为低优先级,用户可以重新设定优先级别。中断优先级寄存器如表5-5所示。
同一级别的中断也有高低级之分,如表5-6所示。
表5-6 中断源优先级排列
(3)中断处理过程
1)CPU响应中断的条件
①中断源要发出中断申请;
②CPU允许中断;
③根据中断源的中断优先级排队;
④CPU正在处理的必须是最高级别中断;
⑤指令执行到最后一个机器周期才能响应中断;
⑥正在执行的指令不能与中断有关;
2)CPU响应中断的过程
①CPU根据查到的中断源,通过硬件自动生成调用指令(LCALL),并转到相应的中断向量(一组存放中断子程序入口地址的单元),见表5-7,进入中断子程序,并通过堆栈保护断点。
表5-7 中断源的各入口地址
②CPU从中断子程序的入口进入,执行该程序,直到遇见中断返回指令RETI。RETI必须安排在中断子程序的最后,用于返回断点,且放开中断逻辑。至此,中断响应全部完成。
(4)中断的应用
1)设置中断入口地址。由于MCS-51系列单片机的中断入口地址相隔只有8B,所以编写程序的时候大都以“LJMP ××××”指令跳至特定的中断子程序,该子程序才能真正地提供中断服务。中断向量的设置是应需要而设,要使用的中断在其中断入口处设置相应指令,而中断向量设置需要使用ORG伪指令来定位。例如:
中断设置程序
2)中断设定。中断的设定包括开启中断开关(IE寄存器的设定)、中断优先级设定(IP寄存器的设定)、中断信号的设定(TCON的设定)、设定新的堆栈地址等。对于IE寄存器、IP寄存器及
寄存器的设定,可以采用MOV指令、SETB指令或者CLR指令。例如,开启“总中断”、
分中断”可以用下列命令。
SETBEA;开总中断
SETBEX0;开分中断同理,IP寄存器、TCON寄存器的设定也可使用MOV指令、SETB指令和CLR指令。例如,若要提高INT1的中断优先级,可以采用下列命令。SETB PX1
若要
采用负边缘触发的中断信号,则可采用下列命令。
SETB IT1
3)中断子程序。中断子程序就是一段子程序,入口地址经中断自动指定,而这类子程序与一般子程序的最大区别是中断子程序的最后一道指令是“RETI”。一般子程序则使用“RET”。
总之,中断响应条件为
①中断源有中断请求;
②此中断源的中断允许位为1;
③CPU开中断(即EA=1)。
以上3个条件同时满足时,CPU才有可能响应中断。
二、相关硬件学习
报警系统一般采用物理方式或电子技术自动探测发生在布防检测区的入侵行为,产生报警信号,并提示值班人员报警的区域及做出相应的处理。红外监视报警电路包括:探测单元、报警提示单元、报警控制中心单元3个部分,如图5-7所示。
图5-7 红外监视报警电路
探测电路作用:将非法入侵转换为电信号,并作为单片机构成报警控制电路的外部中断输入信号。
报警提示单元作用:由单片机处理后的报警信号控制,产生声、光、电、报警提示等报警信号。
报警控制中心单元作用:当报警有效时,我们需要有相应的人机交互处理措施,并通过电路实施控制(比如:现场打击、现场拍照等)。
红外对射器,全名叫主动红外入侵探测器(Active infrared intrusion detectors),如图5-8所示,其基本的构造包括发射端、接收端、光束强度指示灯、光学透镜等。其侦测原理乃是利用经红外光发射管发射的一种不可见的脉冲红外线,再经光学镜面做聚焦处理使光线传至很远距离,由红外光接收管接收,当脉冲红外线被遮断时就会发出警报。
红外光接收管中的光电传感器通常采用光敏二极管、光敏晶体管、硅光电池、硅雪崩二极管等,红外光发射管通常采用红外发光二极管作光源。
图5-8 红外对射器
任务拓展
根据已学知识完成下列任务并调试:
当外部中断源为多个,如何设计硬件电路,程序如何进行初始化?
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。