課程設(shè)計基于51單片機的數(shù)控直流電源設(shè)計_第1頁
課程設(shè)計基于51單片機的數(shù)控直流電源設(shè)計_第2頁
課程設(shè)計基于51單片機的數(shù)控直流電源設(shè)計_第3頁
課程設(shè)計基于51單片機的數(shù)控直流電源設(shè)計_第4頁
課程設(shè)計基于51單片機的數(shù)控直流電源設(shè)計_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、基于51單片機的數(shù)控直流電源設(shè)計學號:XXXXXXXXXX姓名:XXX日期:2013年12月目錄第1章緒論11.1 課題的背景及意義11.2 課程設(shè)計的主要內(nèi)容1第2章系統(tǒng)總體設(shè)計32.1 方案設(shè)計與論證32.2 系統(tǒng)總框圖4第3章硬件設(shè)計63.1 硬件選型63.1.1 系統(tǒng)供電部分63.1.2 控制器部分63.1.3 顯示部分63.1.4 鍵盤部分63.1.5 數(shù)模/模數(shù)轉(zhuǎn)換部分73.1.6 掉電記憶部分73.2 硬件電路設(shè)計73.2.1 電源模塊73.2.2 DA轉(zhuǎn)換模塊83.2.3 電壓調(diào)整模塊93.2.4 鍵盤模塊103.2.5 EEPROM拓展模塊113.2.6 顯示模塊12第4章軟

2、件設(shè)計134.1主程序流程134.2 鍵盤程序流程圖144.3 EEPROM讀寫程序流程154.4 DAC0832程序流程164.5 TLC1543程序流程17第5章系統(tǒng)測試及誤差分析185.1 系統(tǒng)測試185.1.1 軟件測試185.1.2 硬件測試185.1.3 系統(tǒng)整體測試185.2 誤差分析19結(jié)論(心得體會)21參考文獻22附錄一23附錄二24第1章 緒論1.1 課題的背景及意義電源技術(shù)尤其是數(shù)控電源技術(shù)是一門實踐性很強的工程技術(shù),服務于各行各業(yè)。當今電源技術(shù)融合了電氣、電子、系統(tǒng)集成、控制理論、材料等諸多學科領(lǐng)域。直流穩(wěn)壓電源是電子技術(shù)常用的儀器設(shè)備之一,廣泛的應用于教學、科研等領(lǐng)

3、域,是電子實驗員、電子設(shè)計人員及電路開發(fā)部門進行實驗操作和研究不可缺少的電子儀器。在電子電路中,通常都需要電壓穩(wěn)定的直流電源來供電。而整個穩(wěn)壓過程是由電源變壓器、整流、濾波、穩(wěn)壓等四部分組成。然而這種傳統(tǒng)的直流穩(wěn)壓電源功能簡單、不好控制、可靠性低、干擾大、精度低且體積大、復雜度高。普通的直流穩(wěn)壓電源品種有很多,但均存在以下兩個問題:輸出電壓是通過粗調(diào)(波段開關(guān))及細調(diào)(電位器)來調(diào)節(jié)。這樣,當輸出電壓需要精確輸出,或需要在一個小范圍內(nèi)改變時,困難就較大。另外,隨著使用時間的增加,波段開關(guān)及電位器難免接觸不良,對輸出會有影響。穩(wěn)壓方式均是采用串聯(lián)型穩(wěn)壓電路,對過載進行限流或截流型保護,電路構(gòu)成復

4、雜,穩(wěn)壓精度也不高。在家用電器和其他各類電子設(shè)備中,通常都需要電壓穩(wěn)定的直流電源供電。但在實際生活中,都是由220V的交流電網(wǎng)供電。這就需要通過變壓、整流、濾波、穩(wěn)壓電路將交流電轉(zhuǎn)換成穩(wěn)定的直流電。濾波器用于濾去整流輸出電壓中的紋波,一般傳統(tǒng)電路由濾波扼流圈和電容器組成,若由晶體管濾波器來替代,則可縮小直流電源的體積,減輕其重量,且晶體管濾波直流電源不需直流穩(wěn)壓器就能用作家用電器的電源,這既降低了家用電器的成本,又縮小了其體積,使家用電器小型化。傳統(tǒng)的直流穩(wěn)壓電源通常采用電位器和波段開關(guān)來實現(xiàn)電壓的調(diào)節(jié),并有電壓表指示電壓值的大小。因此,電壓的調(diào)整精度不高,讀數(shù)欠直觀,電位器也易磨損。而基于單

