欢迎来到嵌入式培训专家——华清远见嵌入式学院
集团官网
创客学院
研发中心
北京
上海
深圳
成都
南京
西安
武汉
广州
沈阳
济南
重庆
长沙
嵌入式AI就业班
星创客精英班
嵌入式视频教程
C语言视频教程
Linux视频教程
ARM视频教程
原创图书
研发硬实力
关于我们
联系我们
加入我们
总裁寄语
专利软著
当前位置:首页 > 嵌入式培训 > 单片机学习 > 单片机教程 > 51单片机学习笔记:矩阵键盘
记录:矩阵键盘中判断某一个键是否按下,是靠单片机扫描P3的值来确定的,P3的后四位表示行值,前四位表示列值,如0xe7 , 1110 0111,表示第四行,第一列的键被按下。
编码方法:先确定列值,在确定行值。
看源码:
uchar KeyScan() //带返回值的子函数 { uchar cord_l,cord_h;//声明列线和行线的值的储存变量 P3 = 0xf0;//1111 0000 //当某一键被按下时,高位(即置1的位)会被拉低(变成0位) if( (P3 & 0xf0) != 0xf0)//判断是否有按键按下 { delay(5);//软件消抖 if( (P3 & 0xf0) != 0xf0)//判断是否有按键按下 { cord_l = P3 & 0xf0;// 储存列线值 P3= 0x0f;// cord_h = P3 & 0x0f;// 储存行线值 while( (P3 & 0x0f) != 0x0f );//松手检测 return (cord_l + cord_h);//返回键值码 } } }
上一篇:单片机外设模块数据传输不成功的原因和解决办法
下一篇:51型号单片机定时器及其应用
· 单片机AD转换方法 为什么要AD转换?
· 新手必看的单片机开发书籍推荐
· 浅谈单片机解密 单片机解密方法
· 单片机开关方式 控制开关电源三种方式
· 如何用单片机控制驱动直流电机方法详解
回到顶部