这个是资料整理 方便我在开发的时候 做配置使用 不需要每次都去看datasheet,
IOSTA = C_PA2_Input | C_PA3_Input | C_PA4_Input | C_PA7_Input ;
IOSTB = C_PB5_Input | C_PB3_Input;
APHCON = (unsigned char)~( C_PA6_PHB | C_PA5_PHB | C_PA7_PHB);//上拉
BPHCON = (unsigned char)~( C_PB5_PHB | C_PB3_PHB ); //上拉
BODCON = C_PB5_OD | C_PB4_OD; // Enable open-drain of PB5.PB4, others disable
IOSTB = 0xF8;//0 为定义输出 1为配置为输出// PB0.PB1.PB2: output mode, others: input mode
PORTAbits.PA0 ^=1; //反转
1:注意: 上拉和下拉 是低电平有效 所以要取反 使用(unsigned char)~的符号。
2:配置IOSTA的时候 一定要把要输入的配置好 要不然就是默认为输出口,(因为对应的位为1的时候 才是输入)
// IOSTA = 每次设置的时候 都要一次把引脚设置好
IOSTA = C_PA7_Input | C_PA5_Oput
// While PA7 Inputs High/Low, then PA5 Outputs High/Low
if(PORTAbits.PA7) //判断A7引脚是不是高
PORTAbits.PA5 = 1;
else
PORTAbits.PA5 = 0;
if ( !(PORTAbits.PA6) ) //判断A67引脚是不是低
直接读取引脚的值;
读取引脚的电平值 使用扫描的方法
//--------------------------------------------------------------------------
// check key status
//--------------------------------------------------------------------------
char KeyScan(void)
{
char KeyStatus;
KeyStatus = ~PORTA;
return(KeyStatus);
}
KeyStatus = KeyScan() & 0x40; // PA6
if (KeyStatus != 0) // check if a key is pressed // PortA.6 (LED1)is pressed