畢業(yè)設(shè)計(論文)基于單片機的逆變電源設(shè)計_第1頁
畢業(yè)設(shè)計(論文)基于單片機的逆變電源設(shè)計_第2頁
畢業(yè)設(shè)計(論文)基于單片機的逆變電源設(shè)計_第3頁
畢業(yè)設(shè)計(論文)基于單片機的逆變電源設(shè)計_第4頁
畢業(yè)設(shè)計(論文)基于單片機的逆變電源設(shè)計_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘要本設(shè)計是基于單片機stc而設(shè)計的純正弦波逆變電源。額定輸入電壓為12v的直流電,輸出為50hz,220v的交流電。額定輸出功率為300w。設(shè)計了全方位的保護電路。包含了可以根據(jù)溫度來控制散熱風扇的開啟。實現(xiàn)了輸入低壓、過壓的關(guān)斷功能。當輸入的電壓過低時,停止逆變,可以防止損壞蓄電池,當輸入的電壓過高時,停止逆變,可以防止損壞芯片。擁有輸入防反接功能,當輸入正負極接錯時,關(guān)斷輸入與后級電路的連接,不會燒壞芯片或蓄電池。采用了一個液晶屏來顯示輸出的電壓,輸出頻率等信息。采用了兩個發(fā)光二極管來指示工作狀態(tài)。采用了一個蜂鳴器,當產(chǎn)生錯誤時,發(fā)出蜂鳴報警。輸出的交流電為標準的正弦波,而不是方波或修正

2、波,可以實現(xiàn)更寬范圍的帶負載能力。根據(jù)測試,轉(zhuǎn)換效率在85%以上,輸出穩(wěn)定,達到了良好的實驗效果。關(guān)鍵詞:單片機,逆變電源,正弦波,反接保護abstractthe design is based on stc microcontroller designed for pure sine wave inverter. rated input voltage of 12v dc, output is 50hz, 220v ac. rated output power of 300w. designed a full range of protection circuits. can be incl

3、uded to control the temperature on the cooling fan. achieve a input voltage, overvoltage shutdown function. when the input voltage is too low, the inverter is stopped, to prevent damage to the battery, when the input voltage is too high, the inverter is stopped to prevent damage to the chip. has the

4、 input anti-reverse function when the input is negative then the wrong time, and after the shutdown input stage circuit connections will not burn chips or batteries. uses a liquid crystal screen to display the output voltage, output frequency and other information. uses two light emitting diodes to

5、indicate the operating status. uses a buzzer when an error occurs, the alarm beeps. the standard ac output sine wave, rather than a square wave or modified wave, a wider range can be achieved with a load capacity. according to the test, the conversion efficiency of more than 85%, stable output, to a

6、chieve a good experimental results.key words:mcu, inverter, sine wave, reverse polarity protection目 錄1引言31.1系統(tǒng)研究的背景41.2 系統(tǒng)研究的意義52 系統(tǒng)的工作原理與結(jié)構(gòu)52.1系統(tǒng)的工作原理52.2系統(tǒng)的硬件結(jié)構(gòu)92.3系統(tǒng)的軟件設(shè)計103 系統(tǒng)的硬件設(shè)計113.1主控制器113.2 dc-dc模塊123.3 dc-ac模塊163.4 保護模塊213.5直流5v電路設(shè)計243.6顯示與報警模塊254.系統(tǒng)的軟件設(shè)計264.1開發(fā)環(huán)境介紹274.2 spwm程序設(shè)計304.4液晶驅(qū)動程

7、序設(shè)計364.5 輸出采樣程序設(shè)計405結(jié)束語42致謝43參考文獻43附錄一系統(tǒng)原理圖44附錄二系統(tǒng)源程序451 引言1.1系統(tǒng)研究的背景逆變電源是指將直流電源轉(zhuǎn)換為交流電源的的裝置。隨著光伏發(fā)光的推廣,汽車和車載電器數(shù)量的增加,ups的廣泛應用,逆變電源的應用場合也越來越多,成了電力電子技術(shù)中不可缺少的部件。而隨著電子技術(shù)的發(fā)展,逆變電源也有一個高速發(fā)展的歷程。最早的逆變系統(tǒng)采用的是,通過將直流電源供給直流電動機,直流電機通過機械傳動帶動交流發(fā)電機,來完成直交流的轉(zhuǎn)換。這種轉(zhuǎn)換方式占用空間大,重量大,產(chǎn)生一定的噪聲,而且效率十分低下。到二十世紀六、七十年代,晶閘管的問世使得逆變電源的技術(shù)得到

