我写的这个程序是 在4*4键盘上 通过按前三个键,来控制自加的函数 暂停和清零 但是按键始终不起作用;这是为什么 我刚学。大神给看一看.
这是程序
#include
unsigned char duan_xuan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char wei_xuan[]={0xfe,0xfd,0xfb,0xf7,0xef,0xbf,0xdf,0x7f};
char temp,key;
int m,n,l,s;
void delay(unsigned int i)
{
unsigned int j;
while(i--)
{
for(j=0;j<125;j++)
{
;
}
}
}
void key_scan()
{
{
if(temp!=0xf0)
{
delay(10);
if(temp!=0xf0)
{
switch(P1)
{
case 0xee: //0按下//
key=0;
break;
case 0xde:
key=1;
break;
case 0xbe:
key=2;
break;
}
}
}
}
}
void display(int s)
{
switch (key)
{
case 0:
for(s=0;s<1000;s++)
{
m=s/100; // 显 示 要 求 数字
n=s%100/10;
l=s%10;
P2=wei_xuan[2];
P0=duan_xuan[m];
delay(1);
P2=wei_xuan[1];
P0=duan_xuan[n];
delay(1);
P2=wei_xuan[0];
P0=duan_xuan[l];
delay(1);
if(key==1)
{
break;
}
}
break;
case 1:
while(1)
{
P2=wei_xuan[2];
P0=duan_xuan[m];
delay(1);
P2=wei_xuan[1];
P0=duan_xuan[n];
delay(1);
P2=wei_xuan[0];
P0=duan_xuan[l];
delay(1);
if(key==2) break;
}
break;
case 2:
while(1)
{
P2=wei_xuan[2];
P0=duan_xuan[0];
delay(1);
P2=wei_xuan[1];
P0=duan_xuan[0];
delay(1);
P2=wei_xuan[0];
P0=duan_xuan[0];
delay(1);
}
break;
}
}
void main()
{
while(1)
{
key_scan();
display(key);
}
}
switch(P1)
{
case 0xee: //0按下//这里不是0xef?下面也是
key=0;
break;
case 0xde:
key=1;
break;
case 0xbe:
key=2;
break;
}
为什么是0xef 0xee不是4*4键盘的第一个键吗?