|
我是初學(xué)51單片機和C語言,前段時間學(xué)過矩陣按鍵后就有一個關(guān)于電腦鍵盤多按鍵的問題。
就是一般教程里面的矩陣鍵盤的程序都是行列掃描反轉(zhuǎn)來檢測位的,然后松開按鍵通過while程序來檢測,但是遇到多按鍵的問題就無解了。比如我想按下1鍵的時候1數(shù)碼管顯示1,不松手再按下4則4數(shù)碼管顯示4,再不松手按7數(shù)碼管7顯示7,哪個按鍵松開則關(guān)掉哪個。
再比如像電腦鍵盤,要輸入大寫A,如果只按照教程的按鍵程序,當(dāng)我們按下shift的時候,由于沒有松手,那程序會一直卡在while,那么按下A和其他鍵的時候是無法檢測的。如果不寫松手檢測程序,我查了一下現(xiàn)在鍵盤大多使用的是第二套掃描碼,也就是通斷都發(fā)數(shù)據(jù),那如果不寫松手檢測,也就不會發(fā)送斷碼,那輸入也是有問題的。更不用說Ctrl+Alt+這種組合按鍵了,那更沒法用了。
想了幾天也沒有頭緒,希望有經(jīng)驗的大神能幫我解惑。謝謝!
|
|