|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2012-2-5 17:58:38
|
显示全部楼层
回复【1楼】zyyn123
-----------------------------------------------------------------------
那个键值我也测试过。就让程序跑到后面的时候将它用其它值覆盖掉,没用~~~因为,它每扫一次,如果没有按下键,就会返回一个值,一个不是键的,所以
它里面已经包含了有修改KEY值的了。
unsigned char keyscan(void) //键盘扫描函数,使用行列反转扫描法
{
unsigned char cord_h,cord_l;//行列值中间变量
P3=0x0f; //行线输出全为0
cord_h=P3&0x0f; //读入列线值
if(cord_h!=0x0f) //先检测有无按键按下
{
delay(200); //去抖
if(cord_h!=0x0f)
{
cord_h=P3&0x0f; //读入列线值
P3=cord_h|0xf0; //输出当前列线值
cord_l=P3&0xf0; //读入行线值
return(cord_h+cord_l);//键盘最后组合码值
}
}return(0xff);
}
void delay(unsigned int i)
{
while(i--);
我在百度上找到答案,有些网友说是程序跑飞了,我就觉得怪了,跑飞那也不会重复啊~~ |
|