基于單片機SPWM控制系統(tǒng)設計_第1頁
基于單片機SPWM控制系統(tǒng)設計_第2頁
基于單片機SPWM控制系統(tǒng)設計_第3頁
基于單片機SPWM控制系統(tǒng)設計_第4頁
基于單片機SPWM控制系統(tǒng)設計_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、本科畢業(yè)設計題目:基于單片機的SPWM控制系統(tǒng)設計學 院:信息科學與工程學院專 業(yè):學 號:學生姓名:指導教師:日 期:武漢科技大學本科畢業(yè)論文摘 要論文主要目的建立基于單片的SPWM調控系統(tǒng),即用單片機產生SPWM波,其中,脈沖的寬度按正弦規(guī)律變化而和正弦波等效的PWM波形稱為SPWM波。本論文中主要是根據(jù)SPWM法的原理,即通過控制電路中開關器件的通斷,使其輸出的脈沖電壓的面積與所希望輸出的正弦波在相應區(qū)間內的面積相等,并且在慣性環(huán)節(jié)上的效果基本相同,從而達到等效的效果。根據(jù)這個原理,先利用MATLAB計算出基波與載波的交點,計算出交點之間的持續(xù)時間,根據(jù)持續(xù)時間的值在單片機程序中建立一個

2、數(shù)組,數(shù)組中的元素就是賦予定時器的初值,當定時器溢出時,輸出電平自動翻轉,繼而查表,賦予下一個電平的持續(xù)時間,這樣一直反復下去,就可以得到一個SPWM波形。最后在protues中仿真,在示波器中可以看到SPWM波的波形。關鍵詞:單片機; Matlab; 查表; SPWM;仿真AbstractThe main purpose of the paper to establish a SPWM regulatory system based on single chip microcomputer , namely, Using a single chip microcomputer to gene

3、rates SPWM wave,Among them, the pulse width changed by the law of sine is equal to the sine wave,this PWM wave calls SPWM wave.This paper is mainly based on the principle of SPWM law, namely, the switch-off device in the control circuit is on or off , So that the area of pulse voltage output and the

4、 area of the desired output sine wave in the corresponding sections are equal,And the effect on the inertia is substantially same, So as to achieve the equivalent effect, According to this principle, First using MATLAB to calculate the intersection of fundamental and carrier wave, Then calculating t

5、he duration between intersections, Based on the value of the duration ,Create an array in the microcontroller program, Elements in the array is initial value assigned to the timer, When the timer overflows, the output level will automatic reverse. Then look up table, Given the next duration of elect

6、rical level, Finally we simulate in protues ,then you can see the SPWM wave on the oscilloscope.Key words:Single chip microcomputer; MATLAB; Look-up table; SPWM; The simulation目 錄1 緒論11.1 研究的背景及意義11.2 研究目的及內容22 主電路工作原理42.1 PWM控制的基本原理42.2 SPWM法的基本原理52.3 PWM控制方法52.3.1 計算法52.3.2 調制法62.4 同步調制和異步調制62.4.1

7、 異步調制62.4.2 同步調制62.5 規(guī)則采樣法73 單極性和雙極性PWM控制逆變電路分析93.1 單相橋式PWM逆變電路93.1.1 原理圖93.1.2 單極性PWM控制方式93.2 雙極性PWM控制方式104 基于MATLAB的分析以及交點計算124.1 MATLAB簡介124.2 查表產生SPWM波理論分析124.3 Matlab計算程序及仿真圖形結果135 單片機程序設計195.1 AT89C52介紹195.2 程序設計流程圖225.3 C語言實現(xiàn)程序235.3.1 程序運行軟件Keil uVision2簡介235.3.2 主程序245.3.3 中斷程序255.4 仿真工具prot

8、ues介紹255.5 仿真電路圖265.6 仿真顯示266 結論28參考文獻29致 謝30311 緒論1.1 研究的背景及意義隨著科技的飛速發(fā)展,逆變器的使用越來越廣泛,逆變器能夠將直流電源轉換為具有所需輸出電壓和頻率的交流電源。在換流器模式下,能夠操作相位的轉換器被稱為線換向逆變器。但線路換向逆變器要求在輸出端存在有用于換向的交流電源。這意味著線路換向逆變器不能用作隔離式AC電壓源或變頻發(fā)電機直流電源。因此,在整流逆變器的交流側電壓電平,頻率和波形不能被改變。另一方面,換向力的逆變器提供了一個獨立的電壓可調和頻率可調的交流輸出電壓,并因此更廣泛的應用。逆變器的輸入電源是從現(xiàn)有的供電網(wǎng)絡,或從

