從業(yè)將近十年!手把手教你單片機程序框架 第16講:
開場白:
上一節(jié)講了矩陣鍵盤單個觸發(fā)的壓縮代碼編程。這節(jié)講矩陣鍵盤的組合按鍵觸發(fā)。要教會大家三個知識點:
第一點:如何把矩陣鍵盤翻譯成獨立按盤的處理方式。然后按獨立按鍵的方式來實現(xiàn)組合按鍵的功能。
第二點:要提醒大家在設(shè)計矩陣鍵盤時,很容易犯的一個錯誤。任意兩個組合按鍵不能處于同一行,否則觸發(fā)性能大打折扣。在做產(chǎn)品的時候,硬件電路設(shè)計中,除了四路行輸入的要加上拉電阻,四路列輸出也應(yīng)該串入一個470歐左右的限流電阻,否則當(dāng)同一行的兩個按鍵同時按下時,很容易燒壞單片機IO口。為什么?大家仔細(xì)想想原因。因為如果沒有限流電阻,同一行的兩個按鍵同時按下時,在某一瞬間,輸出的兩路高低電平將會直接短接在一起,引起短路。在朱兆祺的學(xué)習(xí)板中,S1至S4是同一行,S5至S8是同一行,S9至S12是同一行,S13至S16是同一行。
第三點:在鴻哥矩陣鍵盤的組合按鍵處理程序中,組合按鍵的去抖動延時const_key_time_comb千萬不能等于單擊按鍵的去抖動延時const_key_time,否則組合按鍵會覆蓋單擊按鍵的觸發(fā)。
具體內(nèi)容,請看源代碼講解。
(1)硬件平臺:基于朱兆祺51單片機學(xué)習(xí)板。
(2)實現(xiàn)功能:16個按鍵中,每按一個按鍵都能觸發(fā)一次蜂鳴器發(fā)出“滴”的一聲。在同時按下S1和S16按鍵時,將會點亮一個LED燈。在同時按下S4和S13按鍵時,將會熄滅一個LED燈。
(3)源代碼講解如下:
總結(jié)陳詞:
這節(jié)講了如何把矩陣鍵盤翻譯成獨立按鍵的處理方式,然后像獨立按鍵一樣實現(xiàn)組合按鍵的功能,關(guān)于矩陣按鍵的雙擊,長按和短按,按鍵連續(xù)觸發(fā)等功能我不再詳細(xì)介紹,有興趣的朋友可以參考我前面章節(jié)講的獨立按鍵。在實際的項目中,按鍵可以控制很多外設(shè)。為了以后進一步講按鍵控制外設(shè)等功能,接下來我會講哪些新內(nèi)容呢?欲知詳情,請聽下回分解-----兩片聯(lián)級74HC595驅(qū)動16個LED燈的基本驅(qū)動程序。