外部中断及应用

上传人:kms****20 文档编号:51469183 上传时间:2018-08-14 格式:PPT 页数:25 大小:613.50KB
返回 下载 相关 举报
外部中断及应用_第1页
第1页 / 共25页
外部中断及应用_第2页
第2页 / 共25页
外部中断及应用_第3页
第3页 / 共25页
外部中断及应用_第4页
第4页 / 共25页
外部中断及应用_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《外部中断及应用》由会员分享,可在线阅读,更多相关《外部中断及应用(25页珍藏版)》请在金锄头文库上搜索。

1、第章实 时 检 测 与 控 制本节内容1. 中断的基本概念 2.ATmega16的外部 中断 3.外部中断的应用第一节 直流电机转动圈数测量1.中断的基本概念 日常生活中的中断 单片机中的中断概念 中断技术的一般概念日常生活中的中断你在看书,电话铃响 ,于是你在书上做上记号 ,去接电话,与对方通话 ;门铃响了,有人敲门, 你让打电话的对方稍等一 下,你去开门,并在门旁 与来访者交谈,谈话结束 ,关好门;回到电话机旁 ,继续通话,接完电话后 再回来从做记号的地方接 着看书。看 书接 电 话 与 来 访 者 交 谈电话铃响敲门声看 书接 电 话计算机中的中断概念 中断由于某一随机事件的发 生,计算

2、机暂停原程序的运行, 转去执行另一程序(随机事件) ,处理完毕后又自动返回原程序 继续运行。 中断源引起中断的原因,或 能发生中断申请的来源。 主程序计算机现行运行的程 序。 中断服务子程序处理随机事 件的程序。 主程序主程序中 断 服 务 程 序 1中 断 服 务 程 序 1中 断 服 务 程 序 2随机事件1随机事件2中断的检测与中断的响应中断程序的转入ATmega16的中断系统中断技术的一般概念中断的检测与中断的响应中断源产生的中断请求是随机发生无法预料的, CPU必须不断地检测中断输入线上的中断请求 信号,且相邻两次检测不能相隔太长。 中断的检测在每条指令的最后状态对中断请 求进行一次

3、检测。中断的检测 中断的响应(1)CPU检测到了中断请求,并非立即响应,单片机 的中断响应是有条件的:中断的检测与中断的响应 设立中断请求触发器 设立中断屏蔽触发器 总中断是开放的 CPU在现行指令结束后响应中断中断的检测与响应示意图(1)机器周期的最 后一个状态?现行指连结束?YNN由硬件 自动完成取下一条指令NN 开中断?YY有中断请求?Y 中断的响应(2)当满足“中断的响应(1)”的条件后,CUP立即响 应中断,转入中断周期,CPU做以下几件事: 关中断 保留断点 保护现场 给出中断入口,转入相应的中断服务程序 恢复现场 开中断与返回中 断 的 检 测 与 响 应 示 意 图关中断保护现

4、场开中断中断服务关中断恢复现场开中断中断返回断点地址由堆栈弹入PC保护现场和 恢复现场的 过程中不允 许中断,以 免现场遭到 破坏。保护和恢复现场之后 的开中断是为了允许 有更高级中断打断此 中断服务程序。 硬件自 动完成(2)当CPU响应中断,在 关中断、保留断点 后,一个十分重要 的问题是如何转入 中断服务程序的入 口。中断服务程序的转入(1)主程序主程序中 断 服 务 程 序随机事件中断服务子程 序的入口地址主程序 断点地址中断响应解决方案:矢量中断断中 返 回中断服务程序的转入(2)中断服务子程序入口地址也称为中断矢量或中断向量。单片机中的中断源矢量地址是固定的,不能改动。上电和看门狗

5、复位外部中断0外部中断1T/C2比较匹配中断写程序存取器准备 好中断程序存储器使用时,通常在这些入口地址处存放 一条跳转指令,使程序跳转到用户安 排的中断服务程序起始地址上去!单片机中的中断源不同中断服务程序的入口地址也不同。0002H0004H0006H0028H0000H0000HATMWGA16中断系统ATmega16有20个中断 源(若包括复位则为21个 ),每个中断源在程序空间 都有一个独立的中断向量。 ATmega16复位后,程 序空间的最低位置自动定义 为复位中断向量。 完整的中断表见表2-1。 在中断向量表中,处于低地 址的中断具有高的优先级, 所以,RESET具有最高的 优先

