atmege16外部中断程序
功能:演示ATMEGA16的3个外部中断程序
编辑环境:ICCAVR
******************************************/
#include
#include
#define uint unsigned int
#define uchar unsigned char
#define beep_0 (PORTD&=~(1 #define beep_1 (PORTD|=(1 //蜂鸣器响 uint count; /******************************************* 三个外部中断声明,注意中断向量号 *******************************/ #pragma interrupt_handler Exint0:2 #pragma interrupt_handler Exint1:3 #pragma interrupt_handler Exint2:19 /************************************* 系统延时函数 ************************************/ void delay(uint ms) { uint i,j; for(i=0;i { for(j=0;j<1140;j++); } } /************************************** 端口初始化每个外部中断端口是固定的 ****************************************/ void port_init() { DDRA=0XFF; PORTA=0XFF; DDRB&=(0 PORTB|=(1 DDRD&=(0 PORTD|=(1 DDRD&=(0 PORTD|=(1 } /*********************************** 外部中断初始化 *******************************/ void INT_init() { SREG=0X80;//打开全局中断 GICR|=(1 MCUCR=(1 MCUCSR=(0 } /***************************************** 流水灯函数 ****************************************/ void LED_1() { uchar i; for(i=0;i<8;i++) { PORTA=~BIT(i); delay(200); } } /*********************************** LED_2函数 **********************************/ void LED_2() { PORTA=0X0F; delay(500); PORTA=0XF0; delay(500); } /******************************** LED_3函数 ************************************/ void LED_3() { PORTA=0X81; delay(500); PORTA=0X7E; delay(500); } /************************************ 外中断0函数 **********************************/ void Exint0() { LED_2(); } /********************************** 外中断1函数 ***********************************/ void Exint1() { LED_3(); } /************************ 外中断2函数 ***********************/ void Exint2() { DDRD=(1 for(count=0;count<4;count++) { beep_0;delay(200); beep_1;delay(200); } } /********************************* 主函数 *********************************/ void main() { port_init();//端口初始化 INT_init();//中断初始化 while(1)// 当非0值时执行下面函数 { LED_1();//流水灯函数 } }
atmege16外部中 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)