标题:
九齐单片机睡眠模式和按键唤醒程序
[打印本页]
作者:
1481509156
时间:
2024-6-19 19:49
标题:
九齐单片机睡眠模式和按键唤醒程序
#define K1 PA1
#define LED1 PA2
unsigned char K1_num=0;
void main(void)
{
DISI();
AWUCON = 0X02; //开启IO唤醒功能
TMR0=0; //初始定时器寄存器
T0MD=0X01; //时钟分频
INTE=0x03; //使能定时器0中断和IO口状态变化中断
PCON=0X01; //开启TIMER0
ENI(); //开启总中断
while(1)
{
CLRWDT();
if(K1_num==0)
{
LED1=1; // 睡眠模式不亮
WDTEN=0; // 关闭看门狗
AWUCON = 0XA0; //1010 0000
T0MD = 0X01;
PCON1 = 0X80; // 关闭定时器0中断
INTE = 0X02; // 打开io变化中断 while( K1 && IO_CHARGE_IN==0)
{
SLEEP(); // 进入睡眠状态
} T0MD = 0X01;
PCON1 = 0X81; //开启总中断和定时器0中断
INTE = 0X01; // 关闭外部中断打开定时器0中断
WDTEN=1; //打开看门狗
CLRWDT(); }
else
{
LED1=0; //唤醒点亮LED
delay(3000); //延时
K1_num=0; //返回休眠模式
}
}
}
void isr(void) __interrupt(0)
{
if(INTFbits.T0IF)
{
if(K1==0){K1_num=1;}
}
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1