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