atmega8 例程:INT1外部中斷
/***********************************************************
* 函數(shù)庫(kù)說(shuō)明:ATMEGE8 INT1中斷程序
* 版本: v1.0
*
************************************************************
*注意: button PD3
* LED PD5
* buzzer PB1
***********************************************************/
#include
#include interrupt.h>
int main(void)
{
//PD3外部中斷1口設(shè)置為輸出
DDRD &= ~(1 << DDD3);
//PD3上拉電阻使能
PORTD |= (1 << PORTD3);
//蜂鳴器控制口為輸出
DDRB |= (1 << DDB1);
DDRC |= (1 << DDC5);
//INT1 下降沿觸發(fā)
MCUCR |= (1 << ISC10) | (1 << ISC11);
//INT1 中斷使能
GICR |= (1 << INT1);
//使能全局中斷
sei();
while(1)
{
}
return 0;
}
//外部中斷1服務(wù)程序
SIGNAL(SIG_INTERRUPT1)
{
PORTB ^= (1 << PORTB1);
PORTC ^= (1 << PORTC5);
}