1 引 言
單鍵開關(guān)電路已經(jīng)廣泛應(yīng)用于PDA、手機和電子詞典等數(shù)碼產(chǎn)品中,,其實現(xiàn)方式多種多樣,。一般可采用RS觸發(fā)器、計數(shù)器以及采用555集成電路等等,。在單片機的一些實際應(yīng)用中,,以上的實現(xiàn)方式會增加整個電路的復(fù)雜度,不能達(dá)到簡潔,、實用的效果,。本文將介紹一種可以在單片機應(yīng)用中實現(xiàn)的,簡易,、穩(wěn)定的輕觸式單鍵開關(guān)電路,。
2 電路原理
如圖1所示,DC-DC為一個帶有關(guān)斷控制端的直流穩(wěn)壓電源芯片,,MCU是一個單片機,。當(dāng)按下S1時,Q1和D1導(dǎo)通,穩(wěn)壓芯片工作,,為單片機供電,。單片機馬上將相應(yīng)的I/O引腳置為輸出高,這時Q1和Q2導(dǎo)通,,整個電路進入工作狀態(tài),。而后單片機再將這個I/O引腳設(shè)置為輸入,由于上拉電阻R4的存在,,Q1和Q2一直導(dǎo)通,。單片機一直掃描相應(yīng)I/O輸入狀態(tài),如果S1沒有按下去,,則這個I/O將始終為高,。當(dāng)S1再次按下去時,D2導(dǎo)通,,單片機檢測到這個I/O引腳輸入為低,,這時單片機就將這個I/O設(shè)置成輸出為低的狀態(tài)。Q2截止,,如果按鍵抬起,,Q1也會截止,,穩(wěn)壓芯片將不會為單片機提供電壓,,整個電路處于關(guān)斷狀態(tài)。
3 關(guān)于R3和上拉電阻R4的取值
在一些單片機中,,例如AVR系列單片機ATmega8L,,帶有內(nèi)部上拉電阻Rpu,如圖2所示,。
可以通過單片機程序控制電阻上拉與否,,從而不需要外接上拉。
一般情況下,,R3取值要遠(yuǎn)大于R4,,否則單片機I/O的輸入電壓Vpin會有低于標(biāo)準(zhǔn)輸入電壓VIH最低值的可能。從ATmega8L數(shù)據(jù)手冊中查到Rpu取值在20kΩ~100kΩ之間,,又因為VIH的最小值約為0.6VCC,。因此R3/(R3+R4)>0.6,取R4=50kΩ,,并取R3/(R3+R4)=0.8 ,,所以R3取值應(yīng)該在200kΩ左右的范圍,可以根據(jù)實際工作情況來選擇具體的R4取值,。
4 對Vin連接方式的處理
從圖1上不難看出,,采用這種控制方式后,Q1上將會消耗一定的功率。一種降低功率消耗的方式就是將Vin直接接到電池上去,,可以根據(jù)電路靈活掌握,。
5 電容C1的作用
對于一般的AVR單片機來說,內(nèi)部都有BOD(Brown-down Detection)電路,。這個電路具有低電壓檢測功能:當(dāng)輸入電壓由高變低時,,單片機就會自動復(fù)位。
如圖1所示,,想關(guān)機的時候,,按下S1,單片機輸出低,。按鍵抬起后,,Q1、Q2截止,,單片機掉電,。然而單片機的BOD電路檢測到單片機的電壓突然降低后,就會使單片機復(fù)位,,并將I/O設(shè)置為上拉狀態(tài),,Q1、Q2導(dǎo)通,,導(dǎo)制電路再次開啟,。
加入C1后,使單片機掉電后要對C1進行充電,,而在C1充電沒有達(dá)到單片機工作最低電壓期間,,Q1、Q2已經(jīng)截止了,,從而打亂了單片機復(fù)位操作,。
6 開關(guān)機延時處理
在一些具體的應(yīng)用場合,例如手機等數(shù)碼產(chǎn)品,,開關(guān)機都需要延時操作,。一種簡單的實現(xiàn)方式就是,單片機在按鍵按下時開始計數(shù),,直到按鍵抬起,。只有這個計數(shù)值足夠大,才允許開機,,否則不認(rèn)為是開機操作,。同理,關(guān)機也可以做類似的處理,。
單片機程序流程如圖3所示,。