本帖最后由 xintuxing 于 2013-6-9 21:28 编辑
采用的编译环境是 AVR Studio 6.0。
没有启用JTAG 调试(因为没有设备),程序直接通过ISP 下载到单片机运行。外部中断用按钮连接。
程序如下:
#include<avr/io.h>
#include<avr/interrupt.h>
int main(void)
{
DDRA=0xff;//此IO口用于控制8个LED灯
PORTA=0x01;
DDRD=0;//置为输入
MCUCR=(1<<ISC11);//外部中断1为下降沿触发(按照资料已试过其余3种触发方式)
GICR |= (1<<INT1);//使能INT1 (INT0也试过了)
GIFR |= (1<<INTF1);//可不要
sei();//使能全局中断
while(1);//等待中断
}
SIGNAL(SIG_INTERRUPT1)
{
PORTA<<=1;//左移一位
}
硬件连接很简单:外部中断1连接一个按钮,按钮接地,IO 口A接8个LED
|