#include <iom16v.h>
#include <macros.h>
uchar i;
void main()
{
DDRC=0XFF;//C口输出
PORTC=0X00;//点亮LED
DDRD&=0<<PD3;//外中断1口,PD3输入
PORTD|=1<<PD3;//有上拉电阻,
while(1)
{
i++
if(i==100) //延时后进入休眠模式
{
SEI();// 开全局中断
GICR=0X80;//外部中断1使能
MCUCR=(1<<SE)|(1<<SM1);//开启掉电模式1
asm("sleep");//进入掉电模式
PORTC=0XFF; //唤醒后熄LED
while(1);//程序最后停在此处
}
}
}
程序能够进入掉电,但是按中断1唤醒后,又重头开始了(就象复位一样),程序的最后两行没有被执行???
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>