第4讲AVR单片机中断ppt课件_第1页
第4讲AVR单片机中断ppt课件_第2页
第4讲AVR单片机中断ppt课件_第3页
第4讲AVR单片机中断ppt课件_第4页
第4讲AVR单片机中断ppt课件_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、外部中断运用实例外部中断运用实例例例7.1 7.1 用按键控制的一位用按键控制的一位LED LED 数码管显示系统数码管显示系统1 1 硬件电路硬件电路图图7-2 7-2 为硬件原理图。其中为硬件原理图。其中LED LED 数码管的控制显示衔数码管的控制显示衔接与例接与例6.4 6.4 一样,一样,PA PA 口任务于输出方式,作为口任务于输出方式,作为LED LED 数数码管的段码输出,码管的段码输出,LED LED 数码管的位信号接地,因此这数码管的位信号接地,因此这个一位的个一位的LED LED 数码管任务于静态显示方式。图中运用数码管任务于静态显示方式。图中运用了两个按键了两个按键K1

2、K1、K2K2,按键的一端分别与,按键的一端分别与PD2PD2INT0INT0、PD3PD3INT1INT1衔接。衔接。INT0 INT0 和和INT1 INT1 作为外部中断的输入,作为外部中断的输入,采用电平变化的下降沿触发方式,当采用电平变化的下降沿触发方式,当K1K1K2K2按下时,按下时,会在会在PD2PD2PD3PD3引脚上产生一个高电平到低电平的跳引脚上产生一个高电平到低电平的跳变,触发变,触发INT0 INT0 或或NT1NT1中断。中断。系统的功能还是控制一个系统的功能还是控制一个8 8 段数码管显示段数码管显示“0 0“F F16 16 个十六进制的数字。当系统上电个十六进

3、制的数字。当系统上电时,显示时,显示“0 0。K1 K1 键的作用是加键的作用是加“1 1控制控制键:按键:按1 1 次次K1 K1 键,显示数字加键,显示数字加1 1,依次类推。,依次类推。当第当第15 15 次按次按K1 K1 键时,显示键时,显示“F F,第,第16 16 次按次按K1 K1 键,显示又从键,显示又从“0 0开场。开场。K2 K2 键的作用是键的作用是减减1 1 控制键:按控制键:按1 1 次次K1 K1 键,显示数字减键,显示数字减1 1,减到减到“0 0后,再从后,再从“F F开场。开场。#include flash char led_716=0 x3F,0 x06,

4、0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,0 x7F,0 x6F,0 x77,0 x7C,0 x39,0 x5E,0 x79,0 x71;char counter;/ INT0 中断效力程序interrupt EXT_INT0 void ext_int0_isr(void)if (+counter=16) counter = 0;/ INT1 中断效力程序interrupt EXT_INT1 void ext_int1_isr(void)if (counter) -counter;else counter = 15;void main(void)PORTA=0 x

5、FF;DDRA=0 xFF;GICR|=0 xC0; / 允许INT0、INT1 中断MCUCR=0 x0A; / INT0、INT1 下降沿触发GIFR=0 xC0; / 去除INT0、INT1 中断标志位counter = 0; / 计数单元初始化为0#asm(sei) / 全局中断允许while (1)PORTA = led_7counter; / 显示计数单元;建议运用建议运用CVAVR CVAVR 中的程序生成导游功能来协助他建中的程序生成导游功能来协助他建立整个程序的框架,以及芯片的初始化部分的语立整个程序的框架,以及芯片的初始化部分的语句,可以省掉他过多的查看器件手册和思索存放句

6、,可以省掉他过多的查看器件手册和思索存放器的设置值等。器的设置值等。上面的程序,就是先利用上面的程序,就是先利用CVAVR CVAVR 的程序生成导游功的程序生成导游功能进展配置,然后在它生成的程序框架根底上完能进展配置,然后在它生成的程序框架根底上完成的。程序中定义了一个计数变量成的。程序中定义了一个计数变量countercounter,执,执行一次行一次INT0 INT0 中断效力程序,中断效力程序,counter counter 加加1 1,而执行一次,而执行一次 INT1 INT1 中断效力程序,中断效力程序,counter counter 减减1 1。在主程序中只是显示。在主程序中只

7、是显示countercounter的值。的值。INT0INT0、INT1 INT1 初始化为电平变化的下降沿触发。初始化为电平变化的下降沿触发。上机练习:显示两位数099,按K1键,加一,按K2键,减一AVR有不同的中断源。每个中断和复位在程序空间都有独立的有不同的中断源。每个中断和复位在程序空间都有独立的中断向量。一切的中断事件都有本人的使能位。当使能位置位,中断向量。一切的中断事件都有本人的使能位。当使能位置位,且形状存放器的全局中断使能位且形状存放器的全局中断使能位I 也置位时,中断可以发生。也置位时,中断可以发生。根据程序计数器根据程序计数器PC 的不同,在引导锁定位的不同,在引导锁定

