李鵬 宋旭日
摘 要:對所有電子產(chǎn)品而言,電源是其不可缺少的“心臟”。隨著電子技術(shù)的發(fā)展,對電源性能要求越來越高,不僅要求其直流穩(wěn)定,更對其電壓范圍的可調(diào)與精度有了更高的要求。文章在基于單片機(jī)技術(shù)基礎(chǔ)上設(shè)計(jì)了一個(gè)數(shù)字可調(diào)直流穩(wěn)壓電源。該電源的硬件電路是由六個(gè)單元模塊組成,采用單片機(jī)AT89C52作為處理計(jì)算核心,完成外部調(diào)節(jié)與控制,實(shí)現(xiàn)了輸出電壓范圍數(shù)字可調(diào)、可擴(kuò)展的,精度為0.01伏特,并且具有一定負(fù)載功能的直流穩(wěn)壓電源的設(shè)計(jì),該電源系統(tǒng)具有一定的市場價(jià)值與推廣價(jià)值。
關(guān)鍵詞:直流穩(wěn)壓電源;數(shù)字可調(diào);STC89C52RC;LM317
1 概述
眾所周知,電源是所有電子產(chǎn)品中起著“心臟”作用的關(guān)鍵組成部件,一個(gè)“機(jī)體”能否正常穩(wěn)定的工作,“心臟”的好壞起到了至關(guān)重要的作用[1]。隨著電子技術(shù)的發(fā)展,人們對電源性能的要求越來越高,不僅要求電源輸出直流穩(wěn)定,更對其輸出電壓范圍的可調(diào)性與精度都要求甚高。相對于模擬可調(diào),數(shù)字可調(diào)更加精確、便捷。故文章設(shè)計(jì)了一個(gè)數(shù)字可調(diào)直流穩(wěn)壓電源,其具有精度0.01V的步進(jìn)調(diào)制、范圍為1.25V-10.00V(可擴(kuò)展)的直流電壓輸出、輸出誤差較小且具有帶負(fù)載和數(shù)碼顯示功能等特點(diǎn)。
2 總體設(shè)計(jì)思想及方案
本設(shè)計(jì)主要采用單片機(jī)AT89C52作為處理計(jì)算核心[2],完成外部調(diào)節(jié)與控制。本系統(tǒng)主要由六個(gè)單元模塊組成,即電源模塊、按鍵模塊、單片機(jī)最小系統(tǒng)模塊、顯示模塊、線性電阻模塊和電壓輸出模塊。其連接原理框圖如圖1所示。其中電源模塊[3]采用7815與7805芯片分別產(chǎn)生15V和5V的電壓給其它模塊供電。輸出模塊采用LM317芯片構(gòu)成,為了滿足LM317的工作特性[4],故該系統(tǒng)必須為LM317增設(shè)一個(gè)輸入比較的線性電阻模塊。線性電阻模塊是由若干個(gè)阻值以2的指數(shù)倍增長的電阻串聯(lián)而成,它利用繼電器和單片機(jī)巧妙地將數(shù)字信號與模擬信號融合到一起,即線性電阻模塊的輸出電阻取決于單片機(jī)獲取的數(shù)字信號,從而可以使系統(tǒng)實(shí)現(xiàn)一定范圍內(nèi)任意連續(xù)可調(diào)的電壓輸出。由于要對輸出電壓進(jìn)行數(shù)字調(diào)節(jié)和顯示,因此還要增設(shè)按鍵模塊和顯示模塊。顯示模塊使用4個(gè)數(shù)碼管對所輸出的電壓進(jìn)行顯示,而按鍵模塊使用4個(gè)按鍵組成,對單片機(jī)產(chǎn)生中斷信號,使單片機(jī)控制LED數(shù)碼管顯示,并且同時(shí)計(jì)算,控制線性電阻模塊的總電阻輸出,由于此阻值決定了電源系統(tǒng)最后的輸出電壓,從而實(shí)現(xiàn)輸出電壓與顯示電壓的一致。
3 主要單元模塊電路分析與設(shè)計(jì)
3.1 單片機(jī)最小系統(tǒng)模塊分析與設(shè)計(jì)
單片機(jī)最小系統(tǒng)在本設(shè)計(jì)中起到接收按鍵中斷信號,控制數(shù)碼管顯示并處理計(jì)算,改變線性電阻的輸出阻值等作用。該模塊電路是由復(fù)位電路、時(shí)鐘晶振電路、電平上拉電路和單片機(jī)芯片AT89C52組成。其中時(shí)鐘晶振電路使用12MHz的晶振,給單片機(jī)提供時(shí)鐘信號,而復(fù)位電路采用的是上電復(fù)位電路。AT89C52的P2.0到P2.7和P0.0到P0.3引腳連接在線性電阻模塊的12個(gè)繼電器開關(guān)上,P3.0到P3.2加上P1.7引腳連接在按鍵開關(guān)上,P3.3為外部中斷1下降沿觸發(fā),綁在按鍵開關(guān)公共端,P3.4到P3.7引腳端連接在數(shù)碼管位碼上。
3.2 按鍵模塊分析與設(shè)計(jì)
按鍵模塊是用4個(gè)按鍵對單片機(jī)產(chǎn)生中斷信號來控制顯示模塊顯示和線性電阻模塊的阻值,以便實(shí)現(xiàn)輸出電壓的數(shù)字調(diào)節(jié)。此模塊設(shè)置的4個(gè)按鍵,其功能分別為:
KEY1:每按鍵一次加一,輸出電壓增加1V;
KEY2:每按鍵一次加一,輸出電壓減少0.1V;
KEY3:每按鍵一次加一,輸出電壓增加0.01V;
KEY_OUT:按鍵按一次,確認(rèn)輸出電壓,使電阻模塊去匹配,使輸出與顯示值一致。
該按鍵電路是將一個(gè)外部中斷拓展成多個(gè)[5]。按鍵開關(guān)一端接地,另一端通過二極管與電阻接到Vcc上,二極管1N4007的管壓降為0.7V,端口8接到單片機(jī)外部中斷1上。按鍵沒有按下時(shí)端口4、5、6、7均為高電平,8也為高電平;每當(dāng)按鍵按下,會將端口4、5、6、7對應(yīng)接地,電平被拉低,8端口也會被拉低從而產(chǎn)生下降沿進(jìn)入中斷從而改變顯示模塊和線性電阻模塊的值的變化。
3.3 電壓輸出模塊分析與設(shè)計(jì)
電壓輸出模塊主要采用LM317芯片完成轉(zhuǎn)換輸出。由于LM317芯片的輸入電壓一般要比輸出電壓高3V(即有3V的壓降),所以要求其輸入Vin接15V的電壓。LM317芯片輸出電壓取決于ADJ端口(1引腳)與V0端(2引腳)之間的電阻R12和1引腳所接的電阻R1,計(jì)算公式如(1)所示。
Vo=1.25*(1+R1/R12)+IADJ*R1 (1)
上式中,由于R12為定值電阻,所以輸出電壓僅僅決定于R1的大小。由于本設(shè)計(jì)產(chǎn)生的電壓在1.25V到10V之間,當(dāng)Vo=10V時(shí),根據(jù)式(1)計(jì)算出R1=(10/1.25-1)*512=3968Ω,由于R1來自線性電阻模塊的阻值,所以本系統(tǒng)的線性電阻模塊采用12位阻值以2的指數(shù)遞增的電阻串聯(lián),可實(shí)現(xiàn)從1Ω到4095Ω之間的任何一阻值的選取,即可使系統(tǒng)得到范圍為1.25V到10V之間的任意電壓輸出。由式(1)還可以得到最小精度為1/512*1.25=0.0024V的調(diào)節(jié),這樣就可滿足最小0.01V的步進(jìn)調(diào)制了。
3.4 線性電阻模塊分析與設(shè)計(jì)
此模塊,前人大多使用變阻器調(diào)節(jié)或者數(shù)字模擬開關(guān)CD4066進(jìn)行調(diào)節(jié)[6],考慮到數(shù)字模擬開關(guān)存在著較大內(nèi)阻(大約為50Ω左右)會對線阻總阻值產(chǎn)生較大影響,因此在本設(shè)計(jì)中,使用繼電器來代替數(shù)字模擬開關(guān)。又考慮到擔(dān)心單片機(jī)的輸出電流不夠無法驅(qū)動(dòng)繼電器導(dǎo)通,于是給繼電器添加了一個(gè)三極管和一個(gè)放電二極管,利用三極管的導(dǎo)通截止特性來加大繼電器的驅(qū)動(dòng)電流,以便使單片機(jī)可控[7]。也就實(shí)現(xiàn)了用數(shù)字信號來精確控制模擬電阻總阻值的效果。
每當(dāng)繼電器部分電路接收到單片機(jī)傳輸過來一個(gè)高電平時(shí),對應(yīng)三極管導(dǎo)通,從而使繼電器導(dǎo)通,繼電器就將其并聯(lián)的電阻短接,使對應(yīng)電阻可選擇性的接入串行電阻中,從而達(dá)到通過數(shù)字信號改變電阻總值的目的。例如,獲取的數(shù)字信號為000101101010B,則對應(yīng)電阻為28+26+25+23+21=362Ω。
由于繼電器導(dǎo)通可認(rèn)為導(dǎo)線直接連接幾乎沒有內(nèi)阻,所以排出了由其內(nèi)阻影響線阻總阻值的情況。由于此模塊中線性電阻采用阻值為1、2、4……2048Ω(阻值以2的指數(shù)倍增長)的12個(gè)電阻串聯(lián)而成,根據(jù)等比數(shù)列的求和公式可得到此模塊理論電阻取值范圍為1Ω到4095Ω,精度為1Ω。
4 軟件程序分析與設(shè)計(jì)
在軟件編程上,采用了中斷、延時(shí)和數(shù)組調(diào)用等功能。設(shè)定了一個(gè)按鍵為標(biāo)志位,首先給4個(gè)數(shù)碼管賦予初值,當(dāng)按鍵中斷信號來了,就可通過循環(huán)使LED數(shù)碼管在不停地掃描顯示,只有當(dāng)按鍵標(biāo)志位的中斷信號來到時(shí),確認(rèn)下數(shù)碼管顯示的數(shù)值,此時(shí)才使單片機(jī)內(nèi)部進(jìn)入計(jì)算階段,匹配出與之相應(yīng)的線性電阻的12位二進(jìn)制代碼,并行輸出,由于一位二進(jìn)制數(shù)控制一個(gè)繼電器開關(guān),那么就可得到線阻模塊最后與數(shù)碼管顯示匹配的串行輸出總阻值;再根據(jù)式(1)計(jì)算出LM317的輸出電壓V0,由于IADJ一般在0uA到100uA之內(nèi)較小,故通常情況下是可以忽略的。但此設(shè)計(jì)中為了提高精度,不能忽略,因此在程序編寫上取個(gè)中間值50uA,如此在軟件上完成通關(guān)按鍵對顯示和電壓的控制與調(diào)配。
5 系統(tǒng)功能測試分析
5.1 軟件仿真測試
使用仿真軟件protuse7.10對電路系統(tǒng)進(jìn)行理論仿真,得到的測試數(shù)據(jù)如表1所示。
由表1中的測試數(shù)據(jù)可以看出,該電源系統(tǒng)實(shí)現(xiàn)了輸出電壓在1.25V到10V的調(diào)節(jié);由測試數(shù)據(jù)6和7可以看出,該電源系統(tǒng)還實(shí)現(xiàn)了精度為0.01V的電壓調(diào)節(jié)。
測試還得到:把輸出電壓任意調(diào)到5.25V,在其后接一個(gè)保護(hù)電阻,再繼續(xù)連接一個(gè)綠色LED時(shí),該綠色LED燈能亮,說明該電源系統(tǒng)可以接負(fù)載。
5.2 實(shí)物電路功能測試
用UT39B型數(shù)字萬用表測試該電源電路的輸出,得到的測試數(shù)據(jù)如表2所示。
由表2中測試數(shù)據(jù)可以看出,當(dāng)測試數(shù)據(jù)靠近電壓范圍的兩端時(shí)誤差相對來說較大,但是測試數(shù)據(jù)越距中間范圍時(shí)誤差越小,幾乎為零。究其原因,這與LM317的電壓輸出計(jì)算中的IADJ值有關(guān)。IADJ原為變值,而算法中使用的是一個(gè)中間值,因此存在這樣的波動(dòng)誤差。由于總的平均誤差不大,是在誤差允許的范圍內(nèi),所以該電源系統(tǒng)的設(shè)計(jì)還是成功有效的。
6 結(jié)束語
測試結(jié)果表明,文中設(shè)計(jì)的數(shù)字可調(diào)直流穩(wěn)壓電源的方案相比于市場上其他的方案,更具有控制靈活方便、調(diào)節(jié)精度細(xì)、顯示誤差小、工作比較穩(wěn)定等優(yōu)點(diǎn),故使用價(jià)值更高。當(dāng)然,該設(shè)計(jì)也存在功能需要進(jìn)一步提升的地方,比如如何可以更簡便地?cái)U(kuò)大電壓輸出范圍,算法計(jì)算如何更精確來減小顯示誤差等問題仍需進(jìn)一步完善。總之,設(shè)計(jì)高性能的電源是市場所需。
參考文獻(xiàn)
[1]周國雄,晏密英.一種輸出可調(diào)智能開關(guān)穩(wěn)壓電源設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008,24(34).
[2]趙建領(lǐng).51系列單片機(jī)開發(fā)寶典[M].北京:電子工業(yè)出版社,2007,1.
[3]陳念軍,胡榮強(qiáng),等.基于單片機(jī)控制的輸出連續(xù)可調(diào)開關(guān)電源的設(shè)計(jì)[J].電氣應(yīng)用,2006,25(4).
[4]王港元.電子設(shè)計(jì)制作基礎(chǔ)[M].南昌:江西科學(xué)技術(shù)出版社,2011,9.
[5]張占松,蔡宣三.開關(guān)電源的原理與設(shè)計(jì)[M].北京:電子工業(yè)出版社,2004,9.
[6]李一鳴.基于數(shù)字控制的開關(guān)電源設(shè)計(jì)[J].吉首大學(xué)學(xué)報(bào)(自然科學(xué)版),2009(6).
[7]鄭鋒,王巧芝,等.51單片機(jī)運(yùn)用系統(tǒng)典型模塊開發(fā)大全[M].北京:中國鐵道出版社,2013.
[8]藺鵬,王煒奇.多數(shù)字?jǐn)?shù)碼管顯示驅(qū)動(dòng)設(shè)計(jì)[J].蘭州高等專業(yè)??茖W(xué)校學(xué)報(bào),2002.
作者簡介:李鵬(1979-),女,漢族,湖北隨州人,九江學(xué)院,講師,碩士,研究方向?yàn)榍度胧较到y(tǒng)。宋旭日(1993-),男,漢族,江西九江人,九江學(xué)院2011級電子信息工程專業(yè)學(xué)生。