8、了發(fā)展。逆變電源開始廣泛使用晶閘管來作為主要器件,與傳統(tǒng)的機械式轉(zhuǎn)換相比,效率明顯提高。但缺點也十分明顯,轉(zhuǎn)換的波形為方波,而不是正弦波,無法帶動電感類負載。限于晶閘管的功率,電源的輸出功率較小。進入八十年代以后,電子元件的種類也越來越多,誕生了功率場效應管、mos管、可關(guān)斷晶閘管、電力用晶體管、絕緣柵極晶體管等類型的功率型器件。這些器件的出現(xiàn)為逆變電源技術(shù)的高速發(fā)展奠定了堅實的基礎(chǔ)。使得逆變電源從容量到頻率等參數(shù)越來越高,占用的體積減小,逆變轉(zhuǎn)換效率提高,各種品質(zhì)指標也進一步提升。進入21世紀以后,隨著微電子技術(shù)的發(fā)展,逆變電源在設(shè)計上,也漸漸使用微電子元件。得益于微電子元件的精密程度,逆變

9、電源的輸出的穩(wěn)定性,波形的精確度等都得到了保證。目前的逆變電源按照輸出波形可分為三種。第一種是方波逆變電源。輸出波形是標準的方波。這種逆變電源的優(yōu)點是結(jié)構(gòu)簡單,轉(zhuǎn)換效率較高,技術(shù)成熟。缺點是變壓器和濾波器的體積、重量較大,工作的噪音較大。而由于輸出波形是方波,上升和下降是突變的,當負載為感性負載時,由于電感對儲能特性,會產(chǎn)生尖峰脈沖高壓。造成負載或電源的損壞。第二種是修正波逆變電源。輸出波形是將多個方波疊加而成的修正正弦波。大大減小了輸出波形的諧波含量。與方波逆變電電源相比,性能得到了很大的提升。第三種是純正弦波逆變電源。其輸出波形為諧波含量很小的正弦波。與市電相比波形基本一致。可以帶動所有類

10、型的負載。但缺點是技術(shù)不夠成熟。成本較高。1.2 系統(tǒng)研究的意義一方面目前私家車已經(jīng)走進千家萬戶,而車內(nèi)可使用電器卻因為電源受到諸多的限制。汽車的攜帶的蓄電池輸出直流12v,而大部分電器的額定電壓是市電交流220v。而目前常見的車載逆變電源有諸多缺點。如無輸入低壓保護,超額使用后,導致汽車無法啟動。沒有設(shè)計顯示屏,用戶無法查看輸出參數(shù)。沒有配置短路保護,過載保護等。另一方面隨著太陽能發(fā)光的大力推廣,逆變電源在太陽能發(fā)光的過程中有著不可缺少的作用。太陽能發(fā)光是將光能轉(zhuǎn)換為電能存儲在蓄電池中。而人們使用的家電無法直接通過蓄電池供電。必須通過逆變電源將直流電轉(zhuǎn)換為交流電。隨著逆變電源應用的場合越來越

11、多,對逆變電源技術(shù)的發(fā)展要求也越來越高。目前逆變電源的設(shè)計多采用純硬件設(shè)計的分立式元件組成的結(jié)構(gòu)。隨著人們使用的電器數(shù)量和種類的增加,對逆變電源的波形、容量等參數(shù)的要求也越高,使得設(shè)計的逆變電源的復雜度也越來越高,采用的元件也越來越多。而由于元件數(shù)量過多,造成的電源穩(wěn)定性較差,往往由于某一個元件的質(zhì)量差而導致整個系統(tǒng)的損壞。而且傳統(tǒng)逆變電源基于模擬元件的設(shè)計,沒有可編程的能力,使得逆變電源的可擴展能力差,沒有顯示功能等問題。因此針對單片機來作為逆變電源主控制芯片的研究顯的十分重要。2 系統(tǒng)的工作原理與結(jié)構(gòu)2.1系統(tǒng)的工作原理逆變電源是一種將低壓直流電轉(zhuǎn)換為高壓交流電的過程。一個直流電源對一個負

