SOGO論壇
標題:
8951程式求解
[列印本頁]
作者:
lanlin0911
時間:
2011-9-14 01:04:24
標題:
8951程式求解
最近自己在看書學8051程式
都是自己看實習練習
想請問如何寫4*4鍵盤去控制LCM?
作者:
Jackchen00
時間:
2011-9-15 17:18:12
本帖最後由 Jackchen00 於 2011-9-15 17:36 編輯
大大
首先你必須先將鍵盤及LCM的介面搞清楚
4x4的鍵盤基本上都是用掃描的方式讀取
也就是說需要4IN+4OUT的接腳
你可以用一個PORT來處理鍵盤的掃描
將該PORT設定成4IN/4OUT的模式
然後設計一個timer來輪流掃描/讀取鍵盤值
例如 P0.0~0.3讀取,P0.4~0.7掃描
令 P0 = 0xef;//設初始值
if ((P0 | 0xf0) != 0xff) //如果 P0 | 0xf0 的值不等於 0xff 表示有第一排的按鍵被按下
{
.....//判斷是哪一個按鍵
}
當timer time-up時(以T0或T1計時產生中斷)
令 P0 = 0xdf;
if ((P0 | 0xf0) != 0xff) //如果 P0 | 0xf0 的值不等於 0xff 表示有第二排的按鍵被按下
{
.....//判斷是哪一個按鍵
}
下一次的中斷
再令 P0 = 0xbf;
if ((P0 | 0xf0) != 0xff) //如果 P0 | 0xf0 的值不等於 0xff 表示有第三排的按鍵被按下
{
.....//判斷是哪一個按鍵
}
下一次的中斷
再令 P0 = 0x7f;
if ((P0 | 0xf0) != 0xff) //如果 P0 | 0xf0 的值不等於 0xff 表示有第四排的按鍵被按下
{
.....//判斷是哪一個按鍵
}
四個動作循環,就可讀出16個按鍵了
當然程式中還得加上debounce及判斷按鍵是否放開的程式
作者:
sogot
時間:
2011-9-30 17:43:23
LCM 有很多種,網上也有很多code ,鍵盤掃瞄因為有時序動作在,所以概念要先通,需要甚麼幫忙再回應好了
歡迎光臨 SOGO論壇 (https://oursogo.com/)
Powered by OURSOGO.COM