獨立式按鍵就是各按鍵相互獨立,每個按鍵單獨占用一根I/O口線,每根I/O口線的按鍵工作狀態(tài)不會影響其他I/O口線上的工作狀態(tài)。因此,通過檢測輸入線的電平狀態(tài)可以很容易判斷哪個按鍵被按下了。
獨立式按鍵的優(yōu)點是電路配置靈活,軟件結(jié)構(gòu)簡單,并且能同時檢測到多個鍵被按下的情況。但缺點是每個按鍵需占用一根I/O口線,在按鍵數(shù)量較多時,I/O口浪費大,電路結(jié)構(gòu)復雜。因此,此鍵盤常用于按鍵較少的系統(tǒng)或操作速度較高的場合。
計本電路由上拉電阻和按鍵組成,對于每路鍵盤來講,當鍵沒有按下時,單片機相應引腳上的電平為低電平,當鍵按下時,單片機相應引腳上的電平為高電平,詳細電路如下圖所示。
程序設(shè)計
程序中采用輪詢的方式,不斷地掃描Pl口各個引腳的電平,根據(jù)引腳電平的高低判斷是否有鍵按下。該程序中采用延時法消除鍵盤抖動問題。以下是完整的程序:
當系統(tǒng)需要的按鍵數(shù)量不多時,獨立式按鍵不失為一種簡單可行的解決方案。但需要較多按鍵時,該方案占用IO資源太多。在本實例中,采用順序檢測的方法實現(xiàn)各個按鍵的檢測,并調(diào)用相應的按鍵處理程序,如果按鍵處理程序運行時間較長,有可能無法及時響應用戶的按鍵動作,導致出現(xiàn)“按鍵失靈“現(xiàn)象。在使用中,要注意每個按鍵處理程序的運行時間,盡量避免出現(xiàn)“按鍵失靈“現(xiàn)象。