九九热在线播放,久久?v无码αv高潮αv喷吹,精选国产一区二区,精品久久久无码中

5個IO端口實現(xiàn)了對25個按鈕的掃描,他做到了!這是必須的!

排版:小宇從:從我們從事Chip House的項目(工程)時,我們經(jīng)常使用更多的按鈕,并且IO資源很緊張,因此我們嘗試了各種方法將IO端口保存在其他模塊中。

我擠出了一個或兩個IO端口,但發(fā)現(xiàn)仍然不夠。

無法添加IC來掃描按鍵。

盡管IC的價格不高,但對于批量生產(chǎn)且產(chǎn)品利潤較低的制造商來說,這是非常昂貴的費用!然后,我們可以考慮一種更好的密鑰掃描方法:使用最少的IO端口,掃描最多的密鑰嗎?我可以?例如:給定5個IO端口,可以掃描多少個鍵?有人說它是2 * 3 = 6,如圖1所示:圖一,大多數(shù)技術(shù)參考書都這樣做,我們經(jīng)常這樣做:使用3個IO端口進行行掃描,并使用2個IO端口進行列檢測(對于為了便于描述,我們同意:將某個IO端口輸出設(shè)置為“ 0”,稱其為“掃描某個IO端口”)。

使用行行輸出掃描鍵代碼,使用列行檢查是否有按鍵查詢方法來掃描鍵。

掃描鍵過程:在行線上依次輸出011、101、110掃描鍵值。

每次在行行上輸出掃描鍵值時,都會對列行進行一次檢查。

當在列線中檢測到鍵時,可以通過組合輸出的掃描鍵值來判斷相應(yīng)的鍵。

但是,實際上5個IO只能掃描6個鍵嗎?有人說您可以掃描九個,這非常聰明!使用行IO和接地來派生3個鍵(請注意上拉電阻),如圖2所示:圖2掃描鍵過程:首先檢測3個行IO端口,掃描K1,K2和K39鍵;,K3&#39 ;,然后如圖2所示進行上述2 * 3按鍵掃描過程。

5個IO端口可以掃描9個按鍵,這足夠強大,比6個按鍵要多1/2個!用你的大腦,你可以掃描更多嗎?一些?一個很好!好吧,再想一想,我被逼出去了!圖片三:圖片三不多也不少,恰好是10個鍵!這種掃描密鑰的方式相對罕見!漂亮的!掃描按鍵過程:將IO1輸出設(shè)置為“ 0”,檢查IO2…IO5,如果判斷為有對應(yīng)的按鍵,則可以知道有按鍵;如果沒有鍵,則繼續(xù)掃描鍵:將IO2輸出設(shè)置為“ 0”,檢查IO3,IO4,IO5,判斷是否有鍵按下,依此類推。

此處注意:掃描特定的IO端口(輸出為“ 0”)時,請勿檢測已掃描的IO端口。

例如:此時,將IO2的輸出設(shè)置為“ 0”,并依次檢查IO3,IO4,IO5,但不要檢查IO1,否則將發(fā)生錯誤(請考慮原因)。

你覺得怎么樣?不錯吧!讓我們再次看一下圖3,它是如此的充實!看,看...你又看到了什么?快速地!參見圖片4:圖片4真的很強!您可以看到20個鍵!另一個對稱的三角形。

但是,這樣的安排可以正確掃描20個鍵嗎?答案是肯定的:不!上三角和下三角相互對稱,并且不能區(qū)分因?qū)ΨQ而掃出的琴鍵。

您是否注意到圖3的分析中提到的要點? (“在掃描某個IO端口時,請勿檢查已掃描的IO端口,否則將發(fā)生錯誤”。

)讓我們來分析圖4:當IO1輸出“ 0”時,按K11或K11。

39;鍵可以被檢測到IO2,但是IO2檢測不能區(qū)分K11和K11。

鑰匙!同樣,無論掃描哪個IO端口,都有兩個無法區(qū)分的對稱密鑰。

我們假設(shè),如果可以區(qū)分對稱密鑰,則可以正常判斷密鑰。

我們在思考:是否有單向通信設(shè)備?有!見圖五!圖5非常聰明的主意!使用二極管的單向電導(dǎo)率來區(qū)分兩個對稱鍵。

掃描按鍵提示:逐個IO端口掃描按鍵,其他四個IO端口可以檢測到它們所在的四個按鈕。

這樣,在圖3的分析中就不會提及任何關(guān)注點。

足夠酷!等一下,不要對現(xiàn)狀感到滿意,讓我們看一下圖2。

這是否有啟發(fā)性?是的,讓我們分析“從5個接地的IO端口派生的5個密鑰”。

參見圖片6:圖片6 25個按鍵! 5個IO端口可清除25個按鍵!不要激動,讓我們分析一下它的可行性,只有在分析之后才能使用它。

假定按鍵掃描過程:首先掃描地面上的5個按鍵,然后如圖5所示掃描按鍵。

首先將5個按鍵掃描到地面上,判斷沒有按鍵,然后一個接一個地掃描按鍵在IO端口上。

但是,在掃描某個IO端口的鍵時,如果按下接地鍵,則此時可能會誤判該鍵,因為接地鍵的響應(yīng)優(yōu)先級高于其他鍵。

例如:掃描IO1,僅在以下情況下IO1輸出“ 0”

主站蜘蛛池模板: 乐都县| 龙江县| 公安县| 伊川县| 莲花县| 新野县| 乐至县| 德江县| 甘谷县| 太白县| 襄城县| 陆良县| 天长市| 伽师县| 信丰县| 岳阳市| 明溪县| 辰溪县| 陆河县| 曲阳县| 沧州市| 张家口市| 淳安县| 临邑县| 黄冈市| 古交市| 贵德县| 临汾市| 梅河口市| 新密市| 通化市| 怀来县| 双牌县| 太白县| 吉木萨尔县| 略阳县| 平乐县| 大名县| 亳州市| 开原市| 南昌县|