5、片機控制的直流穩(wěn)壓電源能較好地解決以上傳統(tǒng)穩(wěn)壓電源的不足。隨著科學技術(shù)的不斷發(fā)展,特別是計算機技術(shù)的突飛猛進,現(xiàn)代工業(yè)應用的工控產(chǎn)品均需要有低紋波、寬調(diào)整范圍的高壓電源,而在一些高能物理領(lǐng)域,更是急需電腦或單片機控制的低紋波、寬調(diào)整范圍的電源。1.2 課程設(shè)計的主要內(nèi)容本設(shè)計給出的數(shù)控直流穩(wěn)壓電源的輸出電壓范圍為013V, 額定工作電流為0.5A, 并具有“+”、“- ”步進電壓調(diào)節(jié)功能, 其最小步進為0.05 V,紋波不大于10 mV, 此外, 還可用LCD液晶顯示器顯示設(shè)定電壓值和輸出電壓值。該系統(tǒng)原理是以STC89C52單片機為控制單元,以數(shù)模轉(zhuǎn)換芯片DAC0832輸出參考電流控制電壓調(diào)

6、整模塊NE5534輸出電壓大小,同時輸出穩(wěn)壓采用模數(shù)轉(zhuǎn)換芯片TLC1543將采樣電壓模擬信號轉(zhuǎn)換為數(shù)字信號,再通過單片機實現(xiàn)閉環(huán)控制。第2章 系統(tǒng)總體設(shè)計2.1方案設(shè)計與論證方案一:設(shè)計開關(guān)電源。在前期方案設(shè)計中采用PWM脈寬調(diào)制。它的功耗小,效率高,穩(wěn)壓范圍寬,電路形式靈活多樣,功耗小,效率高。在制作過程中發(fā)現(xiàn),PWM占空比的線性變化使相應的電流呈非線性變化,經(jīng)分析發(fā)現(xiàn)濾波電容的存在對占空比很小的PWM波積分效果明顯,導致電壓的非線性變化更顯著,特別是PWM占空比很小時(希望得到輸出的電壓很小),利用單片開關(guān)電源的PWM技術(shù)控制開關(guān)的占空比來調(diào)整輸出電壓的,以達到穩(wěn)定輸出的目的。但用數(shù)字量控

7、制的作用更加明顯。方案二:用D/A和運算放大器做電流源,即采用D/A輸出調(diào)節(jié)晶體管的偏值電流(電壓)。采用此方案能有效的縮短調(diào)節(jié)時間,并能提高輸出精度。設(shè)計方案,包括了微控制器模塊、D/A轉(zhuǎn)換模塊、穩(wěn)壓控制模塊、顯示模塊、鍵盤模塊、電源模塊五部分構(gòu)成,形成開環(huán)控制。采用常用的51芯片作為控制器,P0口和DAC0832的數(shù)據(jù)口直接相連,DA的電流輸出端接放大器UA741的反向輸入端,DAC0832和運放UA1將單片機發(fā)出的八位二進制數(shù)轉(zhuǎn)換成05V負電壓,再經(jīng)過反向比例放大器UA2將負電壓轉(zhuǎn)換成010V正電壓,輸出到電壓調(diào)整模塊NE5534,將電壓的步進值調(diào)整為0.05V。所以,當MCU輸出數(shù)據(jù)增

8、加1的時候,最終輸出電壓增加0.05V,當調(diào)節(jié)電壓的時候,可以以每次依0.05V的梯度增加或者降低電壓。數(shù)碼管顯示電路,該系統(tǒng)使用3個數(shù)碼管,可以顯示三位數(shù),分別組成顯示電路的十位、個位、小數(shù)點位。本主電路的原理是通過MCU控制DA的輸出電流大小,通過兩級放大器轉(zhuǎn)換成電壓值并放大,經(jīng)過電壓調(diào)整模塊調(diào)整作為最終輸出的電壓。方案三:用D/A和運算放大器做電流源,即采用D/A輸出調(diào)節(jié)晶體管的偏值電流(電壓),使用電壓采樣電路,通過A/D轉(zhuǎn)換實現(xiàn)閉環(huán)控制。采用此方案是對方案二的改進,能有效的縮短調(diào)節(jié)時間,進一步提高輸出精度。設(shè)計方案,其主要由微控制器模塊、D/A轉(zhuǎn)換模塊、電壓調(diào)整模塊、顯示模塊、鍵盤模

9、塊、電源模塊六部分構(gòu)成。液晶屏顯示電路,該系統(tǒng)使用LCD1602液晶顯示屏,可以清晰地顯示分別組成顯示電路的十位、個位、小數(shù)點位,同時還能顯示英文名稱和電壓/電流單位。按照方案三的設(shè)計能夠很好的滿足課程設(shè)計的目標與要求,所以最后選用方案三。2.2系統(tǒng)總框圖采用雙220V/18V 變壓器,將220V市電經(jīng)橋式整流,濾波后得+21V和-21V電壓值,再經(jīng)過三端穩(wěn)壓芯片得到需要的+15V,-15V和+5V,為系統(tǒng)提供電源支持。以單片機STC89C52為核心,輸出電流經(jīng)D/A轉(zhuǎn)換,比較放大后得到合適的電壓值,經(jīng)電壓調(diào)整后輸出UO,對UO采樣,經(jīng)A/D轉(zhuǎn)換送回到單片機與設(shè)定值比較,自動調(diào)整以實現(xiàn)閉環(huán)控制