12、載的兩端輪流供電時便在負載的兩端形成一個交流電的過程。工作模型如圖2-1所示。圖2-1 逆變電源工作模型當圖中的s1、s4閉合,s2、s3斷開時。電流從負載的左側(cè)流向右側(cè)。負載兩端的電壓u0是一個正電壓。電流方向和波形如圖2-2所示。圖2-2 s1、s4閉合時的電流方向和波形當圖中的s2、s3閉合,s1、s4斷開時。電流從負載的右側(cè)流向左側(cè)。負載兩端的電壓u0是一個負電壓。電流方向和波形如圖2-3所示。圖2-3 s2、s3閉合時的電流方向和波形當開關(guān)開始和閉合的速度很快時,負載兩端的電壓便形成了一個交流電的過程。實際應用中,只要將圖中的開關(guān),改為可控的開關(guān)器件,這些開關(guān)器件組成的電路稱為全橋。

13、全橋逆變電源主電路結(jié)構(gòu)如圖2-4所示。圖2-4 全橋逆變電源結(jié)構(gòu)圖v1、v2、v3和四個開關(guān)管以及vd1、vd2、vd3和vd4四個續(xù)流二極管構(gòu)成了左右兩個橋臂。在任何時刻,左右兩個橋臂的上下兩個開關(guān)器件不可以同時打開,否則輸入電源將短路。四個開關(guān)器件也不可同時判斷,否則輸出出現(xiàn)不可控的狀態(tài)。這些開關(guān)器件的控制信號可以采用周期調(diào)制信號。而這些周期信號經(jīng)過正弦脈寬調(diào)制,稱為spwm調(diào)制,電路結(jié)構(gòu)稱為spwm全橋結(jié)構(gòu)。典型的spwm調(diào)制方式有兩種,分別為單極性調(diào)制和雙極性調(diào)制。單極性調(diào)制是指全橋的輸出包括正負兩個電平,輸出載波頻率與開關(guān)工作頻率相同。單極性調(diào)制的波形圖如圖2-5所示。圖2-5 單極

14、性調(diào)制波形圖在ur和uc的交點時刻控制開關(guān)管的通斷,uof表示uo的基波分量。在波形ur的正半周,v1的狀態(tài)為通, v2的狀態(tài)為斷。在uruc時, v3的狀態(tài)為斷, v4的狀態(tài)為通。此時的uo=ud。在uruc時,v3的狀態(tài)為通, v4的狀態(tài)為斷。此時的uo=0。在uruc時,開關(guān)管v1和v4的狀態(tài)為通, 開關(guān)管v2和v3狀態(tài)為斷。此時的uo=ud。在ur2qg/(vcc101.5)。經(jīng)過計算,本次設(shè)計的自舉電容為100uf/35v。自舉二極管是組成自舉電路的重要的自舉器件,主要作用是阻斷直流干線上的高壓。自舉二極管所需承受的電流是柵極電荷與開關(guān)頻率之積。本次設(shè)計采用的自舉二極管為恢復二極管f

15、m1s。該二極管擁有較小的反向漏電流,可以有效的減小電荷損失。3.3.2 開關(guān)電路的設(shè)計本次設(shè)計中開關(guān)管的輸入電壓在400v左右,輸出功率在300w以上。因此必須使用功率足夠的功率開關(guān)管。本次設(shè)計采用的是irf840作為開關(guān)管。irf840的最大漏源電壓在500v,漏極電流為8a左右,足以滿足本次設(shè)計的要求。設(shè)計的電路如圖3-8所示。圖3-8 開關(guān)電路原理圖開關(guān)管的控制信號為ir2110s隔離后的spwm正弦波,輸入電壓為400v左右的直流電,經(jīng)過spwm波形調(diào)制后,輸出220v,50hz的正弦波交流電。經(jīng)過后級的lc濾波電路后,使輸出波形的更加純凈。3.3.3 lc濾波電路設(shè)計為了濾除開關(guān)管

16、輸出的交流電中高頻成分,以及增強電源的emi特性。設(shè)計了一個lc濾波電路。電路原理圖如圖3-9所示。圖3-9 lc濾波電路l1采用的是磁環(huán)繞制導線而成的差模電感。磁環(huán)為直徑40mm的鐵硅鋁材料制作。采用1.18的線在磁環(huán)上繞90圈左右,使用的線長在4.5米左右。磁環(huán)的導磁率為125,電感量為1.5mh,導磁率為60。繞制時分兩層,第一層為45圈,內(nèi)圈的線緊密繞制,外圈線的每圈留有一個空隙。第二層為45圈,內(nèi)圈疊在第一層線上,外圈嵌在第一層的空隙中。3.4 保護模塊3.4.1 溫度保護本設(shè)計有兩路溫度控制電路。一個是當溫度超過一定值時開啟散熱風扇。另一個是作為dc-dc模塊的溫度補償模塊,當溫度

