利用一條IO口實(shí)現(xiàn)兩個(gè)按鍵功能的實(shí)現(xiàn)
出處:lmy050272 發(fā)布于:2011-08-25 11:22:51
一條IO實(shí)現(xiàn)兩個(gè)按鍵,聽(tīng)上去確實(shí)挺新奇,既然別人能夠?qū)崿F(xiàn),我想我也應(yīng)該可以做到,看來(lái)得找找實(shí)現(xiàn)的方法。我有一個(gè)習(xí)慣,遇到某些問(wèn)題的時(shí)候,會(huì)在睡覺(jué)前想解決方法,想著想著就會(huì)睡著了,問(wèn)題的答案有沒(méi)有找到則不一定。
我知道有用一條IO實(shí)現(xiàn)多個(gè)按鍵的方法,這樣的方法大多是選用的IO支持ADC功能,用電阻分壓后通過(guò)讀電壓判斷鍵值。如果IO不支持ADC功能,也不是不行,可以用電容充放電的方法實(shí)現(xiàn)ADC,從而用普通IO間接進(jìn)行測(cè)量。(參見(jiàn)我之前關(guān)于鍵盤掃描的文章)
ADC,即移動(dòng)ADC,是Application data center的縮寫,其實(shí)是ASP模式與IDC業(yè)務(wù)的結(jié)合的演變,是由中國(guó)移動(dòng)推出的一項(xiàng)移動(dòng)信息化產(chǎn)品業(yè)務(wù),主要針對(duì)中小企業(yè),屬于移動(dòng)信息化的行業(yè)應(yīng)用,業(yè)務(wù)主要包括有移動(dòng)OA、手機(jī)郵箱、無(wú)線網(wǎng)站以及移動(dòng)進(jìn)銷存等四款行業(yè)應(yīng)用托管解決方案。真實(shí)世界的模擬信號(hào),例如溫度、壓力、聲音或者圖像等,需要轉(zhuǎn)換成更容易儲(chǔ)存、處理和發(fā)射的數(shù)字形式。模/數(shù)轉(zhuǎn)換器可以實(shí)現(xiàn)這個(gè)功能,在各種不同的產(chǎn)品中都可以找到它的身影。
這樣用一條IO實(shí)現(xiàn)兩個(gè)按鍵給我的感覺(jué)是可能需要利用到電容充放電原理,于是在半夢(mèng)半醒之中找到了實(shí)現(xiàn)的方法。

