找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3290|回復(fù): 4
收起左側(cè)

單片機(jī)4*4矩陣鍵盤 超簡潔程序

[復(fù)制鏈接]
ID:42147 發(fā)表于 2021-6-18 19:39 | 顯示全部樓層 |閱讀模式
以前用的矩陣鍵盤掃描程序,非常冗余。

但是這個(gè)程序,只用了了幾行代碼,巧妙地用2層嵌套,就能實(shí)現(xiàn)16個(gè)按鍵的掃描過程 和 返回值。非常適合新手學(xué)習(xí) 和 應(yīng)用。詳細(xì)代碼見附件。
1.png

單片機(jī)源程序如下:
  1. *功能:檢測被按下的按鍵,并返回相應(yīng)的值
  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. }
復(fù)制代碼



評分

參與人數(shù) 1黑幣 +60 收起 理由
admin + 60 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:42147 發(fā)表于 2021-6-19 08:22 | 顯示全部樓層
謝謝管理員的認(rèn)可
回復(fù)

使用道具 舉報(bào)

ID:894907 發(fā)表于 2021-6-19 17:06 | 顯示全部樓層
純新手看不太懂,If(!(P1&temp))這句怎么理解…………
回復(fù)

使用道具 舉報(bào)

ID:894907 發(fā)表于 2021-6-19 17:19 | 顯示全部樓層
P1第一次賦值時(shí),Buffer[j]是0xfe,假如現(xiàn)在是按下S2開關(guān),那P1實(shí)際的值是0xde,我這個(gè)理解對么……
回復(fù)

使用道具 舉報(bào)

ID:331078 發(fā)表于 2021-6-20 22:54 | 顯示全部樓層
附件在哪里啊
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表