美文网首页我爱编程
EX2 AVR ATmega8A外部中断

EX2 AVR ATmega8A外部中断

作者: 山前雨1 | 来源:发表于2018-06-14 10:20 被阅读5次

//EX2

//微信号:shanqianyu1

//author:QI小米粥

//date:2018.3.9

#include

#include

char c=1;

char d=1;

void init(void) //初始化函数

{

//中断定义

MCUCR &=0XF0; //int0,int1为低电平触发

GICR |=0XC0;  //打开int0,int1的中断总开关

DDRB=0XFF; //PB口全部设置为输出

PORTB=0X00;//PB口全部输出低电平

DDRD &=0XF3;//PD1,PD0设置为输入

PORTD |=0X0C;//PD1,PD0设置上拉内置的上拉电阻

SFIOR &=~BIT(2);//上拉电阻的总开关,打开

}

void delay(void) //延时函数

{

int a,b;

for (a=0;a<500;a++)

{

for(b=0;b<500;b++) {}

}

}

void flicker(char a)//闪烁函数a为某一位PB口

{

PORTB |=BIT(a);// PBa高电平

delay();//保持

PORTB &=~BIT(a);//PBa低电平

delay();//保持

}

#pragma interrupt_handler int0:2

void int0(void) //int0引脚为低电平触发中断PB0,PB2一直闪烁

{

  flicker(0);

flicker(2);

}

#pragma interrupt_handler int1:3

void int1(void)////int1引脚为低电平触发中断PB1,PB2一直闪烁

{

flicker(1);

flicker(2);

}

void main(void)

{

SREG |=0X80; //全局中断I打开

init();

while(1)

{

flicker(2); //正常情况下PB2一直高低电平闪烁

}

}

相关文章

网友评论

    本文标题:EX2 AVR ATmega8A外部中断

    本文链接:https://www.haomeiwen.com/subject/mxbeeftx.html