畢業(yè)設計(論文)-家用逆變電源的設計_第1頁
畢業(yè)設計(論文)-家用逆變電源的設計_第2頁
畢業(yè)設計(論文)-家用逆變電源的設計_第3頁
畢業(yè)設計(論文)-家用逆變電源的設計_第4頁
畢業(yè)設計(論文)-家用逆變電源的設計_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

32第1章緒論1.1研究目的及要求1.2相關研究現(xiàn)狀及前景[1]第2章系統(tǒng)分析2.1逆變器的基本概念與工作原理2.1.1正弦波逆變器的電路構成直流變交流的部分稱為逆變部分,逆變器的作用是將直流電轉化為交流電經(jīng)過電感濾波后供給負載,這里的LC濾波是為了濾除高次諧波,得到正弦波,而逆變器因為它輸出的電壓和頻率與輸入的直流電源無關所以為稱為無源逆變器。無源逆變器是正弦波逆變電路的關鍵。本設計采用的是單相橋式逆變電路,輸出電壓及頻率的大小是使用PWM(PulseWidthModulation,脈沖寬度調制)控制調節(jié)的。2.1.2常用逆變器調壓方法可控整流器調壓:通過負載對電壓的要求,使用可控的整流器來完成對逆變器輸出電壓的調節(jié)。直流斬波器調壓:在確定逆變器的電源側有較高功率的情況下,通過不可控整流器可以在直流環(huán)節(jié)中通過設置改變直流斬波器來進行對電壓的調節(jié)。逆變器自身調壓:在采用不可控整流器的前提下逆變器能用自身的電子開關進行斬波控制,這樣就可以得到脈沖列,通過改變輸出電壓脈沖列的脈沖寬度,就可達到對輸出的電壓進行調節(jié),這種方法被稱為脈寬調制(PWM)。2.2SPWM調制變頻技術SPWM(SinusoidalPulseWidthModulation,正弦脈沖寬度調制)調制技術是PWM多脈沖可變脈寬調制技術的一種,即所謂的正弦波脈寬調制其輸出波形是與正弦波等效的一系列等幅不等寬的矩形脈沖波形。如圖2-1所示,等效的原則是每一區(qū)間的面積相等。假使把一個完整周期的正弦半波無限切割成n等份,接下來把用一個與此面積相等的矩形脈沖來替換各等份的正弦波曲線與橫軸所圍成的面積,所代替的矩形脈沖其幅度值不發(fā)生變化,正弦波每一等份的中點與各個脈沖的中點相重合,由此n個相同幅度,寬度不同的矩形脈沖所構成的波形就與正弦波的半個周期效果相同。正弦波的另一個半周期同樣適用一樣的方法與其等效。假使整流器輸出的直流恒定電壓為Us,而且使得電機繞組的中點與直流電壓中點相互連接,那么SPWM脈沖序列波的幅度值變?yōu)閁s/2。此處正弦波值跟第i個矩形脈沖的寬度將近成正比例。于是跟半周期正弦波相同效果的SPWM波形是中間寬、兩邊窄,脈沖寬度按正弦波形的法則慢慢改變的序列脈沖波形。跟其余各種變頻變壓調制方式相比較,此脈沖序列比常規(guī)六拍階梯波更加靠近于正弦波。這種方法方便讓負載電流中的高次諧波成分極大的減弱,由此轉為矩形脈動很小,系統(tǒng)整體性能有了極大的提升。通常情況下,SPWM有單極性和雙極性兩種不同的調制方式。T圖2-1SPWM的輸出波形圖2.2.1單極性SPWM在單極性SPWM輸出的每半周期內(nèi),脈電壓僅有一種極性,負半周期為一U和零,正半周期為十U和零,它的波形調制工作特點如圖2-2所示。單極性SPWM調制的工作特點:均在半個周期里面,逆變電橋同一橋臂的兩個逆變器件中僅有一個,按照脈沖系列的法則;一個是時通時斷的工作,而另一個完全截至;并且在另一個半周期里面,這兩個器件的工作情況剛好相反[2]。wtwtU-U圖2-2單極性調制的工作特點圖2.2.2雙極性SPWM上述的單極性SPWM逆變器主電路每相只有一個開關器件反復通斷。假使通過同一橋臂上、下兩個不同的開關器件交替地打開和關閉,那么輸出的脈沖在“+和“—”之間變化,由此就有了雙極性SPWM波形[3]。雙極性SPWM調制的工作特點:在逆變橋運作的時候,同一橋臂的兩個逆變器件一直按照相電壓脈沖系列的法則不斷地打開與關閉,時刻進行,從不間斷。具體工作特點如圖2-3所示。OOwtU-U圖2-3雙極性調制的工作特點圖第3章硬件設計本正弦波逆變器主要用的是SPWM控制技術,整體的電路具有簡單的結構而且在機械特性方面也表現(xiàn)良好,同時價格也比較低廉。這樣的設計能完美達到題目的需求并且已經(jīng)在各種相關的行業(yè)里被普遍采用。3.1電路原理圖圖3-1主回路原理圖從圖3-1中可以看出,輸入12V直流電壓經(jīng)過濾波電路的這個部分采用電容進行過濾,在逆變的部分采用了四個金屬氧化物半導體管(即MOS管)組成了一個單相橋式逆變電路,后使用用單極性的調制方式進行調制,輸出的SPWM波形過經(jīng)電感、電容組成的LC濾波器濾除高次諧波,得到一個8V的純正弦波。輸出的8V正弦波電壓經(jīng)過工頻變壓器升壓到220V家用交流電壓[4]。3.2原理論述此設計主要使用的硬件電路有7805降壓電路、電壓檢測電路、全橋逆變電路、IR2104驅動電路、單片機電路、按鍵設置電路、顯示模塊、電流檢測電路、LC濾波器、工頻變壓器、以及一些外圍電路,詳細的系統(tǒng)框圖如圖3-2所示。圖3-2電路系統(tǒng)框圖3.2.1單片機的選擇此設計所采用的單片機是STC12C5A60S2,它能讓系統(tǒng)的功能到完美的實現(xiàn),可以有效的輸出兩路PWM波形,通過軟硬件設計,達到多功能的電機控制,此單片機的存儲字節(jié)數(shù)可達到60K之多,并且擁有36個I/O口,具有2路PWM輸出、8路10位ADC轉換、每個I/O能設置成弱/強上拉、高電阻、開漏狀態(tài),此單片機里面包含上電復位電路,抗干擾,抗靜電,低成本,低功耗,性價比高[6]圖3-3單片機電路圖3.2.2濾波電路濾波電路的作用是把直流電壓過濾,過濾掉其中不平整的脈動,這樣的目的是確保之后的電路環(huán)節(jié)能得到優(yōu)秀質量的電壓或電流,本電路的濾波電路部分采用的是電容濾波電路。雖然從理論上來講只要電容值越大那么過濾的效果就越好,但是出于對實際的考慮無論結構上還是價值上都不能這樣,所以要計算電容的實際大小。要設計一個濾波電路通常都會選擇具有較高電抗性的元件,簡單的濾波電路一般是在負載上并聯(lián)一個電容器或者在負載上串聯(lián)一個電感器,如果同時使用電容和電感組成濾波電路則被稱為復式濾波電路。交流電轉換為直流電后會有電壓波動,這里通過電容率波過濾掉電壓波動。當直流電轉換為交流電的時候為了在負載得到無畸變的正弦波這里采用復式濾波器。本設計采用的濾波電路如圖3-4所示。圖3-4濾波電路圖3.2.3電壓檢測電路由于在電機運行過程中,可能會產(chǎn)生電網(wǎng)電壓波動的情況,如果電網(wǎng)低于某個數(shù)值時,可能會損壞正在運行的用電器,所以需要對母線電壓進行檢測。具體電壓檢測電路如圖3-5所示,由于=12V,而單片機的采樣電壓最高位5V,故采樣電阻比例(3-1)這里取R1和R5是100K和10K,(3-2)1<2,所以滿足條件。圖3-5電壓檢測電路圖3.2.4全橋逆變電路如圖3-6所示的電橋電路,其電路中需要用到四個場效應管,電路的A端和B端都要與用電器連接。由于直流電接入因此需要挑選具有充分大耐壓值的場效應管,此次設計選用的是IRF540,33A/100V場效應管,IRF540場效應管不僅滿足耐壓方面的要求而且在通斷時間能夠恰當?shù)陌芽豙7]。圖3-6全橋逆變電路圖3.2.5驅動電路的選擇方案一:基于三極管等元件組成的驅動電路,這種驅動電路的好處是價格便宜且結構簡單,但是本設計的要求的驅動電路必須高于電源電壓的電路,所以如果選擇這種驅動電路就需要再為它增加一個驅動電源,這無疑增加了設計的難度。方案二:半橋式驅動電路,本半橋驅動電路采用IR2104作為它的驅動芯片,該芯片的優(yōu)點是結構簡單、性能可靠并且能即大的提升電路的穩(wěn)定性,降低了設計難度。該芯片采用被動式泵荷升壓原理。上電時,電源流過快恢復二極管D向電容C充電,C上的端電壓很快升至接近Vcc,這時如果下管導通,C負級被拉低,形成充電回路,會很快充電至接近Vcc,當PWM波形翻轉時,芯片輸出反向電平,下管截止,上管導通,C負極電位被抬高到接近電源電壓,水漲船高,C正極電位這時已超過Vcc電源電壓。因有D的存在,該電壓不會向電源倒流,C此時開始向芯片內(nèi)部的高壓側懸浮驅動電路供電,C上的端電壓被充至高于電源高壓的Vcc,只要上下管一直輪流導通和截止,C就會不斷向高壓側懸浮驅動電路供電,使上管打開的時候,高壓側懸浮驅動電路電壓一直大于上管的S極。采用該芯片降低了整體電路的設計難度,只要電容C選擇恰當,該電路運行穩(wěn)定[8]。因為本設計的要求是簡單的結構和穩(wěn)定的電路,無疑第二種方法最能達到要求,所以就選擇方案二。本設計基于IR2104的半橋式驅動電路如圖3-7所示。圖3-7基于IR2104的半橋驅動電路圖3.2.6電流檢測電路方案一:霍爾電流傳感器。電流流經(jīng)霍爾傳感器的線圈能產(chǎn)生磁場,傳感器產(chǎn)生的磁場跟隨電流的大小改變而改變,磁環(huán)內(nèi)的磁場最為強大,由霍爾元件輸出隨磁場變化的電壓信號,通過檢測電壓值從而得到電流的大小。方案二:電阻分壓檢測電路。通過在輸出回路中串聯(lián)采樣電阻,將通過電阻的電流轉換成兩端的電壓,通過檢測電壓值從而獲得電流值。該檢測方法電路和程序控制都比較簡單。要實現(xiàn)對輸出電壓和電流的閉環(huán)控制,必須對輸出電流和電壓進行采樣反饋。本設計采用如圖3-8所示的電流檢測電路。為了便于MCU采集,分壓電阻產(chǎn)生的電壓經(jīng)過由LM358構成的同相比例放大器放大后,輸入到MCU的ADC端口。圖3-8電流檢測電路圖第4章程序設計4.1程序選擇說明要完成本正弦波逆變器的設計除了硬件方面的設計還需要進行開軟件的設計,為了實現(xiàn)單片機的各種功能,軟件程序的編制是不可缺少的。對于本系統(tǒng)的軟件編程主要有兩種編程語言,分別是匯編和C語言。匯編語言的好處就是運行速度可觀但也擁有不方便編程和調試困難的不足。C語言擁有非常好的可讀性,而且調試過程非常容易,移植性好。所以本設計軟件系統(tǒng)使C語言來編寫程序。4.2SPWM查表根據(jù)正弦波的一系列數(shù)據(jù)進行精確計算得出每個脈沖的寬度和他們之間的間隔,以此來操控開關器件的通斷來得到PWM波形。SPWM算法按照規(guī)律采用法需要按相同角度步進將正弦波分成等分,本設計將半波平均分成分成54等分,計算余弦數(shù)值得到一系列數(shù)據(jù),并將數(shù)據(jù)做成程序列表,存儲進單片機的ROM里面。Ucharcodepwm[54]={255,240,226,211,196,182,168,154,141,128,115,103,91,80,69,59,50,42,34,27,20,15,10,6,3,1,0,0,1,3,6,10,15,20,27,34,42,50,59,69,80,91,103,115,128,141,154,168,182,196,211,226,240,255};4.3程序結構流程圖4.3.1主程序流程圖本設計主程序流程圖如圖4-1所示。主程序主要處理對時間要求不敏感的數(shù)據(jù),例如顯示電壓電流狀況,以及按鍵檢測。本設計的主程序主要是進行各項初始化程序,查詢ADC檢測數(shù)據(jù)后計算并顯示出相應的輸入電壓和輸出電流,通過顯示的電壓電流來控制按鍵檢測程序。開始端口初始化端口初始化LCD1602初始化LCD1602初始化顯示“顯示“welcome”延時100ms延時100msADC初始化為查詢方式ADC初始化為查詢方式PWM初始化PWM初始化定時器定時器0初始化清屏清屏查詢ADC檢測的數(shù)據(jù)并計算輸入電壓和輸出電流查詢ADC檢測的數(shù)據(jù)并計算輸入電壓和輸出電流顯示輸入電壓和輸出電流顯示輸入電壓和輸出電流K=1?K=1?逆變電路使能開YesNo逆變電路使能開逆變電路使能關逆變電路使能關按鍵檢測按鍵檢測圖4-1主程序流程圖4.3.2定時器中斷程序流程圖開始在定時器中斷程序中,通過查表的方式,得到一個單極性SPWM波形。具體程序流程圖如圖4-2所示。將設定好50HZ輸出正弦波輸出頻率,那么半波即100HZ頻率,為了降低單片機片內(nèi)儲存空間,我們設定一個半波分辨率為54,即半波的數(shù)組里面有54個數(shù)據(jù),這54個數(shù)據(jù)對應的是一個正弦半波中的SPWM的占空比。那么每個占空比保持的時間是(1/100/54)185us。我們設置定時器為每185us進入一次中斷,每進來一次就降此時對應的數(shù)組里面的數(shù)據(jù)賦給硬件PWM,給左邊的半橋輸入SPWM控制信號,當次數(shù)超過54次后,數(shù)組又回到最開始,給另外一個半橋輸入控制SPWM信號。這樣循環(huán)往復,就得到一個完整的SPWM波形。開始定時器定時器0重裝初值計數(shù)器計數(shù)器0數(shù)值賦給alock=lock=0??index++index++index>53?index>53?關閉PCA計數(shù)器;index=0關閉PCA計數(shù)器;index=0;zf=~zf;indexYeszzf=1?前半周期?No右半橋打開,左半橋關閉右半橋打開,左半橋關閉左半橋打開,右半橋關閉PCA開始計數(shù)PCA開始計數(shù)zf=1?前半周期?zf=1?前半周期?No右半橋PWM賦值Yes右半橋PWM賦值左半橋PWM賦值左半橋PWM賦值結束結束圖4-2中斷程序流程圖4.3.3按鍵程序流程圖本設計按鍵流程圖如圖4-3所示。按鍵程序中主要是控制機器的逆變H橋的工作的使能,按第一下,H橋工作,再按下后取反,H橋停止工作。按鍵1控制頻率的增加,按鍵2控制頻率的減小,按鍵3控制IC2104使能是否工作。進入進入有按鍵按下?有按鍵按下?No延時延時10msBreak頻率>99Hz?按鍵1按下?YesBreak頻率>99Hz?按鍵1按下?頻率=99Hz頻率++頻率=99Hz頻率++按鍵2按下?頻率<2HzYesNo按鍵2按下?頻率<2HzBreak頻率-頻率=2HzYesBreak頻率-頻率=2HzNoIC2104使能開半橋工作K=1?K取反按鍵3按下?IC2104使能開半橋工作K=1?K取反按鍵3按下?BreakYesBreakNoIC2104使能關IC2104使能關半橋不工作defaultdefault退出退出圖4-3按鍵程序流程圖4.3.4ADC檢測數(shù)據(jù)程序在如圖4-4所示ADC檢測數(shù)據(jù)這個子程序中,這里用數(shù)字平均濾波算法,采集200個數(shù)據(jù),然后取平均值,使得到的數(shù)據(jù)更加接近真實狀況,使得顯示出來的電壓和電流不會亂跳,抗干擾能力得很大的提高。進入進入countcount=0Nocount<200?count<200?count++count++啟動該通道的AD轉換啟動該通道的AD轉換ADC轉換完成?NoADC轉換完成?獲得ADC數(shù)據(jù)Yes獲得ADC數(shù)據(jù)vvalue=value+ADC數(shù)據(jù)value=value=value/200返回value返回value數(shù)字退出退出圖4-4ADC檢測數(shù)據(jù)程序流程圖第5章系統(tǒng)測試5.1單片機輸出波形測試5.1.1測試儀器因為要對單片機輸出電壓和SPWM波形進行測試,所以需要示波器。實驗采用Siglent雙通道200M示波器。5.1.2測試方法第一步:將雙通道示波器的兩個探針接在單片機輸出PWM的引腳;第二步:記錄波形數(shù)據(jù);第三步:改變單片機輸出SPWM的頻率,返回第一步操作,直到調出50HZ的SPWM波測試完。5.1.3測試結果把示波器的其中一個探針接到其中一個PWM輸出端口,另一個探針接到另外一個端口,得到的SPWM波形,經(jīng)過LC濾波后出來的波形如圖5-1所示。接入LC濾波器后,SPWM波形變?yōu)榧冋也āD5-1輸出結果波形圖經(jīng)過測試,該設計能輸出10V/50HZ的正弦波,其中SPWM波形設有死區(qū)時間,在軟件上避免了單向電橋的共態(tài)導通。5.2電路效率測試5.2.1測試儀器需要測試電源的帶載性能及效率,需要萬用表和負載。1.可調壓電源:本實驗采用兆信30/5A數(shù)顯線性電源。2.萬用表:深圳勝利VC980+數(shù)字萬用表,數(shù)量為4個。3.負載:負載為100W50Ω的環(huán)形滑動變阻器。4.示波器:單片機輸出的載波頻率為47KHZ。5.2.2測試方式測試示意圖如圖5-2所示:圖5-2測試圖測試步驟:第一步:按照測試圖接好電流表電壓表和大功率滑動變阻器,滑動變阻器調到最大;第二步:打開試驗用可調電源打到12V;第三步:逐步調大滑動變阻器的電阻值,記錄V2,A2,A1,V1的變化數(shù)據(jù);

