您的位置: 首頁 >游戲 >

5個IO口最多能掃描多少個按鍵

2022-06-12 18:30:51 編輯:畢晴藍 來源:
導讀 大家好,小科來為大家解答以上問題。5個IO口最多能掃描多少個按鍵這個很多人還不知道,現(xiàn)在讓我們一起來看看吧!1、在做項目(項目)的時候,

大家好,小科來為大家解答以上問題。5個IO口最多能掃描多少個按鍵這個很多人還不知道,現(xiàn)在讓我們一起來看看吧!

1、在做項目(項目)的時候,往往需要用到的按鍵比較多,IO資源又比較緊張,所以就想盡辦法在其他模塊中節(jié)省IO端口,最后擠出一兩個IO端口,卻發(fā)現(xiàn)還是不夠用,所以真的沒有辦法再增加一個IC來掃描按鍵。

2、一個IC的價格雖然不高,但對于大批量生產、產品利潤低的廠商來說,卻是一筆巨大的開支!

3、那么,我們能否想出一個更好的密鑰掃描方法:使用最少的IO端口,掃描最多的密鑰?可以嗎?

4、例如:給定五個IO端口,可以掃描多少個按鍵?有人說2*3=6,如圖1所示:

5、圖1

6、是的,大多數(shù)技術參考書都是這樣做的,我們經常這樣做:3個IO端口用于行掃描,2個IO端口用于列檢測(為了描述方便,我們同意將一個IO端口的輸出設置為“0”——稱之為“掃一個IO端口”)。

7、行行輸出掃描鍵碼,列行檢測是否有掃描按鍵的按鍵查詢方式。

8、掃描鍵流程:行線上依次輸出011、101、110的掃描鍵值,行線上輸出每個掃描鍵值,列線上檢測一次。

9、當列線檢測到一個鍵時,可以結合輸出的掃描鍵值來判斷對應的鍵。

10、但是,5 IO真的只能掃描6鍵嗎?有人說能掃九,很聰明!從行IO和地導出三個鍵(注意上拉電阻),如圖2所示:

11、圖二

12、掃鍵過程:首先檢測三行的IO口,掃K1’、K2’、K3’的鍵,然后按照上面2*3的掃鍵過程。

13、5個IO端口可以掃描9個按鍵,足夠強大,比6個按鍵多1/2!

14、動動腦筋。你能再掃幾個嗎?就幾個?一個就行!好了,再想想,就當是被逼出來的吧!圖3:

15、圖3

16、不多不少,就10把鑰匙!這種掃描按鍵的方式比較少見!太美了!掃鍵過程:將IO1輸出設置為“0”,檢測IO2…IO5,如果判斷有對應的按鍵按下,則知道有按鍵;如果沒有按鍵,繼續(xù)掃描按鍵:將IO2的輸出設置為“0”,檢測IO3、IO4、IO5,判斷按鍵是否被按下,以此類推。

17、這里需要注意的是,當某個IO端口被掃描(輸出為“0”)時,不要檢測已經被掃描的IO端口。

18、比如此時將IO2的輸出設置為“0”,依次檢測IO3、IO4、IO5,但不要檢測IO1,否則會出問題(為什么,請思考)。

19、你感覺如何?還不錯!讓我們再看看圖3。多么有成就感?。】?,看.你看到了什么?來??!參見圖4:

20、圖4

21、真的很強!你看到了20把鑰匙!又一個對稱的三角形。

22、然而,這樣的安排能正確掃描20個按鍵嗎?答案是肯定的:不是!上下三角形相互對稱,對稱掃過的按鍵無法區(qū)分。

23、你注意到圖3分析中提到的幾點了嗎?(“清掃IO端口時,不要檢查已清掃的IO端口,否則會出錯”)

24、我們來分析一下圖4:當IO1輸出“0”時,按下K11或K11’鍵可以被IO2檢測到,但IO2檢測無法區(qū)分K11和K11’鍵!同樣,無論掃描哪個IO端口,都有兩個對稱的按鍵無法區(qū)分。

25、我們假設如果能區(qū)分對稱密鑰,就能正常判斷密鑰。

26、我們在想:有沒有單向傳導裝置?沒錯。參見圖5!

27、圖5

28、很聰明的思維!利用二極管的單向導電性區(qū)分兩個對稱密鑰。

29、按鍵掃描思路:對IO端口逐個掃描按鍵,另外四個IO端口可以分別檢測到它們所在的四個按鍵。

30、這樣就不會有圖3分析中提到的注意點。

31、夠酷了!等等,我們不要滿足于現(xiàn)狀。讓我們再看看圖2。是不是有點啟發(fā)?是的,我們來分析一下“五個IO口的地衍生五鍵”。

32、看圖片6:

33、圖6

34、25把鑰匙!5個IO端口掃出25個按鍵!別激動,我們來分析一下它的可行性,通過分析才能使用。

35、假設按鍵掃描過程:先掃描地面上的五個按鍵,然后掃描按鍵,如圖5所示。

36、首先將五個按鍵掃描到地面,判斷沒有按鍵,然后逐一掃描IO口。

37、但是,在掃描一個鍵的IO端口時,如果按下一個接地鍵,該鍵可能會被誤判,因為接地鍵比其他鍵具有更高的響應優(yōu)先級。

38、比如掃一掃IO1,IO1輸出“0”,就在按下K62的時候,IO2檢測到有按鍵,所以無法判斷是K11還是K62。

39、我們可以在程序中避免這種對按鍵的誤判:如果IO2檢測到一個按鍵,那么下一步就是判斷是否有接地按鍵被按下,如果沒有,那么就可以正確判斷是K11。

40、我們總結了掃描鍵的數(shù)量:

41、s=(n-1)* n n-使能二極管

42、s=(n-1)* n/2n-省略二極管。

43、經典?多經典??!我告訴你一個小道消息:第一個設計這條賽道的人是一位大亨。他(她?)還為此申請了專利!在此我們默默向老板致敬!

44、來源:【微信微信官方賬號:硬件攻擊獅子】歡迎添加關注!請注明文章來源。

45、支票

本文到此結束,希望對大家有所幫助。


免責聲明:本文由用戶上傳,如有侵權請聯(lián)系刪除!

精彩推薦

圖文推薦

點擊排行

2016-2022 All Rights Reserved.平安財經網(wǎng).復制必究 聯(lián)系QQ280 715 8082   備案號:閩ICP備19027007號-6

本站除標明“本站原創(chuàng)”外所有信息均轉載自互聯(lián)網(wǎng) 版權歸原作者所有。