×
单片机 > 单片机程序设计 > 详情

AVR128 外部中断 C程序

发布时间:2020-08-25 发布时间:
|
/*ATavr 128 功能:外部中断INT0、INT1*/

/*GCC编译器*/

#include
#include
#include

#define SET_1(a,b) a|=(1< #define CLE_0(a,b) a&=~(1<

#define uchar unsigned char
#define uint unsigned int

/*中断初始化,INT0、INT1、定义为下降沿触发*/

void int_init( void )
{
cli();
EICRA|=(1< EIMSK|=(1< sei();
}

/*端口初始化*/

void port_init()
{

DDRA=0XFF;
PORTA=0XFF;
DDRD=0X00;
PORTD=0X00;
}

/*INT0中断服务函数*/

SIGNAL(INT0_vect)
{
CLE_0(EIMSK,INT0);
PORTA=0X0F;
_delay_ms(200);
PORTA=0XFF;
SET_1(EIMSK,INT0);
}

/*INT1中断服务函数*/

SIGNAL(INT1_vect)
{
CLE_0(EIMSK,INT1);
PORTA=0XF0;
_delay_ms(200);
PORTA=0XFF;
SET_1(EIMSK,INT1);
}

/*主函数,无中断时发光二极管轮流点亮熄灭200毫秒*/

int main( void )
{
uchar i;
port_init();
int_init();
while(1)
{
for(i=0;i<8;i++)
{
PORTA=CLE_0(PORTA,i);
_delay_ms(200);
PORTA=SET_1(PORTA,i);
_delay_ms(200);
}
}
return 0;
}



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析