




已阅读5页,还剩48页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中断系统微机的输入 输出方式单片机在进行控制时 要求把控制程序和原始数据通过相应的输入设备送入计算机 CPU与外设之间的数据传送用四种方式 1 无条件传送方式 2 程序查询传送方式 3 直接存储器存取 DMA 方式 4 中断方式 单片机能及时地响应和处理单片机外部事件或内部事件所提出的中断请求 中断的概念 CPU正在执行程序时 单片机外部或内部发生的某一事件 请求CPU迅速去处理 CPU暂时中止当前的工作 转到中断服务处理程序处理所发生的事件 处理完该事件后 再回到原来被中止的地方 继续原来的工作 这称为中断 中断方式优点 大大地提高了CPU的工作效率 能够实现中断处理功能的部件称为中断系统 产生中断的请求源称为中断请求源 中断源向CPU提出的处理请求 称为中断请求 或中断申请 CPU暂时终止自身的事务 转去处理中断事件的过程 称为CPU的中断响应过程 对事件的整个处理过程称为中断处理 中断返回 处理完毕中断事件 再回到原来被中止的地方 没有中断 CPU的大量时间会浪费在原地踏步的操作上 下图所示 对事件的整个处理过程进入中断 保护现场 中断处理恢复现场 中断返回 所有的过程都需要软件来设置 中断技术的特点分时操作 CPU可以同多个外设 同时 工作实时处理 CPU及时处理随机事件故障处理 电源掉电 存储出错 运算溢出 MCS 51中断系统的结构及中断源中断源有以下几种情况 1 I O设备 2 硬件故障 3 实时时钟 4 为调试而设置的中断 MCS 51有5个中断请求源 两个中断优先级 可两级嵌套 中断系统结构示意图如下图所示 P140 中断请求源五个中断请求源 1 INT0 外部中断请求0 由引脚INT0 输入 中断请求标志为IE0 2 INT1 外部中断请求1 由引脚INT1 输入 中断请求标志为IE1 3 定时器 计数器T0溢出中断请求 中断请求标志为TF0 4 定时器 计数器T1溢出中断请求 中断请求标志为TF1 5 串行口中断请求 中断请求标志为TI或RI 对应特殊功能寄存器TCON和SCON的相应位 下页为简表 MCS 51的中断系统 中断标志 CPU 主程序 INT0 INT1 T0 T1 串口 IE0 TF0 IE1 TF1 中断源 中断标志位 每一个中断源都有相应的中断标志位 某一个中断源申请中断 相应中断标志位置1 中断控制一 中断请求标志位A TCON中的中断标志位TCON为定时器 计数器的控制寄存器 字节地址为88H 包含 1 T0和T1的溢出中断请求标志位TF1和TF0 2 外部中断请求标志位IE1与IE0 各标志位的功能 IE1 外部中断请求1的中断请求标志位 IE1 0 无中断请求 IE1 1 外部中断1有中断请求 当CPU响应该中断 转向中断服务程序 由硬件清 0 IE0 IT1外部中断1的中断触发方式控制位IT1 选择外部中断请求1为负跳变触发方式还是电平触发方式 IT1 0 为电平触发方式 IE1状态完全由IT1决定 IT1 1 为负跳变触发方式 IT1可由软件置 1 或清 0 IT0 外部中断请求0为负跳变触发方式还是电平触发方式 意义与IT1类似 IE0 外部中断请求0的中断请求标志位 意义与IE1类似 TF0 T0溢出中断请求标志位 T0计数溢出时 由硬件置 1 TF0 向CPU申请中断 CPU响应TF0中断时 硬件自动清 0 TF0 TF0也可由软件清0 TF1 T1的溢出中断请求标志位 功能和TF0类似 TR1 TR02个位与中断无关 当MCS 51复位后 TCON被清0 则CPU关中断 所有中断请求被禁止 B SCON为串行口控制寄存器字节地址为98H 串行口的发送中断和接收中断的中断请求标志TI和RI 格式如下 各标志位的功能 1 TI 发送中断请求标志位 串口每发送完一帧串行数据后 硬件自动置 1 TI 必须在中断服务程序中用软件对TI标志清 0 2 RI 接收中断请求标志位 串口接收完一个数据帧 硬件自动置 1 RI标志 必须在中断服务程序中用软件对RI标志清 0 二 中断允许控制中断允许控制寄存器IECPU对中断源的开放或屏蔽 由片内的中断允许寄存器IE控制 两级控制 字节地址为A8H 可位寻址 格式如下 IE中各位的功能如下 1 中断允许总控制位EA IE 7位 EA 0 所有中断请求被屏蔽 EA 1 CPU开放中断 但五个中断源的中断请求是否允许 还要由IE中的5个中断请求允许控制位决定 2 ES 串行口中断允许位0 禁止串行口中断 1 允许串行口中断 3 ET1 定时器 计数器T1的溢出中断允许位0 禁止T1溢出中断 1 允许T1溢出中断 4 EX1 外部中断1中断允许位0 禁止外部中断1中断 1 允许外部中断1中断 5 ET0 定时器 计数器T0的溢出中断允许位0 禁止T0溢出中断 1 允许T0溢出中断 6 EX0 外部中断0中断允许位 0 禁止外部中断0中断 1 允许外部中断0中断 MCS 51复位后 IE清0 所有中断请求被禁止 若使某一个中断源被允许中断 除了IE相应的位的被置 1 还必须使EA位 1 改变IE的内容 可由位操作指令来实现 即 SETBbit CLRbit 例 例6 1若允许片内2个定时器 计数器中断 禁止其它中断源的中断请求 编写设置IE的相应程序段 1 用位操作指令来编写如下程序段 CLRES 禁止串行口中断CLREX1 禁止外部中断1中断CLREX0 禁止外部中断0中断SETBET0 允许T0中断SETBET1 允许中断SETBEA CPU开中断 2 用字节操作指令来编写 MOVIE 8AH或者用 MOV0A8H 8AH A8H为IE寄存器字节地址 三 中断优先级寄存器IP两个中断优先级 可实现两级中断嵌套 如图所示 每个中断源的中断优先级都是由中断优先级寄存器IP中的相应位的状态来控制的 中断优先级寄存器IP 其字节地址为B8H IP各个位的含义 1 PS 串行口中断优先级控制位1 高优先级中断 0 低优先级中断 2 PT1 定时器T1中断优先级控制位1 高优先级中断 0 低优先级中断 3 PX1 外部中断1中断优先级控制位1 高优先级中断 0 低优先级中断 4 PT0 定时器T0中断优先级控制位1 高优先级中断 0 低优先级中断 5 PX0 外部中断0中断优先级控制位1 高优先级中断 0 低优先级中断 可见由软件可改变各中断源的中断优先级 在同时收到几个同一优先级的中断请求时 优先响应哪一个中断 取决于内部的查询顺序 查询顺序如下 中断源中断级别外部中断0最高T0溢出中断外部中断1T1溢出中断串行口中断最低 优先级设置原则 可归纳为下面三条基本规则 1 低优先级可被高优先级中断 反之则不能 2 同级中断不会被它的同级中断源所中断 3 若CPU正在执行高优先级的中断 则不能被任何中断源所中断 例 例6 2设置IP寄存器的初始值 使2个外中断请求为高优先级 其它中断请求为低优先级 1 用位操作指令SETBPX0 2个外中断为高优先级SETBPX1CLRPS 串口为低优先级中断CLRPT0 T0低优先级中断CLRPT1 T1低优先级中断 响应中断请求的条件一 一个中断请求被响应 需满足以下必要条件 1 IE寄存器中的中断总允许位EA 1 2 该中断源发出中断请求 即该中断源对应的中断请求标志为 1 3 该中断源的中断允许位 1 即该中断没有被屏蔽 4 无同级或更高级中断正在被服务 二 中断响应的主要过程 中断源入口地址外部中断00003H定时器 计数器T0000BH外部中断10013H定时器 计数器T1001BH串行口中断0023H使用时 通常在这些入口地址处存放一条跳转指令 使程序跳转到用户安排的中断服务程序起始地址上去 注意 中断服务子程序入口地址又称为中断矢量或中断向量 单片机中5个中断源的矢量地址是固定的 不能改动 例 三 中断处理编写中断中断服务程序即可 中断返回由专门的中断返回指令RETI来实现 四 中断返回 五 中断请求的撤消2 外部中断请求的撤消 1 跳沿方式外部中断请求的撤消是自动撤消的 2 电平方式外部中断请求的撤消 六 外部中断的响应时间外部中断的最短的响应时间为3个机器周期 外部中断响应的最长的响应时间为8个机器周期 注意 如果已在处理同级或更高级中断 响应时间无法计算 在一个单一中断的系统里 MCS 51单片机对外部中断请求的响应的时间总是在3 8个机器周期之间 补充 中断服务程序的设计一 中断服务程序设计的任务基本任务 1 设置中断允许控制寄存器IE 2 设置中断优先级寄存器IP 3 对外中断源 是采用电平触发还是跳沿触发 4 编写中断服务程序 处理中断请求 前3条一般放在主程序的初始化程序段中 例 例6 4假设允许外部中断0中断 并设定它为高级中断 其它中断源为低级中断 采用跳沿触发方式 在主程序中编写如下程序段 SETBEA CPU开中断SETBET0 允许外中断0产生中断SETBPX0 外中断0为高级中断SETBIT0 外中断0为跳沿触发方式 二 采用中断时的主程序结构 三 中断服务程序的流程 例 补充C51中的中断函数 C51语言程序中采用中断函数编写中断处理程序 1 中断函数的定义形式如下 void函数名 void interruptm usingn 说明语句执行语句 说明 m的取值为0 31 对应单片机的中断号0 外部中断03 定时器 计数器11 定时器 计数器04 串行口中断2 外部中断15 定时器 计数器2 2 usingn修饰符的使用 usingn修饰符用于指定中断函数内部使用的工作寄存器组 是一个可选项 n工作寄存器组R0 R7地址0第0组00H 07H1第1组08H 0FH2第2组10H 17H3第3组18H 1FH 3 关于C51中断函数的几点说明 中断函数不能有返回值 用void说明 中断函数不能进行参数传递 内为空或void 中断函数不能被其它函数直接调用 因为中断函数的返回是由RETI指令完成的 RETI影响单片机的硬件中断系统 由单片机的硬件系统产生出栈操作 修改PC值 直接调用会出现致命错误 3 关于C51中断函数的几点说明 续 C51编译器对中断函数编译时会自动在程序的开始和结束处加上如下内容 开始处对ACC B DPH DPL和PSW入栈 结束时出栈 中断函数未加usingn修饰符时 开始处还要将R0 R1入栈 结束时出栈 如果中断函数加usingn修饰符 则在开始将PSW入栈后还要修改中PSW的工作寄存器选择位RS0和RS1 中断函数调用其它函数 则被调用函数与中断函数必须使用相同的寄存器组 均用相同的usingn修
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年游戏产业创新与全球市场动态研究报告
- 2025年农业投资行业农业投资市场发展前景分析报告
- 2025年企业互联网行业企业数字化变革与数据安全挑战研究报告
- 2025年医疗健康行业数字化转型与智能医疗研究报告
- 服务降级规程
- 电动汽车维修保养规划总结
- 2025年固态电池在电动汽车动力电池组的性能优化报告
- 深圳明装线条灯施工方案
- 冶炼厂氧化塘施工方案
- 压铸模具设计规定
- TCTBA 001-2019 非招标方式采购代理服务规范
- 冷库储存生姜合同范本
- 《小狗钱钱》完整版
- 《酒类鉴赏威士忌》课件
- 消化道出血患者的护理
- 各种奶茶配方资料
- 【MOOC】《中国马克思主义与当代》(北京科技大学)中国大学MOOC慕课答案
- 《国家电网公司电力安全工作规程(火电厂动力部分、水电厂动力部分)》
- 八年级语文下册-专题08-语言表达与运用-(中考真题演练)(原卷版)
- 肾脏病与药物治疗
- 泵站管理制度
评论
0/150
提交评论