版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、项目5 中断系统控制及应用,知识与能力目标,项目5 中断系统控制及应用,5.3.1控制要求与功能展示,任务5.1 中断系统分析与控制,5.1.1中断系统结构与功能分析,5.1.2外部中断编程与控制,5.2.2硬件系统与控制流程分析,5.2.1控制要求与功能展示,5.2.3汇编语言程序分析与设计,5.2.4 C语言程序分析与设计,5.2.5 基于Proteus的调试与仿真,2,任务5.2 简易水情报警器控制,5.3.2 硬件系统与控制流程分析,5.3.3汇编语言程序分析与设计,5.3.4 C语言程序分析与设计,5.3.5基于Proteus的调试与仿真,2,任务5.3 简易地震报警器控制,5.1.
2、1 中断系统结构与功能分析,当CPU在执行程序时,由单片机内部或外部的原因引起的随机事件要求CPU暂时停止正在执行的程序,而转向执行一个用于处理该随机事件的程序,处理完后又返回被中止的程序断点处继续执行,这一过程就称为中断。,5.1.1 中断系统结构与功能分析,5.1.1 中断系统结构与功能分析,中断系统有5个中断请求源和4个用于中断控制的寄存器,5.1.1 中断系统结构与功能分析,(5个),5.1.1 中断系统结构与功能分析,51单片机为每个中断源都设置了中断标志位。检测到中断请求信号后,先将相应的中断标志位置位,以便在后续的机器周期里进行下一步的控制和处理。 中断标志位集中锁存在专用的寄存
3、器TCON和SCON中。,定时控制寄存器TCON中的中断标志位,5.1.1 中断系统结构与功能分析,表5-1 TCON寄存器的结构,为INT0中断请求标志位。当INT0有请求信号时,该位就会由硬件自动置1,在CPU响应中断后,才由硬件自动将IE0清零。,5.1.1 中断系统结构与功能分析,IE0 (TCON.1),IE1 (TCON.3),IT0 (TCON.0),IT1 (TCON.2),为INT0触发方式控制位。由软件进行置位和复位,当IT0=0时,为低电平触发;当IT0=1时,为负跳变触发。,为INT1触发方式控制位。由软件进行置位和复位,当IT1=0时,为低电平触发;当IT1=1时,为
4、负跳变触发。,为INT1中断请求标志位。当INT1有请求信号时,该位就会由硬件自动置1,在CPU响应中断后,才由硬件自动将IE1清零。,5.1.1 中断系统结构与功能分析,TR0 (TCON.4),TF0 (TCON.5),TF1 (TCON.7),TR0 (TCON.4),TR1 (TCON.6),为定时/计数器T0的启动停止控制位。由软件进行设定,当TR0=0时,停止T0定时(或计数);当TR0=1时,启动T0定时(或计数)。,为定时器/计数器T0的溢出中断标志位。当T0定时(或计数)结束时,由硬件自动置1,在CPU响应中断后,才由硬件自动将TF0清零。也可以由软件查询该标志,并由软件清零
5、。,为定时/计数器T1的启动停止控制位。由软件进行设定,当TR1=0时,停止T0定时(或计数);当TR1=1时,启动T1定时(或计数)。,为定时/计数器T1的溢出中断标志位,当T1定时(或计数)结束时,由硬件自动置1,在CPU响应中断后,才由硬件自动将TF1清零。也可以由软件查询该标志,并由软件清零。,5.1.1 中断系统结构与功能分析,表5-2 SCON寄存器的结构,串行收发结束的中断标志位被锁存在串行控制寄存器SCON中,串行控制寄存器SCON中的中断标志位,5.1.1 中断系统结构与功能分析,为串行接收结束中断标志位。当串行口结束一次数据接收后,由硬件自动置位,但标志必须由软件进行清零。
6、,为串行发送结束中断标志位。当串行口结束一次数据发送后,由硬件自动置位,但标志必须由软件进行清零。,5.1.1 中断系统结构与功能分析,表5-3 IE寄存器的结构,中断允许控制寄存器IE实现开中断和关中断的功能。,5.1.1 中断系统结构与功能分析, EA(IE.7)为所有中断总允许控制位。EA=0,中断总禁止;EA=1,中断总允许。 ES(IE.4)为串行口中断允许位。ES=1,允许串行口中断;ES=0,禁止串行口中断。 ET1(IE.3)为T1中断允许位。ET1=1,允许T1中断;ET1=0,禁止T1中断。 EX1(IE.2)为INT1中断允许位。EX1=1,允许外部中断INT1中断;EX
7、1=0,禁止外部中断INT1中断。 ET0(IE.1)为T0中断允许位。ET0=1,允许T0中断;ET0=0,禁止T0中断。 EX0(IE.0)为INT0中断允许位。EX0=1,允许INT0中断;EX0=0,禁止INT0中断。,5.1.1 中断系统结构与功能分析,IE寄存器在单片机复位后,各位均被清零,在IE寄存器应用时,由软件对其进行设定,即可对其进行按位设置,也可对其进行按字节设置。,开启外部中断0中断和定时器0中断,可进行如下设置:,例如:,5.1.1 中断系统结构与功能分析,汇编语言: C语言: 按位设置: SETB EA EA=1; SETB EX0 EX0=1; SETB ET0
8、ET0=1; 按字节设置: MOV IE , #10000011B IE=0 x83;,5.1.1 中断系统结构与功能分析,处理中断,5.1.1 中断系统结构与功能分析,5.1.1 中断系统结构与功能分析,当中断源要求CPU为它服务时,必须发出一个中断请求信号。同时为保证该中断得以实现,中断请求标志应保持到CPU响应该中断后才能取消,CPU也会不断的及时查询这些中断请求标志,一旦查询到该中断的中断请求标志为置位,就立即响应该中断。,5.1.1 中断系统结构与功能分析,申请中断的中断源的中断允许位为1,即 中断源可向CPU申请中断。,中断总允许位EA置位,即CPU允许 所有中断源申请中断。,有中
9、断源发出中断请求。,1,2,3,CPU响应中断的基本条件,5.1.1 中断系统结构与功能分析,中断响应,CPU正在执行一个同级或高优先级的中断服务程序,正在执行的指令尚未完成,正在执行中断返回指令RETI或者对专用寄存器IE、IP进行读/写的指令,阻断,中断响应的条件,5.1.1 中断系统结构与功能分析,注意:串行口中 断响应后,必须 由软件程序对该 中断标志位清零。,撤除该中断源的中断请求标志,关闭同级中断,将相应中断的入口地址送入PC,5.1.1 中断系统结构与功能分析,注意:每个中断的8个单元难以存放一个完整的中断服务程序,因此用户在使用时,可在各中断单元地址存放一条无条件跳转指令(LJ
10、MP),跳转到实际的中断服务程序执行。,表5-4 各中断源及中断程序入口地址表,5.1.1 中断系统结构与功能分析,中断服务,执行中断服务程 序,完成相应操作,恢复现场,保护现场,5.1.1 中断系统结构与功能分析,在中断服务程序最后,必须加一条RETI中断返回指令,当CPU执行到RETI指令时,中断才能返回。,注意:用户在编写中断服务程序时要考虑需要保护的现场,在恢复现场时,要注意压栈与出栈指令必须成对使用,先入栈的内容应该后弹出,同时还要及时撤除需用软件撤除的中断标志。,5.1.1 中断系统结构与功能分析,外部中断,顾名思义就是从外部引入进来的中断。51单片机上有两个从外部通过P3.2和P
11、3.3两个引脚引入进来的外部中断(INT0和INT1)。用户必须先启动中断,外部中断才能接收中断信号,CPU才能响应中断。,5.1.1 中断系统结构与功能分析,外部中断请求触发方式,电平 触发方式,边沿脉冲 触发方式,电平触发是低电平有效。只要单片机在中断请求输入端(INT0和INT1)上采样到有效的低电平时,就会启动外部中断。 必须把有效的电平保持到请求获得响应为止,不然CPU就不能够响应中断; 中断服务程序结束之前,中断源又必须撤除其有效的低电平信号,否则中断返回时,会再次产生中断。 适合于外部输入以低电平且中断服务程序能清除的外部中断请求的系统。,5.1.1 中断系统结构与功能分析,5.
12、1.1 中断系统结构与功能分析,边沿脉冲触发是脉冲的下降沿有效,1,2,3,中断请求信号的高电平状态和低电平状态都应至少维持一个机器周期,适合与以负脉冲形式输入的外部中断请求,5.1.2 外部中断编程与控制,中断的应用就是用程序来实现对中断功能的控制,编制应用程序时,中断服务程序,包含,5.1.2 外部中断编程与控制,5.1.2 外部中断编程与控制,5.1.2 外部中断编程与控制,ZHDUAN:CLR EA ;关中断 PUSH ACC ;保护现场(根据需要由用户决定) PUSH PSW SETB EA ;开中断(不希望高级中断进入, ;则不用开中断) CLR EA ;关中断 POP PSW ;
13、恢复现场 POP ACC SETB EA RETI ;中断返回,中断服务程序汇编语言一般编写格式:,5.1.2 外部中断编程与控制,void ZHDUAN( ) interrupt x /其中x为中断号, /不使用using时编译器将自动 /产生保护和恢复R0R7现场 EA=0; EA=1; ,中断服务程序C语言一般编写格式:,5.1.2 外部中断编程与控制,ORG 0000H ;单片机程序入口地址 LJMP MAIN ;跳转到主程序入口地址 ORG 0003H ;外部中断0入口地址 LJMP INT_0 ;跳转至INT_0中断服务子程序 ORG 0013H ;外部中断1入口地址 LJMP I
14、NT_1 ;跳转至INT_1中断服务子程序 ORG 0030H MAIN: ;主程序 MOV TCON,#XXH ;设置专用寄存器TCON的状态 MOV IE,#XXH ;设置专用寄存器IE的状态 MOV IP,#XXH ;设置专用寄存器IP的状态 INT_0: ;外部中断0中断服务子程序 RETI INT_1: ;外部中断1中断服务子程序 RETI,3、外部中断编程与控制格式 (汇编语言 ),5.1.2 外部中断编程与控制,#include void main ( ) TCON=0XXX; /设置专用寄存器TCON的状态 IE=0XXX; /设置专用寄存器IE的状态 IP=0XXX; /设置
15、专用寄存器IP的状态 void int_0 ( )interrupt 0 /外部中断0中断服务子程序 void int_1 ( )interrupt 2 /外部中断1中断服务子程序 ,3、外部中断编程与控制格式 (C语言 ),任务5.2 简易水情报警器控制,实物运行视频,5.2.1 控制要求与功能展示,简易水情报警器电路原理图,任务5.2 简易水情报警器控制,5.2.1 控制要求与功能展示,5.2.2 硬件系统与控制流程分析,蜂鸣器驱动接口电路,5.2.2 硬件系统与控制流程分析,八段LED数码管结构图,5.2.2 硬件系统与控制流程分析,LED数码管显示器原理图,5.2.2 硬件系统与控制流
16、程分析,在单片机应用系统中,通常将数码管的adp八个段分别对应1个字节的D0D7八位,即D0与a对应,D1与b对应根据共阳或共阴的点亮方式,通过单片机输出对应的数据“0”或“1”,即亮或灭。 因此用8位二进制代码就可以表示显示字符,通常用2位十六进制数表示8位二进制数,并称其为字型码。,5.2.2 硬件系统与控制流程分析,表5-5 LED数码管常用字符型编码表,本任务采用共阴LED数码管显示字型“AD”等编码如表所示。,5.2.2 硬件系统与控制流程分析,简易水情报警器控制流程,2、任务控制流程分析,5.2.3 汇编语言程序分析与设计,空操作指令:NOP,使用格式:NOP 使用说明:是一条只有
17、操作码没有操作数的单字节指令,不进行任何其他操作,相当于跳过一个字节。,NOP指令的主要用途,可以利用它来进行延时或等待。该指令每执行一次,就要花费一个机器周期的执行时间。 可以利用它来调试程序,例如要删除某条指令,只需用NOP指令取代即可。 在程序中某些地方故意安排一些NOP指令,为以后添加新指令预留存储空间。,1、任务相关汇编指令,5.2.3 汇编语言程序分析与设计,使用格式:PUSH或POP direct 使用说明:内部RAM中设定了一个遵循“先进后出,后进先出”原则的区域被称为堆栈。堆栈指针SP(8位寄存器)指出堆栈的栈顶,堆栈是向上增长的,栈底固定,栈顶浮动 。,堆栈操作指令:PUS
18、H、POP,PUSH ACC ;将累加器ACC中的内容入栈保护 PUSH 01H ;将第0组寄存器R1中的内容入栈保护 POP 01H ;将出栈内容存放在第0组寄存器R1中 POP ACC ;将出栈的内容存放在累加器ACC中,使用示例,5.2.3 汇编语言程序分析与设计,注意: 由于堆栈操作指令只能操作内部数据存储空间地址,而像R1之类的工作寄存器并没有具体的地址,所以PUSH R1指令是错误的,只能直接使用其具体的存储地址01H。,5.2.3 汇编语言程序分析与设计,注意: 执行出栈操作时数据先传出,而后指针自动减1。但是原先指针还未减1之前所指的地址中数据依然存在。,5.2.3 汇编语言程
19、序分析与设计,使用格式:RETI 使用说明:中断返回指令是用于结束中断服务操作,回到主程序中继续执行原操作的程序。它放在中断服务程序的最后,中断返回指令:RETI,使用示例,5.2.3 汇编语言程序分析与设计,汇编程序,汇编程序,5.2.4 C语言程序分析与设计,在C语言中中断函数使用关键词interrupt与中断号来定义中断函数,其一般形式如下:,void 中断函数名() interrupt 中断号 using n 声明部分; 执行语句; ,1、中断函数的定义,5.2.4 C语言程序分析与设计,5.2.4 C语言程序分析与设计,2、编写中断函数时应遵循的规则,5.2.4 C语言程序分析与设计
20、,C程序代码,C语言程序,程序初始化子函数Init( ),外部中断0服务子函数int_0( ),外部中断1服务子函数int_1( ),延时子函数delay( ),3、C语言程序设计,5.2.5 基于Proteus的调试与仿真,1、创建Proteus仿真电路图,5.2.5 基于Proteus的调试与仿真,绘制的仿真电路图中,若要使蜂鸣器鸣叫,应将蜂鸣器的工作电压改为5V,即打开蜂鸣器属性设置窗口将Operating Voltage改为5V,同时将电阻R6属性窗口中的Model Type改为DIGITAL。,5.2.5 基于Proteus的调试与仿真,5.2.5 基于Proteus的调试与仿真,5
21、.2.5 基于Proteus的调试与仿真,5.2.5 基于Proteus的调试与仿真,5.2.5 基于Proteus的调试与仿真,5.2.5 基于Proteus的调试与仿真,5.2.5 基于Proteus的调试与仿真,5.2.5 基于Proteus的调试与仿真,3、Proteus仿真运行,5.2.5 基于Proteus的调试与仿真,仿真运行视频,任务5.3 简易地震报警器控制,实物运行视频,5.3.1 控制要求与功能展示,简易地震报警器控制电路原理图,任务5.3 简易地震报警器控制,5.3.2 硬件系统与控制流程分析,该电路实际上是在前面任务5.2介绍的电路上进行扩展而成,将两位共阴极数码管的
22、公共端分别连接在P2.0和P2.1上,其它的硬件系统结构与前述任务相同。K1和K2按键均以外部中断的方式向系统提供输入信号,同时两位数码管以动态扫描的方式显示字符。,1、任务硬件系统分析,5.3.2 硬件系统与控制流程分析,数码管的8个显示段的同名端连接在一起,每个数码管的公共极COM增加位选通控制电路 。,5.3.2 硬件系统与控制流程分析,IP寄存器 每个中断源都具有高低两个中断优先级,中断优先级由寄存器IP进行设置,表5-7 IP寄存器的结构,复位后,IP寄存器中的各位均被清零,5.3.2 硬件系统与控制流程分析,同时到来的同级中断请求按自然优先权来确定中断响应次序,表5-8 各中断源及
23、其自然优先权,自然优先权,5.3.2 硬件系统与控制流程分析,中断优先级控制 中断优先级控制的基本原则为: 高优先级中断可以中断正在执行的低优先级中断,反之不能; 同级优先级不能互相中断; 同一中断优先级中,若有多个中断源同时请求中断,CPU将先响应优先权高的中断,后响应优先权低的中断。,5.3.2 硬件系统与控制流程分析,注意: 中断嵌套只能高优先级“中断”低优先级,低优先级不能“中断”高优先级,同一优先级不能相互“中断” 。,5.3.2 硬件系统与控制流程分析,图5-27 地震报警器控制流程,2、任务控制流程分析,5.3.3 汇编语言程序分析与设计,汇编程序,5.3.4 C语言程序分析与设计,C程序代码,(1)列出元器件表;(2)绘制仿真电路图,5.3.5 基于Proteus的调试与仿真,1、创建Proteus仿真电路图,5.3.5 基于Proteus的调试与仿真,(1)安装插件vdmagdi.exe(注意:应把插件安装在Keil3的安装目录下) (2)将Keil安装目录C51BIN中的VDM51.dll
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 儿童青少年生长发育营养计划
- 介助老人日常生活照料服务指引
- 鱼苗下塘前池塘消毒预防方案
- 大会会议安全应急预案
- 农产品质量安全风险评估制度
- 政企联动应急响应处置预案
- 肠道健康调理膳食方案
- 会员生日关怀短信发送规范
- 风力发电电气接线方案
- 风电场物资配送方案
- 预制小箱梁施工技术学习(可编辑版)
- 2026年交通AI模型拥堵评估与治理策略
- 2026年医疗器械监督管理条例培训试题及答案
- 成人脑卒中食养指南(2026年版)
- 疟疾防治医护培训课件
- 2026年供应链管理师理论知识考试复习题库(新版)
- 2026年加油站防恐应急处置方案
- 高效新闻稿写作技巧与模板
- 2026年国企物业招聘考试试题及答案
- 《道德与法治》新教材的使用状况总结
- 完善内部规章制度
评论
0/150
提交评论