10、。系統(tǒng)總框圖如圖2-1所示。市電系統(tǒng)電源變壓+21V+15V整流-15V+5V電壓調(diào)整及過流保護 UO比較放大取樣D/A轉(zhuǎn)換電壓顯示STC89C52A/D轉(zhuǎn)換鍵盤掉電記憶圖2-1 系統(tǒng)總框圖第3章 硬件設(shè)計3.1 硬件選型3.1.1 系統(tǒng)供電部分由于該電源總共需要+21V,+15V,-15V,+5V電壓,所以采用雙220V/18V 變壓器,經(jīng)橋式整流濾波后得到21V電壓;由三端穩(wěn)壓器7815,7915和7805分別得到+15V,-15V和+5V電壓。3.1.2控制器部分方案一 應用mega16作為控制器。AVR是51的升級版,具有速度快,且自帶512字節(jié)的EEPROM,不需要另外接擴展的EEP

11、ROM的優(yōu)點;缺點是,對AVR的使用不太熟悉,價格比較貴。方案二 采用STC89C52作為控制器。優(yōu)點:技術(shù)比較熟練,使用廣泛,價格便宜,而且功能上也完全滿足本系統(tǒng)的要求;缺點:需要連接擴展EEPROM。因為本系統(tǒng)對單片機的速度要求不是很高,而且連接擴展EEPROM也不復雜,經(jīng)過比較,選用方案二。3.1.3 顯示部分方案一 使用LED顯示。優(yōu)點:可視角度寬,介格便宜;缺點:顯示的內(nèi)容少,介面呆板,而且占用較多的IO口資源。方案二 應用1602液晶顯示模塊。優(yōu)點:界面美觀,可顯示文字及數(shù)字;缺點:價格較貴。 通過比較,我選節(jié)方案二。3.1.4 鍵盤部分方案一 利用I/O口直接連接的獨立式鍵盤,每

12、鍵都有相應的I/O口對應,編程容易控制,實現(xiàn)方便;方案二 利用P3口接成4*2鍵盤。優(yōu)點:利用6個IO口得到8個按鍵,可使操作介界變得簡單,操作也方便;缺點:軟件處理比獨立按鍵復雜。通過比較,結(jié)合本設(shè)計不需要太多IO口,方案一為最佳方案。3.1.5 數(shù)模/模數(shù)轉(zhuǎn)換部分方案一 采用PCF8591芯片。優(yōu)點:集AD,DA于一身;缺點:價格昂貴,且操作不熟悉。方案二 數(shù)模轉(zhuǎn)換部分采用DAC0832芯片;模數(shù)轉(zhuǎn)換部分采用TLC1543芯片。優(yōu)點:兩芯片均為常用芯片,操作簡單,軟件編程簡單;缺點:占用比較多的IO口,為PCB布線帶來困難。經(jīng)過比較,方案二位最佳。3.1.6 掉電記憶部分我選用應用最廣泛的

13、ST24C02芯片。該芯片價格便宜,操作簡單,抗干擾強,數(shù)據(jù)能保持一百年。3.2 硬件電路設(shè)計本系統(tǒng)由電源模塊,調(diào)壓模塊,DA轉(zhuǎn)換模塊,鍵盤模塊,EEPROM拓展模塊與顯示模塊組成。3.2.1 電源模塊220V市電經(jīng)過雙18V變壓器轉(zhuǎn)換后的到+ -18V電壓,再經(jīng)過橋式整流濾波電路,得到18*1.2=21.6(V)電壓。其中+21V電壓經(jīng)過7815轉(zhuǎn)換得到穩(wěn)定+15V電壓,再經(jīng)7805轉(zhuǎn)換得到穩(wěn)定+5V電壓;-21V電壓經(jīng)過mc7915轉(zhuǎn)換得到穩(wěn)定的-15V電壓。其中,+21V為系統(tǒng)供電,+15V,-15V,+5V分別為各獨立元件供電。圖3-2-1 電源模塊原理圖3.2.2 DA轉(zhuǎn)換模塊DA轉(zhuǎn)

