mcs51单片机中断源的种类及工作方式说课讲解.ppt_第1页
mcs51单片机中断源的种类及工作方式说课讲解.ppt_第2页
mcs51单片机中断源的种类及工作方式说课讲解.ppt_第3页
mcs51单片机中断源的种类及工作方式说课讲解.ppt_第4页
mcs51单片机中断源的种类及工作方式说课讲解.ppt_第5页
免费预览已结束,剩余52页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2 MCS 51单片机中断源的种类及工作方式中断控制寄存器IE 中断优先级寄存器IP及定时器 计数器及外部中断控制寄存器TCON的使用方法MCS 51型单片机中断响应过程外部中断的结构及原理熟练编制中断服务程序 本章学习目标 3 5 1中断的概念 执行主程序 主程序 继续执行主程序 断点 中断请求 中断响应 执行中断处理程序 中断返回 定义 当CPU正在执行程序时 外部发生了某一随机事件请求CPU迅速处理 CPU暂时中止执行的程序 转去处理所发生的事件 中断处理完毕 再回到原来被中止的断点继续执行原程序 这个过程叫中断 用途 中断常用于I O处理 故障处理 4 中断源 发出中断请求的来源称为 中断源 软件中断源 硬件中断源 由中断指令引起中断 例如8086CPU的INTn指令MCS 51无软件中断指令 由外设发出中断请求信号给CPU称硬件中断源PC XT微机外设向CPU发中断请求信号控制系统各种传感器发出的中断请求信号 中断系统 能够实现中断处理功能的部件称为 中断系统 5 硬件中断的分类 可屏蔽中断 非屏蔽中断 中断请求 中断允许 中断响应中断请求 中断屏蔽 X 中断响应 中断请求 中断响应 注 MCS 51有此中方式 注 MCS 51无此中方式 6 中断允许与中断屏蔽 中断允许 开中断 中断屏蔽 关中断 开 关中断的方法 有外设中断请求就有CPU中断响应 有外设中断请求但无CPU中断响应 专用标志位法 专用寄存器法 8086CPU中对控制标志位IF进行操作 MCS 51中对专用寄存器IE进行操作 7 5 2MCS 51中断系统的结构 8 5 3中断请求源 MCS 51中断系统有5个中断请求源 INT0 外部中断0请求 低电平有效 通过P3 2引脚输入 INT1 外部中断1请求 低电平有效 通过P3 3引脚输入 T0 定时器 计数器0溢出中断请求 T1 定时器 计数器1溢出中断请求 TX RX 串行口中断请求 当串行口完成一帧数据的发送或接收时 便请求中断 9 MCS 51中的中断标志位 标志位定义 标志位含义 标志位特点 由某个特殊寄存器相关位确定 若相关标志位清0 无中断请求产生若相关标志位置1 有中断请求产生 中断请求发生 相关标志位自动置1中断处理开始 相关标志位自动清0中断处理开始 相关标志位手动清0 10 定时器控制寄存器TCON中的中断标志位 TCON的字节地址 88H TCON的位地址 88H 8FH TCON的标志位 IE0 IE1 TF0 TF1 TCON的服务位 IT0 IT1 TR0 TR1 位 符号 位地址 11 TCON中的标志位含义 与外部中断请求状态有关的标志位 IE0 INT0的中断请求标志位 IE1 INT1的中断请求标志位 若 INT0有效 则IE0 1 由硬件自动置1若MCU响应 则IE0 0 由硬件自动清0 若 INT1有效 则IE1 1 由硬件自动置1若MCU响应 则IE1 0 由硬件自动清0 注 外部中断为硬件自动置1清0 12 TCON中的标志位含义 与内部定时器 计数器中断有关的标志位 TF0 定时器 计数器T0溢出中断标志位 TF1 定时器 计数器T1溢出中断标志位 若T0溢出 则TF0 1 由硬件自动置1若MCU响应 则TF0 0 由硬件自动清0 若T1溢出 则TF1 1 由硬件自动置1若MCU响应 则TF1 0 由硬件自动清0 注 定时器 计数器中断为硬件自动置1清0 13 解读 TF1 定时器 计数器T1的溢出中断请求标志位 当启动T1计数以后 T1从初值开始计数 计数器产生溢出时 由硬件使TF1置1 并向CPU发出中断请求 当CPU响应中断时 硬件将自动对TF1清0 IE1 外部中断1的中断请求标志 当检测到INT1引脚上存在有效的中断请求信号时 由硬件使IE1置1 当CPU响应该中断请求时 由硬件使IE1清0 14 TCON中的服务位含义 与外部中断输入信号有关的服务位 IT0 INT0的中断请求触发方式选择 IT1 INT1的中断请求触发方式选择 IT0 0电平触发方式 低电平有效IT0 1边沿触发方式 下降沿有效 IT1 0电平触发方式 低电平有效IT1 1边沿触发方式 下降沿有效 注 电平触发 边沿触发的应用特点 15 TCON中的服务位含义 与定时器 计数器工作有关的服务位 TR0 T0计数开启 停止方式选择 TR1 T1计数开启 停止方式选择 TR0 0T0停止计数TR0 1T0开始计数 TR1 0T1停止计数TR1 1T1开始计数 注 TR0 TR1的应用在定时 计数器中讲 16 串行口控制寄存器SCON中的中断标志位 位 符号 位地址 SCON的字节地址 98H SCON的位地址 98H 9FH SCON的标志位 TI RI SCON的功能位 RB8 TB8 RENSM0 SM1 SM2 注 功能位在串行口通信中讲 17 SCON中的标志位含义 与串行通信有关的标志位 TI 发送数据后的中断标志位 RI 接收数据后的中断标志位 若串口发送完数据 则TI 1 由硬件自动置1若串口还要发数据 则应手动编程使TI 0 若串口接收完数据 则RI 1 由硬件自动置1若串口还要收数据 则应手动编程使RI 0 注 串行口中断为编程手动清0 18 解读 TI 串行口发送中断请求标志 CPU将一个数据写入发送缓冲器SBUF时 就启动发送 每发送完一帧串行数据后 硬件置位TI 但CPU响应中断时 并不清除T1 必须在中断服务程序中由软件对TI清0 RI 串行口接收中断请求标志 在串行口允许接收时 每接收完一个串行帧 硬件置位 CPU响应中断时不会清除RI 必须用软件对其清0 19 中断标志位的总结 中断标志位专用寄存器TCON SCON 外部中断 INT0 INT1的标志位IE0 IE1 定时器 计数器T0 T1的标志位IF0 IF1 串行口通信中的标志位TI RI 注 5个中断源 6个中断标志位 20 中断标志位的置1和清0 自动置1 当中断源 INTn Tn T1 串口有中断请求时对应标志位IEn IFn TI RI自动置1 自动清0 手动清0 若MCU响应标志位IE0 IE1 IF0 IF1自动清0 若还需继续传送数据标志位TI RI手动清0 21 5 4中断控制 5 4 1中断允许寄存器IE 位 符号 位地址 IE的字节地址 A8H IE的位地址 A8H AFH IE的总控制位 EA IE的分控制位 EX0 EX1ET0 ET1ES 22 IE中的位含义 全部中断源中断允许 屏蔽控制位 EA 0 总中断屏蔽有效EA 1 总中断允许有效 EA 1时 各中断源中断允许 屏蔽控制位 EX0 EX1 0 INT0 INT1 中断屏蔽EX0 EX1 1 INT0 INT1 中断允许 ET0 ET1 0 T0 T1 中断屏蔽ET0 ET1 1 T0 T1 中断允许 ES 0 串行口中断屏蔽ES 1 串行口中断允许 EA EX0 ET0 EX1 ET1 ES 70 23 IE中的位操作举例 对外部 INT0开中断 中断允许 对外部 INT1关中断 中断屏蔽 字节操作 MOVIE 1XXXXXX1BMOV0A8H 1XXXXXX1B 位操作 SETBEASETBEX0 SETB0AFHSETB0A8H 字节操作 MOVIE XXXXXXX0BMOVIE 0XXXXXXXB 位操作 CLREX0CLREA 注 系统复位时 IE 00H 即均中断屏蔽 24 位 符号 位地址 IP的字节地址 B8H IP的位地址 B8H BFH IP的控制位 PX0 PX1PT0 PT1PS 5 4 2中断优先级寄存器IP 25 IP中的位含义 中断源与位的关系 PX0 INT0中断优先级控制位PX1 INT1中断优先级控制位PT0 T0中断优先级控制位PT1 T1中断优先级控制位PS 串口中断优先级控制位 优先级判别 位置1 高级别中断位清0 低级别中断 26 高优先级中断可以中断低优先级中断 同级中断不能响应同时请求中断 高优先级中断先得到响应 同级中断按照同级中断源优先级排列顺序进行响应 INT0 T0 INT1 T1 串行口 等优选级序 27 图5 6 28 5 5响应中断请求的条件 CPU响应中断的条件 中断总允许位EA 1 即CPU开中断 有中断源发出中断请求 申请中断的中断源的中断允许位为1 即中断没有被屏蔽 无同级或更高级中断正在被服务 当前的指令执行结束 若现行指令为RETI或者是访问IE或IP指令时 该指令以及紧接着的另一条指令已执行完 29 响应过程 单片机响应中断后 自动执行下列操作 置位中断优先级有效触发器 即关闭同级和低级中断 调用入口地址 断点入栈 相当于LCALL指令 保存断点 PC 栈顶单元 进入中断服务程序 转入中断服务程序入口 中断矢量 PC硬件自动清除TF0 TF1 IE0 IE1中断标志 30 中断入口地址表 中断响应指令 LCALL0003HLCALL000BHLCALL0013HLCALL001BHLCALL0023H 31 5 6外部中断的响应时间 响应时间 从查询中断请求标志位到转向中断服务入口地址所需的机器周期数 1 最快响应时间以外部中断的电平触发为最快 从查询中断请求信号到中断服务程序需要三个机器周期 1个周期 查询 2个周期 长调用LCALL 2 最长时间若当前指令是RET RETI和IP IE指令 紧接着下一条是乘除指令发生 则最长为8个周期 2个周期执行当前指令 其中含有1个周期查询 4个周期乘除指令 2个周期长调用 8个周期 32 5 7外部中断的触发方式选择 5 7 1电平触发方式 若外部中断定义为电平触发方式 外部中断申请触发器的状态随着CPU在每个机器周期采样到的外部中断输入线的电平变化而变化 这能提高CPU对外部中断请求的响应速度 当外部中断被设定为电平触发方式时 在中断服务程序返回之前 外部中断请求输入必须无效 即变为高电平 否则CPU返回主程序后会再次响应中断 所以 电平触发方式适合于外部中断以低电平输入而且中断服务程序能清除外部中断请求源 即外部中断输入电平又变为高电平 的情况 33 5 7外部中断的触发方式选择 5 7 2跳沿触发方式 若外部中断定义为跳沿触发方式 外部中断申请触发器能锁存外部中断输入线上的负跳变 即便是CPU暂时不能响应 中断请求标志也不会丢失 在这种方式里 如果相继连续两次采样 一个机器周期采样到外部中断输入为高 一个机器周期采样为低 则置1中断申请触发器 直到CPU响应此中断时 该标志才清0 这样不会丢失中断 但输入的负脉冲宽度至少保持12个时钟周期 若晶振频率为6MHz 则为2us 才能被CPU采样到 所以 外部中断的跳沿触发方式适合于以负脉冲形式输入的外部中断请求 34 5 8中断请求的撤销 中断请求标志位的撤除 对 INT0 INT1中断 对T0 T1中断 对串行口中断 中断响应后硬件自动对IE0 IE1撤除 中断响应后硬件自动对TF0 TF1撤除 中断响应后需软件手动对TI RI撤除 注 撤除即清0 35 外部中断源触发信号的撤除 负脉冲触发方式 低电平触发方式 在中服程序中基本不会再产生中断请求 在中服程序中可能会保持中断请求 解决方法 选用负脉冲触发方式减小低电平宽度或强制改为高电平在中服程序入口处关中断 36 5 9服务程序的设计 中断服务程序完成的工作 保护现场PSW 工作寄存器和SFR等中断服务恢复现场中断返回 执行RETI指令 37 中断返回 在中断服务程序中 最后一条指令必须为中断返回指令RETI CPU执行此指令时 一方面清除中断响应时所置位的 优先级生效 触发器 一方面从当前栈顶弹出断点地址送入程序计数器PC 从而返回主程序 在中断服务程序中 PUSH指令与POP指令必须成对使用 否则不能正确返回断点 38 MCS 51中断系统初始化 外部中断 INT0 INT1的初始化 确定外部中断源的触发方式 对TCON寄存器中IT0 IT1进行位操作 中断优先级确定 对IP寄存器中PX0 PX1进行位操作 对IE寄存器中EA EX0 EX1进行位操作 中断允许确定 开中断 注 初始化即对相关寄存器编程 39 编写中断服务程序时应注意 在中断矢量地址单元处放一条无条件转移指令 如LJMP H 使中断服务程序可灵活地安排在64KB程序存储器的任何空间 在中断服务程序中 用户应注意用软件保护现场 以免中断返回后丢失原寄存器 累加器中的信息 若要在执行当前中断程序时禁止更高优先级中断 可以先用软件关闭CPU中断或禁止某中断源中断 在中断返回前再开放中断 40 有中断的完整程序结构 中断入口表程序 主程序 中断服务程序 其它子程序 源程序汇编结束伪指令 41 入口表程序 ORG0000HLJMPMAIN 跳到主程序入口ORG0003HLJMPRINT0 跳到 INT0中服程序入口ORG000BHLJMPRT0 跳到T0中服程序入口ORG0013HLJMPRINT1 跳到 INT1中服程序入口ORG001BHLJMPRT1 跳到T1中服程序入口ORG0023HLJMPRPS 跳到串行口中服程序入口 42 主程序 MAIN MAIN MOVA R0 主程序入口 SETBEASJMP 主程序结束 主程序的内容 应用系统相关的指令语句对与中断相关寄存器进行置位操作 注 SJMP 或LOOP SJMPLOOP语句为等待中断产生 43 中断服务程序 RINT0 RINT0 PUSHACC 中断服务程序入口PUSHPSW 保护现场 POPPSWPOPACC 恢复现场RETI 退出中断服务程序 注 RETI指令恢复PC断点为指向SJMP 注 保护 恢复现现场为中服程序中要用的存储器 44 采用中断时的完整程序结构 ORG0000HLJMPMAIN 跳到主程序入口ORG0003HLJMPRINT0 跳到 INT0中服程序入口 MAIN SETBEA 主程序入口 SJMP 主程序结束RINT0 PUSHACC 中断服务程序入口 RETI 退出中断服务程序 END 结束汇编 表程序 主程序 中服程序 45 5 10多外部中断源系统设计 MCS 51单片机有两个外部中断请求输入端 即INT0和INT1 在实际应用中 若外部中断源有两个以上时 就需要扩展外部中断源 借用定时 计数器溢出中断T0和T1作为外部中断用查询方式扩展中断源用8259可编程中断控制器扩展中断源 46 借用T0 T1作为外部中断 借用原理 计数器溢出中断发生在计数从FFFFH 0000H将计数器的初值置为FFFFH从计数输入端输入脉冲 一次计数后产生溢出中断 工作过程 向T0端输入计数脉冲 中断请求信号 在000BH处编写外设的中服程序向T1端输入计数脉冲 中断请求信号 在001BH处编写外设的中服程序 47 定时 计数器用作外部中断扩展具体实施在计数方式下 如果把计数器预置为全1 则只要在计数输入端 T0或T1输入端 加一脉冲就可以使计数器溢出 产生溢出中断 这就是定时 计数器实现外部中断扩展的思想 具体方法是 置定时 计数器为工作方式 即自动加载式 位计数 以便在一次中断响应后 自动为下一次中断作准备 TH和TL均置为FFH 扩展的外部中断请求信号接计数脉冲输入端 T0或T1 把扩展的外中断服务程序存放在所占用的定时 计数器中断入口地址处 000BH或001BH 48 例 以T0实现一个外部中断扩展 则初始化程序为 MOVTMOD 06H 00000110MOVTH0 0FFHMOVTL0 0FFHSETBEA 开全局中断SETBET0 开T0中断SETBT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论