#include<reg52.h>
sbit KEY=P2^0;
sbit P27=P2^7;
sbit LED=P0^1;
void delay();
void main()
{ while(1) //不断循环
{ P27=0;
{
while(!KEY)
{
delay(); //调用延时函数,作用消抖
if(KEY) //再次读键盘,以判断刚才判断到的是否为抖动
LED=~LED; //取反P1.1电平状态,也就是改变发光管的状态
}
}
}
}
void delay()
{
unsigned int i=15000;
while(i--); //不断循环的自减,直到i变为0
}
这是个单独按键控制一个灯的程序,上机测试没问题.我想的是要把4X4按键扫描出来的键值比如说KEY2来控制这个LED 程序要怎么加.我刚学的,谢谢指教
4X4按键是用 z=x|y; 算出来的
x=P3;
P3=0x0f;
y=P3;
z=x|y;
switch(z)
{
case 0xee:k=0;break;
case 0xed:k=1;break;
case 0xeb:k=2;break;
case 0xe7:k=3;break;
case 0xde:k=4;break;
case 0xdd:k=5;break;
case 0xdb:k=6;break;
case 0xd7:k=7;break;
case 0xbe:k=8;break;
case 0xbd:k=9;break;
case 0xbb:k=10;break;
case 0xb7:k=11;break;
case 0x7e:k=12;break;
case 0x7d:k=13;break;
case 0x7b:k=14;break;
case 0x77:k=15;break;
}
}
}
return(k);
}
我想问问我的主程序该怎么写 |