14、換模塊由DAC0832,兩級運放UA741組成。DAC0832具有8位分辨率,有3種工作方式(單緩沖,雙緩沖,直通)。本設(shè)計中DAC工作于直通工作方式。D/A轉(zhuǎn)換結(jié)果采用電流形式輸出。要是需要相應的模擬電壓信號,可通過一個高輸入阻抗的線性運算放大器實現(xiàn)這個供功能。該片邏輯輸入滿足TTL電壓電平范圍,可直接與TTL電路或微機電路相接,-芯片電路原理圖如圖3-2-2所示。圖3-2-2DAC0832引腳圖和內(nèi)部結(jié)構(gòu)電路圖UA741為常用運放,由美國fairchild 公司生產(chǎn),具有低漂移,穩(wěn)定等優(yōu)點,可外置調(diào)零電路以抑制零點漂移。DAC0832和運放UA1將單片機發(fā)出的八位二進制數(shù)轉(zhuǎn)換成05V負電壓

15、,再經(jīng)過反向比例放大器UA2將負電壓轉(zhuǎn)換成010V正電壓。經(jīng)過兩級運放放大后,DAC0832的轉(zhuǎn)換分辨率為10/(28-1)=0.04V。即單片機向DAC送出的數(shù)據(jù)變化1BIT,運放UA2輸出的電壓值改變0.04V?;瑒幼冏杵鱎22的作用為調(diào)零電路以抑制零點漂移。圖3-2-3 DA轉(zhuǎn)換模塊原理圖3.2.3 電壓調(diào)整模塊本設(shè)計的電壓調(diào)整模塊如圖3-2-4所示。Q1,Q2組成復合管,以實現(xiàn)大電流輸出。由于該設(shè)計預定額定電流為0.5A,最大輸出電壓為12.5V,所以要求Q1管射極最大功率Pmax=0.5*12.5=6.25W,所以選取TIP41c。Q3管9013和電阻R1為限流保護部分。當輸出電流大

16、于0.7A時,R1上的壓降為0.7V使得T3管導通,Q3管集電極對Q2管基極分流,使得Q2管基極電流明顯變小使得輸出電流變小,從而達到過流保護的功能。發(fā)光二極管起過流提醒作用。電壓調(diào)整模塊的核心部分是NE5534。NE5534生產(chǎn)于美國德州半導體公司,具有共模抑制比高,響應速度快和壓擺率高等優(yōu)點,常用于音響,耳機等設(shè)備。由DA及運放轉(zhuǎn)換后的電壓U1輸入到NE5534的正向輸入端,R12 R13 R17組成NE5534的取樣電路。由于NE5534 Q1 Q2及取樣電路構(gòu)成負反饋,由運放的“虛短”特點,NE5534的反向輸入端的電壓U2為正向輸入端的電壓大小U1。由于運放還有“虛斷”的特點,運放的

17、輸入端對流經(jīng)取樣電路的電流不起分流作用,所以輸出電壓U0/U2=(R12+R13+R17)/(R12+R13)=1.25。即U2每改變0.04V,U0改變0.05V。由于單片機輸入到DAC0832的二進制數(shù)據(jù)每改變1BIT,U1改變0.04V即U2改變0.04V,所以U0改變0.05V。因此,該設(shè)計最小步進電壓為0.05V。電容C9的作用為抑制輸出紋波電壓。圖3-2-4 電壓調(diào)整模塊原理圖3.2.4鍵盤模塊系統(tǒng)共設(shè)置了9個獨立按鍵,實現(xiàn)了常用電壓設(shè)定,電壓“+”“”設(shè)定及正常關(guān)機辨別的功能。0108的功能分別是:設(shè)置電壓值12V,9V,5V,3V,步進-0.5V,步進+0.5V,步進-0.05

18、V,步進+0.05V。09為關(guān)機設(shè)定。圖3-2-5 按鍵模塊原理圖3.2.5EEPROM拓展模塊為了實現(xiàn)設(shè)定電壓數(shù)據(jù)的掉電保護,我在系統(tǒng)中連接了EEPROM24C02B,保證了在行駛過程中,如果數(shù)控電源意外掉電,已經(jīng)設(shè)定的電壓數(shù)據(jù)能夠下來。24C02B是ATMEL公司生產(chǎn)的一款256 byte的串行EEPROM,能重復擦寫1,000,000次,記錄的信息能保存100年以上,而且與單片機的連接只要2根線。24C02的接圖如圖3-2-6所示。圖3-2-6 EEPROM拓展模塊原理圖3.2.6顯示模塊顯示模塊主要由TLC1543及LCD液晶顯示屏組成。由美國德州公司生產(chǎn)的TLC1543,是具有10位

