ATM的中断系统应用_第1页
ATM的中断系统应用_第2页
ATM的中断系统应用_第3页
ATM的中断系统应用_第4页
ATM的中断系统应用_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境第第070070章章 ATm16中断系统中断系统 本章介绍本章介绍ATmega16ATmega16单片机中断系统的单片机中断系统的结构、工作原理以及简单编程应用。结构、工作原理以及简单编程应用。 1 1、中断系统的基本概念;、中断系统的基本概念; 2 2、中断系统的组成和用法;、中断系统的组成和用法; 3 3、中断系统应用编程;、中断系统应用编程; 建议阅读建议阅读138138页课文!页课文! 广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境中断系统的

2、基本概念中断系统的基本概念1 1、中断概念:、中断概念: 1)中断中断:CPU中止执行原程序;中止执行原程序; 中断源:中断源:申请申请CPU服务的内外电路模块;服务的内外电路模块; 2)中断触发方式中断触发方式:外中断源申请中断的电平方式;:外中断源申请中断的电平方式; 中断申请标志中断申请标志:中断源申请中断的状态表示位;:中断源申请中断的状态表示位; 中断允许标志中断允许标志:CPU允许中断源申请的状态允许中断源申请的状态表示位;表示位; 3 3)中断优先顺序中断优先顺序: CPU处理中断源申请的先后顺序;处理中断源申请的先后顺序; 中断优先级别中断优先级别: CPU处理中断源申请的先后

3、级别;处理中断源申请的先后级别; 中断嵌套中断嵌套: CPU处理低级中断服务中允许高级中断插入优先处理;处理低级中断服务中允许高级中断插入优先处理; 4 4)中断入口地址中断入口地址:中断源进入中断处理的入口区首地址。:中断源进入中断处理的入口区首地址。 中断服务程序地址中断服务程序地址:中断源进入中断服务的服务区首地址。:中断源进入中断服务的服务区首地址。广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境中断系统的基本概念中断系统的基本概念2 2、中断处理过程:、中断处理过程: 1)中断申请:中断申请:中断源向中断源向CPU发出中断申请电平激励。

4、发出中断申请电平激励。 2)中断响应:中断响应:CPU检测中断申请标志位,保存断点,转入中断入口地址。检测中断申请标志位,保存断点,转入中断入口地址。 3)中断服务:中断服务:CPU进入中断服务程序段,保护现场,执行服务处理,恢进入中断服务程序段,保护现场,执行服务处理,恢复现场的过程。复现场的过程。 A、保护现场:保护现场:保护原程序中共享单元的有用数据。保护原程序中共享单元的有用数据。 B、中断服务处理:中断服务处理:执行真正为中断源申请服务的程序处理。执行真正为中断源申请服务的程序处理。 C、恢复现场:恢复现场:恢复原程序中共享单元的有用数据。恢复原程序中共享单元的有用数据。 4)中断返

5、回:中断返回:CPU 执行中断返回指令,恢复断点,返回原来程序。执行中断返回指令,恢复断点,返回原来程序。广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境 mega16的中断向量表的中断向量表(1)(1) 向量向量序号序号中断向量入口中断向量入口 flash地址地址中断源代码中断源代码中断名称说明中断名称说明 1 $0000RESET5 5方式的复位中断方式的复位中断 2 $0002EXT_INT0外部中断外部中断0 0请求中断请求中断 3 $0004EXT-INT1外部中断外部中断1 1请求中断请求中断 4 $0006TIMER2 COMP定时

6、定时/ /计数计数2 2 比较匹配中断比较匹配中断 5 $0008TIMER2 OVF定时定时/ /计数计数2 2 溢出中断溢出中断 6 $000ATIMER1 CAPT定时定时/ /计数计数1 1 事件捕捉中断事件捕捉中断 7 $000CTIMER1 COMPA定时定时/ /计数器计数器1 1 比较匹配中断比较匹配中断A A广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境mega16的中断向量表的中断向量表(2)(2)向量向量序号序号 中断向量中断向量 flash地址地址中断源代码中断源代码中断源名称中断源名称 8 $000ETIMER1 CO

