永发信息网

51单片机,在做矩阵键盘(行列式键盘)的时候,IO口选择不同,按键按下时,相应IO口读入电平也不同,为什么

答案:2  悬赏:80  手机版
解决时间 2021-03-12 00:00
做矩阵键盘实验的时候发现,如果矩阵键盘I0口选用P3口,任意按键按下时,相应IO端口电平变为高电平1。。当选用P1口的时候,任意按键按下,相应的IO端口电平变为低电平0。。。
这种情况是怎么回事??
求高手解答。。。好加分。。。

乱喷和胡乱推测的,请绕道。。。
最佳答案
矩阵键盘常用开发方法是行列反转法,不知道你是怎么开发的
全部回答
#include #include unsigned char code table[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳数码管显示0~f void delay() //延时子程序 { unsigned char n, m; for (n = 100; n > 0; n--) for (m = 300; m > 0; m--); } void display(unsigned char s) //显示子程序 { p0 = table[s]; //数码管是p0口驱动的 delay(); p2 = 0x7f; //数码管选通开关(p2.7选通 也就是数码管的第八位 (从左到右顺序)) } unsigned char keycan(void) //按键扫描程序 p1.0--p1.3为行线 p1.4--p1.7为列线 { unsigned char rcode, ccode; p1 = 0xf0; // 发全0行扫描码,列线输入 if((p1&0xf0) != 0xf0) // 若有键按下 { delay();// 延时去抖动 if((p1&0xf0) != 0xf0) { rcode = 0xfe; // 逐行扫描初值 while((rcode&0x10) != 0) { p1 = rcode; // 输出行扫描码 if((p1&0xf0) != 0xf0) // 本行有键按下 { ccode = (p1&0xf0)|0x0f; do{;}while((p1&0xf0) != 0xf0); //等待键释放 return ((~rcode) + (~ccode)); // 返回键编码 } else rcode = (rcode<<1)|0x01; // 行扫描码左移一位 } } } return 0; // 无键按下,返回值为0 } void keydispaly(unsigned char key) { switch(key) { case 0x11: display(0); break; case 0x21: display(1); break; case 0x41: display(2); break; case 0x81: display(3); break; case 0x12: display(4); break; case 0x22: display(5); break; case 0x42: display(6); break; case 0x82: display(7); break; case 0x14: display(8); break; case 0x24: display(9); break; case 0x44: display(10); break; case 0x84: display(11); break; case 0x18: display(12); break; case 0x28: display(13); break; case 0x48: display(14); break; case 0x88: display(15); break; default: break; } } int main(void) { unsigned char key; while(1) { key = keycan(); keydispaly(key); } return 0; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
英语翻译น้องอ
找片子,很久以前看过。然后就忘了
汇家房产盛世名苑店在什么地方啊,我要过去处
外国人到西藏短期出差,不是旅游,需要办理什么
认识三个月的男友分手了,他说他喜欢我,但只是
无锡东高铁到徐州东高铁票价多少钱
要考研了。可是每天还是忍不住看NBA,怎么戒
昆明动车到哪些地方
祭文是祭祀或祭奠时对()或对逝者朗读的文章。
oppo手机接电话时要输入密码怎么弄
诸葛亮草船借箭能预料有大雾,为何没料到上方
螺蚌相语启示了我们什么?
三年级数学题解答
支付宝总是自动弹出版本更新界面是怎么回事,
墨竹寿司地址在哪,我要去那里办事
推荐资讯
高骁龙和联发科CPU哪个好
星河战神无尽箱子在哪找
唐蔡生鲜市场地址有知道的么?有点事想过去
经过变压器后三相负载相同,可高压上有一相功
美剧,破案的,求名字
王者荣耀要多快网速
扬州芝麻开门儿童摄影怎么样?
2003年12月24日结婚是好日子吗
佛山桂城地铁总站到广州西关海坐地铁怎么坐车
【1mil】1mil等于多少米
东北大米批发直销店怎么去啊,有知道地址的么
老大老二老三老四老五用英文怎么表达
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?