MCU(Micro Control Unit)中文名稱為微控制單元,又稱單片微型計(jì)算機(jī)(Single Chip Microcomputer)或者單片機(jī),是指隨著大規(guī)模集成電路的出現(xiàn)及其發(fā)展,將計(jì)算機(jī)的CPU、RAM、ROM、定時(shí)計(jì)數(shù)器和多種I/O接口集成在一片芯片上,形成芯片級(jí)的計(jì)算機(jī),為不同的應(yīng)用場(chǎng)合做不同組合控制。微控制器在經(jīng)過(guò)這幾年不斷地研究,發(fā)展,歷經(jīng)4位,8位,到現(xiàn)在的16位及32位,甚至64位。產(chǎn)品的成熟度,以及投入廠商之多,應(yīng)用范圍之廣,真可謂之空前。目前在國(guó)外大廠因開發(fā)較早,產(chǎn)品線廣,所以技術(shù),而本土廠商則以多功能為產(chǎn)品導(dǎo)向取勝。但不可諱言的,本土廠商的價(jià)格戰(zhàn)是對(duì)外商造成威脅的關(guān)鍵因素。
先看上圖左邊部分,如果MCU_IO1為雙向IO口,假設(shè)單片機(jī)程序按以下流程處理,看看會(huì)得到什么樣的結(jié)果?
1.MCU_IO1設(shè)定為輸出,輸出高電平一段時(shí)間,此時(shí)電容C1會(huì)充電,C1上的電壓接近電源電壓。
2.MCU_IO1設(shè)定為輸入,如果J1、J2均不按下,此時(shí)MCU_IO1可以理解成一個(gè)阻值很大的電阻接地,電容C1上的電荷會(huì)通過(guò)這個(gè)電阻逐漸釋放掉,這樣C1上的電壓會(huì)逐漸降低到零。因?yàn)镃1上的電壓下降需要一個(gè)過(guò)程,當(dāng)MCU_IO1設(shè)為輸入后馬上讀一下MCU_IO1的狀態(tài),此時(shí)會(huì)讀到什么結(jié)果?顯然是高電平狀態(tài)1。
3.再將MCU_IO1設(shè)定為輸出,輸出低電平一段時(shí)間,顯然不管電容C1處于什么狀態(tài),只要MCU_IO1輸出低電平時(shí)間足夠長(zhǎng),C1上的電壓應(yīng)該接近零。
4.再將MCU_IO1設(shè)定為輸入,如果J1、J2同樣不按下,MCU_IO1讀到的是低電平狀態(tài)0。
如果J1按下,再來(lái)看看這四步,此時(shí)電容C1已經(jīng)被強(qiáng)制接到電源上,MCU_IO1對(duì)其的充放電已經(jīng)不起作用,在步驟2中MCU_IO1讀到的狀態(tài)依然是1,但在步驟4中MCU_IO1讀到的狀態(tài)就不再是0,而是變?yōu)?。
如果J2按下,同樣看這四步,此時(shí)電容C1被強(qiáng)制接到地,MCU_IO1對(duì)其充放電也失去作用,在步驟2中MCU_IO1讀到的狀態(tài)變?yōu)?,但在步驟4中MCU_IO1讀到的狀態(tài)保持為1。
到這里我想大家應(yīng)該已經(jīng)明白了實(shí)現(xiàn)方法,根據(jù)此四步中讀到的MCU_IO1狀態(tài),就可以判斷出J1、J2是否按下。
既然已經(jīng)找到方法,是不是就萬(wàn)事大吉了呢?不然,我們還得回過(guò)頭去看看此方法是不是足夠可靠。如果J1按下,電容C1直接接到電源上,當(dāng)MCU_IO1輸出低時(shí),MCU_IO1輸出的低電平直接與電源短路,弄不好就會(huì)燒壞MCU_IO1,同理當(dāng)J2按下時(shí)MCU_IO1輸出高也存在同樣的問(wèn)題。
還有比這更嚴(yán)重的問(wèn)題,如果用戶同時(shí)按下J1和J2,哈!居然是電源和地直接短路,這樣的后果很可能就是整個(gè)產(chǎn)品的電源部分一股青煙了事,就別想產(chǎn)品還能不能工作了。
不用擔(dān)心,看一看前面電路圖中的右半部分,在開關(guān)J3和J4上分別串聯(lián)了一個(gè)220歐的電阻,這個(gè)電路不管J3和J4如何按,都不會(huì)出現(xiàn)短路的情況,按前面的四個(gè)步驟即可判斷出J3和J4有沒(méi)有按下,不過(guò)如果J3和J4同時(shí)按下并不能進(jìn)行識(shí)別判斷。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 數(shù)字電源控制與傳統(tǒng)模擬控制的深度對(duì)比2026/2/2 11:06:56
- 模擬信號(hào)調(diào)理電路技術(shù)設(shè)計(jì)與選型運(yùn)維指南2025/12/30 10:08:16
- 運(yùn)算放大器壓擺率的核心要點(diǎn)2025/9/5 16:27:55
- 深度剖析放大器穩(wěn)定系數(shù) K 與 Mu 的差異2025/9/2 16:44:05
- 什么是運(yùn)算放大器失調(diào)電流2025/9/1 17:01:22
- PCB焊盤與過(guò)孔設(shè)計(jì)核心實(shí)操規(guī)范(含可焊性與可靠性保障)
- 汽車電子常用電子元器件選型指南
- MOSFET驅(qū)動(dòng)與隔離方案設(shè)計(jì)
- 高溫環(huán)境下電源IC選型建議
- 安防監(jiān)控設(shè)備連接器應(yīng)用分析
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法