17、過高時,停止前級dc-dc的轉(zhuǎn)換。散熱風扇的控制采用的是熱保護器ksd9700。ksd9700是由兩片不同材料的金屬片組成的。正常溫度情況下,兩個金屬片斷開,相當于開關(guān)斷開。風扇不工作。當金屬片感知溫度超過40攝氏度時,兩個金屬片粘合,相當于開關(guān)閉合,此時風扇開始工作。當溫度恢復正常時,兩個金屬片又重新斷開。設(shè)計的電路如圖3-10所示。圖3-10 散熱風扇電路設(shè)計dc-dc模塊的溫度補償傳感器采用ntc熱敏電阻。熱敏電阻接入dc-dc模塊中pwm脈沖產(chǎn)生芯片sg3525的關(guān)斷端。當溫度過高時,sg3525停止工作。3.4.2輸入保護輸入的保護主要有三部分。一是防止輸入反接。二是防止輸入電壓過低

18、。三是防止輸入電壓過高。逆變器的輸入端為直流輸入,存在輸入接反的可能性。因此,設(shè)計了一防反接電路。當接反時,切斷電源的輸入,防止損壞后級電路。設(shè)計的電路如圖3-11所示。圖3-11 反接保護原理圖當輸入電源正確接入時,mos管體二極管正向?qū)ǎ琺os管的柵極電壓大于源極電壓,因此mos管導通。后級負載正常工作。當輸入電源接錯時,二極管反射截止,mos的截止,電路中沒有電流流過,切斷了后級負載與電源的連接。電路中ri1與電容ci1為緩沖電路,防止上電瞬間電壓過高損壞mos管。z1為穩(wěn)壓管,防止mos管的柵極和源極兩端電壓過高,損壞mos管。輸入電壓保護采用一個lm324運放組成的電壓比較器。當輸

19、入電壓過高或過低時,關(guān)斷dc-dc模塊中pwm的產(chǎn)生,即可停止轉(zhuǎn)換。同時,輸出一個信號控制蜂鳴器發(fā)出蜂鳴聲報警。設(shè)計的電路如圖3-12所示。圖3-12 輸入電壓保護電路原理圖3.4.3輸出保護輸出保護的設(shè)計采用的是從開關(guān)管的輸出部分取樣,反饋到一個lm393組成的電壓比較器,一路送入單片機的ad端,經(jīng)過ad轉(zhuǎn)換后修正輸出。另一路送入ir2110s的關(guān)斷端(sd端)。當ir2110s的sd端接收到信號后,停止驅(qū)動隔離,則不再輸出spwm波形。有效的保護的電路。設(shè)計的電路如圖3-13所示。3-13 輸出保護電路原理圖3.5直流5v電路設(shè)計系統(tǒng)輸入的電壓為直流的12v,輸出為交流220v,而系統(tǒng)內(nèi)各

20、芯片工作電壓為直流5v。因此需要設(shè)計一個直流5v的產(chǎn)生電路,作為芯片的電源使用。本設(shè)計采用的方案為將輸入的12v直流電壓經(jīng)過7805三端穩(wěn)壓集成電路,芯片輸出穩(wěn)定的直流5v電源。7805包含三條引腳,分別是輸入、輸出端和接地端。因此,所組成的穩(wěn)壓電路也十分簡單,僅需配置幾個濾波電容,便可以組成一個穩(wěn)壓電路。芯片內(nèi)部已經(jīng)集成了過流、過熱的保護電路。設(shè)計的穩(wěn)壓電路如圖3-14所示。3-13 直流5v電源原理圖3.6顯示與報警模塊3.6.1液晶顯示本設(shè)計采用的液晶顯示是12832液晶模塊。常見的液晶模塊的驅(qū)動方式有三種,分別為靜態(tài)驅(qū)動、單矩陣驅(qū)動和主動矩陣驅(qū)動。矩陣驅(qū)動系統(tǒng)包括行驅(qū)動器,列驅(qū)動器,偏