7、MPB定时定时/ /计数计数1 1 比较匹配中断比较匹配中断B B 9 $0010TIM1_OVF定时定时/ /计数计数1 1 溢出中断溢出中断 10 $0012TIM0_OVF定时定时/ /计数计数0 0 溢出中断溢出中断 11 $0014SPI STCSPI SPI 串行传输结束中断串行传输结束中断 12 $0016USART RXCUSART USART 接收结束中断接收结束中断 13 $0018USART UDREUSART USART 数据寄存器空中断数据寄存器空中断 14 $001AUSART TXCUSART USART 发送结束中断发送结束中断广西大学电气工程学院广西大学电气工

8、程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境mega16的中断向量表的中断向量表(3)(3)向量向量序号序号 中断向量中断向量 flash 地址地址中断源代码中断源代码中断源名称中断源名称 15 $001CADC A/D A/D 转换结束转换结束中断中断 16 $001EEE-RDYEEPROM EEPROM 就绪就绪中断中断 17 $0020ANA-COMP模拟比较模拟比较中断中断 18 $0022TWI两线串行接口两线串行接口中断中断 19 $0024INT2外部中断外部中断2 2 请求请求中断中断 20 $0026TIMER0 COMP定时定时/ /计数计数0 0 比较

9、比较匹配中断匹配中断 21 $0028SPM-RDY保存程序存储器内容就绪保存程序存储器内容就绪断断广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境 与中断系统有关的寄存器与中断系统有关的寄存器相关寄存器:相关寄存器:1、SREG-状态寄存器:状态寄存器: Bit7 - I: 全局中断使能位全局中断使能位;当一个中断发生后,当一个中断发生后,“I”被请零,屏被请零,屏蔽后续中断。当现中断返回后,蔽后续中断。当现中断返回后,“I” 将被重新置位。将被重新置位。2、GICR-通用中断控制寄存器:通用中断控制寄存器:3、GIFR-通用中断标志寄存器:通

10、用中断标志寄存器:4、MCUCR-微控制器控制寄存器:微控制器控制寄存器:5、MCUSCR -微控制器状态与控制寄存器:微控制器状态与控制寄存器:广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境 GICR-通用中断控制寄存器通用中断控制寄存器 Bit7-INT1: Bit7-INT1: 外部中断外部中断 1 1 使能控制位使能控制位 Bit6-INT0: Bit6-INT0: 外部中断外部中断 0 0 使能控制位使能控制位 bit1 -bit1 -中断向量区选择位中断向量区选择位 bit0 -bit0 -中断向量区选择使能位中断向量区选择使能位

11、广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境 GIFR-通用中断标志寄存器通用中断标志寄存器 Bit7 Bit7INTF1:INTF1:外部中断外部中断1 1申请标志位;申请标志位; Bit6Bit6INTF0:INTF0:外部中断外部中断0 0中断申请标志位;中断申请标志位;广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境 MCUCR-微控系统寄存器微控系统寄存器 Bit 1, 0 - ISC01,ISC00: 外部中断外部中断0触发方式控制位触发方式控制位 Bit 3, 2 - ISC11,

12、ISC10: 外部中断外部中断1触发方式控制位触发方式控制位 bit 6 - SE 休眠使能位休眠使能位 bit 4,5,7 -休眠模式选择位休眠模式选择位广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境 外中断外中断0 0 触发方式控制触发方式控制 例例 设置外部中断设置外部中断INT0INT0,下降沿触发有效。,下降沿触发有效。 MCUCR = 0 x02; /MCUCR = 0 x02; /设置设置MCUCRMCUCR寄存器位寄存器位0 0、1 1广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环

