您现在的位置: 主页 > MCU > 单片机应用 > 51 单片机 C 语言:不规则的矩阵键盘 -
本文所属标签:
为本文创立个标签吧:

51 单片机 C 语言:不规则的矩阵键盘 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-08 

[导读]
单片机的 P4.0,P2.0--P2.6 这几个 IO 上面接一个 4*4 的键盘。这里P4.0是最低位,P2.6是最高位。一个按键接在同一个端口上 很好操作的,但是这些 IO 在两个端口上面。这些端口不连续应该咋写键盘程序

单片机的 P4.0,P2.0--P2.6 这几个 IO 上面接一个 4*4 的键盘。

本文引用地址: http://www.21ic.com/app/mcu/201806/764387.htm


这里P4.0是最低位,P2.6是最高位。


一个按键接在同一个端口上 很好操作的,但是这些 IO 在两个端口上面。


这些端口不连续应该咋写键盘程序 ?



//定义键盘端口:


sbit HH1 = P4^0;

sbit HH2 = P2^0;

sbit HH3 = P2^1;

sbit HH4 = P2^2;


sbit LL1 = P2^3;

sbit LL2 = P2^4;

sbit LL3 = P2^5;

sbit LL4 = P2^6;


char scan_key(void) //行列扫描

{

HH1 = 0;

if (!LL1) return 0;

if (!LL2) return 1;

if (!LL3) return 2;

if (!LL4) return 3;

HH1 = 1;


HH2 = 0;

if (!LL1) return 4;

if (!LL2) return 5;

if (!LL3) return 6;

if (!LL4) return 7;

HH2 = 1;


HH3 = 0;

if (!LL1) return 8;

if (!LL2) return 9;

if (!LL3) return 10;

if (!LL4) return 11;

HH3 = 1;


HH4 = 0;

if (!LL1) return 12;

if (!LL2) return 13;

if (!LL3) return 14;

if (!LL4) return 15;

HH4 = 1;


return 255; //没有按键,就返回 255

}


本程序,使用的变量最少,也不涉及其它接口。


代码最少,执行效率最高。


本程序,没有消抖和等待释放的环节,看明白后,自己添加。


----------------------------


提问者评价:用这个方法 是调出来了,谢谢!!!

----------------------------


后记:


利用 51 单片机的位操作指令,做这个是很容易的。


对比一下某些教材或网络文章的键盘程序,做而论道的自我感觉,是相当的好。




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机应用 > 51 单片机 C 语言:不规则的矩阵键盘 -
 

"51 单片机 C 语言:不规则的矩阵键盘 -"的相关文章

网站地图

围观()