天天看點

别掉進矩陣按鍵掃描的坑!P17-P14設定為輸入,并使能内部上拉電阻。P13-P10依次推挽輸出低(0)和輸出開漏(高阻

作者:物聯網全棧開發

别掉進矩陣按鍵掃描的坑!

P17-P14設定為輸入,并使能内部上拉電阻。

P13-P10 依次推挽輸出低(0)和輸出開漏(高阻狀态)輪詢切換,時序如附圖2所示。

以S1閉合為例,當程式運作到步驟1時,P13推挽輸出低,而P12-P10輸出開漏高阻。

此時,P17-P14讀取到的IO口狀态隻有P17為低,其它為内部上拉電阻産生的高邏輯。

附圖1的矩陣掃描電路隻适用于沒有組合按鍵,則所連接配接的S1-S16不存在同時按下或者閉合的情況。

當有同時按下的情況時,則可能出現按鍵誤檢測到接下的情況。

甚至如果P13-P10不是輸出開漏,會有損壞晶片情況發生。

比如,當S1和S2同時閉合時,如果在步驟1檢測之前,P13設定為推挽輸出低,而P12設定為推挽輸出高。

則P12輸出的高電平沿着紅色的線,經過S2和S1短路到P11端口輸出的地,造成處理器的損壞。

比如,當S1、S2、S5同時閉合時,

在步驟1,P13輸出推挽低,P12-P10輸出高阻,P17、P16檢測到低。

在步驟2,P12輸出推挽低,P13、P11、P10輸出高阻,預期結果隻能P17檢測到低。

但是,由于存在附圖4所示的P12->S2->S1->S5->P16的潛通路,使能P16也檢測到低,進而S6也被誤判為閉合。

别掉進矩陣按鍵掃描的坑!P17-P14設定為輸入,并使能内部上拉電阻。P13-P10依次推挽輸出低(0)和輸出開漏(高阻
别掉進矩陣按鍵掃描的坑!P17-P14設定為輸入,并使能内部上拉電阻。P13-P10依次推挽輸出低(0)和輸出開漏(高阻
别掉進矩陣按鍵掃描的坑!P17-P14設定為輸入,并使能内部上拉電阻。P13-P10依次推挽輸出低(0)和輸出開漏(高阻

繼續閱讀