13、境 外中断外中断1 1 触发方式控制触发方式控制例:例:设置外中断设置外中断INT1为上升沿触发中断请求。为上升沿触发中断请求。 MCUCR = 0 x0c; /设置设置MCUCR位位2、3 广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境 MCUSCR- 微控系统状态与控制寄存器微控系统状态与控制寄存器JTDISC2 -JTRFWDRFBORFEXTRFPORF ISC2 INT2中断触发控制方式中断触发控制方式 0INT2的下降沿产生一个异步中断请求的下降沿产生一个异步中断请求 1INT2的上升沿产生一个异步中断请求的上升沿产生一个异步中断请

14、求位位0:- PORF上电复位标志位上电复位标志位位位1:- EXTRF外部复位标志位外部复位标志位位位2:- BORF掉电复位标志位掉电复位标志位位位3:- WDRF看门狗复位标志位看门狗复位标志位位位4:- JTRF为为JTAG复位标志位复位标志位位位7:-广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境中断控制位的应用中断控制位的应用 1、如果、如果SREG寄存器的全局中断标志位寄存器的全局中断标志位“I”和和GICR的相应中的相应中断屏蔽位置位。外部中断将由引脚激发。在检测边沿前断屏蔽位置位。外部中断将由引脚激发。在检测边沿前MCU首先首

15、先采样引脚上的电平。采样引脚上的电平。 2 2、若选择边沿触发方式或电平变化触发方式,持续时间应、若选择边沿触发方式或电平变化触发方式,持续时间应大于一个时钟周期的脉冲将触发中断,过短的脉冲不能保证触大于一个时钟周期的脉冲将触发中断,过短的脉冲不能保证触发中断。发中断。 3 3、若选择低电平触发方式,低电平必须保持到当前指令执、若选择低电平触发方式,低电平必须保持到当前指令执行完成行完成 广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境中断响应中断响应1 1、中断响应的条件:、中断响应的条件: 除了非屏蔽中断(如复位中断)外,其它中断都可以用软除

16、了非屏蔽中断(如复位中断)外,其它中断都可以用软件设置屏蔽或开放。系统只有具备如下的中断条件,件设置屏蔽或开放。系统只有具备如下的中断条件,CPUCPU才可能才可能对中断请求进行响应。对中断请求进行响应。 1) 1) 中断源请求触发:中断源请求触发: 每一个中断源能发出中断请求信号,而且能保持,直至每一个中断源能发出中断请求信号,而且能保持,直至CPUCPU响应这个中断后,才可清除中断请求。响应这个中断后,才可清除中断请求。 2) 2) 设置中断允许断屏蔽使能位:设置中断允许断屏蔽使能位: 在实际系统中,往往有多个中断源。为了增加控制的灵活在实际系统中,往往有多个中断源。为了增加控制的灵活性,

17、在每个接口电路中增加了一个中允许断屏蔽使能位,只有性,在每个接口电路中增加了一个中允许断屏蔽使能位,只有当此使能位为当此使能位为“1”1”时,外设的中断请求才能被送出至时,外设的中断请求才能被送出至CPUCPU。广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境 3) 3) 全局中断允许使能位全局中断允许使能位 在在CPUCPU内部有一个状态寄存器。只有内部有一个状态寄存器。只有当其全局中断使当其全局中断使能位为能位为“1”1”时时,CPUCPU才可能响应中断;若其为才可能响应中断;若其为“0”0”,即,即使使INTRINTR线上有中断请求,线上有

18、中断请求,CPUCPU也不响应。而这个状态位可也不响应。而这个状态位可由软件指令来改变。当由软件指令来改变。当CPUCPU复位时,中断允许触发器为复位时,中断允许触发器为“0”0”,所以必须要用软件指令来开中断。所以必须要用软件指令来开中断。当中断响应后,当中断响应后,全局中断使能位就自动请零全局中断使能位就自动请零“0”0”关中断。当中断返回后,关中断。当中断返回后,全局中断使能位就自动置位为全局中断使能位就自动置位为“1”1”开中断。开中断。 如在中断服务程序中设置中断嵌套,也必须要用软件如在中断服务程序中设置中断嵌套,也必须要用软件指令来开中断。指令来开中断。CPUCPU在现行指令结束后