6、级。向量号来源中断定义 1RESET外部引脚,上电复位和看门狗复位 2INT0外部中断0 3INT1外部中断1 4TIMER2 COMPT/C2比较匹配 5TIMER2 OVFT/C2溢出 6TIMER1 CAPTT/C1捕获事件 7TIMER1 COMPAT/C1比较匹配A 8TIMER1 COMPABT/C1比较匹配B 9TIMER1 OVFT/C1溢出 10TIMER1 OVFT/C0溢出 11SPI,STCSPI串行传输 完成 12USART,RXCUSART,Rx完成 13USART,UDREUSART数据寄存器空 14USART,TXCUSART,Tx完成 15ADCADC转换 完

7、成 16EE_RDYE2PROM准备好 17ANA_COMP模拟比较 18TWII2C串行口 19INT2外部中断2 20TIMER0 COMPT/C0比较匹配 21SPM_RDY写程序存储器准备好 外部中断源 外部中断的控制2.ATmega16的外部中断外部中断源ATmega16有3个外部 中断源:管脚外部中断PD2INT0(外部中断0输入)PD3INT1(外部中断1输入)PB2INT2(外部中断2输入)ATmega16的外部中断用户可以控制:外部中断的控制 SREG状态寄存器 GICR通用中断控制寄存器 MCUCRMCU控制寄存器 MCUCSRMCU控制和状态寄存器 GIFR通用中断标志寄

8、存器INT0INTF0中断源中断标志位 每一个外部中断源都有相应的中断标志位; 某一个外部中断源申请中断,相应中断标志位置1 。76543210通用中断标志寄存器 GIFRINTF1 INTF0 INTF2 INT1INTF1INT2INTF2中断标志位由 CPU自动置“1” 当CPU响应中断 后,则中断标志 位自动 清“0”;也 可以通过对其写 “1”来清“0”状态寄存器 SREG7 6 5 4 3 2 1 0I T H S V N Z C位7:全局中断使能。当该位置“1”时,使能全局中断,单独的中断使 能由各自独立控制寄存器所控制。位60:与中断无关,在C语言编程时由系统管理。在CodeV

9、isionAVR C开发系统中,用#asm(“sei”) 汇编语句设置全局中断使能,对应的C语言语句为 SREG|=0x80;一旦CPU响应中断,I标志 位由硬件自动清“0”;当执 行中断返回时, I标志位 由硬件自动置“1”。通用中断控制寄存器 GICR7 6 5 4 3 2 1 0INT1 INT0 INT2 IVSEL IVCE 位75:外部中断1、0、2使能位。当该位置“1”,且全局中断使能为“1”时,外部中 断源的中断请求将被响应。在CodeVisionAVR C开发系统中,可通过编程向 导对位75进行设置。位40:与外部中断的设置无关。MCU控制寄存器 MCUCR7 6 5 4 3

10、 2 1 0SM2 SE SM1 ISC01 ISC10 ISC00 ISC11 SM0 位30:外部中断1、 0中断请求信号有效方式控制位 。外部中断1、 0中断请求信号方式 : ISCx1ISCx0中断请求信号 有效方式ISCx1ISCx0中断请求信号 有效方式00低电平10下降沿01上升沿或下降沿11上升沿位74:与外部中断的设置无关。在CodeVisionAVR C开发系统 中,可通过编程向导对位30 进行设置。MCU控制和状态寄存器 MCUCSR7 6 5 4 3 2 1 0JTD ISC2 EXTRF BORF PORF WDRF JTRF 位6:外部中断2中断请求信号有效方式控制

11、位。当ISC2清“0”时,INT2引脚上的下降沿信号触发中 断请求; 当ISC2置“1”时,INT2引脚上的上升沿信号触发中 断请求。在CodeVisionAVR C开发系统 中,可通过编程向导对该位 进行设置。 统计外部INT0的中断次数3. 外部中断应用设计思想外部中断0的输入引脚 为PD2,将PC口的第2 位设计成方波信号输出 ,并连接到PD2引脚, 作为外部中断请求信号 。在中断程序中设计一个 计数器,每中断一次, 计数器加1,同时显示 所计的数。为便于观察中断的信号 的请求,将PC口连接到 发光二极管的输入端。接线原理图图2-6 统计外部INT0的中断次数LCD液晶显示器ATmega

12、16PD2(INT0)PC2VccVD2PB#include #include unsigned int x=0; interrupt EXT_INT0 void ext_int0_isr(void) x+; /统计圈数加1lcd_clear();/清lcd显示Lcd_uint(x);/显示统计圈数 程序设计与分析void main(void) PORTC=0x00; DDRC=0x04; PORTD=0x00; DDRD=0x00; GICR|=0x40; MCUCR=0x03; MCUCSR=0x00; GIFR=0x40; lcd_init(16); /lcd初始化 #asm(“sei“) while (1) PORTC.2=!PORTC.2; /在PC2口输出方波delay_ms(500);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号