永发信息网

51单片机3*4键盘扫描码

答案:1  悬赏:30  手机版
解决时间 2021-11-15 12:42
51单片机3*4键盘扫描码
最佳答案
这是4*4键盘扫描程序代码:
void delay(uchar a)
{
uchar i,j;
for(i=0;i for(j=0;j<125;j++);
}
uchar kbscan(void)
{
unsigned char sccode,recode;
P3=0x0f; //发0扫描,列线输入
if ((P3 & 0x0f) != 0x0f) //有键按下
{
delay(20); //延时去抖动
if ((P3&0x0f)!= 0x0f)
{
sccode = 0xef; //逐行扫描初值
while((sccode&0x01)!=0)
{
P3=sccode;
if((P3&0x0f)!=0x0f)
{
recode=(P3&0x0f)|0xf0;
while((P3&0x0f)!=0x0f);//等待键抬起
return((~sccode)+(~recode));
}
else
sccode=(sccode<<1)|0x01;
}
}
}
return 0; //无键按下,返回0
}
void getkey(void)
{
unsigned char key;
key=kbscan();
if(key==0)
{
return;
}
switch(key)
{
case 0x11:keyval=7;break;
case 0x12:keyval=4;break;
case 0x14:keyval=1;break;
case 0x18:keyval=10;break;
case 0x21:keyval=8;break;
case 0x22:keyval=5;break;
case 0x24:keyval=2;break;
case 0x28:keyval=0;break;
case 0x41:keyval=9;break;
case 0x42:keyval=6;break;
case 0x44:keyval=3;break;
case 0x48:keyval=11;break;
case 0x81:keyval=12;break;
case 0x82:keyval=13;break;
case 0x84:keyval=14;break;
case 0x88:keyval=15;break;
default:keyval=0xff;break;
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有一首英文歌,看NBA时听到的背景音乐,旋律
力得健身俱乐部地址在什么地方,我要处理点事
1998年11月10日10:25生辰八字供奉哪位真神是
冰冻蓝莓怎么做
河水为我们解除干渴,仿写树木为我们干什么
孟子说:“权,然后知轻重;度,然后知长短。
我厂的高压变频器为什么输入电压是10KV输出就
当m=72n=9求m除以n的值
下沉式卫生间可不可以直接用陶粒混疑土浇
女儿今年上高二,被老师侵犯了,应该怎么办
容县中通快递在哪
求土豪送生死好号,要电信七区的,求各位土豪
喉咙里老有怪味泛出,嘴里又苦又涩是什么原因
中国内战了几次?共几年?
豆芽机生产的豆芽要怎样防止豆芽为紫黑色的
推荐资讯
女孩5月份,见了2个相亲对象,都没有成,
什么原因决定你要读mba
Except后用什么形式的动词? There was nothi
只知道在看守所让请律师这种情况是不是犯了很
云雪雨雾冰是怎样形成的
这串继丰核雕八大弥勒佛,现在值多少钱?
电路板上电阻51R1W 能换成51R5W的么
三国杀哪个女性角色技能台词里有心伤这个词
剑网3 纯阳技能 六合独尊怎么直接使用?
用CE和OD不能用,大神来。
音乐文件wma转mp3格式时提示低音质不能转高音
在家花盆里种菜能吃么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?