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