新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機應用中的實用技巧(二)

單片機應用中的實用技巧(二)

作者: 時間:2012-09-29 來源:網(wǎng)絡 收藏

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

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

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

單片機應用中的實用技巧(二)

在實際應用中,由于阻值與電壓為非線性關系,因此在電阻選用及編程時需要注意,同時A/D轉換應進行相應的軟件處理(如重復檢測兩次才確認),以消除按鍵抖動引起的誤判斷。

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

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

單片機應用中的實用技巧(二)

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

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

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

單片機應用中的實用技巧(二)

其工作過程說明如下:

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

2. 當任一鍵被按下時,GP1口將變?yōu)楦唠娖?,使單片機喚醒。此時將GP2口設置為輸出低電平,短延時,使C1電容放電。

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

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

以上方法只適用于單鍵判斷,當多鍵同時按下時是無法判斷的。該方法需要占用單片機的定時器資源。

8、單片機的自動關機功能及開機按鍵兼做功能按鍵。

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

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

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

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

單片機應用中的實用技巧(二)



關鍵詞: 單片機 實用技巧

評論


相關推薦

技術專區(qū)

關閉