新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于AVR單片機的輕觸式單鍵開關(guān)電路設計

        基于AVR單片機的輕觸式單鍵開關(guān)電路設計

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

        引言:

        電路已經(jīng)廣泛應用于PDA、手機和電子詞典等數(shù)碼產(chǎn)品中,其實現(xiàn)方式多種多樣。一般可采用RS觸發(fā)器、計數(shù)器以及采用555集成電路等等。在單片機的一些實際應用中,以上的實現(xiàn)方式會增加整個電路的復雜度,不能達到簡潔、實用的效果。本文將介紹一種可以在單片機應用中實現(xiàn)的,簡易、穩(wěn)定的輕觸式電路。

        1 電路原理

        如圖1所示,DC-DC為一個帶有關(guān)斷控制端的直流穩(wěn)壓電源芯片,MCU是一個單片機。當按下S1時,Q1和D1導通,穩(wěn)壓芯片工作,為單片機供電。單片機馬上將相應的I/O引腳置為輸出高,這時Q1和Q2導通,整個電路進入工作狀態(tài)。而后單片機再將這個I/O引腳設置為輸入,由于上拉電阻R4的存在,Q1和Q2一直導通。單片機一直掃描相應I/O輸入狀態(tài),如果S1沒有按下去,則這個I/O將始終為高。當S1再次按下去時,D2導通,單片機檢測到這個I/O引腳輸入為低,這時單片機就將這個I/O設置成輸出為低的狀態(tài)。Q2截止,如果按鍵抬起,Q1也會截止,穩(wěn)壓芯片將不會為單片機提供電壓,整個電路處于關(guān)斷狀態(tài)。

        基于AVR單片機的輕觸式單鍵開關(guān)電路設計


        2 關(guān)于R3和上拉電阻R4的取值

        在一些單片機中,例如AVR系列單片機,帶有內(nèi)部上拉電阻Rpu,如圖2所示。 基于AVR單片機的輕觸式單鍵開關(guān)電路設計


        可以通過單片機程序控制電阻上拉與否,從而不需要外接上拉。

        一般情況下,R3取值要遠大于R4,否則單片機I/O的輸入電壓Vpin會有低于標準輸入電壓VIH最低值的可能。從數(shù)據(jù)手冊中查到Rpu取值在20kΩ~100kΩ之間,又因為VIH的最小值約為0.6VCC。因此R3/(R3+R4)>0.6,取R4=50kΩ,并取R3/(R3+R4)=0.8 ,所以R3取值應該在200kΩ左右的范圍,可以根據(jù)實際工作情況來選擇具體的R4取值。

        3 對Vin連接方式的處理

        從圖1上不難看出,采用這種控制方式后,Q1上將會消耗一定的功率。一種降低功率消耗的方式就是將Vin直接接到電池上去,可以根據(jù)電路靈活掌握。

        4 電容C1的作用

        對于一般的來說,內(nèi)部都有BOD(Brown-down Detection)電路。這個電路具有低電壓檢測功能:當輸入電壓由高變低時,單片機就會自動復位。

        如圖1所示,想關(guān)機的時候,按下S1,單片機輸出低。按鍵抬起后,Q1、Q2截止,單片機掉電。然而單片機的BOD電路檢測到單片機的電壓突然降低后,就會使單片機復位,并將I/O設置為上拉狀態(tài),Q1、Q2導通,導制電路再次開啟。

        加入C1后,使單片機掉電后要對C1進行充電,而在C1充電沒有達到單片機工作最低電壓期間,Q1、Q2已經(jīng)截止了,從而打亂了單片機復位操作。

        5 開關(guān)機延時處理

        在一些具體的應用場合,例如手機等數(shù)碼產(chǎn)品,開關(guān)機都需要延時操作。一種簡單的實現(xiàn)方式就是,單片機在按鍵按下時開始計數(shù),直到按鍵抬起。只有這個計數(shù)值足夠大,才允許開機,否則不認為是開機操作。同理,關(guān)機也可以做類似的處理。

        單片機程序流程如圖3所示。

        基于AVR單片機的輕觸式單鍵開關(guān)電路設計


        參考文獻
        1 http://www.goldenchips.com/
        2 Atmel Atmega8 datasheet, 2003-09 (end)



        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 河池市| 山丹县| 闽侯县| 隆子县| 云浮市| 怀宁县| 青海省| 滁州市| 龙南县| 桂林市| 遂平县| 揭西县| 枣阳市| 阆中市| 武穴市| 建始县| 永丰县| 阿拉善左旗| 冀州市| 阿克| 武强县| 大厂| 眉山市| 吉安县| 赤城县| 上蔡县| 龙岩市| 旬邑县| 清丰县| 庆城县| 张家港市| 柞水县| 公主岭市| 仁布县| 门头沟区| 内乡县| 新田县| 陆河县| 田东县| 姚安县| 无极县|