case 18: { bma3=bma3 | 0B00100000; break; }
case 19: { bma3=bma3 | 0B00010000; break; }
case 20: { bma4=bma4 | 0B10000000; break; }//按键状态第1位
case 21: { bma4=bma4 | 0B01000000; break; }
case 22: { bma4=bma4 | 0B00100000; break; }
case 23: { bma4=bma4 | 0B00010000;
mma1=bma1;mma2=bma2;mma3=bma3;mma4=bma4;//将接收到的编码复制到解码寄存器中
//在下一行设一个断点,用ICD2调试
rf_ok=1; // 通知解码子程序可以解码了
break;
}
}
ma_x++;
}
else {ma_x=0; tb_ok=0; bma1=0; bma2=0; bma3=0; bma4=0;} //接收到不符合的高-低电平序列
ll_w=0;hh_w=1;
}
old_rc5=1; // 记录本次电平状态
}
}
//***************************************************************************************************
//----- 上电初始化程序 -----//
//***************************************************************************************************
void sub_cpu_ini()
{ PORTA =0B11110000; PORTB=0B11011100; PORTC=0B00111011; PORTE=0B11111111;
TRISA =0B11110000; TRISB=0B11111111; TRISC=0B00110011; TRISE=0B11111111;
WPUB =0B11011101;
OSCCON =0B01100111; //使用片内振荡频率 4MHz
ANSEL =0B00000000; //模拟输入管脚配置为通用I/O口
CMCON0 =0B00000111; //关闭模拟比较器
OPTION =0B00001111; //对T0初始化,WDT预分频128
LCDCON =0B00000011; //VLCD引脚禁止(RC0,RC1,RC2)
T2CON =0B00000011; //设置T2为4096uS中断一次,作为一次处理循环
TMR1ON=0; //关闭Timer1
TMR2ON=0; //关闭Timer2
T0IF =0; //清除T0中断标志
TMR2IF=0; //清除T2中断标志
T0IE =1; //允许T0中断
// GIE =1; //打开全局中断
TMR2ON=1; //打开Timer2
}
上一页 [1] [2]
本文关键字:源程序 PIC单片机,单片机-工控设备 - PIC单片机