21、壓電路,電源等電路。行寄存器在內(nèi)部的數(shù)據(jù)傳輸為串行方式,列寄存器有兩種數(shù)據(jù)傳輸方式,一種是串行傳輸,一種是并行數(shù)據(jù)傳輸。12832液晶模塊引腳定義如表3-2所示。引腳名稱功能說明1vo亮度調(diào)整,外部接電阻2vr亮度調(diào)整,外部接電阻3gnd地4vcc電源5nc保留端6rs(cs)并行:選擇寄存器;串行:數(shù)據(jù)寄存器片選端7rw(sid)并行:讀寫控制器;串行:數(shù)據(jù)輸入端8e(sclk)并行:讀寫數(shù)據(jù)起始端;串行:輸入脈沖9d0數(shù)據(jù)0位,僅在并行有效10d1數(shù)據(jù)1位,僅在并行有效11d2數(shù)據(jù)2位,僅在并行有效12d3數(shù)據(jù)3位,僅在并行有效13d4數(shù)據(jù)4位,僅在并行有效14d5數(shù)據(jù)5位,僅在并行有效1

22、5d6數(shù)據(jù)6位,僅在并行有效16d7數(shù)據(jù)7位,僅在并行有效17psb控制信號,0為串行,1為并行18rst低有效的復位信號19lk液晶內(nèi)部背光源負極20la液晶內(nèi)部背光源正極表3-2 lcd12831管腳為了節(jié)約管腳的使用,簡化電路連接,本次設(shè)計采用的是串行口連接。當psb引腳連接低電平時,液晶進入串行工作模式。在串行工作模式下,根據(jù)同步時鐘線sclk和串行數(shù)據(jù)線sid配合完成數(shù)據(jù)的發(fā)送與接收。設(shè)計的電路如圖3-13所示。圖3-13 液晶顯示模塊原理圖3.6.2蜂鳴器報警當輸入電壓過高或過低時,會通過蜂鳴器產(chǎn)生蜂鳴聲,蜂鳴器的電路設(shè)計如圖3-14所示。圖3-14 蜂鳴器電路原理圖4.系統(tǒng)的軟件

23、設(shè)計硬件是一個設(shè)計的身體,而軟件則是一個設(shè)計的靈魂。兩者缺一不可。因此,對系統(tǒng)的軟件設(shè)計也很重要。系統(tǒng)的軟件設(shè)計步驟有三個,一是選擇開發(fā)環(huán)境的,即程序的編寫、調(diào)試、編譯等操作的環(huán)境與軟件;二是各功能模塊程序的設(shè)計;三是最終的程序調(diào)試,以實現(xiàn)要求的功能。4.1開發(fā)環(huán)境介紹本次設(shè)計采用keil uvision3軟件,由于keil uvision3的庫中并不包含stc系列的單片機,但stc與51系列單片機的內(nèi)核相同。因此,可以選擇51的內(nèi)核,在程序中加入stc12c5410ad單片機宏定義的頭文件即可使用。創(chuàng)建的步驟如下。首先需要新建一個文件夾,用于存放程序的工程文件。新建文件夾完成后啟動keil

24、uvision3軟件。之后新建一個工程,并將該工程保存在新建的文件夾中。創(chuàng)建工程的步驟為,點擊project下的new project菜單,彈出一個對話框。在對話框中選擇保存該工程的文件夾和工程名。將該工程保存在新建的文件夾中。點擊保存按鈕即可。如圖4-1所示。圖4-1 新建工程點擊保存按鈕后,需要選擇單片機型號。選擇atmel的at89c51即可。選擇之后,點擊確定按鈕。如圖4-2所示。圖4-2 選擇型號我們不需要仿真的配置文件,因此,在彈出的是否添加仿真配置文件的對話框中,選擇“no”。如圖4-3所示。圖4-3 添加仿真配置一個新的工程創(chuàng)建成功。工程創(chuàng)建完成后,需要新建一個程序文件。點擊f

25、ile下的new菜單,在軟件中彈出一個新的文本輸入窗口。默認文件名為text1,在該窗口中可以輸入源程序。如圖圖4-4所示。圖4-4 新建程序文件源程序輸入完成后,點擊保存。將該程序文件保存在工程的目錄下。文件名需要加上擴展名,本次設(shè)計的程序設(shè)計采用c語言編寫,因此,將程序文件命名為main.c。程序文件雖然創(chuàng)建保存成功,但并沒有與工程關(guān)聯(lián),加入到工程中。因此,需要將程序文件加入到工程中。右擊左側(cè)目錄樹中的“source group1”,在彈出的下拉菜單中選擇“add file to group”,出現(xiàn)一個對話框,雙擊創(chuàng)建的main.c即可,關(guān)閉對話框完成向工程中添加文件。如圖圖4-5所示。圖

