|
刚刚接触PIC1825,我用单片机内部上拉电阻,在单片机外接一个拨码开关。拨动开关时单片机管脚有电平变化,在程序中读不到电平
void Key_GPIO(void)
{
TRISA5=1; //KEY1---key5 INPUT
TRISA4=1;
TRISC3=1;
TRISC2=1;
TRISC0=1;
INLVLA5=0;
INLVLA4=0;
INLVLC3=0;
INLVLC2=0;
INLVLC0=0;
WPUA5=1; //置高电平
WPUA4=1;
WPUC3=1;
WPUC2=1;
WPUC0=1;
/*
RA5=1;
RA4=1;
RC3=1;
RC2=1;
RC0=1;
*/
nWPUEN =0;
}
//------------------------------------------
void Disenable_Key_GPIO(void)
{
TRISA5=1; //KEY1---key5 INPUT
TRISA4=1;
TRISC3=1;
TRISC2=1;
TRISC0=1;
RA5=0;
RA4=0;
RC3=0;
RC2=0;
RC0=0;
nWPUEN =1;
}
unsigned char AdrBuf=0,adrA,adrC;
//---------------------------------------
unsigned char ReadKey(void)
{
adrA=PORTA; // LATAbits.LATA2 PORTA
adrC=PORTC;
if(PORTAbits.RA5)//RA5 KEY1
AdrBuf=AdrBuf+1;
if(PORTAbits.RA4) //RA4 KEY2
AdrBuf=AdrBuf+2;
if(PORTCbits.RC3) //RC3 KEY3
AdrBuf=AdrBuf+4;
if(PORTCbits.RC2) //RC2 KEY4
AdrBuf=AdrBuf+8;
if(PORTCbits.RC0) //RC0 KEY5
AdrBuf=AdrBuf+0x10;
return AdrBuf;
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|