PIC單片機用于LCD段驅動(dòng)器的鍵盤(pán)接口
4×4小鍵盤(pán)的典型數字接口使用8個(gè)數字I/O引腳。但使用8個(gè)引腳作為數字I/O會(huì )占用可用于連接LCD的段驅動(dòng)器引腳的數量。
本文引用地址:http://dyxdggzs.com/article/201809/389079.htm通過(guò)使用2個(gè)數字I/O引腳和2個(gè)模擬輸入引腳,可以向PIC單片機添加一個(gè)4×4小鍵盤(pán),而無(wú)需犧牲它的任何LCD段驅動(dòng)器引腳。
下圖中顯示了小鍵盤(pán)連接示意圖。示例中使用的是PIC18F8490,但該技術(shù)可以用于任意LCDPIC MCU。
圖中使用的兩個(gè)數字I/O引腳是RBO和RB5,也可以使用任意兩個(gè)其他的數字I/O引腳。所使用的兩個(gè)模擬引腳是ANO和AN1。

要讀取小鍵盤(pán),請遵循以下步驟:
1.首先,將RBO設計為輸出高電平,將RB5設為輸入(呈高阻抗)。
2.執行兩次連續的A/D轉換,先轉換ANO.然后轉換AN1。
3。將轉換結果保存到它們各自的變量中:例如,RBO-ANO-Result和RBO-ANl-Result。
4.然后,將RB5設為輸出高電平,將RBO設為輸入(呈高阻抗)。
5.執行兩次連續的A/D轉換,先轉換ANO,然后轉換AN1。
6.將轉換結果保存到它們各自的變量中:例如,RB5-ANO-Result和RB5-ANl-Result。
7.現在,共有4個(gè)變量,代表在4×4小鍵盤(pán)的每個(gè)象限的一次按鍵操作:

8.最后,按照下表的相應欄檢查每個(gè)值。如果它處于某個(gè)值的+/-10%范圍內,則可以認為相應的鍵已被按下。
9.該循環(huán)應當大約每隔20ms重復一次。不要忘記執行按鍵彈出處理程序。例如,要求在以上步驟連續兩次返回同一鍵值(之間有20 ms的延時(shí))時(shí),才將該鍵視為被按下。同樣要求在至少兩次返回未按下任何鍵時(shí),才可以開(kāi)始下一次按鍵操作。當同一象限內的幾個(gè)鍵同時(shí)被按下時(shí),可能會(huì )產(chǎn)生表3中顯示的4種有效電平之外的電壓??梢院雎赃@些電平,或者如果希望通過(guò)使用同時(shí)按鍵來(lái)使能某些功能,也可以添加針對這些電平的解碼過(guò)程。

評論