本帖最后由 fzhlpp 于 2021-12-30 10:19 编辑
void sys_init( void )//系统初始化
{
T0=155;//T0计数值初始化
PCON=0B00111000;//POWER控制寄存器初始化
INTECON=0B10000001;//中断控制寄存器初始化
INTFLAG=0B00000000;//中断标志寄存器初始化
OPTION=0B00000000;//PA方向寄存器初始化
}
初始化为什么要加 OPTION=0B00000000;//PA方向寄存器初始化?
然后在主函数再次出现:
while(1)
{
Mode:switch(mode)
{
case 0: //睡眠
{
set_LED(CloseLight);
IOCB=0B00001000;//变化中断使能/唤醒功能
PCON=0B00111000;//POWER控制寄存器初始化
INTECON=0B00000010;//中断控制寄存器初始化
OPTION=0B00000000;// OPTION寄存器初始化
asm(sleep);asm(nop);asm(nop);asm(nop);asm(nop);asm(nop);//进入睡眠低功耗模式
io_init(); //端口初始化
sys_init(); //T0定时中断初始化
set_LED(CloseLight);//LED灯关闭
Delay=20000;
while(Delay--){if(mode!=0)goto Mode;}
}break;
我不确定这个跟这个程序有没有关系?谁验证过了吗?原理图跟官网资料对不上,7脚应该是PB0而不是PB3,外中断是PB0.................. |