9、旋轉交流發(fā)電機通過整流器或電池,燃料電池,或從光伏陣列或磁流體動力發(fā)生器獲得的。濾波電容器通過逆變器的輸入端來提供一個恒定的直流鏈路電壓,因此,該逆變器是一個可調節(jié)頻率的電壓源。逆變器可大致分為兩種類型,電壓源和電流源逆變器。電壓反相器(VFI)或電壓源逆變器(VSI)是其中一種具有小的或可忽略不計阻抗的直流源的逆變器。其在輸入端上的電壓是恒定的,電流源逆變器(CSI)被從高阻抗直流源獲得的可調節(jié)的電流反饋回來,因此還是一個恒定的直流調節(jié)電流。其中,PWM技術在逆變器電壓源中起著至關重要的作用。PWM技術的發(fā)展使得對電動機轉速或者說速度的控制更加容易,它可以通過控制PWM波的占空比,從而控制電

10、動機的轉速。由于幾乎所有的逆變電路中都要通過用到PWM技術把直流電轉化為交流電,所以在電力電子技術中,PWM技術是必須掌握的一門技術。脈寬調制技術是根據(jù)各個負載調制FET柵極或集體管理的基極偏置的變化是正向偏置或反向偏置和晶體管的開啟時間,來控制模擬開關電源電路的輸出控制模式,該模式可使電源電壓的變化趨于穩(wěn)定,其工作方式是利用單片機來離散控制的非常有效的輸出技術??刂坪唵戊`敏和動態(tài)響應好的的PWM技術在電力電子技術被廣泛應用,并且被人們緊密關注,研究,也是大學電子學中必學的一部分。由于對具有控制電流是否導通功能的開關器件的研究越來越深入以及讓對它們的使用更加廣泛,PWM技術在電力電子技術行業(yè),

11、如:風力發(fā)電系統(tǒng)、電機調速系統(tǒng)、直流供電系統(tǒng)等領域也得到使用。目前已經提出并且被人們經常使用的PWM控制方案就超過數(shù)十種。起初,PWM控制方案就幾種,但是在隨著微處理器的研究發(fā)展,并且在應用于PWM技術之后,控制方案就開始日益增多,并且要求也越來越高。PWM控制技術發(fā)展逐漸完善。并且越來越多的控制方案被提出,研究氛圍越來越濃厚。而且不少方法已經趨于成熟,有許多已經被人們應用于實際應用中。在通信領域,由于PWM控制有具有很強的抗干擾力,在輸入端,人們一般先把模擬信號轉換為脈寬寬度調制信號,然后在輸出端再轉換回來,并且通過低通濾波器濾掉高次諧波,這樣可以大大延長通信距離。由于PWM不僅能夠具有低通

12、濾波器的特點能夠濾除高頻波,還能夠實現(xiàn)交流和直流之間的相互轉換,因此,它還應用于調速交流驅動器,感應加熱,待機飛機電源,UPS(不間斷電源)等等其他能量變換系統(tǒng)中。SPWM即正弦脈寬調制被廣泛應用于電力電子,從而獲得數(shù)字化電源 ,以致能夠可以通過接通和斷開電源開關來產生離散的電壓脈沖信號.幾十年內脈寬調制逆變器在電力電子方面作為主要選擇而用于電源調控,由于其電路簡單,堅固耐用并且容易控制 所以SPWM開關技術在工業(yè)應用中也被經常使用。SPWM技術的特征是恒定幅度的脈沖在每個周期中具有不同的占空比為。通過對脈沖的寬度進行調制,從而進行對逆變器輸出電壓控制,并減少它的諧波含量,正弦脈寬調制或SPW

13、M是在電機控制和變頻器應用大多使用的方法,在單極和雙極PWM控制發(fā)展中SPWM電壓調制型被選擇,因為這種方法提供了有效地加倍逆變器電壓的開關頻率的優(yōu)點,從而使輸出濾波器更小,更便宜且更容易實現(xiàn),以往,為了產生該信號,三角波作為載波信號與正弦波相比,且其頻率為期望的頻率。然而,國外對于SPWM控制的研究要遠遠領先于國內,它已經經歷三了發(fā)展階段,第一個發(fā)展階段是采用晶閘管作為開關器件,然而由于晶閘管抗干擾性差,容易發(fā)生錯誤的導通,并且它的動態(tài)過度能力差,容易在預計關閉導通的地方繼續(xù)導通,所以這個時代很快的就結束了。第二個階段是采用自動關斷器件作為開關器件,第三個階段是采用實時反饋控制技術,使逆變電

14、源的性能得到提高。近年來,由于單邊機體積小,功能多,又便宜,集成度又高,所以人們對單片機的研究越來越深入,并且單片的應用范圍也越來越廣泛,使得人們看好兩者之間的結合,于是開始對基于單片機的SPWM控制系統(tǒng)也開始進行研究。所以,基于單片機的SPWM控制系統(tǒng)的研究是非常必要的。1.2 研究目的及內容所謂PWM控制技術,是一種能夠控制電壓幅值、控制頻率大小以及消除高次諧波的一門技術,它通過利用開關器件的開通和關斷能把直流電壓變成具有一定形狀的電壓脈沖序列1。長久以來,人們對自關斷器件的研究已經發(fā)展到一定地步,其為PWM技術的發(fā)展鋪平了道路,并且PWM技術可以改善輸出波形,從而減小脈動、降低諧波損耗,

15、同時使逆變器的結構變得更加簡單,使調節(jié)速度變快,系統(tǒng)的動態(tài)響應性能更好。所以當代幾乎所有的變頻調速裝置都是采用PWM技術。PWM技術可以通過對晶閘管,二極管,場效應管的控制不僅可以把直流電轉換為交流,也可以把交流電轉化為直流電,人們對PWM整流器的開發(fā)研究已經取得很大進展,利用PWM技術以實現(xiàn)把直流電流轉化成正弦化的電流,且使其電網(wǎng)的有用功功率非常高。所以、PWM整流器被人們稱為對電網(wǎng)控制無污染的“綠色”變流器。脈沖寬度調制技術是一種根據(jù)場效應管溝道內的載荷的變化來調制場效應管正偏或反偏,根據(jù)晶體管導通時間來決定輸出電壓的幅值,這樣就不需要時時刻刻改變輸入電壓的幅值,僅僅只需要改變開關導通的時

16、間,這樣就可以穩(wěn)定的調節(jié)輸出電壓,從而使對電壓的調節(jié)更加方便,更加穩(wěn)定。近年來,由于計算機控制技術的研究越來越深入,數(shù)字PWM控制技術已逐漸取代了模擬PWM控制技術,已成為電力電子設備中使用的主要技術。由于PWM技術的發(fā)展進步,使得交流電機調速性能不斷提高的。其中,三個開發(fā)規(guī)則的疊加空間矢量PWM控制方法被廣泛采用的準最優(yōu)PWM控制方法的人采樣PWM控制方式和電壓諧波的基礎上,和這兩種控制方法可以很容易地控制,計算簡單,易實現(xiàn)。脈寬調制技術是根據(jù)各個負載調制FET柵極或集體管理的基極偏置的變化是正向偏置或反向偏置晶體管的開啟時間根據(jù)模擬開關電源電路的輸出控制模式,該模式可使電源電壓的變化輸出電

17、壓時鐘穩(wěn)定的條件下,在工作方式改變是利用微處理器以離散模擬電路控制的非常有效的技術的數(shù)字輸出。本次研究的目的就是利用單片機產生SPWM波。,2 主電路工作原理2.1 PWM控制的基本原理PWM控制的基本原理:形狀不同當時波形隨時間的積分即面積或者說是沖向相等的輸入脈沖波形經過慣性環(huán)節(jié)可以或得獲得的輸出波形幾乎一樣,既輸出環(huán)節(jié)的響應基本相同。如果把各輸出波形在傅里葉變換后進行分析,則可以看出其低頻段非常接近原有波形,僅在高頻段略有不同1。如圖2.1所示的三個波形不相同,電壓隨時間的積分大小為1個三個脈沖,當它們分別加在如圖2.2 (a)所示的同一個R-L環(huán)節(jié)上時,則其輸出響應波形基本相同。其中脈

18、沖為沖激脈沖函數(shù)時,環(huán)節(jié)的響應即為(d)圖的電路輸出與輸入之比的系統(tǒng)函數(shù)。它們的輸出波形基本相同且如圖2.2(b)所示。 (a) (b) (c) (d)圖2.1 沖量相等、形狀不同的窄脈沖(a) (b)圖2.2 形狀不同而沖量相同的各種窄脈沖及響應波形2.2 SPWM法的基本原理脈沖幅值相等并且脈沖寬度按正弦規(guī)律變化并與正弦波等效的PWM波稱為SPWM(sinusoidal PWM)波形1。如圖2.3所示,通過對如圖的波形的截止頻率除以一個確定數(shù)據(jù)后,如K,就可以分成K個等份,它可以被認為是由K個靠在一起的矩形脈沖所組成的波形,這些幅值不相等的脈沖波形的寬度個個都相等。如果把它用如圖所示的幅值

19、相等,而脈沖寬度個個不相等的矩形脈沖來代替這些脈沖序列,使矩形脈沖和正弦波部分的中點重合,并且使矩形脈沖和相應的正弦波部分面積相等,則可得到如圖所示的矩形脈沖序列,這就是SPWM波形1。一般使用的PWM開關技術逆變器具有一個直流輸入電壓,它通常幅度恒定。逆變器的工作是控制該輸入電壓和輸出交流的幅度和頻率。有跡象表明,脈沖寬度調制可以被輸出是交流電源的模型通過許多不同的方式實現(xiàn)。一種常用技術稱為正弦脈寬調制技術。為了輸出一個正弦波形在一個特定的頻率下特定的正弦控制信號頻率,一般需要與一個三角波形相比較。在使用SPWM波進行調制時,畸變系數(shù)和低次諧波被顯著降低。圖2.3 用PWM波來代替正弦半波2

20、.3 PWM控制方法2.3.1 計算法 計算法就是在知道輸出波形的頻率,幅值,以及半個周期內的脈沖個數(shù)之后,計算出他們離散的寬度和間距的實際值,從而準確的控制開關的通斷時間,來控制PWM波的占空比,得到所需要的波形1。2.3.2 調制法調制是以基波作為調制信號,把接收到的調制信號作為載體,通過調節(jié)基波以獲得所需的輸出波形。,由于對稱的等腰三角形波有著線性關系的高度和寬度,所以可以在任何一個的基波與載波的交點,通過對電路接通和斷開開關器件,來控制電平高低,以獲得更平緩調制信號,并且到的脈沖寬度與信號振幅成正比,這正好符合PWM控制的要求,所以三角波用得較多。2.4 同步調制和異步調制所謂載波比,

21、就把載波頻率與調制信號頻率之比 1,人們把PWM調制方式據(jù)基波與載波的變化情況是否一致分為載波比保持一致的調制方法和載波比不保持一致的兩種調制方式,即同步調制和異步調制。雖然同步調試模式比異步調試復雜得多,但是使用電腦容易實現(xiàn)控制。2.4.1 異步調制所謂異步調制、就是調制信號和載波信號的波形變化不保持同步,即初相和相位可能不同的調制方式。在異步調試方式下,載波頻率一般固定不變,所以當信號波頻率 變化時,載波頻率與基波頻率的比是隨著的變化而變化的。隨之在信號波的2/T內, 波的脈沖個數(shù)以及相位也會發(fā)生變化,致使正負半周期以及半周期內前后1/4周期的脈沖個數(shù)和相位不對稱。而當較低時,載波頻率與基

22、波頻率的比值較大,致使脈沖數(shù)量較多,使得脈沖不對稱對波形的輸出影響不大,使得輸出 波的效果與正弦波相似。同理,當變大時,載波頻率與基波頻率的比值減小,一個周期內的波數(shù)減小, 脈沖波形不能夠保持對稱,致使輸出波形受到擾動,同時輸出PWM波和基波相比,前面所提到的沖量(面積)明顯不一致,并且對于三相PWM型逆變電路來說,其輸出波形也收到嚴重影響,其對稱性也被嚴重破壞。因此,在異步調制時,為了在高頻響應時,載波和基波的頻率之比能夠很大,一般都使用較高頻率的載波。2.4.2 同步調制所謂同步調試,就是載波比N等于常數(shù),載波和基波的變化保持一致的方式。在基本的同步調試方式中,即使變化,載波比N也保持不變

23、,即N是不變的,載波和基波的頻率保持一致,所以,一個周期內的輸出波形數(shù)量是保持不變的。在三相PWM逆變電路中,一般公用一個三角波作為載波,如本設計中就是如此,公用一個三角波載波,2個不同的基波。這樣可以使三相輸出波形嚴格對稱,從而跟容易計算。為了使讀者更加容易理解。這里給出了如圖2.4所示,同步調制時N=9時的三相PWM波形。當電路輸出頻率很低時,由于在同步調試下載波頻率與基波頻率的比值應該保持一致,所以此時也很低,然而當過低時,容易產生不利的影響。相應的,同步調試的頻率在當輸出頻率很高時也會變得非常高,這樣,一般的開光器件不能在這么高的頻率范圍內工作,所以一般不能在高頻率范圍內使用。圖2.4

24、 同步調制三相PWM波形2.5 規(guī)則采樣法規(guī)則采樣法是一種與通過確定基波與載波的交點,開通和關斷開關,控制電壓的波形。如圖2.5所示,當用三角波作為載波對在其頂點或低點的位置對正弦波進行采樣時,脈寬就可以由階梯波與三角波的交點來確定,由于在一個載波周期內交點的位置是對稱的,這種方法稱為對稱規(guī)則采樣1。 圖2.5 規(guī)則采樣法生成SPWM波的原理圖假設三角波的幅值為1,正弦函數(shù)為 ,M為調制度且0<M<1,由圖中ABC EDA得,AB/BC=ED/DA,代入后可得: 其中, 為三角載波周期, 為脈沖寬度。所以矩形波開通時間為: 將上式離散化后可得: 式中, 為周期,l為第l個SPWM波

25、,N為采樣的總個數(shù)3 單極性和雙極性PWM控制逆變電路分析3.1 單相橋式PWM逆變電路3.1.1 原理圖 圖3.1 單相橋式PWM逆變電路3.1.2 單極性PWM控制方式1.單相橋式PWM逆變電路(調制法)1.1電路工作過程a)工作時和在一個時刻只有一個是開通,另外一個是關斷的,同理和也一樣,比如在負半周,導通,關斷,和隨著時間的變化一個開通,一個關斷。b)負載電流落后于電壓,即電壓比電流要先到達零點,在電壓大于零的時候,負載電流有大于零的部分也有小于零的部分,在負載電流大于零的時候,和導通時,。關斷時,通過的電流不能再流向,只能經過電組,電感,和第三個二極管回流,=0。此時,當電流減下到0

26、以下后,仍為和導通時,因為 小于零,故只能從第四個二極管流經電感,電阻,到第一個二極管,此時仍有。當關斷,開通后,只能從流向電感和電阻,再到第一個二極管回流,此時=0。據(jù)上所述,如論是哪一種關斷組合, 都是高電平和0之間的一種。同理在的負半周,在開通關斷的狀態(tài)下,和在一個時刻一定是有一個開通,另外一個關斷,無論是哪一種情況,負載電壓都只能是負電平和零電平的一種。 1.2.控制方式 如圖3.2所示,調制信號為標準的正弦波,有正有負,而這里的載波三角在基波大于0的區(qū)間只有正半軸幅值,而在基波小于0區(qū)間只有負半軸幅值。a)在的正半周時,保持通態(tài),保持斷態(tài),當時,使導、關斷,。當時,使關斷、導通,。b

27、)在的負半周時,保持斷態(tài),保持通態(tài)。當時,使導通、關斷,。當時,使關斷、導通,。圖3.2 單極性PWM控制方式波形3.2 雙極性PWM控制方式如圖3.2所示,雙極性PWM控制方式也是和單極性PWM控制方式是通過在基波正弦波和三角波交點時刻控制各開關器件的通斷,來控制電壓的正負,以及控制其導通時間,即占空比,但是不同的是它的載波三角波是雙極性的,是有正有負的。a)如圖所示的三角波載波,不像單極性的三角波載波一樣只有正幅度,雙極性的三角波載波還有負幅度,因此,所得的PWM波也不像單極性下只有正幅度,而是在正負之間交替變化的,因此它的電位只在正電位和負電位之間變化。b)在的正負半周期內,對三極管和二

28、極管的控制和單極性方式一樣。 c)當時,和導通,和關斷,這時如 >0,則和通,如 <0,則和通,不管哪種情況都是.當時,和導通,和關斷,這時如<0,則和通,如>0,則和通,不管哪種情況都是。圖3.3 雙極性PWM控制方式波形4 基于MATLAB的分析以及交點計算4.1 MATLAB簡介 MATLAB是美國mathworks公司開發(fā)的目前國際上應用最廣泛,最受歡迎的商業(yè)工程計算軟件,其數(shù)學運算能力強大,并集成了二維和三維圖形功能,并提供了一種高級編程語言,因此可以用于矩陣運算、完成相應數(shù)據(jù)分析以及數(shù)值可視化的工作,主要包括Matlab和Simulink兩大部分。Matla

29、b是矩陣實驗室(MatrixLaboratory)的簡稱,和并稱為三大數(shù)學軟件。由于我們可以用 畫出各種圖形,并且在一個界面畫出多個圖形,設定每個圖形的顏色,畫圖線段的方式如實線,點畫線,虛線,并且能夠在旁邊注解,除此以外,它還可以滿足各種計算要求,圖像處理功能強大,易于操作,對一些控制過程進行仿真,調控,優(yōu)化等等一系列優(yōu)點,所以 在系統(tǒng)的設計,分析以及仿真,和更多領域中都要用到。4.2 查表產生SPWM波理論分析當SPWM采用頻率剛好是基波的整數(shù)倍時,可得到與基波效果近似的輸出波形。查表法就是根據(jù)Matlab計算基波和載波的交點從而通過計算可以得到輸出矩形波形的高電平和低電平的持續(xù)時間,即占

30、空比,從而在c語言編程時用數(shù)組來表示高低電平持續(xù)時間,通過編寫對應程序來查表進而在中斷程序中賦予定時器初值,當中斷溢出時,電平翻轉從而就可以控制輸出端口高低電平持續(xù)時間,從而產生SPWM波。如圖4.1所示,本設計采用的雙極性PWM控制方式。圖4.1 查表法原理采用的雙極性控制方式根據(jù)上敘對 Matlab的介紹,我們知道Matlab是一個處理圖形,分析計算的非常強大的軟件。在本次設計中就需要計算正弦波與三角波的交點,因此 控制通過使用 對交點的值,以及其持續(xù)時間進行計算,可以快速方便的得結果。在判斷2個波形之間的交點時,可以借助數(shù)學領域上的知識來給定。所謂交點,就是在交點附近時刻兩函數(shù)之差值的絕

31、對值趨于0或許某一精度,而在交點附近的極小區(qū)域,離交點越遠,差值的絕對值逐漸增大2。4.3 Matlab計算程序及仿真圖形結果以下子程序為計算交點的 程序,多次選擇精度后,當設置此精度prec時,效果最理想,載波數(shù)據(jù)。基波數(shù)據(jù), 為交點時刻數(shù)據(jù)。f=50;step = 0.00000001;from = 0;to = 0.02;% plotx=from:step:to;L1=sawtooth(2*pi*10*f*(x+1/1000),0.5);%三角波載波L2 =3*sin(2*pi*f*x)/4;%正弦波基波L3 =4*sin(2*pi*f*x)/9;%正弦波基波plot(x,L1,'

32、;blue',x,L2,'red',x,L3,'magenta');%畫出基波和載波legend('L1','L2','L3','location','NorthWest');%注釋放在左上方title('曲線交點圖', 'L1=sawtooth(2*pi*10*f*(x+1/1000),0.5)','L2=3*sin(2*pi*f*x)/4','L3 =4*sin(2*pi*f*x)/9');%標題xlabel

33、('x');%x軸ylabel('y'); %找交點mCount = 0;n=0;m=0;prec=0.00001; display(strcat('L1與L2曲線的交點:');for n=1:length(x) if(abs(L1(n)-L2(n) <prec) %找2個波的交點 mCount = mCount + 1; m=m+1; t(m)=x(n); display(strcat('第',num2str(mCount),'交點是:'); if mCount=1 display(strcat('

34、(',num2str(x(n),',',num2str(L1(n),')') else display(strcat('(',num2str(x(n),',',num2str(L1(n),'),第 ',num2str(mCount),'與',num2str(mCount-1),'交點電平持續(xù)時間:',num2str(t(m)-t(m-1),'ms')%顯示高或低電平持續(xù)時間 end lh = line(x(n) x(n),min(min(L1),min(L2)

35、 L1(n); %橫坐標 set(lh,'color','green'); set(lh,'LineStyle','-'); text(x(n),L1(n),strcat('P_',num2str(mCount),'(',num2str(x(n),',',num2str(L1(n),')');%在交點處顯示坐標 endend display(strcat('L1與L3曲線的交點:');jCount = 0;t=0;j=0;for i=1:length(

36、x) if(abs(L1(i)-L3(i) <prec) jCount = jCount + 1; j=j+1; t(j)=x(i); display(strcat('第',num2str(jCount),'交點是:'); if jCount=1 display(strcat('(',num2str(x(i),',',num2str(L1(i),')') else display(strcat('(',num2str(x(i),',',num2str(L1(i),'),

37、第 ',num2str(jCount),'與',num2str(jCount-1),'交點電平持續(xù)時間:',num2str(t(j)-t(j-1),'ms,'); end lh = line(x(i) x(i),min(min(L1),min(L3) L1(i); %橫坐標 set(lh,'color','green'); set(lh,'LineStyle','-'); text(x(i),L1(i),strcat('P_',num2str(jCount),

38、'(',num2str(x(i),',',num2str(L1(i),')'); end endMatlab運行出來的結果L1與L2曲線的交點:第1交點是:(0.00044746,0.10508)第2交點是:(0.0016899,0.37972),第2與1交點電平持續(xù)時間:0.0012424ms第3交點是:(0.0022559,0.48814),第3與2交點電平持續(xù)時間:0.00056607ms第4交點是:(0.0038508,0.70166),第4與3交點電平持續(xù)時間:0.0015949ms第5交點是:(0.0041386,0.7227),第5

39、與4交點電平持續(xù)時間:0.00028782ms第6交點是:(0.0058614,0.7227),第6與5交點電平持續(xù)時間:0.0017227ms第7交點是:(0.0061492,0.70166),第7與6交點電平持續(xù)時間:0.00028782ms第8交點是:(0.0077441,0.48814),第8與7交點電平持續(xù)時間:0.0015949ms第9交點是:(0.0083101,0.37972),第9與8交點電平持續(xù)時間:0.00056607ms第10交點是:(0.0095525,0.10508),第10與9交點電平持續(xù)時間:0.0012424ms第11交點是:(0.010566,-0.1327

40、4),第11與10交點電平持續(xù)時間:0.0010138ms第12交點是:(0.011346,-0.3078),第12與11交點電平持續(xù)時間:0.00077973ms第13交點是:(0.012788,-0.57608),第13與12交點電平持續(xù)時間:0.0014419ms第14交點是:(0.013184,-0.63126),第14與13交點電平持續(xù)時間:0.00039633ms第15交點是:(0.014875,-0.74942),第15與14交點電平持續(xù)時間:0.0016903ms第16交點是:(0.015125,-0.74942),第16與15交點電平持續(xù)時間:0.00025058ms第17交

41、點是:(0.016816,-0.63126),第17與16交點電平持續(xù)時間:0.0016903ms第18交點是:(0.017212,-0.57608),第18與17交點電平持續(xù)時間:0.00039633ms第19交點是:(0.018654,-0.3078),第19與18交點電平持續(xù)時間:0.0014419ms第20交點是:(0.019434,-0.13274),第20與19交點電平持續(xù)時間:0.00077973msL1與L3曲線的交點:第1交點是:(0.00046748,0.06504)第2交點是:(0.0016075,0.21504),第2與1交點電平持續(xù)時間:0.00114ms,第3交點是

42、:(0.0023504,0.29916),第3與2交點電平持續(xù)時間:0.0007429ms,第4交點是:(0.0037041,0.40812),第4與3交點電平持續(xù)時間:0.0013536ms,第5交點是:(0.0042834,0.43322),第5與4交點電平持續(xù)時間:0.00057933ms,第6交點是:(0.0057166,0.43322),第6與5交點電平持續(xù)時間:0.0014332ms,第7交點是:(0.0062959,0.40812),第7與6交點電平持續(xù)時間:0.00057933ms,第8交點是:(0.0076496,0.29916),第8與7交點電平持續(xù)時間:0.0013536

43、ms,第9交點是:(0.0083925,0.21504),第9與8交點電平持續(xù)時間:0.0007429ms,第10交點是:(0.0095325,0.06504),第10與9交點電平持續(xù)時間:0.00114ms,第11交點是:(0.010537,-0.07466),第11與10交點電平持續(xù)時間:0.0010048ms,第12交點是:(0.010537,-0.07468),第12與11交點電平持續(xù)時間:1e-008ms,第13交點是:(0.011405,-0.18988),第13與12交點電平持續(xù)時間:0.00086772ms,第14交點是:(0.012665,-0.33014),第14與13交點

44、電平持續(xù)時間:0.00126ms,第15交點是:(0.013308,-0.38314),第15與14交點電平持續(xù)時間:0.00064336ms,第16交點是:(0.014721,-0.44274),第16與15交點電平持續(xù)時間:0.0014129ms,第17交點是:(0.015279,-0.44274),第17與16交點電平持續(xù)時間:0.00055726ms,第18交點是:(0.016692,-0.38314),第18與17交點電平持續(xù)時間:0.0014129ms,第19交點是:(0.017335,-0.33014),第19與18交點電平持續(xù)時間:0.00064336ms,第20交點是:(0.

45、018595,-0.18988),第20與19交點電平持續(xù)時間:0.00126ms,第21交點是:(0.019463,-0.07468),第21與20交點電平持續(xù)時間:0.00086772ms,圖4.5 Matlab運行結果圖由MATLAB計算結果可以得出電平的時間間隔表如4.1表和4.2表所示:表4.1 L1與L2曲線交點電平持續(xù)時間十進制電平時間間隔表第N個交點與第N+1個交點第N個交點與第N+1個交點電平持續(xù)時間(us)1124220566315944028751727602847159480556912421010131107991214411303961416901502501616

46、90170396181441190779表4.2 L1與L3曲線交點電平持續(xù)時間十進制電平時間間隔表第N個交點與第N+1個交點第N個交點與第N+1個交點電平持續(xù)時間(us)1114020742313534057951433605797135380742911401010041110001208671312601406431514121605571714121806431912605 單片機程序設計5.1 AT89C52介紹芯片At89C52引腳結構如圖5.1所示,。它是由美國ATMEL公司生產的內部結構包涵了如定時計數(shù)器CPU,ROM,RAM和可編程I/O口,可編程串口等作為微型計算機所必須的

47、基本功能部件的一種低電壓,高性能CMOS 8位單片機。1.AT89C52的主要性能參數(shù)它是與Mcg-51產品的指令和引腳完全適用的單片機,包涵6時鐘/機器周期和12時鐘/機器周期,我們可以任意選擇,指令代碼完全兼容傳統(tǒng)8051。工作電壓;5.5V-3.3V(5V單片機)/3.8V-2V(3V單片機)工作頻率范圍:0-40MHz。用戶應用程序空間為8K字節(jié)片上集成256字節(jié)RAM通用I/O口(32)個,復位后;P1/P2/P3/P4是準雙向口/弱上拉,P0口是漏極開路輸出,當它作為總線擴展用時,不需要加上拉電阻,但是作為I/O口用時,則需加上上拉電阻。具有EEPROM功能和看門狗功能通用異步串行

48、口(UART),還可以用定時器軟件實現(xiàn)多個UART功能共有3個(16位)計數(shù)器和定時器。圖5.1 AT89C52引腳圖2.At89C52功能特性 本設計中只涉及到單片機的最小系統(tǒng)和其定時,中斷,輸出信號等功能,因此下面只簡要介紹以下這些功能和端口。最小系統(tǒng)如圖5.2所示圖5.2 單片機最小系統(tǒng)其中,單片機最小系統(tǒng)主要由4個部分組成,分別為;(1)晶振,通過18與19管腳與2個電容并聯(lián)使用,來提供振蕩時間周期。(2)復位電路(用于復位)(3)電源(用于供電,一般用電腦的USB口供電)(4)用于向單片機注入程序的接口。3.中斷AT89C52中斷系統(tǒng)有共6個中斷源:它由三個定時中斷定時器0、1、2,

49、兩個外部中斷(INT0和INT1)和一個串行中斷組成5。當想要開啟某個中斷時,可以通過置位特殊寄存器IE中相應的中斷允許控制位,同樣也可以通過置0來關閉中斷。IE還包括一個中斷總控制位EA,通過置位或清零能夠控制所有中斷。如表5.1所示,通過表我們可以得知IE.6是不能夠被使用的,一般不對它進行設。定時器2是一個16位的能在數(shù)據(jù)溢出時,自動賦予計數(shù)初值的定時器,它的功能比定時器0和1強大,它不僅可以用內部時鐘,也可以在P1.0口輸入外部時鐘,但是一般對定時器的使用都較少。表 5.1 中斷允許控制位符號位地址功能EAIE.7中斷允許控制位,EA=0,中斷總禁止;EA=1,各中斷由各自的控制位設定

50、-IE.6預留ET2IE.5定時器2中斷允許控制位ESIE.4串行口中斷允許控制位ET1IE.3定時器1中斷允許控制位EX1IE.2外部中斷1允許控制位ET0IE.1定時器0中斷允許控制位EX0IE.0外部中斷0允許控制位4.定時A.定時器0和定時器1在AT89C52中,通過對單片機內部的工作模式進行選擇,一般在模式1下工作為16位計數(shù)器。通過對M1和M0位都置一,可以選擇它工作在模式3下,此時定時器0的高8位和低8位可以分別作為計數(shù)器工作。B.計數(shù)功能對外部事件進行技術的即對脈沖計數(shù)的功能就是計數(shù)功能。一般,當輸入脈沖的電位由0轉變?yōu)殡娢?是,計數(shù)器的數(shù)值加一,因此計數(shù)功能的實質就是對脈沖由

51、0電平到1電平進行計數(shù)。如圖5所示,T0(P3.4)和T1(P3.5)這兩個信號引腳就是MCS-51系列的芯片的計數(shù)信號輸入端,當外部輸入的脈沖在負跳變到正時,計數(shù)器加1。C.定時功能定時功能就是根據(jù)所需要設定的時間,給予定時器一個初值,其初值可以通過公式計算出來,由于一般晶振都為12Mhz,所以計算出數(shù)字上的1就代表時域上的1微妙,然后通過對內部寄存器的置位或清零,打開或關閉所需要的計數(shù)器,然后再通過對寄存器TR0或TR1開啟計數(shù)器,此后每一微妙,計數(shù)器都自動加一,當計數(shù)器的數(shù)值達到65536時,計數(shù)器就會溢出,然后只要設定了外部中斷允許,此時就可以產生中斷,從而得到想要的定時功能,這樣只要

52、知道計數(shù)值計算出定時時間,或者計數(shù)器的預置值的其中一個就可以通過計算得到另一個數(shù)值。在本設計中,由于電平持續(xù)時間對比與1微秒來說太大,如果采用這個微秒級,就會超過計數(shù)范圍,所以本設計中,是采用一定比例來計算持續(xù)時間的,當時這樣并不影響最終不會讓所得的波形失真。并且,這樣不但可以根據(jù)計數(shù)值計算出。D. 定時器2定時器定時器2是一個能在數(shù)據(jù)溢出時,自動賦予計數(shù)初值的定時器定,同時它又具有計數(shù)功能。通過對寄存器C/T2的置位或清零,它可以工作在3鐘模式下,當C=0,T2=1時,它能夠在數(shù)據(jù)溢出時自動裝載計數(shù)器的初值,當C=1,T2=0,他可以接入一個pwm信號,并且能夠算出它的占空比,當C=1,T2

53、=1時,它能夠充當波特率的發(fā)生器。并且在定時方式下,它的低8位和高8位都在每個機器周期加一表 5.2 定時器2工作模式RCLK+TCLKCP/RL2TR2MODE00116位自動重載01116位捕捉1×1波特率發(fā)生器××0不用表5.3 T2MOD-定時器2控制寄存器T2MOD地址:0C9H 復位值:×××××00B-T2OEDCEN76543210符號功能無定義,預留擴展T2OE定時器2輸出允許位DCEN置1后,定時器2可配置向上或向下計數(shù)5.2 程序設計流程圖程序流程圖如圖5.3所示開始I/O端口初始化定時器0初

54、始化,定時器1定時器0,定時器1賦予初值,并開啟中中斷定時器0溢出時,發(fā)生中斷,查表,給予定時器另外一個初值,單片機引腳P1.0電平翻轉,同時開始計數(shù)定時器1溢出時,發(fā)生中斷,查表,給予定時器另外一個初值,單片機引腳P1.1電平翻轉,同時開始計數(shù)圖5,3 程序流程圖5.3 C語言實現(xiàn)程序5.3.1 程序運行軟件Keil uVision2簡介Keil uVision2是一款可以用C語言編程的開發(fā)軟件,特別是在對單片機編程時,經常使用到,它不經能夠適用多款單片機,還能夠提供調試功能,在調試時人們可以一步一步的程序的進行,以及數(shù)據(jù)的改變,這樣,在程序出錯或與自己的理想有出入時,可容易被發(fā)現(xiàn),當它與p

55、rotues一起使用時,通過把編好的程序的HEX文件注入單片機就可以開啟仿真,同時由于C語言更加易于學習,編程效率高,使用較簡單,大大提高了工作效率和縮短項目的開發(fā)周期,除此以外我們還可以在想要的關鍵地方嵌入?yún)R編程序,使程序接近于用匯編程序5.3.2 主程序#include<reg52.h>#include<intrins.h>#define uint unsigned intint i=0,j=0;char flag1=0;char flag2=0;sbit P10=P10;sbit P11=P11;int a=12420,5660,15940,2870,17270,2840,15940,5660,12420,10130,7990,14410,3960,16900,2500,16900,3960,14410,7790;int b=11400,7420,13530,5790,14330,5790,13530,7420,11400,10040,10000,8670,12600,6430,14120,5570,14120,6430,12600,8670,1000;void main()P10=0;P11=0;EA=1;ET0=1;ET1=1;TM

溫馨提示

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

評論

0/150

提交評論