我是新手,请教大家一个小小的问题…………谢谢大家
#include<reg52.h>
main(void)
{
unsigned char table[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf};
while(1)
{
switch (P3)
{
case 0xfe:P1=table[0];break;
case 0xfd:P1=table[1];break;
case 0xfb:P1=table[2];break;
case 0xf7:P1=table[3];break;
case 0xef:P1=table[4];break;
case 0xdf:P1=table[5];break;
case 0xbf:P1=table[6];break;
default:break;
}
}
}
结果变成按键2-8显示我想要的结果了、、、、、
看你硬件怎么接法了。
看看是不是原理图看错了
#include<reg52.h>
sbit k1=P1^0;
sbit k2=P1^1;
.
.
.
.
sbit k7=P1^6;
void main()
{
while (1)
{
if (k1=0;)//有的是低电平有效
P2=0x01; //高电平有效
if(k1=0)
P2=0x02;
...
if(k7=0)
P2=0x40;
}
}
简单实用的方法
#include<reg52.h>
main(void)
{
unsigned char table[]={0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf};
while(1)
{
switch (P3) //按键的键码值
{
case 0xfe:P1=table[0];break;
case 0xfd:P1=table[1];break;
case 0xfb:P1=table[2];break;
case 0xf7:P1=table[3];break;
case 0xef:P1=table[4];break;
case 0xdf:P1=table[5];break;
case 0xbf:P1=table[6];break;
default:P1=0xff;break; //把所有的LED灯熄灭
}
}
}
这个 程序没有消抖,在对实时性要求不高的场合可以用