26、4-5 添加文件程序文件添加完成后,需要將編寫的程序編譯成單片機能識別的hex文件。右擊“target 1”,在彈出的菜單中選擇“options for target target1”。選擇“output”選項卡,將“create hex file”項打鉤,點確定。便會在編譯時,在工程文件的目錄中產(chǎn)生hex文件。編譯的快捷鍵是f7。每次修改程序后,按f7,都將重新產(chǎn)生一個hex文件,新hex文件將覆蓋舊文件。編譯完成后,在軟件的下方狀態(tài)欄中可以查看該程序生成的代碼大小。4.2 spwm程序設(shè)計單片機stc12c5410ad自帶四路可編程計數(shù)器陣列pca/pwm模塊電路,只需配置相關(guān)的寄存器便可

27、產(chǎn)生標準的pwm波形。spwm也是pwm的一種,是指在pwm的基礎(chǔ)上改變了調(diào)制方式,沖量相等形狀不同,脈沖的寬度按照正弦規(guī)律變化,輸出波形即為正弦波。stc12c5410ad單片機pca模塊輸出管腳如表4-1所示。管腳第一功能第二功能15p3.7pca0/pwm09p3.5pca1/pwm126p2.0pca2/pwm210p2.4pca3/pwm3表4-1 pca/pwm模塊管腳對應表stc12c5410ad內(nèi)部的pca模塊是一個16位的特殊功能的定時器,連接了四個捕獲/比較模塊。pca定時器決定了這四個模塊的時間基準。pca模式寄存器cmod的位定義如表4-2所示。名稱地址bit7bi6b

28、it5bit4bit3bit2bit1bit0cmod0xd9cidl-cps1cps0ecf表4-2 cmod寄存器定義表中的cpsl和cps0位是pca計數(shù)脈沖選擇位。兩個位的決定了pca脈沖源輸入。pca計數(shù)脈沖選擇如表4-3所示。cps1cps0脈沖源00系統(tǒng)時鐘/1201系統(tǒng)時鐘/210t0的溢出脈沖11eci外部時鐘表4-3 pca計數(shù)脈沖選擇表pca/pwm模塊共有四種工作模式,分別為:上升/下降沿捕獲模式,pwm脈沖輸出模式,軟件定時器模式,高速輸出模式。spwm生成主要工作pwm脈沖輸出模式。 pwm輸出模式的框圖如圖4-6所示。圖4-6 pwm輸出模式的框圖當工作在pwm脈

29、沖輸出模式時。cl的值小于epcn時,輸出為低。當cl的值大于或等于epcn時,輸出為高。當cl的值為ff時,繼續(xù)增加將產(chǎn)生溢出,溢出時變?yōu)?,此時epcn的值裝載到epcnl和ccapnl中。從而實現(xiàn)了在更新pwm時,不會產(chǎn)生干擾。ccapmn寄存器中的pwmn位和ecomn位置位時可以使能pwm模式。本次設(shè)計采用的spwm波形通過軟件中斷的形式來實現(xiàn),綜合使用了pwm模式和16位定時器模式。中斷服務子程序流程圖如圖4-7所示。圖4-7 中斷服務程序流程圖設(shè)計的中斷服務子程序如下。void int_time0(void) interrupt 1th0=0xfe;/重裝初值tl0=0x09;/

30、重裝計數(shù)值/tr0=1;/使能定時器ccap0h=pwm0;/裝入第一路脈沖寬度值/ccap1h=pwm1; /裝入第二路脈沖寬度值/ccap2h=pwm2; /裝入第三路脈沖寬度值/ ccap3h=pwm3; /裝入第四路脈沖寬度值/ k+;/中斷次累計 if(k159)/正半周/i=k;/重新賦值pwm_1=m*pwmi/216;/計算寬度值 pwm1=(unsigned char)pwm_1;/轉(zhuǎn)換為8位數(shù)值pwm2=0; /清0 else if(k318)/負半周的程序/j=k-159;pwm1=0;/清0pwm_2=m*pwmj/216; /計算寬度值 pwm2=(unsigned

31、char)pwm_2; /轉(zhuǎn)換為8位數(shù)值pwm1=0; /清0 else/周期結(jié)束/k=0;/清0i=k; /清0pwm_1=m*pwmi/216;pwm1=(unsigned char)pwm_1; pwm2=0;voltage_regulation();/占空比調(diào)整實現(xiàn)穩(wěn)壓v_bat=ad(ad_battery)*400/256; /取得電壓的值i_out=ad(ad_iout)*i_c/256; /取得電流 stc12c5410ad產(chǎn)生spwm波形的基本原理是將載波周期值賦給ccap1h和ccap1l。pca定時器的ch與ccap1h,cl與ccal1l比較,兩者相等時,產(chǎn)生中斷。在中斷