19、在现行指令结束后, ,全局中断位自动全局中断位自动置置1 1,即自动开中断。,即自动开中断。广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境 中断处理过程中断处理过程 中断处理过程分为:中断处理过程分为: 1)1)中断响应中断响应 ; 2)2)中断处理;中断处理; 3)3)中断返回;中断返回; 一、中断响应:一、中断响应: (1)(1)关全局中断:关全局中断:CPUCPU响应中断后,发出中断响应响应中断后,发出中断响应信号的同时,硬件自动地关闭全局中断标志为信号的同时,硬件自动地关闭全局中断标志为I I。 (2)(2)保存断点:保存断点:CPUC

20、PU响应中断后,把主程序中断的响应中断后,把主程序中断的地址(断点)保存到堆栈,以备中断处理完毕后,能返回主地址(断点)保存到堆栈,以备中断处理完毕后,能返回主程序并正确执行。程序并正确执行。广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境中断处理:中断处理: 二、中断处理:二、中断处理: (1)(1)按照中断入口设定的中断子程序入口地址,转入相应的中断服务按照中断入口设定的中断子程序入口地址,转入相应的中断服务子程序。子程序。 (2)(2)保护现场:保护现场:为使中断处理不影响中断返回后主程序运作,需把中为使中断处理不影响中断返回后主程序运作,

21、需把中断服务用到的与主程序共享的有关寄存器、存储单元、标志位等的状态断服务用到的与主程序共享的有关寄存器、存储单元、标志位等的状态压入堆栈保护起来。这样,当退出中断处理后,压入堆栈保护起来。这样,当退出中断处理后,CPUCPU就能够恢复中断前的就能够恢复中断前的状态,保证进入中断前的程序正确运行状态,保证进入中断前的程序正确运行 。 (3 3)中断服务:)中断服务:根据中断服务要求,编写中断服务功能程序模块根据中断服务要求,编写中断服务功能程序模块。 (4)4)恢复现场:恢复现场:把堆栈保存的相关状态,按先进后出的原则从堆栈弹把堆栈保存的相关状态,按先进后出的原则从堆栈弹出,送回中断前原来的位

22、置。出,送回中断前原来的位置。 (5 5)在)在C C编译器中保护现场,恢复现场以及中断返回,都由系统自动编译器中保护现场,恢复现场以及中断返回,都由系统自动完成。完成。广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境中断返回:中断返回:三、中断返回:三、中断返回: 在中断子程序的最后,安排一条中断返回指令在中断子程序的最后,安排一条中断返回指令(RETIRETI),将堆栈内保存的进入中断时被中断的程序位置),将堆栈内保存的进入中断时被中断的程序位置值弹出。并自动开启全局中断标志位值弹出。并自动开启全局中断标志位I I,以便,以便CPUCPU能响

23、应新能响应新的中断请求。的中断请求。 在在C C编译器中,中断返回与恢复现场和保护现场一样,编译器中,中断返回与恢复现场和保护现场一样,不需要用户编写完成。不需要用户编写完成。广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境 中断入口位置设置中断入口位置设置 通过对通过对BOOTRSTBOOTRST熔丝位熔丝位编程和编程和GICRGICR寄存器的寄存器的IVSELIVSEL的设置,可将系统复位向量和中断向量表置于的设置,可将系统复位向量和中断向量表置于FLASHFLASH程序存储器的程序存储器的应用程序区的头部;应用程序区的头部;或将其转移或将其