19、分辨率的AD轉(zhuǎn)換器,它具有11路模擬輸入通道及3路內(nèi)置自測試方式,具有顯著的優(yōu)點。LCD液晶屏幕采用1602,能夠顯示16X2個字符。由輸出端采樣得到的模擬信號,輸入到TLC1543的其中一路模擬輸入通道IN0,通過AD轉(zhuǎn)換,TLC1543將模擬量轉(zhuǎn)化為10位數(shù)字量輸入到單片機相應的IO口。通過處理,單片機將模擬量值通過1602液晶顯示出來。顯示模塊的接圖如圖3-2-7所示。圖3-2-7 顯示模塊原理圖第4章 軟件設(shè)計4.1主程序流程系統(tǒng)的核心部分是對輸出精度的閉環(huán)控制。對輸出電壓值采樣,通過A/D轉(zhuǎn)換通道送入單片機,與輸出值進行比較,若誤差不在規(guī)定范圍內(nèi),就調(diào)整STC89C52的輸出值,直到

20、滿足要求。系統(tǒng)主程序流程圖如圖4-1-1和圖4-1-2所示。 開始初始化讀取上次關(guān)機設(shè)定值DA輸出調(diào)整STC89C52的輸出值TLC1543檢測實際輸出值誤差小于50mV? N Y圖4-1-1主程序流程圖(1) 鍵盤掃描 等待輸入更改DA輸出值保存設(shè)定值屏幕顯示當前設(shè)定值與輸出值圖4-1-2主程序流程圖(2)4.2 鍵盤程序流程圖本系統(tǒng)中鍵盤程序分為鍵盤掃描子程序和按鍵功能執(zhí)行子程序。鍵盤掃描子程序流程圖如圖4-2-1所示,按鍵功能子程序流程圖如圖4-2-2所示。開始掃描鍵盤 有鍵接下?返回鍵值退出YY YN圖4-2-1 鍵盤掃描子程序流程圖有按鍵按下 開始執(zhí)行相應功能退出圖4-2-2 按鍵功

21、能執(zhí)行子程序流程圖4.3 EEPROM讀寫程序流程24C02B讀寫程序流程圖如圖4-3-1和圖4-3-2所示。開始寫入數(shù)據(jù)退出發(fā)送地址圖4-3-124C02B寫入程序流程圖讀取數(shù)據(jù)退出發(fā)送地址開始圖4-3-224C02B讀取程序流程圖 4.4 DAC0832程序流程DAC0832的程序流程圖如圖4-4所示。開始結(jié)束輸出相應值讀取數(shù)據(jù)發(fā)送數(shù)據(jù)圖4-4 DAC0832的程序流程圖4.5 TLC1543程序流程TLC1543的小程序流程圖如圖4-5所示:開始CLK發(fā)送脈沖信號發(fā)送4位地址讀取前四位數(shù)據(jù)CLK發(fā)送脈沖信號讀取后6位數(shù)據(jù)結(jié)束圖4-5 TLC1543的小程序流程圖第5章 系統(tǒng)測試及誤差分析

22、5.1 系統(tǒng)測試5.1.1 軟件測試1、測試軟件程序編輯器keil uvision4程序燒制器STC-ISP V352、編譯結(jié)果在編制完C語言后,即keil uvision4界面下,進行了調(diào)試,根據(jù)提示,我找到了程序在編寫上的錯誤,加以改正,再次進行調(diào)試。通過上述簡單的測試,證明此次設(shè)計的程序基本上正確無誤。然后,將燒錄了程序的單片機STC89C52接到系統(tǒng)電路中,查看系統(tǒng)電路的運行情況;如果程序邏輯有問題可進一步修改,直到系統(tǒng)正常運行。5.1.2 硬件測試1、電源部分提供整個電路所需各種電壓,由電源變壓器和整流濾波電路及三個輔助穩(wěn)壓芯片輸出構(gòu)成,電源變壓器的功率由需要輸出的電流大小決定,確保