32、的服務程序中,將下一個spwm波要求的脈沖寬度裝載到ccapol中。spwm波形脈寬示意圖如圖4-8所示。圖4-8 spwm波形脈寬示意圖脈沖寬度值需要通過matlab來計算出220v,50hz交流電的正弦表,本次設(shè)計選出了159個典型值,存入數(shù)組中。選出的正弦數(shù)組如下。unsigned char code pwm159=0,4,8,13,17,21,25,29,34,38,42,46,50,54,59,63,67,71,75,79,83,86,90,94,98,102,105,109,113,116,120,123,127,130,134,137,140,143,147,150,153,15

33、6,159,161,164,167,170,172,175,177,179,182,184,186,188,190,192,194,196,198,199,201,203,204,205,207,208,209,210,211,212,213,213,214,214,215,215,216,216,216,216,216,216,215,215,214,214,213,213,212,211,210,209,208,207,205,204,203,201,199,198,196,194,192,190,188,186,184,182,179,177,175,172,170,167,164,16

34、1,159,156,153,150,147,143,140,137,134,130,127,123,120,116,113,109,105,102,98,94,90,86,83,79,75,71,67,63,59,54,50,46,42,38,34,29,25,21,17,13,8,4;脈沖寬度值通過正弦表格的形式存入程序中的數(shù)組中,在每個載波周期,調(diào)取對應的數(shù)值。程序的設(shè)計流程如下。(1) 將pca模塊0的工作模式通過寄存器定義為8位的pwm模式。(2) 16位計數(shù)/定時器ch、cl清0。(3) pca模式輸助寄存器清0。(4) pca比較/捕獲模塊寄存ccapmn定義為使能比較模式,匹配中

35、斷設(shè)為允許。(5) 將脈沖寬度值sinn裝入ccapnh。(6) 開pca模塊中斷及總中斷。(7) 啟動pca計數(shù)。(8) 直到最大數(shù)值n,完成循環(huán)。經(jīng)過以上的步驟后,在對應的pwm引腳上不斷的產(chǎn)生隨著正弦規(guī)律變化的脈沖寬度,顯示出來的便為準確的spwm波形。寄存器定義的實現(xiàn)程序如下。void pwm_init() cmod=0x02; /該指令為選擇pca計數(shù)器的工作頻率輸入源/ ccon=0x00; /將計數(shù)器和溢出標志清零/ cl=0x00; /將計數(shù)器的低8位清零/ ch=0x00;/ 將計數(shù)器的高8位清零/ ccapm0=0x42; /設(shè)置第一路pwm口/ ccapm1=0x42;

36、/設(shè)置第二路pwm口/ ccapm2=0x42; /設(shè)置第三路pwm口/ ccapm3=0x42; /設(shè)置第四路pwm口/ ccap0l=0x00; /清空第一路的比較/捕捉寄存器的低8位/ ccap0h=0x00; /清空第一路的比較/捕捉寄存器的高8位/ ccap1l=0x00; /清空第二路的比較/捕捉寄存器的低8位/ ccap1h=0x00; /清空第二路的比較/捕捉寄存器的高8位/ ccap2l=0x00; /清空第三路的比較/捕捉寄存器的低8位/ ccap2h=0x00; /清空第三路的比較/捕捉寄存器的高8位/ ccap3l=0x00; /清空第四路的比較/捕捉寄存器的低8位/