24、转移到到引导程序区的头部引导程序区的头部,即分别置于不同的两个区各,即分别置于不同的两个区各自的头部。自的头部。广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境中断嵌套设置中断嵌套设置 当当MCUMCU响应一个中断请求时,会自动将全局中断允响应一个中断请求时,会自动将全局中断允许位许位I I自动清零,此时后续中断的响应即被屏蔽,而当自动清零,此时后续中断的响应即被屏蔽,而当MCUMCU执行中断返回指令执行中断返回指令RETIRETI后,又会将全局中断允许位后,又会将全局中断允许位I I自动置自动置“1”1”,以允许响应下一个中断;,以允许响应下一

25、个中断; 用户也可在中断处理程序中将全局中断允许位用户也可在中断处理程序中将全局中断允许位I I置置“1” 1” ,打开中断响应,这样,打开中断响应,这样MCUMCU就可以再次响应中断,就可以再次响应中断,实现中断嵌套处理。实现中断嵌套处理。广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境中断的两种类型中断的两种类型- 时间触发型和条件触发型时间触发型和条件触发型 1 1、对于时间触发型中断对于时间触发型中断(如时钟、计数、比较等),一旦(如时钟、计数、比较等),一旦事件发生后会将相应的中断标志位置位申请中断处理,当事件发生后会将相应的中断标志位

26、置位申请中断处理,当MCUMCU响响应中断跳转到中断向量,开启相应的中断处理程序时,硬件将应中断跳转到中断向量,开启相应的中断处理程序时,硬件将自动清除对应的中断标志。这些中断标志位也可通过软件写自动清除对应的中断标志。这些中断标志位也可通过软件写“1”1”来清除。当一个符合条件的中断触发置位了中断标志位,但相来清除。当一个符合条件的中断触发置位了中断标志位,但相应的中断允许位为应的中断允许位为“0”0”,此时,这个中断标志将挂起为,此时,这个中断标志将挂起为“1”1”,一直保持到该中断被响应或中断标志被软件清为一直保持到该中断被响应或中断标志被软件清为“0”0”。 2 2、对于一些条件触发型

27、中断对于一些条件触发型中断(如低电平触发的外部中断)(如低电平触发的外部中断)来讲,它们不置位有中断标志位,在中断条件成立时,将一直来讲,它们不置位有中断标志位,在中断条件成立时,将一直不断的向不断的向MCUMCU申请中断,如果在中断允许响应前,中断条件由成申请中断,如果在中断允许响应前,中断条件由成立状态变成不成立状态,该中断即宣告终止了立状态变成不成立状态,该中断即宣告终止了。广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境低电平中断的应用低电平中断的应用 3、低电平中断的应用、低电平中断的应用 当外部中断使能并且配置为电平触发当外部中断使能

28、并且配置为电平触发(INT0/INT1)(INT0/INT1),只要引脚电平为低,中断就会产生。若要求只要引脚电平为低,中断就会产生。若要求INT0,INT1INT0,INT1在信号下降沿或上升沿触发,在信号下降沿或上升沿触发,I/O I/O 时钟就必须工作。而时钟就必须工作。而INT0/INT1INT0/INT1的低电平中断检测是异步的,这些中断可以的低电平中断检测是异步的,这些中断可以用来将器件从睡眠模式唤醒。在睡眠过程用来将器件从睡眠模式唤醒。在睡眠过程( ( 除了空闲模除了空闲模式式) ) 中中I/OI/O时钟是停止的。时钟是停止的。广西大学电气工程学院广西大学电气工程学院第第9 9章

29、章 编译器和集成开发环境编译器和集成开发环境广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境 CVAVR中断程序的编写中断程序的编写(1) 不同的不同的C语言开发环境中断服务程序的语法规则是不同的。在语言开发环境中断服务程序的语法规则是不同的。在ICCAVR与与CVAVR编译软件中,将自动加入现场保护,现场恢复编译软件中,将自动加入现场保护,现场恢复以及中断返回等措施。以及中断返回等措施。 在在CVAR中,中断服务函数的定义格式如下:中,中断服务函数的定义格式如下: interrupt EXT_INTO void ext_int0_isr (vo

30、id) /中断服务函数的函数体中断服务函数的函数体 interrupt EXT_INT1 void ext_int1_isr (void) /中断服务函数的函数体中断服务函数的函数体 广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境 CVAVR 中断程序编程框架中断程序编程框架(2)中断编程框架:中断编程框架: #include interrupt EXT_INT0 void ext_int0 _isr(void) . interrupt EXT_INT1 void ext_int1 _isr(void) . void main (void) G