第四步:逐步調整調節(jié)滑動變阻器,每調整一次做一次的記錄;第五步:返回第四步,直到輸出電流過大,達到自保護的狀態(tài)。5.2.3測試結果測試額定功率下的供電效率,測試結果如下表所示。表5-1輸入輸出電流電壓記錄表U1(V)(DC)I1(A)(DC)U2(V)(AC)I2(A)(AC)η效率12.20.208.40.210.7412.20.348.40.420.8512.20.468.40.610.9112.20.608.40.800.9212.20.768.41.020.9312.20.888.41.210.9512.21.018.41.390.9512.21.178.41.610.9512.21.308.41.810.9612.21.458.42.020.9612.20.100.00.000.00由以上數(shù)據(jù)得到:滿載輸出情況下,供電效率為96%。第6章結束語6.1結論SPWM逆變電源設計全面闡述了正弦波逆變器的基本結構、驅動原理以及硬件軟件的設計。本文所設計的基于51單片機的正弦波逆變器具有硬件結構簡單、保護功能完善等特點。主要實現(xiàn)了如下功能:(1)采用STC12C5A(2)具有安全控制系統(tǒng),能實現(xiàn)了系統(tǒng)的過流保護、堵轉保護;(3)設計了驅動電路、控制電路的設計,提高系統(tǒng)的可靠性:(4)系統(tǒng)軟件采用模塊化設計,為二次開發(fā)提供了非常便利的條件。6.2存在問題由于時間和能力方面的限制,本文所設計的正弦波逆變器還有進一步改善的方法,使系統(tǒng)具有更好的靈活性和穩(wěn)定性。致謝本論文是在肖杰老師的全力指導下完成的,首先要對肖杰老師表示最衷心、最誠摯地感謝!本論文的選題、設計到最后的完成與他精心地指導,時時的督促和認真的修改是分不開的。在拿到課題時,他耐心仔細的向我講述設計的原理及知識重點是什么,并一再表示有不懂得可以隨時去問他。中期檢查的時候,他認真詢問了我的設計進展及我的大體設計思路,并對我的不足之處及不會的地方給予了專業(yè)的指導。肖老師嚴謹?shù)闹螌W態(tài)度,耐心的指導以及對工作兢兢業(yè)業(yè),是我們學習的典范,給我們留下了深刻的印象,使我深受感染。同時,我也深深的感謝大學過程中給我傳授知識的老師和一起相處的同學給我無私的關心和幫助。在我遇到學術問題時,各位老師總能滿心的解決我的疑問。在我感到失望,煩躁時,身邊的同學總會開導我,安慰我。在我取得進步時,和我一起高興,謝謝你們和一起分享大學生活中的點點滴滴,酸甜苦辣!參考文獻[1]魏偉.正弦波逆變電源的研究現(xiàn)狀與發(fā)展趨勢[J].電氣技術,2008,(11):5-7.[2]桂愛剛,萬火金,劉建國.單極性SPWM波形調制開關點計算及其諧波分析[J].江西能源,2008,(02):26-29.[3]石新春,陳雷,張玉平.雙極性SPWM調制的單相工頻正弦波逆變器的設計[J].通信電源技術,2008,(04):53-56.[4]張彥兵,寧媛,袁浩.基于SPWM控制的正弦波逆變器的研究與設計[J].工業(yè)控制計算機,2013,(08):67-70.[5]周俊杰,錢曉耀,陳上挺.一種基于PIC系列單片機的SPWM逆變電源[TM].2008,(04):100-110.[6]李娜,邵利敏,趙秋霞,郭燕霞.基于16位單片機的逆變電源系統(tǒng)的設計[TM].2007,(10):91-98.[7][8]劉劍飛,王富洲.新型IGBT半橋驅動芯片IR22141應用研究[J].微電機.2008,(04):23-26.[9]林立,張俊亮.單片機原理及其應用[M].北京:電子工業(yè)出版社,2012.[10]郭天祥.51單片機C語言教程[M].北京:電子工業(yè)出版社,2000.附錄一:總電路原理圖附錄二:實物效果圖附錄三:程序代碼/*************spwm產(chǎn)生程序******//*單片機STC12C5A60S2,晶振12.02729M#include<STC12C5A#include<intrins.h> /*use_nop_()function*/#defineucharunsignedchar#defineuintunsignedint#defineADC_FLAG0X10ucharcodepwm[54]={255,240,226,211,196,182,168,154,141,128,115,103,91,80,69,59,50,42,34,27,20,15,10,6,3,1,0,0,1,3,6,10,15,20,27,34,42,50,59,69,80,91,103,115,128,141,154,168,182,196,211,226,240,255};//反正弦變化ucharcodeHz[]={0x26,0x7D,0x6E,0xFD,0x93,0x3E,0xA8,0xFE, //2~50xB7,0x7E,0xC1,0xD9,0xC9,0x9E,0xCF,0xA9,0xD4,0x7E,0xD8,0x73,0xDB,0xBE,0xDE,0x88,0xE0,0xEC,0xE2,0xFE,//11~150xE4,0xCE,0xE6,0x68,0xE7,0xD4,0xE9,0x19,0xEA,0x3E,0xEB,0x53,0xEC,0x44,0xED,0x20,0xED,0xE9,0xEE,0xA2,//21~250xEF,0x4D,0xEF,0xEB,0xF0,0x7E,0xF1,0x07,0xF1,0x87,0xF1,0xFE,0xF2,0x6E,0xF2,0xD7,0xF3,0x3B,0xF3,0x98,//31~350xF3,0xF0,0xF4,0x43,0xF4,0x93,0xF4,0xDD,0xF5,0x25,0xF5,0x68,0xF5,0xA9,0xF5,0xE7,0xF6,0x21,0xF6,0x59,//41~450xF6,0x8F,0xF6,0xC2,0xF6,0xF4,0xF7,0x23,0xF7,0x50,0xF7,0x7C,0xF7,0xA6,0xF7,0xCE,0xF7,0xF5,0xF8,0x1A,//51~550xF8,0x3E,0xF8,0x61,0xF8,0x83,0xF8,0xA3,0xF8,0xC3,0xF8,0xE1,0xF8,0xFE,0xF9,0x1B,0xF9,0x36,0xF9,0x51,//61~650xF9,0x6B,0xF9,0x84,0xF9,0x9D,0xF9,0xB4,0xF9,0xCB,0xF9,0xE2,0xF9,0xF7,0xFA,0x0C,0xFA,0x21,0xFA,0x35,//71~750xFA,0x49,0xFA,0x5B,0xFA,0x6E,0xFA,0x80,0xFA,0x92,0xFA,0xA3,0xFA,0xB3,0xFA,0xC4,0xFA,0xD4,0xFA,0xE3,//81~850xFA,0xF3,0xFB,0x01,0xFB,0x10,0xFB,0x1E,0xFB,0x2C,0xFB,0x39,0xFB,0x47,0xFB,0x54,0xFB,0x60,0xFB,0x6D,//91~950xFB,0x79,0xFB,0x85,0xFB,0x91,0xFB,0x9C,0xFB,0xA7};//定時器2~100HzsbitSD1 = P3^2; //第一橋臂,和P13對應同一塊ir2104sbitSD2 = P3^3; //第二橋臂,和P14對應同一塊ir2104sbitP13 = P1^3;//PCA模塊0輸出sbitP14 = P1^4;//PCA模塊1輸出sbitP10 = P1^0; //電流檢測sbitP11 = P1^1; //電壓檢測sbitkey1 = P2^1; //oksbitkey2 = P2^2; //+sbitkey3 = P2^3; //-uintindex=0; //查表數(shù)值ucharlast_key; //按鍵變量ucharTH_x=0xF7; //定時器高位數(shù)值ucharTL_x=0x7C; //定時器高位數(shù)值ucharHz_x=50; //當前變頻器頻率bitzf=0; //前后半周期標志bitK=1; //按鍵保護bitC; //過流保護bitlock=1; //PWM輸出鎖定voiddelay();voidkey_scan();voidKey_1_();voidKey_2_();voidKey_3_();voidinit_pca();voidinit_timer();/**********************************************************函數(shù)說明:延時程序**********************************************************/voiddelay(uchart){ uintj; uchari; for(i=0;i<t;i++) for(j=0;j<1000;j++);}/**********************************************************函數(shù)說明:pca計數(shù)器初始化函數(shù)**********************************************************/voidinit_pca(void){ CMOD=0x02;//計數(shù)器0的溢出為PCA計數(shù)器的時鐘源,允許pca中斷使能,PDF資料上錯誤 CCON=0x00; CCAPM0=0x42;//8位PWM輸出,無中斷 CCAPM1=0x42;//8位PWM輸出,無中斷 CL=0x00;//清零pca計數(shù)器 CH=0x00; CCAP0L=pwm[0];//初始化spwm輸出的占空比 CCAP0H=pwm[0]; CCAP1L=pwm[0];//初始化spwm輸出的占空比 CCAP1H=pwm[0]; CR=1;//運行pca計數(shù)器}/**********************************************************函數(shù)說明:計數(shù)器0初始化函數(shù)**********************************************************/voidinit_timer(void){ TMOD=0x01; TH0=0XF7; TL0=0x50;//T1的計數(shù)值低位 AUXR=0xC0;//計數(shù)器均工作在1T模式。計數(shù)頻率11.0592M ET0=1;//開中計數(shù)器0斷 TR0=1;//開啟計數(shù)器0}/**********************************************************函數(shù)說明:ADC查詢法始化函數(shù)**********************************************************/voidInitADC(){ P1M1=0x03; P1M0=0x00; P1ASF=0X03; //相應端口當ADC使用時,端口要置位P10&P11 ADC_RES=0; ADC_CONTR=0X80; //10000000 開電源,最低速}/**********************************************************函數(shù)說明:讀ADC數(shù)值**********************************************************/ucharGetADC(ucharch){ uintresult=0; ADC_CONTR=0xe8|ch; //選擇通道 開始AD轉換 _nop_();_nop_(); _nop_();_nop_(); while(!ADC_FLAG); //查詢ADC_FLOG是否置位1轉換結束~ADC_FLAG; //ClearADCinterruptflag result=ADC_RES; //11110111 結束AD轉換// result=ADC_RESL; return(result);}/**********************************************************函數(shù)說明:平均濾波函數(shù)**********************************************************/#defineN200uintfilter(ucharch){ uintvalue=0; ucharcount; for(count=0;count<N;count++) { value+=GetADC(ch); //200次采樣求平均 } return(value);}/**************************************1602液晶**************************************/sbitRS=P2^5; sbitRW=P2^6;sbitE=P2^7;/**************************************短延時**************************************/voiddelay5ms(){uchari,v,k;for(i=1;i>0;i--)for(v=168;v>0;v--)for(k=22;k>0;k--);}/**************************************寫指令**************************************/voidlcd_Write_com(ucharcom) { RS=0; //定義指令寄存器 RW=0; //寫允許 P0=com; //寫指令 delay5ms(); E=1; //片選端上拉 delay5ms(); E=0; //下降沿鎖存}/**************************************寫數(shù)據(jù)**************************************/voidlcd_write_date(uchardate) { RS=1; //定義數(shù)據(jù)寄存器 RW=0; //寫允許 P0=date; //寫數(shù)據(jù) delay5ms(); E=1; //片選端上拉 delay5ms(); E=0; //下降沿鎖存}/**************************************顯示程序**************************************/voiddis_lcd1602(ucharx,uchary,uchardat){ ucharadd; if(y==1) add=(0x80+x); if(y==2) add=(0xc0+x); lcd_Write_com(add); //寫指令 lcd_write_date(dat); //寫數(shù)據(jù)}/**************************************液晶初始化**************************************/voidlcd1602_init(){ lcd_Write_com(0x38); //設置8位格式,2行,5*7 lcd_Write_com(0x01); //清屏 lcd_Write_com(0x0c); //整體顯示,關光標,不閃爍 lcd_Write_com(0x06); //設定輸入方式,增量不移位 lcd_Write_com(0x80); //初始坐標}/**************************************液晶顯示漢字程序**************************************/voidhz_lcdDis(ucharx,uchary,uchar*p)//漢字顯示{uchari=0,temp;if(x)temp=0x40;elsetemp=0;for(i=y;*p!='\0';i++,p++){ lcd_Write_com(i|0x80+temp); lcd_write_date(*p); delay5ms(); }}/**************************************液晶顯示數(shù)字程序**************************************/voidnum_lcdDis(ucharX,ucharY,uintnum,ucharn) { uinti=0,temp,hang; n+=1; if(X)hang=0x40;elsehang=0; for(i=(n-1);i>0;i--){ lcd_Write_com((i+Y-1)|0x80+hang); //從個位開始顯示 temp=num%10+0x30; lcd_write_date(temp); delay5ms(); num/=10; } }/**********************************************************函數(shù)說明:按鍵延時防抖動P2^0Key_1P2^1Key_2P2^2Key_3**********************************************************/voidkey_scan(){ uchartemp; temp=P2&0x1F; if(temp!=0x1F) { delay(10); temp=P2&0x1F; if(temp!=0x1F) { switch(temp) { case0x1D:Key_1_(); break; //21 case0x1B:Key_2_(); break; //22 case0x17: if(last_key==temp); elseKey_3_(); break; //23 default:break; } } } last_key=temp;}/**********************************************************函數(shù)說明:+按鍵程序**********************************************************/voidKey_1_(){ Hz_x++; if(Hz_x>98)Hz_x=99; TH_x=Hz[2*Hz_x-2];//重裝定時器高位 TL_x=Hz[2*Hz_x-1];//重裝定時器低位 }/**********************************************************函數(shù)說明:-按鍵程序**********************************************************/voidKey_2_(){ Hz_x--; if(Hz_x<36)Hz_x=35; TH_x=Hz[2*Hz_x-2];//重裝定時器高位 TL_x=Hz[2*Hz_x-1];//重裝定時器低位 }/********************************************

溫馨提示

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

評論

0/150

提交評論