37、ccap3h=0x00; /清空第四路的比較/捕捉寄存器的高8位/ cr=1;/使能pca計數(shù)器/4.4液晶驅(qū)動程序設(shè)計本設(shè)計采用的12832液晶屏的控制器為臺灣矽創(chuàng)公司生產(chǎn)的st7920。具有較強的控制顯示功能。在程序編寫時,僅需根據(jù)指令集輸入對應的指令便可實現(xiàn)對液晶屏顯示的控制。常用的操作指令有如下幾個命令。(1)設(shè)定ddramddram是指display data ram,可以設(shè)置顯示地址計數(shù)器。第一行地址為80h到87h,第二行的地址為90h到97h。(2)設(shè)定cgram即輸入要顯示的字符的ascii碼。(3)設(shè)定進入點在顯示數(shù)據(jù)時,光標的移動方向,即位地址計數(shù)器是遞增還是遞減。(4)

38、顯示狀態(tài)控制顯示的開關(guān),光標的開關(guān),反白或正常顯示。(5)讀取忙碌標志讀取忙碌標志位bf,可以查看上條指令是否完成。返回值包含了位地址計數(shù)器的數(shù)據(jù)。在每次發(fā)送指令前,都要判斷忙碌標志位。在對液晶屏進行顯示之前要根據(jù)這些常用指令對液晶進行初始化操作。初始化的程序流程如圖4-9所示。圖4-9 液晶初始化流程圖設(shè)計的液晶屏初始化程序如下。void init_lcd (void)/lcd的初始化程序 psb=0;/置為串行工作模式 wr_lcd (comm,0x30); /*30h,選擇基本指令集模式*/ wr_lcd (comm,0x01);/*31h,清屏命令,將地址指針設(shè)在00h*/ delay

39、 (100);/延時 wr_lcd (comm,0x06); /*設(shè)置光標的移動方向為向右*/ wr_lcd (comm,0x0c); /*將顯示打開,關(guān)閉光標的顯示*/當片選端cs=0時,同步時鐘線sclk無效,數(shù)據(jù)無法輸入。當片選端cs=1時,同步時鐘線sclk有效。可以正常的輸入數(shù)據(jù)。cs從0跳變到1時,將要傳輸?shù)囊唤M串行數(shù)據(jù)計數(shù)重新定義第一位。12832液晶模塊的串行工作模式的時序如圖4-10所示。圖4-10 lcd 12832串行模式時序圖單片機向液晶模塊發(fā)送一個字節(jié)的數(shù)據(jù)時,一共需要24個有效的時鐘脈沖。首先傳輸5位全是1的同步位元字串,實現(xiàn)的功能是重置傳輸計數(shù)以及同步串行傳輸。后

40、兩個位元為rw和rs。rw代表了數(shù)據(jù)的傳輸方向,即控制讀數(shù)據(jù)或?qū)憯?shù)據(jù)。rs代表了數(shù)據(jù)與指令的選擇,即本次發(fā)送的命令為數(shù)據(jù)或指令。第8位位元為固定的0。在前8位數(shù)據(jù)傳輸完成后,將傳輸一個字節(jié)的命令。一個有效的一字節(jié)命令分兩將傳輸,第一次傳輸命令的高4位,低4位置0,組成一個字節(jié)傳輸。第二次傳輸命令的低4位,低4位置0,組成一個字節(jié)傳輸。將這24位數(shù)據(jù)傳輸完成后,便完成一次數(shù)據(jù)的發(fā)送或接收。根據(jù)該時序圖設(shè)計的程序如下。void wr_lcd (uchar dat_comm,uchar content)/液晶屏發(fā)送數(shù)據(jù)子程序/兩個參變量,第一個定義了命令是數(shù)據(jù)還是指令,第二個為具體的內(nèi)容uchar

41、a,i,j;/定義臨時變量delay (50);/延時a=content;/賦值命令的內(nèi)容cs=1;/置cs為1sclk=0;/置sclk為0sid=1;/置sid為1,前5個1為同步元字串for(i=0;i5;i+)/發(fā)送5次時鐘sclk=1;/將時鐘線置1sclk=0;/將時鐘線置0/產(chǎn)生了一個下降沿,即為一個有效的時鐘脈沖sid=0;/置sid為0,即為寫指令sclk=1;/置sclk為1sclk=0;/置sclk為0,產(chǎn)生一個時鐘脈沖if(dat_comm)/判斷是指令還是數(shù)據(jù)sid=1; /如果1,則為數(shù)據(jù),將sid置1elsesid=0; /如果0,則為命令,將sid置0sclk=1; /置sclk為1sclk=0; /置

溫馨提示

  • 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

提交評論