31、ICR=0 xc0; / *允许开外中断允许开外中断0,1 GIFR =0 xc0; /*外中断外中断0,1中断标志位写中断标志位写1请请0 SREG=0 x80; /*开全局中断标志位开全局中断标志位 MCUCR=0 x0a; / *外中断外中断0,1均设为下降沿触发均设为下降沿触发 / # asm(“sei”) /CVAVR内嵌汇编指令,用于使能内嵌汇编指令,用于使能SREG全局中断位全局中断位I while (1) . ; 广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开

32、发环境编译器和集成开发环境 CVAVR *软件中断程序的编写软件中断程序的编写(3)中断编程举例:按外中断中断编程举例:按外中断0显示显示0 -F;按外中断按外中断0显示显示F -0. #include unsigned char counter flash unsigned char LED_716=0 x3f; 0 x06; 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 /共阴段码共阴段码 interrupt EXT_INT0 void ext_i

33、nt0 _isr(void) if (+counter =15 ) counter = 0; interrupt EXT_INT1 void ext_int1 _isr(void) if ( counter =1 ) - -counter ; else counter = 15 void main (void) DDRA = 0 xff; PORTA = 0 xff ; MCUCR=0 x0a; / *1外中断外中断0,1均设为下降沿触发均设为下降沿触发 GICR |=0 xc0; / *2允许开外中断允许开外中断0,1 GIFR =0 xc0; /*3外中断外中断0,1中断标志位写中断标志位

34、写1请请0 counter = 0; # asm(“sei”) /CVAVR内嵌汇编指令,用于使能内嵌汇编指令,用于使能SREG全局中断位全局中断位I while (1) PORTA = LED_7 counter ; ; 广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境 中断系统应用举例中断系统应用举例7.3(P142) 例题例题 D1-D8D1-D8,全亮全灭闪烁,亮,全亮全灭闪烁,亮/ /灭间隔灭间隔500MS500MS, 一旦外中断一旦外中断INT1INT1触发,报警灯发亮触发,报警灯发亮1 1秒钟。秒钟。 # include # inc

35、lude # define uchar unsigned char # define uint unsigned int # define BZ_0 (PORTD = PORTD&0 xdf ) # define BZ_1 (PORTD = PORTD|0 x20 ) uint cnt ; /定义全局无符号变量定义全局无符号变量cnt广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境 中断系统应用举例中断系统应用举例7.3(P142) void main ( voin ) DDRA = 0 xff ; /定义定义A口输出口输出 PORTA = 0

36、xff ; /定义定义A口输出高电平口输出高电平 DDRD = 0 xf3 ; /定义定义D口口2,3为输入,其它为输出为输入,其它为输出 PORTD = 0 xff ; /定义定义D口初值为高电平口初值为高电平 MCUCR = 0 x0A ; /定义定义INT0,INT1下降沿触发下降沿触发 GICR = 0 xC0 ; /开开INT0,INT1分中断分中断 SREG = 0X80 ; /开总中断开总中断 while (1) PORTA = 0X00 ; / 全亮全亮 delay_ms (500) ; /延时延时500毫秒毫秒 PORTA = 0Xff ; /全灭全灭 delay_ms (5

37、00) ; /延时延时500毫秒毫秒 广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境中断系统应用举例中断系统应用举例7.3(P142) /在在CVAVR环境中中断服务函数设置规格:环境中中断服务函数设置规格: interrupt EXT_INT1 void ext1_isr (void ) /定义中断服务子函数定义中断服务子函数 /* interrupt-表示中断函数;表示中断函数;EXT_INT1表示外中断表示外中断1向量号;向量号; void-表示空函数;表示空函数;ext_isr表示外中断服务函数;表示外中断服务函数; (void)表示空

38、形式参数;表示空形式参数;*/ for ( cnt = 0; cnt 50; cnt+) /报警报警10秒秒 BZ_1 ; delay_ms (100); /报警灯报警灯100ms高电平高电平 BZ_0 ; delay_ms (100); / 报警灯报警灯100ms低高电平低高电平 广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境INT0、IHT1中断嵌套中断嵌套-1 (P147) 例题例题 D1-D8D1-D8,全亮全灭闪烁,亮,全亮全灭闪烁,亮/ /灭间隔灭间隔500MS500MS, 外中断外中断INT1INT1触发,报警灯闪亮触发,报警灯闪

