1、第四章、安防报警器设计第四章、安防报警器设计-中断原理及应用中断原理及应用40 你知道吗你知道吗 41 功能要求功能要求42 任务分析任务分析43 MCS-51单片机中断系统单片机中断系统 44 安防报警电路设计安防报警电路设计 45 安防报警程序设计安防报警程序设计 你知道吗你知道吗 天有不测风云,在生活中,紧急情况、意外事件时有发生,如交通意外、银行抢劫等。人类作为有高级思维能力的群体,能够迅速作出反应,根据不同的异常事件作出相应的处理。在单片机应用系统中,同样会出现许多复杂异常情况,比如掉电故障、温度过高等。针对异常情况,单片机也能迅速作出反应,处理异常事件,它处理异常事件的核心部分就是
2、中断系统。下面将以安防报警器设计为例来介绍单片机的中断系统。回目录回目录41 功能要求功能要求 一基本要求一基本要求在正常情况下,8个LED全灭;当按下报警键时,8个LED保持2s全亮,然后再全部熄灭。二发挥部分二发挥部分在正常情况下,8个LED循环移位点亮,产生跑马灯效果;当按下报警键时,8个LED闪烁5次(闪烁周期为0.2s),然后再回复到正常情况,产生跑马灯效果。42 任务分析任务分析 要完成此任务,主要需解决如下二方面问题:1)理解MCS-51单片机中断系统原理及应用;2)中断初始化与中断服务程序设计.回目录回目录43 MCS-51单片机中断系统单片机中断系统4.3.1 什么是中断什么
3、是中断 当单片机正在顺序执行程序时,外部发生的某一异常事件请求单片机迅速去处理,于是,单片机暂时中断现行的程序,转去处理异常事件。处理完该事件以后,再回到被中断的地方继续执行原来程序。这一处理过程称为中断。中断过程如下图所示.中断返回响应中断继续执行程序主程序中断服务程序中断请求4.3.2 MCS-51单片机中断系统结构单片机中断系统结构 MCS-51单片机中断系统有5个中断源,2级中断优先级,可实现二级中断服务嵌套,MCS-51单片机中断系统结构如下图所示。单片机中断系统结构如下图所示。4.3.3 MCS-51单片机中断源单片机中断源 引起单片机中断的根源(或事件),称为中断源。8051单片
4、机共有5个(8052有6个)中断源,两个外部中断源/INT0、/INT1,两个片内定时/计数器T0、T1溢出中断TF0、TF1,一个串行口发送与接收中断TI或RI。4.3.4 MCS-51单片机中断控制单片机中断控制 一定时一定时/计数器控制寄存器计数器控制寄存器TCON位76543210TCONTF1TR1TF0TR0IE1IT1IE0IT0 IT0:外部中断/INT0触发方式控制位。IT01,则将外部中断设为边沿触发方式(下降沿有效),若IT00,则将外部中断设为电平触发方式。IE0:外部中断/INT0中断请求标志位。IE0=1时,表示/INT0申请中断。IT1:外部中断/INT1触发方式
5、控制位。其功能与IT0类似。IE1:外部中断/INT0中断请求标志位。其功能与IE0类似。TF0:定时/计数器T0的溢出中断标志位。当T0计数产生溢出时,由硬件置位TF0,表示T0申请中断。当单片机响应中断时,TF0由硬件自动清0。TF1:定时/计数器T1的溢出中断标志位。其功能与TF0类似。二串行口控制寄存器二串行口控制寄存器SCON 位76543210SCONTIRI RI:串行口接收中断请求标志位。当接收完一帧数据时,由硬件置位RI,表示串行口申请中断。注意,RI必须由软件清零。TI:串行口发送中断请求标志位。当发送完一帧数据时,由硬件置位TI,表示串行口申请中断。同样,TI必须由软件清
6、零。三中断允许控制寄存器三中断允许控制寄存器IE单片机对所有中断及某个中断源的开放或屏蔽是由中断允许控制寄存器IE控制的。IE中各位定义如下:位76543210IEEAESET1EX1ET0EX0EX0:外部中断/INT0中断允许控制位。EX0=0,禁止/INT0中断;EX0=1,允许/INT0中断.ET0:定时/计数器T0中断允许控制位。ET0=0,禁止T0中断;ET0=1,允许T0中断。EX1:外部中断/INT1中断允许控制位。EX1=0,禁止/INT1中断;EX1=1,允许/INT1中断.ET1:定时/计数器T1中断允许控制位。ET1=0,禁止T1中断;ET1=1,允许T1中断。ES:串
7、行中断允许控制位。ES=0,禁止串行口中断;ES=1,允许串行口中断。EA:中断允许总控制位。EA=0,屏蔽所有中断请求;EA=1,单片机开放中断。四中断优先级寄存器四中断优先级寄存器IP8051单片机有2级中断优先级每个中断源的优先级都可以通过中断优先级控制寄存器IP中的相应位来设定.位76543210IPPSPT1PX1PT0PX0PX0:外部中断/INT0优先级设定位。PX0=1,/INT0中断为高优先级;PX0=0,/INT0 中断为低优先级。PT0:定时/计数器T0中断优先级设定位。PT0=1,T0中断为高优先级;PT0=0,T0 中断为低优先级。PX1:外部中断/INT1优先级设定
8、位。PX1=1,/INT1中断为高优先级;PX1=0,/INT1 中断为低优先级。PT1:定时/计数器T1中断优先级设定位。PT1=1,T1中断为高优先级;PT1=0,T1 中断为低优先级。PS:串行口中断优先级设定位。PS1,串行口中断为高优先级;PS0,串行口 中断为高优先级。系统复位后,IP=00H,即所有中断源设置为低优先级中断。4.3.5 中断处理过程中断处理过程 MCS-51单片机中断处理过程可分为三个阶段:中断响应、中断服务和中断响应、中断服务和中断返回中断返回三个过程。4.3.6 中断系统应用的初始化中断系统应用的初始化 中断系统初始化编程主要包括如下几方面:1确定允许哪些中断
9、源产生中断(给IE赋初值);2确定中断优先级(给IP赋初值);3若允许外部中断,须确定外部中断触发方式(给IT0、IT1赋初值);4开启总中断允许控制位(EA=1)。回目录回目录44 安防报警电路设计安防报警电路设计 A02A13A24A35A46A57A68A79B018B117B216B315B414B513B612B711E19DIR1U274LS245EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P07
10、32P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U1AT89C51D1D2D3D4D5D6D7D8VCCVCCS3报警按钮RP14708安防报警电路设计比较简单,单片机与LED接口电路与上一个项目电路一致,外接8个LED,需要增加的部分为一个报警按钮,为了提高单片机应急处理速度,将按钮接在外部中断/INT0(P3.2)引脚上,如下图所示。回目录回目录45 安防报警程序设计安防报警程序设计4.5.1 8个个LED全亮全亮2s报警报警 为了实现按下报警键后立即报警,我们可以用中断响应的方式来提高应急速度,也就是说,一
11、旦按下报警键,就立即产生中断,在中断服务程序中实现报警功能:即让8个LED全亮2s。该任务的程序流程图如图所示 ORG 0000H LJMP STARTORG 0003HLJMP INT_PRO0 ;-01 ORG 0100HSTART:MOV SP,#60H;堆栈指针初始化,SP=60HSETB EX0 SETB IT0 SETB EA;开放中断LOOP:MOV P1,#0FFH ;8个LED全灭-02 LJMP LOOP ;不断循环,等待中断-03 ORG 0400HINT_PRO0:MOV P1,#00H ;8个LED全亮-04 MOV R7,#20DL_2S:LCALL DELAY_100MS DJNZ R7,DL_2S ;延时时间t=200.1s=2sRETI;中断返回-05 4.5.1 8个个LED闪烁闪烁5次报警次报警 与LED全亮2s程序设计思路相似,采取中断响应方式。一旦按下报警键,就立即产生中断,在中断服务程序中实现8个LED闪烁5次报警功能。该任务的程序流程图如下图所示。该任务的程序设计参见教材。回目录回目录