<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)應(yīng)用中的實(shí)用技巧(二)

          單片機(jī)應(yīng)用中的實(shí)用技巧(二)

          作者: 時(shí)間:2012-09-29 來(lái)源:網(wǎng)絡(luò) 收藏

          5、用一個(gè)帶A/D的I/O口實(shí)現(xiàn)16個(gè)鍵盤輸入。

          許多帶有A/D轉(zhuǎn)換功能,在實(shí)際運(yùn)用中,如果利用其中的一路A/D轉(zhuǎn)換,可以很方便地實(shí)現(xiàn)4×4鍵盤輸入。

          如圖一所示,由于鍵盤的縱向電阻R1~R4的阻值為遞增狀態(tài),其增幅超過(guò)橫向最大阻值電阻R8,因此當(dāng)按鍵從S1至S16按下時(shí),縱向電阻與橫向電阻串聯(lián)的阻值也會(huì)相應(yīng)由低到高增加,如S1按下時(shí)串聯(lián)阻值為11k,S2按下時(shí)阻值為13.9k,S5按下時(shí)為25k,…,由于每個(gè)鍵按下后的串聯(lián)阻值均不同,并且依按鍵的次序呈逐漸增大趨勢(shì),經(jīng)與R9分壓后,會(huì)在的輸入端產(chǎn)生不同的電壓值,該電壓經(jīng)過(guò)A/D轉(zhuǎn)換后進(jìn)行相應(yīng)處理,即可判斷出是哪個(gè)鍵按下。

          單片機(jī)應(yīng)用中的實(shí)用技巧(二)

          在實(shí)際應(yīng)用中,由于阻值與電壓為非線性關(guān)系,因此在電阻選用及編程時(shí)需要注意,同時(shí)A/D轉(zhuǎn)換應(yīng)進(jìn)行相應(yīng)的軟件處理(如重復(fù)檢測(cè)兩次才確認(rèn)),以消除按鍵抖動(dòng)引起的誤判斷。

          6、用軟件產(chǎn)生PWM實(shí)現(xiàn)模擬量輸出。

          應(yīng)用中,常需要通過(guò)輸出模擬量來(lái)對(duì)外部進(jìn)行控制,但增加D/A轉(zhuǎn)換芯片不僅需要占用I/O口資源,同時(shí)也會(huì)使成本增加。下圖提供一種通過(guò)單片機(jī)的定時(shí)器中斷來(lái)用軟件的方法產(chǎn)生PWM,并經(jīng)過(guò)濾波與跟隨電路產(chǎn)生準(zhǔn)確的模擬量輸出。

          單片機(jī)應(yīng)用中的實(shí)用技巧(二)

          該電路只用單片機(jī)的一個(gè)I/O腳實(shí)現(xiàn)D/A轉(zhuǎn)換功能。其輸出的模擬量電壓Vout=VDD*D1/(D1+D2)。該輸出電壓帶有紋波,當(dāng)RC值足夠大時(shí),該紋波值幾乎為零,可忽略不計(jì)。D1與D2可通過(guò)單片機(jī)內(nèi)部的定時(shí)器中斷來(lái)準(zhǔn)確產(chǎn)生。該模擬量從輸出PWM到穩(wěn)定狀態(tài),需要一定的時(shí)間,若要縮短達(dá)到穩(wěn)定的時(shí)間,可以減小R1和C1的值,但紋波會(huì)增大,這在設(shè)計(jì)時(shí)需要注意。

          7、用2個(gè)I/O口實(shí)現(xiàn)多按鍵掃描及鍵盤喚醒

          在一些低功耗的單片機(jī)應(yīng)用場(chǎng)合中,常常需要讓單片機(jī)平時(shí)工作于睡眠狀態(tài),而在有鍵盤輸入時(shí)喚醒單片機(jī)以做相應(yīng)控制。單個(gè)按鍵喚醒單片機(jī)容易實(shí)現(xiàn),但多個(gè)按鍵都能喚醒單片機(jī)有一定的困難,本文提供一種解決該問(wèn)題的思路。

          單片機(jī)應(yīng)用中的實(shí)用技巧(二)

          其工作過(guò)程說(shuō)明如下:

          1. 單片機(jī)的GP1口具有電平變化喚醒單片機(jī)功能,單片機(jī)在進(jìn)入睡眠前將GP1口設(shè)置為輸入狀態(tài),GP2設(shè)置為輸出高電平狀態(tài)。

          2. 當(dāng)任一鍵被按下時(shí),GP1口將變?yōu)楦唠娖剑箚纹瑱C(jī)喚醒。此時(shí)將GP2口設(shè)置為輸出低電平,短延時(shí),使C1電容放電。

          3. 將GP1設(shè)置為輸出高電平,GP2設(shè)置為輸入狀態(tài),定時(shí)器開始記時(shí)。

          4. 當(dāng)GP2由低電平變?yōu)楦唠娖降乃查g,記錄定時(shí)器時(shí)間。由于不同的按鍵按下時(shí),分壓器電路改變了RC電路的電壓上升速度,因此根據(jù)測(cè)得的定時(shí)器值的大小通過(guò)查表法可判斷出是哪個(gè)鍵被按下。

          以上方法只適用于單鍵判斷,當(dāng)多鍵同時(shí)按下時(shí)是無(wú)法判斷的。該方法需要占用單片機(jī)的定時(shí)器資源。

          8、單片機(jī)的自動(dòng)關(guān)機(jī)功能及開機(jī)按鍵兼做功能按鍵。

          在許多電池供電的應(yīng)用場(chǎng)合,要求電路平時(shí)處于關(guān)機(jī)狀態(tài)以節(jié)省電能,而當(dāng)開機(jī)鍵按下后單片機(jī)才開始工作,工作完后又能自動(dòng)關(guān)機(jī)。

          下圖所示電路即可完成此種功能。在上電后,由于V1處于關(guān)斷狀態(tài),單片機(jī)并不耗電,整個(gè)電路所消耗電流只有不到10μA。

          當(dāng)S1按下后,V1導(dǎo)通,78L05獲得電源,輸出穩(wěn)定的5V使單片機(jī)開始工作,同時(shí)單片機(jī)的GP0送出高電平,使V2導(dǎo)通,這使V1保持在導(dǎo)通狀態(tài),單片機(jī)獲得持續(xù)的電源進(jìn)行工作,當(dāng)單片機(jī)任務(wù)處理完成后,單片機(jī)的GP0輸出低電平,將V2關(guān)斷,使V1也處于關(guān)斷狀態(tài),單片機(jī)的電源又被關(guān)斷,電路又恢復(fù)到低功耗狀態(tài),其消耗電流小于10μA。

          在單片機(jī)獲電工作后,原作為電源開關(guān)按鍵的S1也可以作為功能按鍵來(lái)使用,當(dāng)S1未按下時(shí),GP1口為高電平,而當(dāng)S1按下后,GP1變?yōu)榈碗娖?,因此單片機(jī)可以檢測(cè)該按鍵,并做相應(yīng)的功能控制。例如可將S1定義為開關(guān)機(jī)按鍵或其它功能按鍵。

          單片機(jī)應(yīng)用中的實(shí)用技巧(二)



          關(guān)鍵詞: 單片機(jī) 實(shí)用技巧

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();