39、亮1010秒钟。在秒钟。在INT1INT1中断中断服务处理程序中嵌套服务处理程序中嵌套INT0INT0中断,高,低四位中断,高,低四位100MS100MS交交替发亮替发亮1010秒。秒。 # include # include # define uchar unsigned char # define uint unsigned int # define BZ_0 (PORTD = PORTD&0 xdf )/与与0与为与为0 # define BZ_1 (PORTD = PORTD|0 x20 ) /与与1或为或为1 uint cnt ; /定义全局无符号变量定义全局无符号变量cnt广西大学

40、电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境INT0、IHT1中断嵌套中断嵌套-2 (P147)void main ( voin ) DDRA = 0 xff ; /定义定义A口输出口输出 PORTA = 0 xff ; /定义定义A口输出高电平口输出高电平 DDRD = 0 xf3 ; /定义定义D口口2,3为输入,其它为输出为输入,其它为输出 PORTA = 0 xff ; /定义定义D口初值为高电平口初值为高电平 MCUCR = 0 x0A ; /定义定义INT0,INT1下降沿触发下降沿触发 GICR = 0 xC0 ; /开开INT0,IN

41、T1分中断分中断 SREG = 0X80 ; /开总中断开总中断 while (1) PORTA = 0X00 ; / 全亮全亮 delay_ms (500) ; /延时延时500毫秒毫秒 PORTA = 0Xff ; /全灭全灭 delay_ms (500) ; /延时延时500毫秒毫秒 广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境INT0、IHT1中断嵌套中断嵌套-3 (P147)interrupt EXT_INT1 void ext1_isr (void ) /定义中断服务子函数定义中断服务子函数 SREG=0 x80; for ( c

42、nt = 0; cnt 50; cnt+) /报警报警10秒秒 BZ_1 ; delay_ms (100); /报警灯报警灯100ms高电平高电平 BZ_0 ; delay_ms (100); / 报警灯报警灯100ms低高电平低高电平 interrupt EXT_INT0 void ext0_isr (void ) /定义中断服务子函数定义中断服务子函数 for ( cnt = 0; cnt 10; cnt+) /闪亮闪亮2秒秒 PORTC=0 x0f; delay_ms(100); PORTC=0 xf0; delay_ms(100); 广西大学电气工程学院广西大学电气工程学院第第9 9章章 编译器和集成开发环境编译器和集成开发环境 中断系统应用举例中断系统应用举例7.4 (P144)例题例题:按下:按下INT0键,数码管键,数码管1、0显示显示0099, 按下按下INT1键,数码管键,数码管1、0显示显示9900。 # include / 输入输入/输出端口包含头文件输出端口包含头文件 # include # define uchar unsingned char /定义定义uchar为无符号字符数据为无符号字符数据 # deinde uint unsingned int /定义定义uint为无符号整形数据为无符号整形数据 flash uchar SEG7 1

温馨提示

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

评论

0/150

提交评论