個人感覺是Switch語句沒能正常執行
但找不到原因
單片機C語言源程序如下:
#include <REG52.H>
sbit LSA=P2^5;
sbit LSB=P2^6;
sbit LSC=P2^7;
unsigned char Key_Val,Key_Down,Key_Old,Key_Up;//按鍵專用變量
unsigned char Key_read()
{
unsigned char temp = 0;
if(P3^0 == 0) temp = 1;//S7
if(P3^1 == 0) temp = 2;//S6
if(P3^2 == 0) temp = 3;//S5
if(P3^3 == 0) temp = 4;//S4
return temp;
}
void main ()
{
LSC=1;
LSB=0;
LSA=0;
while(1)
{
Key_Val = Key_read();//實時讀取鍵碼值
Key_Down = Key_Val & (Key_Old ^ Key_Val);//捕捉按鍵下降沿
Key_Up = ~Key_Val & (Key_Old ^ Key_Val);//捕捉按鍵上降沿
Key_Old = Key_Val;//輔助掃描變量
switch(Key_Down)
{
case 1:
P0=0XFE;
break;
case 2:
P0=0XFD;
break;
case 3:
P0=0XFB;
break;
case 4:
P0=0XF7;
break;
}
}
}
|