8、位BLB02 或或BLB12 被被编程的情况下,中断能够被自动制止。这个特性提高了软件的编程的情况下,中断能够被自动制止。这个特性提高了软件的平安性。程序存储区的最低地址缺省为复位向量和中断向量。平安性。程序存储区的最低地址缺省为复位向量和中断向量。完好的向量列表见完好的向量列表见 下页下页 。列表也决议了不同中断的优先级。向。列表也决议了不同中断的优先级。向量所在的地址越低,优先级越高。量所在的地址越低,优先级越高。RESET 具有最高的优先级,具有最高的优先级,第二个为第二个为INT0 外部中断恳求外部中断恳求0。经过置位。经过置位MCU 控制存放器控制存放器 (MCUCR) 的的IVSE

9、L,中断向量可以移至引导,中断向量可以移至引导Flash的起始处。的起始处。编程熔丝位编程熔丝位BOOTRST也可以将复位向量移至引导也可以将复位向量移至引导Flash的起始的起始处。任一中断发生时全局中断使能位处。任一中断发生时全局中断使能位I 被清零,从而制止了一被清零,从而制止了一切其他的中断。用户软件可以在中断程序里置位切其他的中断。用户软件可以在中断程序里置位I 来实现中断来实现中断嵌套。此时一切的中断都可以中断当前的中断效力程序。执行嵌套。此时一切的中断都可以中断当前的中断效力程序。执行RETI 指令后指令后I 自动置位。自动置位。中断与定时中断与定时从根本上说有两种类型的中断。第

10、一种由事件触发并置从根本上说有两种类型的中断。第一种由事件触发并置位中断标志。对于这些中断,程序计数器跳转到实践的位中断标志。对于这些中断,程序计数器跳转到实践的中断向量以执行中断处置程序,同时硬件将去除相应的中断向量以执行中断处置程序,同时硬件将去除相应的中断标志。中断标志也可以经过对其写中断标志。中断标志也可以经过对其写1 的方式来的方式来去除。当中断发生后,假设相应的中断使能位为去除。当中断发生后,假设相应的中断使能位为0,那么中断标志位置位,并不断坚持到中断执行,或者被那么中断标志位置位,并不断坚持到中断执行,或者被软件去除。类似的,假设全局中断标志被清零,那么一软件去除。类似的,假设

11、全局中断标志被清零,那么一切已发生的中断都不会被执行,直到切已发生的中断都不会被执行,直到I 置位。然后挂起置位。然后挂起的各个中断按中断优先级依次执行。第二种类型的中断的各个中断按中断优先级依次执行。第二种类型的中断那么是只需中断条件满足,就会不断触发。这些中断不那么是只需中断条件满足,就会不断触发。这些中断不需求中断标志。假设中断条件在中断使能之前就消逝了,需求中断标志。假设中断条件在中断使能之前就消逝了,中断不会被触发。中断不会被触发。AVR 退出中断后总是回到主程序并至少执退出中断后总是回到主程序并至少执行一条指令才可以去执行其他被挂起的中行一条指令才可以去执行其他被挂起的中断。要留意

12、的是,进入中断效力程序时形断。要留意的是,进入中断效力程序时形状存放器不会自动保管,中断前往时也不状存放器不会自动保管,中断前往时也不会自动恢复。这些任务必需由用户经过软会自动恢复。这些任务必需由用户经过软件来完成。运用件来完成。运用CLI 指令来制止中断时,指令来制止中断时,中断制止立刻生效。没有中断可以在执行中断制止立刻生效。没有中断可以在执行CLI 指令后发生,即使它是在执行指令后发生,即使它是在执行CLI 指指令的同时发生的。下面的例子阐明了如何令的同时发生的。下面的例子阐明了如何在写在写EEPROM 时运用这个指令来防止中断时运用这个指令来防止中断发生以防止对发生以防止对EEPROM 内容的能够破坏。内容的能够破坏。通用中断控制存放器 GICRBit 1 IVSEL: 中断向量选择中断向量选择当当IVSEL 为为0“ 时,中断向量位于时,中断向量位于Flash 存储器的起始地址;当存储器的起始地址;当IVSEL 为为1“ 时,中断向量转移到时,中断向量转移到Boot 区的起始地址。实践的区的起始地址。实践的Boot 区起始地址由熔丝位区起始地址由熔丝位BOOTSZ 确定。为了防止无认识地改确定。为了防止无认识地改动中断向量表,修正动中断向量表,修正IVSEL 时需求遵照如下过程:时需求遵照如下过程:1. 置位中断向量修正使能位置位中断向量修正使能位IVCE2

温馨提示

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

评论

0/150

提交评论