




已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
5個(gè)IO口掃描25個(gè)按鍵的解決方法 收藏 轉(zhuǎn)帖來源:/bbs/bbs_content_all.jsp?bbs_sn=854599 在做項(xiàng)目(工程)的時(shí)候,我們經(jīng)常要用到比較多的按鍵,而且IO資源緊張,于是我們就想方設(shè)法地在別的模塊中節(jié)省IO口,好不容易擠出一兩個(gè)IO口,卻發(fā)現(xiàn)仍然不夠用,實(shí)在沒辦法了就添加一個(gè)IC來掃鍵。一個(gè)IC雖然價(jià)格不高,但對于大批量生產(chǎn)而且產(chǎn)品利潤低的廠家來說,這是一筆不菲的開支!那,我們能不能想到比較好的掃鍵方法:用最少的IO口,掃最多的鍵?可以嗎?舉個(gè)例:給出5個(gè)IO口,能掃多少鍵?有人說是2*36個(gè),如圖一: 圖一對,大部分技術(shù)參考書都這么做,我們也經(jīng)常這樣做:用3個(gè)IO口作行掃描,2個(gè)IO作列檢測(為方便描述,我們約定:設(shè)置某一IO口輸出為“0”稱其為“掃某IO口”)。用行線輸出掃鍵碼,列線檢測是否有按鍵的查詢方法進(jìn)行掃鍵。掃鍵流程:在行線依次輸出011,101,110掃鍵值,行線每輸出一個(gè)掃鍵值,列線檢測一次。當(dāng)列線檢測到有按鍵時(shí),結(jié)合輸出的掃鍵值可以判斷相應(yīng)的按鍵。但是,5個(gè)IO真的只能掃6個(gè)鍵嗎?有人說可以掃9個(gè),很聰明!利用行IO與地衍生3個(gè)鍵(要注意上拉電阻),如圖二:圖二掃鍵流程:先檢測3個(gè)行IO口,對K1,K2,K3進(jìn)行掃鍵,之后如上述2*3掃鍵流程。5個(gè)IO口能掃9個(gè)鍵,夠厲害吧,足足比6個(gè)鍵多了1/2!動動腦,還能不能再多掃幾個(gè)?就幾個(gè)?一個(gè)也行!好,再想一下,硬是被逼出來了!如圖三:圖三不多不少,正好10個(gè)鍵!這種掃鍵方式比較少見吧!漂亮!掃鍵流程:設(shè)IO1輸出為“0”,檢測IO2IO5,若判斷有相應(yīng)健按下,則可知有??;若無鍵,則繼續(xù)掃鍵:設(shè)IO2輸出為“0”,檢測IO3,IO4,IO5,判斷有無鍵按下,如此類推。這里應(yīng)注意:當(dāng)掃某一IO口(輸出為“0”)時(shí),不要去檢測已經(jīng)掃過的IO口。如:此時(shí)設(shè)置IO2輸出為“0”,依次檢測IO3,IO4,IO5,但不要去檢測IO1,否則會出錯(cuò)(為什么,請思考)。感覺怎么樣?不錯(cuò)吧!讓我們再看看圖三,好有成就感!看著,看著又看到了什么?快!見圖四:圖四真強(qiáng)!被您看出20個(gè)鍵!多了一個(gè)對稱的三角形??墒?,像這樣的排列能正確掃20個(gè)鍵嗎?回答是肯定的:不能!上下三角形相互對稱,其對稱掃出的鍵無法區(qū)別。有沒有注意到分析圖三時(shí)提到的注意點(diǎn)?(“當(dāng)掃某IO口時(shí),不要去檢測已經(jīng)掃過的IO口,否則會出錯(cuò)”)我們分析一下圖四:當(dāng)IO1輸出“0”時(shí),按下K11或K11鍵都能被IO2檢測到,但I(xiàn)O2檢測卻無法區(qū)別K11和K11鍵!同理,不管掃哪個(gè)IO口,都有兩個(gè)對稱的鍵不能區(qū)分。我們假想,如果能把對稱鍵區(qū)分開來,我們就能正常地去判斷按鍵。我們在思考:有沒有單向?qū)ㄐ云骷??有!見圖五!圖五很巧妙的思路!利用二極管的單向?qū)ㄐ?,區(qū)別兩個(gè)對稱鍵。掃鍵思路:對逐個(gè)IO口掃鍵,其他四個(gè)IO口可以分別檢測其所在的四個(gè)按鍵。這樣,就不會有分析圖三時(shí)提到的注意點(diǎn)。夠酷吧!等等,大家先別滿足現(xiàn)狀,我們再看一下圖二,是不是有點(diǎn)啟發(fā)?對,我們再分析一下“用5個(gè)IO口對地衍生的5個(gè)鍵”??磮D六:圖六25個(gè)鍵!5個(gè)IO口掃出25個(gè)鍵!先別激動,我們再分析一下它的可行性,分析通得過才能真正使用。假設(shè)掃鍵流程:先掃對地的5個(gè)鍵,再如圖五掃鍵。先掃對地5個(gè)鍵,判斷沒有按鍵,接著對逐一對IO口進(jìn)行掃鍵。但當(dāng)對某一IO口掃鍵時(shí),如果有對地的鍵按下,這時(shí)有可能會誤判按鍵,因?yàn)閷Φ劓I比其他鍵有更高的響應(yīng)優(yōu)先級。例如:掃IO1,IO1輸出“0”,恰好此時(shí)K62按下,IO2檢測到有按鍵,那就不能判斷是K11還是K62。我們可以在程序上避免這種按鍵誤判:若IO2檢測到有按鍵,那下一步就去判斷是否有對地鍵按下,如果沒有,那就可以正確地判斷是K11了。我們小結(jié)掃鍵個(gè)數(shù)S:S = (N-1)*N + N 啟用二極管S = (N-1)*N /2 + N 省掉二極管 經(jīng)典嗎?太經(jīng)典了!告訴大家一個(gè)小道消息:第一個(gè)設(shè)計(jì)出此電路的人是一個(gè)美國大佬,他(她?)還為此申請了專利 我自己在protues也建立了一個(gè)6口21的仿真程序,圖如下: 這個(gè)圖一點(diǎn)要注意上拉電子一定要直接在I/O口上;本人試過因?yàn)閷/O上啦電阻接的位置不對弄到反復(fù)調(diào)整程序,也沒有得到意向的結(jié)果。最后通過keil與protues建立調(diào)試環(huán)境,才發(fā)現(xiàn)這個(gè)問題。鍵盤掃描主要函數(shù),我也貼出來了,僅供參考uchar keyscan() uchar key,i,keyscan; P1=0x3f; /準(zhǔn)備讀取P1.0P1.5 51的I/0為準(zhǔn)雙向I/0口 作為輸入是最好先將其置1 /讀取接地按鍵值 if(P1&0x3f)!=0x3f) /若無按鍵按下 P1.0P1.5為高 delay(); /延時(shí)去抖動 if(P1&0x3f)!=0x3f)/判斷哪個(gè)按鍵按下 key=P1&0x3f; return key; keyscan=0x3e; for(i=0;i6;i+) P1=keyscan; /輸出I/O口掃描 輸出 判斷 if(P1!=keyscan) /讀取I/O口,看輸出掃P1.0P1.5的值是否與掃描不同 key=P1&0x3f; /轉(zhuǎn)換掃描碼 return key; keyscan=(key
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高考作文中的后設(shè)認(rèn)知與思維創(chuàng)新探討試題及答案
- 用戶故事與需求實(shí)現(xiàn)能力測評試題及答案
- 信息處理技術(shù)員提升指南試題及答案
- 工業(yè)污水處理廠項(xiàng)目全方位可行性分析報(bào)告
- 深入解析2025網(wǎng)絡(luò)管理員考試試題及答案
- 電商產(chǎn)業(yè)園項(xiàng)目發(fā)展前景與可行性分析
- 銀行從業(yè)資格考題公司信貸試卷及答案
- 法學(xué)概論中關(guān)鍵思想流派與試題與答案
- 戰(zhàn)略管理中的數(shù)據(jù)驅(qū)動決策試題及答案
- 軟件界面設(shè)計(jì)原則試題及答案
- 礦石加工中的化學(xué)工藝安全技術(shù)考核試卷
- 中國共產(chǎn)主義青年團(tuán)紀(jì)律處分條例試行解讀學(xué)習(xí)
- 網(wǎng)絡(luò)釣魚攻擊防范-第1篇-全面剖析
- 《環(huán)境設(shè)計(jì)中的天人合一》教學(xué)課件-2024-2025學(xué)年人美版(北京)(2024)初中美術(shù)七年級下冊
- 三方水泥合同協(xié)議
- 采礦管理協(xié)議書范本
- 廣西壯族自治區(qū)2025年4月高三畢業(yè)班診斷學(xué)考試數(shù)學(xué)試卷及答案(廣西三模)
- 安徽中醫(yī)藥大學(xué)專職輔導(dǎo)員招聘筆試真題2024
- 研學(xué)部管理制度
- 2025年03月山東省環(huán)科院及權(quán)屬企業(yè)校園公開招聘筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 2024北京海淀區(qū)三年級(下)期末語文試題及答案
評論
0/150
提交評論