标题: 单片机4*4矩阵键盘 超简洁程序 [打印本页]

作者: xuexiweilaop    时间: 2021-6-18 19:39
标题: 单片机4*4矩阵键盘 超简洁程序
以前用的矩阵键盘扫描程序,非常冗余。

但是这个程序,只用了了几行代码,巧妙地用2层嵌套,就能实现16个按键的扫描过程 和 返回值。非常适合新手学习 和 应用。详细代码见附件。


单片机源程序如下:
  1. *功能:检测被按下的按键,并返回相应的值
  2. uchar Keyscan(void)
  3. {
  4. Uchar i,j,temp,Buffer[4]={0xfe,0xfd,0xfb,0xf7};
  5. for(j=0;j<4;j++)
  6. {
  7. P1=Buffer[j];
  8. temp=0x10;
  9. for(i=0;i<4;i++)
  10. {
  11. If(!(P1&temp))
  12. {
  13. Return(i+j*4);
  14. }
  15. temp<<1;
  16. }
  17. }
  18. }
复制代码




作者: xuexiweilaop    时间: 2021-6-19 08:22
谢谢管理员的认可
作者: songzongsen    时间: 2021-6-19 17:06
纯新手看不太懂,If(!(P1&temp))这句怎么理解…………
作者: songzongsen    时间: 2021-6-19 17:19
P1第一次赋值时,Buffer[j]是0xfe,假如现在是按下S2开关,那P1实际的值是0xde,我这个理解对么……
作者: YTWO    时间: 2021-6-20 22:54
附件在哪里啊




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1