23、有充足的功率余量。2、電流取樣電阻R1要選擇大功率的電阻(5W或10W)。也可使用廢舊萬用表上拆下來的電阻線。檢查電路連接無誤后,即可試機。找一塊數(shù)字表將其并聯(lián)在輸出電路上,按S1或S2設(shè)定一個電壓,此時LCD1602第一行顯示的電壓可能會有誤差,適當微調(diào)反饋電路的VR2,使其與數(shù)字表讀數(shù)一致,再將數(shù)字表串聯(lián)在電源的輸出電路上,選擇適當?shù)碾娏鳈n,接上一定的負載。此時,LCD1602第二行會顯示出電流值,適當?shù)恼{(diào)節(jié)VR3改變TLC1543參考電壓,直至顯示的電流值與萬用表顯示的電流值一致為止,校正完成后即可使用。5.1.3 系統(tǒng)整體測試1、測試工具雙蹤示波器數(shù)字萬用表2、 測試結(jié)果 測試結(jié)果如表

24、5-1所示。表5-1 電壓測試表系統(tǒng)理論值系統(tǒng)測量值誤差顯示電壓值(V)理論碼值(bit)實測碼值(bit)實測電壓值(V)3.000011110000111103.20.24.500101101001011004.60.15.000110010001100015.10.15.500110111001101105.60.16.000111100001110116.006.501000001010000006.60.17.001000110010001017.20.27.501001011010010107.60.18.001010000010011118.00.8.50101010101010

25、1008.509.001011010010110019.20.210.001100100011000119.8-0.2系統(tǒng)由于剛啟動在電壓方面不穩(wěn)定,存在一定誤差,但是單片機會對其進行控制,使系統(tǒng)再次穩(wěn)定。3、精度分析絕對誤差:U=(0.2+0.1+.+0.2+0.2)/12=0.11V相對誤差:A=U/U=(0.2/3.0+0.1/4.0+0.2/9.0+0.2/10)/12=1.8%線性度:L=Lmax/YFS=0.2/15=1.3%靈敏度:K=0.1V5.2 誤差分析從電路的原理框圖可以看出,系統(tǒng)的誤差來源于四個方面:1、 DAC0832的量化誤差。2、 基準電壓溫漂引入的誤差。3、 三

26、端穩(wěn)壓器的電路引起的誤差。4、 其它器件和線路由于溫漂、不穩(wěn)定等原因引起的誤差。結(jié)論(心得體會)經(jīng)過兩個周的艱苦奮戰(zhàn),我最終完成了課程設(shè)計。雖然過程是艱苦的,但最終成功的喜悅同樣令我快樂!此設(shè)計用D/A和運算放大器做電源,及采用D/A輸出調(diào)節(jié)晶體管的偏值電流電壓。采用此方案能有效地縮短調(diào)節(jié)時間,并能提高輸出精度,經(jīng)計算需要采用8位的D/A芯片。為了爭取時間,降低成本,我的解決方案是采用51單片機。改變電壓的大小,當單片機通過閉環(huán)負反饋調(diào)節(jié)回路的A/D轉(zhuǎn)換檢測到電壓達到設(shè)定值時,將再次對輸出電壓進行調(diào)制,直到輸出電壓達到設(shè)定值;電壓值理論上是象形變化的,不會產(chǎn)生高次諧波,基本實現(xiàn)了各項要求和目標

27、,達到了此次課程設(shè)計的預期目的。本次設(shè)計過程中,對紋波也沒有提出嚴格的要求,所以常用的穩(wěn)壓集成電路就可以滿足要求。本設(shè)計輸出的電壓穩(wěn)壓精度高,可以用在對直流電壓要求較高的設(shè)備上,或在實驗室中當作實驗電源使用。在本次設(shè)計的過程中,我發(fā)現(xiàn)很多的問題,給我的感覺就是很難,很不順手,看似原理比較簡單的電路,要動手把它給設(shè)計出來卻是很難的一件事,主要原因是我們沒有經(jīng)常動手設(shè)計過電路,還有資料的查找也是一大難題,這就要求我們在以后的學習中,應該注意到這一點,更重要的是我們要學會把從書本中學到的知識和實際的電路聯(lián)系起來,這不論是對我們以后的就業(yè)還是學習,都會起到很大的促進和幫助,我相信,通過這次的課程設(shè)計,

28、在下一階段的學習中我會更加努力,力爭把功課學好,學精。同時,通過本次課程設(shè)計,鞏固了我們學習過的專業(yè)知識,也使我們把理論與實踐從真正意義上相結(jié)合了起來;考驗了我們借助互聯(lián)網(wǎng)搜集、查閱相關(guān)文獻資料,和組織材料的綜合能力;從中可以自我測驗,認識到自己哪方面有欠缺、不足,以便于在日后的學習中得到改進、提高。參考文獻1鄒紅.數(shù)字電路與邏輯設(shè)計M. 北京:人民郵電出版社,2008.2李祥臣.模擬電子技術(shù)基礎(chǔ)教程.M 北京:清華大學出版社.2005.3童詩白,華成英.模擬電子技術(shù)基礎(chǔ)M 北京:高等教育出版社,2006.4邱關(guān)源.電路(第四版)M.北京:高等教育出版社,2006.56-745李群芳,張士軍,

29、黃建. 單片微型計算機與接口技術(shù)(第二版)M.北京:電子工業(yè)出版社,2007.6劉文濤.單片機語言C51典型應用設(shè)計M.北京:人民郵電出版社,2006.7于永,戴佳,常江.51單片機實例精講M.北京:電子工業(yè)出版社,2007.8曹鳳.微機數(shù)控技術(shù)及其應用M.四川:電子科技大學出版社,2002.9胡壽松.自動控制原理M.北京:科學出版社,2007.152-23310潘永雄,沙河,劉向陽.電子線路CAD實用教程(第二版)M.陜西:西安電子科技大學出版社,2006.11李朝青.單片機原理及接口技術(shù)(建明修訂版).北京:北京航空航天大學出版社,1999.12李朝青.單片機學習輔導測驗及解答講義.北京:

30、北京航空航天出版社,2003.13何立民.單片機高級編程.北京:北京航空航天大學出版社,1999.14張迎新,等.單片機初級編程.北京:北京航空航天大學出版社,1999.15余永權(quán).Flash單片機原理及應用.北京:電子工業(yè)出版社,1997.16錢逸秋.單片機原理及應用.北京:電子工業(yè)出版社,2002.17王兆安,劉進軍.電力電子技術(shù)(第五版).北京:機械工業(yè)出版社,2009.43-95附錄一附錄二-完整源程序#include <reg52.h>#include <intrins.h>#include <math.h>#define uint unsigne

31、d int #define uchar unsigned char typedef unsigned char BYTE;typedef unsigned int WORD;typedef bit BOOL ;BYTE code dis1 = "Power Supply"BYTE code dis2 = "welcome!"BYTE code dis3 = "Please wait."BYTE code dis4 = "SetValue: "BYTE code dis5 = "Output: "

32、BYTE setv6,getv6;/LCD輸出字符數(shù)組float n,setvalue;/電壓設(shè)定值float dq,dp,qq,pp,l,xx;/轉(zhuǎn)換傳遞參數(shù)uchar ctu,outv,inv;/DA與AD部分傳遞參數(shù)sbit TLCEOC=P11;/TLC占用IO口sbit TLCCL=P12;sbit TLCAD=P13;sbit TLCOUT=P14;sbit TLCCS=P15;sbit scl=P20;/斷電保存占用IO口sbit sda=P21;sbit DACS=P16;/DA占用IO口sbit DAWR=P17;sbit rs= P22;/液晶LCD占用IO口sbit rw

33、 = P23;sbit ep = P24;void delay(BYTE ms)/ 延時子程序BYTE i;while(ms-)for(i = 0; i< 250; i+)_nop_();_nop_();_nop_();_nop_();/* LCD顯示 子函數(shù)組 */BOOL lcd_bz()/ 測試LCD忙碌狀態(tài)BOOL result;rs = 0;rw = 1;ep = 1;_nop_();_nop_();_nop_();_nop_();result = (BOOL)(P0 & 0x80);ep = 0;return result;void lcd_wcmd(BYTE cmd

34、)/ 寫入指令數(shù)據(jù)到LCDwhile(lcd_bz();rs = 0;rw = 0;ep = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;void lcd_pos(BYTE pos)/設(shè)定顯示位置lcd_wcmd(pos | 0x80);void lcd_wdat(BYTE dat)/寫入字符顯示數(shù)據(jù)到LCDwhile(lcd_bz();rs = 1;rw = 0;ep = 0;P0 = dat;_nop_();_nop_();_

35、nop_();_nop_();ep = 1;_nop_();_nop_();_nop_();_nop_();ep = 0;void lcd_init()/LCD初始化設(shè)定lcd_wcmd(0x38);/delay(1);lcd_wcmd(0x0c);/delay(1);lcd_wcmd(0x06);/delay(1);lcd_wcmd(0x01);/清除LCD的顯示內(nèi)容delay(1);/* DA輸出函數(shù) */void write_da() P0=outv;/ 將輸出值送p0口delay(1);DACS=0; /DACS,DAWR都為低電平,0832為直通方式,送出數(shù)據(jù)delay(1);DAW

36、R=0;delay(1);delay(1); DAWR=1;/都為高電平,0832為單緩沖方式,數(shù)據(jù)緩存delay(1);DACS=1;delay(1);/* AD(TLC)讀取函數(shù) */void read_tlc()float vad;int i;i=2;while(i)uchar temp;vad=0;TLCEOC=1;delay(1);TLCCL=0;TLCCS=0;delay(1);TLCCL=0;/1TLCAD=0;temp=TLCOUT;if(temp=1)vad=vad+512;delay(1);TLCCL=1;delay(1);TLCCL=0;/2TLCAD=0;temp=TL

37、COUT;if(temp=1)vad=vad+256;delay(1);TLCCL=1;delay(1);TLCCL=0;/3TLCAD=0;temp=TLCOUT;if(temp=1)vad=vad+128;delay(1);TLCCL=1;delay(1);TLCCL=0;/4TLCAD=1;temp=TLCOUT;if(temp=1)vad=vad+64;delay(1);TLCCL=1;delay(1);TLCCL=0;/5temp=TLCOUT;if(temp=1)vad=vad+32;delay(1);TLCCL=1;delay(1);TLCCL=0;/6temp=TLCOUT;i

38、f(temp=1)vad=vad+16;delay(1);TLCCL=1;delay(1);TLCCL=0;/7temp=TLCOUT;if(temp=1)vad=vad+8;delay(1);TLCCL=1;delay(1);TLCCL=0;/8temp=TLCOUT;if(temp=1)vad=vad+4;delay(1);TLCCL=1;delay(1);TLCCL=0;/9temp=TLCOUT;if(temp=1)vad=vad+2;delay(1);TLCCL=1;delay(1);TLCCL=0;/10temp=TLCOUT;if(temp=1)vad=vad+1;delay(1

39、);TLCCL=1;delay(1);TLCEOC=0;delay(1);TLCCS=1;delay(1);i-;inv=(vad/1023)*255;/* 字符類型轉(zhuǎn)換函數(shù) */void change(float nn,BYTE a6) /float轉(zhuǎn)字符數(shù)組uint i,y;float x=nn*100;for(i=0;i<4;i+)y=x/(pow(10,(3-i);switch(y)case 0 : ai='0' ; break;case 1 : ai='1' ; break;case 2 : ai='2' ; break;case

40、 3 : ai='3' ; break;case 4 : ai='4' ; break;case 5 : ai='5' ; break;case 6 : ai='6' ; break;case 7 : ai='7' ; break;case 8 : ai='8' ; break;case 9 : ai='9' ; break;x=x-y*(pow(10,(3-i);a4=a3;a3=a2;a2='.'a5='V'void changetf()/UCHA

41、R轉(zhuǎn)FLOATsetvalue=(dq*13)/255; /dq為單片機p0口輸出的八位數(shù)字量l=dp*13/255/100;setvalue=setvalue+l+0.02;void changetu() /float轉(zhuǎn)UCHARqq=setvalue*255/13;ctu=qq;pp=(qq-ctu)*100;/* 鍵盤掃描函數(shù) */void keyscan()uchar temp1,temp;P3=0xff;temp1=P3;while(temp1=0xff)/等待按鍵P3=0xff;temp1=P3;temp=temp1;/記錄按鍵while(temp1!=0xff)/等待松手P3=0

42、xff;temp1=P3;switch(temp)case 0x7f: setvalue=setvalue+0.05;break;case 0xbf: setvalue=setvalue-0.05;break;case 0xdf: setvalue=setvalue+0.5;break;case 0xef: setvalue=setvalue-0.5;break;case 0xf7: setvalue=3;break;case 0xfb: setvalue=5;break;case 0xfd: setvalue=9;break;case 0xfe: setvalue=12;break;if(s

43、etvalue>13)setvalue=13;if(setvalue<0)setvalue=0;/* 開機歡迎界面 */void welcome()/歡迎界面BYTE i;lcd_init();/ 初始化LCDdelay(10);lcd_pos(2);/ 設(shè)置顯示位置為第一行的第3個字符i = 0;while(dis1i != '0')lcd_wdat(dis1i);/ 顯示字符i+;lcd_pos(0x44);/ 設(shè)置顯示位置為第二行第5個字符i = 0;while(dis2i != '0')lcd_wdat(dis2i);/ 顯示字符i+;del

44、ay(200);delay(200);delay(200);delay(200);delay(200);lcd_wcmd(0x01);/清除LCD的顯示內(nèi)容lcd_pos(1);/ 設(shè)置顯示位置為第一行的第1個字符i = 0;while(dis3i != '0')lcd_wdat(dis3i);/ 顯示字符i+;delay(200);delay(200);delay(200);delay(200);delay(200);/* 當前參數(shù)顯示界面 */void show()/歡迎界面BYTE i;lcd_init();/ 初始化LCDdelay(10);lcd_pos(0);/ 設(shè)

45、置顯示位置為第一行的第1個字符i = 0;while(dis4i != '0')lcd_wdat(dis4i);/ 顯示字符i+;i = 0;while(i<6)lcd_wdat(setvi);/ 顯示字符i+;lcd_pos(0x42);/ 設(shè)置顯示位置為第二行第3個字符i = 0;while(dis5i != '0')lcd_wdat(dis5i);/ 顯示字符i+;i = 0;while(i<6)lcd_wdat(getvi);/ 顯示字符i+;/* 斷電保存子函數(shù)組 */void short_delay() ; ; void _24hc_init() sda=1;scl=1;/初始化 釋放總線 void start()/ 信號開始函數(shù) sda=1; short_delay(); scl=1;short_delay();sda=0; short_delay(); void stop()/信號結(jié)束函數(shù) sda=0;short_delay(); scl=1;short_delay();sda=1;short_delay(); void response()/應答信號 uchar i;scl=1;shor

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論