




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
繞組可以接成星形或三角形,并分別與逆變器中的各開關管相連,三相無刷直流電動機最為常見。西安工業(yè)大學畢業(yè)設計(論文)2.逆變器西安工業(yè)大學畢業(yè)設計(論文)目前,無刷直流電動機的逆變器主開關一般采用IGBT或功率MOSFET等全控型器件,有些主電路已有集成的功率模塊(PIC)和智能功率模塊(IPM),選用這些模塊可以提高系統(tǒng)的可靠性。無刷直流電動機定子繞組的相數(shù)可以有不同的選擇,繞組的連接方式也有星形和角型之分,而逆變器又有半橋型和全橋型兩種。不同的組合使電動機產(chǎn)生不同的性能和成本。綜合以下三個指標有助于我們做出正確的選擇:(1)繞組利用率。與普通直流電動機不同,無刷直流電動機的繞組是斷續(xù)通電的。適當?shù)靥岣呃@組利用率將可以使同時通電的導體數(shù)增加,使電阻下降,效率提高。從這個角度來看,三相繞組優(yōu)于四相和五相繞組。(2)轉矩脈動。無刷直流電動機的輸出轉矩脈動比普通直流電動機的轉矩脈動大。一般相數(shù)越多,轉矩的脈動越??;采用橋式主電路比采用非橋式主電路的轉矩脈動小。(3)電路成本。相數(shù)越多,逆變器電路使用的開關管越多,成本越高。橋式主電路所用的開關管比半橋式多一倍,成本要高;多相電動機的逆變器結構復雜,成本也高。因此,目前以星形連接三相橋式主電路應用最多。3.位置檢測器位置檢測器的作用是檢測轉子磁極相對與定子繞組的位置信號,為逆變器提供正確的換相信息。位置檢測包括有位置傳感器和無位置傳感器檢測兩種方式。轉子位置傳感器也由定子和轉子兩部分組成,其轉子與電機本體同軸,以跟蹤電機本體轉子磁極的位置;其定子固定在電機本體定子或端蓋上,以檢測和輸出轉子位置信號。轉子位置傳感器的種類包括磁敏式、電磁式、光電式、接近開關式、正余弦旋轉變壓器式以及編碼器等。在無刷直流電動機系統(tǒng)中安裝機械式位置傳感器解決了電機轉子位置的檢測問題。但是位置傳感器的存在增加了系統(tǒng)的成本和體積,降低了系統(tǒng)可靠性,限制了無刷直流電動機的應用范圍,對電機的制造工藝也帶來了不利的影響。因此,國內外對無刷直流電動機的無位置運行方式給予高度重視。無機械式位置傳感器轉子位置檢測是通過檢測和計算與轉子位置有關的物理量間接地獲得轉子位置信息,主要有反電動勢檢測法、續(xù)流二極管工作狀態(tài)檢測法、定子三次諧波檢測法和瞬時電壓方程法等。4.控制器控制器是無刷直流電動機正常運行并實現(xiàn)各種調速伺服功能的指揮中心,它主要完成以下功能:(1)對轉子位置檢測器輸出的信號進行邏輯綜合,為驅動電路提供各開關管的斬波信號和選通信號,實現(xiàn)電機的正反轉及停車控制。(2)產(chǎn)生調制信號,使電機的電壓隨給定速度信號而自動變化,實現(xiàn)電機開環(huán)調速。(3)對電動機進行速度閉環(huán)調節(jié)和電流閉環(huán)調節(jié),使系統(tǒng)具有較好的動態(tài)和靜態(tài)性能。(4)實現(xiàn)短路、過流、過電壓和欠電壓等故障保護電路。2.3系統(tǒng)設計方案論證根據(jù)設計任務,要求調速采用PID控制器,因此需要設計一個閉環(huán)直流電機控制系統(tǒng)。該系統(tǒng)采用脈寬調速,使電機速度等于設定值,并且實時顯示電機的轉速值。通過對設計功能分解,設計方案論證可以分為:速度測量方案論證,電機驅動方案論證,鍵盤顯示方案論證,PWM軟件實現(xiàn)方案論證等等。2.3.1轉速測量方案論證方案一:采用記數(shù)的方法。具體是通過單片機單位時間S(秒)內的脈沖數(shù)N,每分鐘的轉速:M=N/S×60。方案二:采用定時的方法。是通過定時器記錄脈沖的周期T,這樣每分鐘的轉速:M=60/T。本設計采用方案一。2.3.2電機驅動方案論證方案一:采用專用小型直流電機驅動芯片。這個方案的優(yōu)點是驅動電路簡單,幾乎不添加其它外圍元件就可以實現(xiàn)穩(wěn)定的控制,使得驅動電路功耗相對較小,而且目前市場上此類芯片種類齊全,價格也比較便宜。方案二:采用繼電器對電動機的開或關進行控制,通過開關的切換對電動機的速度進行調整。這個方案的優(yōu)點是電路較為簡單、在觸點上允許流過較大的電流,缺點是繼電器的響應時間慢,無法實現(xiàn)直流電動機正反轉的快速切換、機械結構易損壞、壽命較短、可靠性不高。所以繼電器不適合應用在要求快速動作的場合。方案三:采用由晶體管組成的PWM電路。用單片機控制晶體管或達林頓管使之工作在占空比可調的開關狀態(tài),精確調整電動機轉速。電路保證了可以簡單地實現(xiàn)轉速和方向的控制;電子開關的速度很快,穩(wěn)定性也極佳,這種電路由于工作在管子的飽和截止模式下,效率非常高;所以是一種廣泛采用的PWM調速技術。兼于方案三調速特性優(yōu)良、調整平滑、調速范圍廣、過載能力大,因此本設計采用方案三。2.3.3鍵盤輸入方案論證方案一:采用獨立式鍵盤,其特點是:一鍵一線,即每個按鍵單獨占用一條檢測線,并與主機相連。當某一按鍵被按下時,對應的檢測線就變成了低電平,而與他按鍵相連的檢測線仍然為高電平,從而很容易識別出哪個按鍵被按下。這種連接方式的優(yōu)點是:鍵盤結構簡單,各條測試線相互獨立,容易識別被按下的鍵,軟件結構簡單,適用于少量使用鍵盤的場合。缺點是:如果鍵盤數(shù)量較多,將占用較多的檢測線,所以不適用于組成大型鍵盤。方案二:采用矩陣式鍵盤,其特點是:一組定為行線,另一組定為列線,在行線和列線的交叉點上放置按鍵。每個按鍵都通過不同的行線和列線與單片機相連。4×4矩陣鍵盤共使用16個按鍵,但只需要8條測試線。不難看出,m×n矩陣鍵盤與單片機之間的測試線共需要m+n條,顯然,鍵盤的規(guī)模越大,矩陣式鍵盤的優(yōu)點越顯著。當需要的按鍵大于8時,一般都采用矩陣式鍵盤。由于本系統(tǒng)所需的按鍵數(shù)目較多,因此,本設計系統(tǒng)采用方案二。2.3.4顯示方案論證通過查閱資料設想了兩種方案為本系統(tǒng)的顯示模塊。方案一:LCD顯示,LCD是一種被動式顯示器,由于他的功耗低,抗干擾能力強因而在低功耗的單片機系統(tǒng)中大量使用。LCD不發(fā)光他只調節(jié)光的亮度。液晶顯示器的驅動方式由電極引線的選擇方式確定。因此在選擇好液晶顯示器后用戶無法更改其驅動方式。方案二:數(shù)碼管是一類顯示屏通過對其不同的管腳輸入相對的電流會使其發(fā)亮從而顯示出數(shù)字,它可以顯示時間、日期、溫度等所有可以用數(shù)字代替的參數(shù)。由于它的價格便宜、使用簡單,在電器特別是家電領域應用極為廣泛。在本設計中,屏幕需要顯示的信息較少,采用LED數(shù)碼管完全可以滿足要求。2.3.5PWM調速工作方式方案一:雙極性工作制。雙極性工作制是在一個脈沖周期內,單片機兩個控制口各輸出一個控制信號,兩信號高低電平相反,兩信號的高電平時差決定電動機的轉向和轉速。方案二:單極性工作制。單極性工作制是單片機控制口一端口置低電平,另一端輸出PWM信號,兩口的輸出切換和對PWM的占空比調節(jié)決定電動機的轉向和轉速。本設計系統(tǒng)采用了方案一。2.3.6PWM軟件實現(xiàn)方案論證脈寬調制的方式有三種:定頻調寬、定寬調頻和調寬調頻。本設計采用了定頻調寬方式,采用這種方式的優(yōu)點是電動機在運轉時比較穩(wěn)定,并且在采用單片機產(chǎn)生PWM脈沖的軟件實現(xiàn)上比較方便。對于實現(xiàn)方式則有兩種方案。方案一:采用定時/計數(shù)器方式獲得PWM信號。常用的有兩種:一種是定時/計數(shù)器的定時時間固定,這種方法類似于利用軟件延時做基準時間:另一種方法是定時/計數(shù)器的定時時間按照高低電平的要求變化。方案二:采用軟件延時方式獲得PWM信號。以P1.0輸出PWM信號為例,在軟件中設計一個基準的軟件延時程序,通過反復調用這個延時程序,從而獲得不同的時間長度。本設計采用方案一。2.3.7直流電動機轉速檢測方案論證在應用直流電動機作為執(zhí)行部件時,如果要很好的控制直流電動機,首先要知道直流電動機的轉速。對于轉速的檢測方法有很多種。方案一:采用霍爾傳感器?;魻杺鞲衅魇菓秒姶鸥袘姆绞竭M行檢測,由于其安裝結構的限制,這種傳感器檢測的精度很低,所以常常用在高轉速并且對精度要求不高的場合。方案二:采用光電傳感器。光電傳感器又稱光電開關,由于光電傳感器屬于非接觸式檢測器件,對檢測器件不會造成損傷。方案三:采用光電編碼器。光電編碼器的檢測精度非常高,通常旋轉一圈可輸出幾百至幾千個脈沖,適用于轉速較低的場合。由于光電編碼器的檢測精度最高,本設計選擇方案一。2.4系統(tǒng)原理框圖設計通過位置傳感器的對電機的位置進行檢測,將其位置信號傳入微控制器,微控制器對其信號進行邏輯出來,產(chǎn)生相應的脈沖驅動信號,經(jīng)功率驅動單元放大,放大控制信號對逆變電路進控制,通過電力全控晶體管的開通達到將交流電流轉變?yōu)橹绷麟娏鞯墓ぷ?。其電機速度的調節(jié)依靠改變單片機輸出的PWM脈沖信號的占空比來調節(jié),如圖2.4所示圖2.4系統(tǒng)原理框圖系統(tǒng)硬件分析與設計第3章系統(tǒng)硬件分析與設計3.1單片機的介紹如圖3.1是本設計選用的主控芯片AT89S52單片機的外部引腳結構圖。圖3.1AT89S52的外部引腳結圖下面簡要介紹其主要性能。主要性能:與MCS-51單片機產(chǎn)品兼容8K字節(jié)在系統(tǒng)可編程Flash存儲器1000次擦寫周期全靜態(tài)操作:0Hz~33Hz三級加密程序存儲器32個可編程I/O口線三個16位定時器/計數(shù)器西安工業(yè)大學畢業(yè)設計(論文)八個中斷全雙工UART串行通低功耗空閑和掉電模式掉電后中斷可喚醒看門狗定時器雙數(shù)據(jù)指針掉電標識符下面對其功能進行簡要描述。功能特性描述:AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標準功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。對各個引腳及外部接口做以下說明:VCC:電源GND:地P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復用。在這種模式下,P0具有內部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1口:P1口是一個具有內部上拉電阻的8位雙向I/O口,p1輸出緩沖器能驅動4個TTL邏輯電平。對P1端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如表3.2所示。在flash編程和校驗時,P1口接收低8位地址字節(jié)。表3.2P1口的第二功能引腳號第二功能P1.0T2(定時器/計數(shù)器T2的外部計數(shù)輸入),時鐘輸出P1.1T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制)P1.5MOSI(在系統(tǒng)編程用)P1.6MISO(在系統(tǒng)編程用)P1.7SCK(在系統(tǒng)編程用)P2口:P2口是一個具有內部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅動4個TTL邏輯電平。對P2端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX@DPTR)時,P2口送出高八位地址。在這種應用中,P2口使用很強的內部上拉發(fā)送1。在使用8位地址(如MOVX@RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內容。在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。P3口:P3口是一個具有內部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅動4個TTL邏輯電平。對P3端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如表3.3所示。在flash編程和校驗時,P3口也接收一些控制信號。表3.3P3口的第二功能引腳號第二功能P3.0RXD(串行輸入)P3.1TXD(串行輸出)P3.2(外部中斷0)P3.3(外部中斷1)P3.4T0(定時器0外部輸入)P3.5T1(定時器1外部輸入)P3.6(外部數(shù)據(jù)存儲器寫選通)P3.7(外部數(shù)據(jù)存儲器度選通)RST:復位輸入。晶振工作時,RST腳持續(xù)2個機器周期高電平將使單片機復位。看門狗計時完成后,RST腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復位高電平有效。本系統(tǒng)主控芯片AT89S52的復位電路如圖3.4所示。圖3.4AT89S52的復位電路ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在flash編程時,此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調,在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置“1”,ALE操作將無效。這一位置“1”,ALE僅在執(zhí)行MOVX或MOVC指令時有效。否則,ALE將被微弱拉高。這個ALE使能標志位(地址為8EH的SFR的第0位)的設置對微控制器處于外部執(zhí)行模式下無效。在此系統(tǒng)中ALE/懸空——默認為高電平。PSEN:PSEN是外部程序存儲器選通信號。當AT89S52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,PSEN將不被激活。EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執(zhí)行內部程序指令,EA應該接VCC。在flash編程期間,EA也接收12伏的VPP電壓。XTAL1:振蕩器反相放大器和內部時鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。本設計系統(tǒng)的晶振電路如圖3.5所示。圖3.5AT89S52的晶振電路3.2顯示電路的設計3.2.1顯示電路的分析LED數(shù)碼管實際上是由7個發(fā)光二級管組成“8”字形構成的,加上小數(shù)點就是8個。這些段分別由字母a,b,c,d,e,f,g,dp來表示。通過不同的組合可用來顯示數(shù)字0—9、字符A—F、H、L、P、U等。根據(jù)LED顯示的硬件設計方法的不同,LED顯示驅動分為靜態(tài)顯示和動態(tài)顯示倆種方法。所謂靜態(tài)顯示驅動法,是指每個數(shù)碼管的每一個段碼都由一個單片機的I/O端口進行驅動,或者使用如BCD碼二-十進制譯碼器譯碼進行驅動。靜態(tài)驅動的優(yōu)點是編程簡單,顯示亮度高,缺點是占用I/O端口多,如驅動5個數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅動,要知道一個89S51單片機可用的I/O端口才32個),實際應用時必須增加譯碼驅動器進行驅動,增加了硬件電路的復雜性。所謂動態(tài)顯示,是指無論在任何時刻只有一個數(shù)碼管處于顯示狀態(tài)每個數(shù)碼管輪流顯示。當數(shù)碼管處于動態(tài)顯示時,所有位選線分離,而每個數(shù)碼管的各條段選線相連。當需要顯示數(shù)字或字符時,需要將所有數(shù)碼管輪流點亮這時對每個數(shù)碼管的點亮周期有一個較嚴格的要求:由于發(fā)光體從通入電流開始點亮到完全發(fā)光需要一定的時間,叫做響應周期,這個時間對于不同的發(fā)光材質是不同的,通常情況下為幾百微妙,所以數(shù)碼管的刷新周期(所有數(shù)碼管被輪流點亮一次的時間)不要過短,這也與數(shù)碼管的數(shù)量有關,一般的數(shù)碼管的刷新周期應控制在5—10ms,即刷新率為200—100Hz,這樣既保證了數(shù)碼管每一次刷新都被完全點亮,同時又不會產(chǎn)生閃爍現(xiàn)象。進行動態(tài)顯示時,在向各位LED傳送顯示碼之前,必須先暫時關閉LED,然后再傳送顯示碼,否則容易造成視覺干擾。動態(tài)顯示的優(yōu)點是硬件電路簡單(數(shù)碼管越多,這個優(yōu)勢越明顯),由于每個時刻只有一個數(shù)碼管被點亮,所以所有數(shù)碼管消耗的電流較少;缺點是數(shù)碼管亮度不如靜態(tài)顯示時的亮度高。8段LED的字型碼如表3.6所示。表3.68段LED的字型碼顯示字符共陰極字型碼共陽極字型碼03FHC0H106HF9H25BHA4H34FHB0H466H99H56DH92H67DH82H707HF8H87FH80H96FH90HA77H88HB7CH83HC39HC6HD5EHA1HE79H86HF71H8EH3.2.2顯示電路硬件原理速度顯示模塊有驅動電路和LED顯示器組成。驅動芯片分別用到74LS244八路驅動芯片和74LS06六路驅動芯片。其中74LS244用于對LED顯示器的八位段碼管的驅動;74LS06用于對每個LED顯示器的VCC電源接線端的驅動,控制每個晶體管的工作狀態(tài)是“工作”還是“非工作”狀態(tài),即“位控制”。單片機的P0口對顯示模塊提供數(shù)據(jù)信號。P2.0,P2.1,P2.2通過74LS138把譯碼芯片對六個顯示器進行“位控制”。其原理圖如3.2.2所示圖3.2.2顯示電路硬件原理圖3.3鍵盤電路的設計3.3.1鍵盤電路的分析在人機交互功能中,起到“手”的作用的是鍵盤,鍵盤是現(xiàn)代單片機系統(tǒng)中不可缺少的組成部分,應用鍵盤主要完成用戶指令的輸入、功能的切換等。隨著電子技術的不斷發(fā)展,鍵盤的種類也比較多,有按鍵式、感應式、觸摸式等,最常用的是按鍵式鍵盤,因為它有硬件結構簡單、功能容易實現(xiàn)、軟件調試方便等優(yōu)點。鍵盤的任務大體可分為三項:1)識鍵:判斷是否有鍵按下。若有,進入下一步工作。2)譯鍵:識別出哪一個按鍵被按下并求出相應的鍵值。3)鍵值分析:根據(jù)鍵值,找到相應的處理程序入口并執(zhí)行。根據(jù)本系統(tǒng)的需要,采用了按鍵式鍵盤中的矩陣式鍵盤,并采用了查詢工作方式來檢測鍵盤上有無鍵按下,采用行掃描法實現(xiàn)對按鍵的識別。矩陣式鍵盤工作原理:在鍵盤中按鍵數(shù)量較多時,為了減少I/O口的占用,通常將按鍵排列成矩陣形式,在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如P1口)就可以構成4×4=16個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構成20鍵的鍵盤,而直接用端口線則只能多出一鍵。由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。矩陣式鍵盤的輸入原理:矩陣式結構的鍵盤顯然比直接法要復雜一些,識別也要復雜一些,在圖3.3.2中,列線通過電阻接正電源,并將行線所接的單片機的I/O口作為輸出端,而列線所接的I/O口則作為輸入。當按鍵沒有按下時,所有的輸出端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下時,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。其可分為以下三步:①CPU先通過輸出口使所有行線輸出為低電平,然后從輸入口讀入所有列線的狀態(tài)。若列線狀態(tài)都為高電平,則說明沒有鍵被按下,若列線中有低電平,則表明有鍵被按下。②判斷按鍵位置。CPU通過輸出口使行線從低位至高位逐位變低電平輸出,每次均讀入列線的狀態(tài),以確定那條行線為“0”狀態(tài)。由行、列線的狀態(tài)就可以判斷是哪一個鍵被按下(行、列交叉處)。③當判斷出哪個鍵壓下后,程序轉入相應的鍵處理程序。3.3.2鍵盤電路硬件原理本系統(tǒng)采用4*4矩陣式鍵盤。共16鍵位。S1—S10分別對應數(shù)字鍵0—9;S16對應“啟動和關閉按鍵”,按一下啟動鍵盤,再按一下禁止輸入。S11對應“刪除鍵”。對當前輸入有誤的數(shù)值進行修改。S12“確定鍵”,在輸入當前值完畢的情況下,按此鍵表示運行當前輸入的數(shù)值速度。S12鍵是系統(tǒng)啟動鍵。S13鍵是系統(tǒng)停止鍵。S14鍵是電動機加速鍵。S15鍵是電動機減速鍵。鍵盤的信號通過單片機上的P3口傳給單片機。單片機通過中斷或者查詢方式來判斷鍵盤I\O是否有數(shù)據(jù)傳輸。單片機通過運行鍵盤掃描法的的程序對菌體鍵位進行識別。其電路原理圖如圖3.3.2所示 圖3.3.2鍵盤電路硬件原理圖3.4逆變主電路設計3.4.1功率開關主電路無刷電機的連續(xù)運行,定子繞組所產(chǎn)生的的磁場和裝洞中轉子磁鋼產(chǎn)生的永磁場,在空間始終保持在(π/2)rad左右的電角度,因此定子繞組需要加三相電源,此電源可通過下圖的逆變電路產(chǎn)生。如圖3.4.1所示Q1、Q2、…… Q6為六只MOSFET功率管,起繞組的開關作用,高電平是導通,其控制信號靠單片機的P3.0-P3.5拐角發(fā)出的信號控制。每一瞬間有兩個功率管導通,每隔1/6周期(60°電角度)換相一次,每次換相一個功率管導通120°電角度。各功率管的導通順序是Q1Q2、Q2Q3、Q3Q4、Q4Q5、Q5Q6、Q6Q1圖3.4.1逆變主電路圖3.4.2逆變電路驅動設計如圖3.4.1其中驅動部分采用芯片IR2130對逆變電路進行驅動。IR2130的拐角圖如圖3.4.2所示圖3.4.2芯片IR2130拐角圖IR2130是國際整流器公司最新推出的高壓集成驅動器,可作為交直流調速、UPS電源、電子鎮(zhèn)流器以及永磁無刷電機調速電路中主功率元件的驅動電路。IR2130可直接驅動中小容量的功率場效應管(MOSFET)、絕緣柵晶體管(IGBT)和場效應控制晶閘管(MCT)等。IR2130具有六路輸入信號和六路輸出信號,其中六路輸出信號中的三路具有電平轉換功能,因而它既能驅動橋式電路中低壓側的功率器件,又能驅動高壓側的功率元件。也就是說,該驅動器可共地運行,且只需一路控制電源,而常規(guī)的驅動系統(tǒng)通常包括光電隔離器件或者脈沖變壓器,同時還必須向驅動電路提供相應的隔離電源IR2130引腳功能:VCC為輸入電源,HIN1、HIN2、HIN3、LIN1、LIN2、LIN3為輸入端,FALUT為故障輸出端,ITRIP為電流比較器輸入端,CAO為電流放大器輸出端,CA-為電流放大器反向輸入端,VSS為電源地,VSD為驅動地,L01,L02,L03為三路低側輸出,VB1、VB2、VB3為三路高側電源端,HO1、VS1,HO2、VS2、HO3、VS3為三路高側輸出端。IR2130芯片的特點1)可直接驅動600V高壓系統(tǒng);2)具有電流放大和過電流保護功能;3)自動產(chǎn)生成上、下側驅動所必需的死區(qū)時間(2μs);4)具有欠壓鎖定功能并能指示欠壓和過電流狀態(tài);5)輸入端具有噪聲抑制功能。3.5辨相電路模塊分辨三相電源相序在電氣設備中是一項十分重要的工作.在風機系統(tǒng)、電力調速、電網(wǎng)并網(wǎng)運行、電焊設備及軍用電源等場合中常常用到.市場上許多傳統(tǒng)產(chǎn)品的鑒相裝置為體積大、成本高、工作不靈敏、不易推廣的鑒相電路.如電磁繼電器式分辨電路,其電路復雜、可靠性差;使用自耦變壓器分辨電路,自然體積大、成本高.也有使用單片機系統(tǒng)來控制.這在技術上太浪費,且不易維護、推廣為了讓單片機辨別電動機的正傳還是反轉,此處用到了辨相電路來辨別電動機的運行方向。其電路原理圖3.5所示本設計將三相電機轉子的A,B,C相的位置信號分別接入辨相電路的HA.HB.HC相連接,矢量處于正半周期時,矢量才能導通,由于在矢量的正半周期矢量在兩個對稱晶體管Q9.Q10中的導通時間不一樣,導致兩電容c9,c10充電后之間存在電壓差,電壓差通過有源放大器作用產(chǎn)生相應信號傳給單片機判別電機的運行方向。矢量滯后矢量時xy處為低電位。超前時xy處為高電位。所以可以根據(jù)xy處的高低電平判斷電機的轉向問題。本設計中xy處的信號與單片機P2.6相連接。圖3.5逆變電路原理圖3.6霍爾位置傳感器模塊轉子位置傳感器是永磁無刷直流電機的關鍵部件。它對電機轉子位置進行檢測,其輸出信號經(jīng)過邏輯變換后去控制開關管的通斷,使電機定子各相繞組按順序導通,保證電機連續(xù)工作。轉子位置傳感器也由定、轉子組成,其轉子與電機本體同軸,以跟蹤電機轉子的位置;其定子固定于電機本體定子或端蓋上,以感應和輸出轉子位置信號霍爾元件式位置傳感器是磁敏式位置傳感器的一種。它是一種半導體器件,是利用霍爾效應制成的。當霍爾元件按要求通以電流并置于外磁場中,即輸出霍爾電勢信號,當其不受外磁場作用時,其輸出端無信號。用霍爾元件作轉子位置傳感器通常有兩種方式。第一種方式是將霍爾元件粘貼于電機端蓋內表面,靠近霍爾元件并與之有一小間隙處,安裝在與電機軸同軸的永磁體對于兩相導通星形三相六狀態(tài)無刷直流電機,三個霍爾元件在空間彼此相隔120°電角度,永磁體的極弧寬度為180°電角度。這樣,當電機轉子旋轉時,三個霍爾元件便交替輸出三個寬度為180°電角、相位互差120°電角的矩形波信號。第二種方式是直接將霍爾元件敷貼在定子電樞鐵心氣隙表面或繞組端部緊靠鐵心處,利用電機轉子上的永磁體主極作為傳感器的永磁體,根據(jù)霍爾元件的輸出信號即可判斷轉子磁極位置,將信號放大處理后便可驅動逆變器工作?;魻栐轿恢脗鞲衅鹘Y構簡單、體積小、價格低、可靠,但對工作溫度有一定要求,同時霍爾元件應靠近傳感器的永磁體,否則輸出信號電平太低,不能正常工作。因此,在對性能和環(huán)境要求不是很高的永磁無刷直流電機應用場合大量使用霍爾元件式位置傳感器。本設計采用第一種方式,購買現(xiàn)成的霍爾位置傳感器及與單片機的接口電路。其原理圖如圖3.6所示圖3.6霍爾傳感電路接線圖當霍爾傳感器用作無刷直流電機轉子位置信息檢測裝置時,將其安放在電機定子的適當位置,霍爾器件的輸出與控制部分相連。當無刷直流電機的永磁轉子經(jīng)過霍爾器件附近時,永磁轉子的磁場令霍爾器件輸出一個電壓信號,該信號被送到控制部分,由控制部分發(fā)出信號使得定子繞組供電電路導通,給相應的定子繞組供電,從而產(chǎn)生和轉子磁場極性相同的磁場,推斥轉子繼續(xù)轉動。當轉子到下一位置時,前一位置的霍爾器件停止工作,下一位置的霍爾器件輸出電壓信號,控制部分使得對應定子繞組通電,產(chǎn)生推斥場使轉子繼續(xù)轉動,如此循環(huán),維持電機運轉軟件設計程序第4章軟件程序設計在現(xiàn)實生活中,一個實際的電動機系統(tǒng)是由硬件電路和軟件電路兩個部分組成的,二者是缺一不可的。軟件設計既是軟件程序的設計,所謂軟件程序是根據(jù)設計者的要求編寫出來的一系列指令,它是存放在單片機內部的,當單片機接通電源開始工作時,單片機就會按照要求逐條的執(zhí)行指令,完成設計者需要完成的功能。軟件程序通常是在PC機上通過專用的軟件進行編寫,然后利用專門的工具將程序放到單片機內。在本次設計中是在KeilC51軟件開發(fā)環(huán)境下進行的編程,然后再將程序燒寫到單片機中。KeilC51是美國KeilSoftware公司出品的51系列兼容單片機C語言軟件開發(fā)環(huán)境;集編輯、編譯、仿真于一體,支持匯編、PLM語言和C語言的程序設計提供豐富的庫函數(shù)和功能強大的集成開發(fā)調試工具,全Windows界面,界面友好,易學易用。而最新發(fā)布的μVision3開發(fā)環(huán)境工具和C51優(yōu)化編譯器,具有代碼源概述、功能導航、模板編譯和附加搜索等功能。在μVision3的仿真功能中,有兩種仿真模式:軟件仿真方式和目標板仿真方式。在軟件仿真方式下,不需要任何單片機硬件電路即可完成用戶程序的仿真調試,極大的提高了用戶程序的開發(fā)效率。在目標板仿真方式下,用戶可以通過連接器,將程序下載到目標板上,利用單片機的串行通信接口與PC進行通信,實現(xiàn)用戶程序的實時在線仿真。在編寫程序的語言方面,通常有匯編語言和C語言,在本設計中我們采用C語言。因為它具有以下優(yōu)點:不需要了解51單片機的指令系統(tǒng),僅僅要求初步了解存儲器結構。
(2)程序有規(guī)范的結構,可分為不同的函數(shù),使程序結構化。
(3)程序可讀性好。
(4)提供很多標準庫函數(shù),數(shù)據(jù)處理能力強。
(5)程序易于做到模塊化,移植性好。本系統(tǒng)的程序主要分為六大模塊:系統(tǒng)初始化模塊、鍵盤模塊、顯示模塊、PWM波輸出模塊、轉速調節(jié)模塊、測速模塊。分別編寫好各模塊之后進行總程序調試直到滿足條件為止。4.1系統(tǒng)初始化程序模塊系統(tǒng)初始化程序是每個系統(tǒng)所必須的,它是為接下來的主程序和子程序做準備工作的。在本系統(tǒng)初始化程序中,把定時器T0、T1均設置成定時器并工作在方式一狀態(tài),把T2設置成計數(shù)器,以便對測速反饋脈沖進行計數(shù)。對T0設初值,開T0中斷開啟定時器T0,這樣初始化完成后定時器T0開始工作,時間到就請求CPU相應中斷程序。在整個程序中T0的中斷始終是開著的,定時器T0始終處于開啟狀態(tài),那么就是說T0始終在計時,計滿后便產(chǎn)生中斷,然后CPU就執(zhí)行中斷程序。此中斷函數(shù)如下:西安工業(yè)大學畢業(yè)設計(論文)voidtimer0(void)interrupt1using1{PWM_OUT=~PWM_OUT;if(PWM_OUT==0){TH0=(65536-pwm_negtive)/256;TL0=(65536-pwm_negtive)%256;}else{TH0=(65536-pwm_positive)/256;TL0=(65536-pwm_positive)%256;}TIMER0_CONTROL=1;return;}這是PWM定時產(chǎn)生中斷服務程序,該子程序實現(xiàn)的功能是輸出PWM波——方波。pwm_positive與pwm_negtive的值是否相等決定了輸出的PWM波的正負脈寬是否相等。若pwm_positive=pwm_negtive,則PWM的正脈寬等于負脈寬,這時電機不會旋轉,而想控制電動機轉速,就應在執(zhí)行此中斷程序之前將pwm_negtive和pwm_positive的值改變。這將是轉速調節(jié)部分程序所要完成的功能,在以后我們將會分析到。在系統(tǒng)初始化中,還調用了填充給定顯示緩沖區(qū)函數(shù)和填充轉速反饋顯示緩沖區(qū)函數(shù)。兩程序如下,程序實現(xiàn)的功能是,分別將給定顯示緩沖區(qū)和轉速反饋緩沖區(qū)填充四個字符,在系統(tǒng)初始化完成后分別填充了八個零,這兩個緩沖區(qū)中填充的字符,將在刷新顯示時送到LED去顯示。voidset_refled_buf(unsignedchara,intpos,intlen){unsignedcharledbuf_pos;for(ledbuf_pos=pos;len>0;len--){refled_buf[ledbuf_pos]=((islower(a))?(toupper(a)):(a));ledbuf_pos++;if(ledbuf_pos>=4)ledbuf_pos=0;}}voidset_fdbled_buf(unsignedchara,intpos,intlen){unsignedcharledbuf_pos;for(ledbuf_pos=pos;len>0;len--){fdbled_buf[ledbuf_pos]=((islower(a))?(toupper(a)):(a));ledbuf_pos++;if(ledbuf_pos>=4)ledbuf_pos=0;};}填充顯示緩沖區(qū)程序作為一個子程序被調用,程序中的形參a是要填充的字符,pen表示要填充的第幾位,若pen=1,即要填充顯示緩沖區(qū)的第一位refied-buf[1]。len是要填充的位數(shù)。若要填充4個0,就是只需調用voidset_refled_buf(‘0’,0,4)。4.2鍵盤模塊在鍵盤模塊中又包含判斷是否有鍵按下函數(shù)和取按鍵值函數(shù)。取完鍵值就回轉去執(zhí)行相應的子程序。鍵盤模塊總流程圖如圖4.2所示:主函數(shù)主函數(shù)有鍵按下?取鍵值處理相應程序圖4.2鍵盤模塊流程圖判斷是否有鍵按下子程序完成的功能是:若有鍵按下函數(shù)值為1,若無鍵按下函數(shù)返回值為0。根據(jù)系統(tǒng)硬件采用的是矩陣式鍵盤,逐行掃描方法,取按鍵值子程序如下:unsignedcharget_char(void){unsignedcharrow=0,col=0;unsignedcharkey_value;unsignedcharscan_rowbyrow=0xfe;key_row=scan_rowbyrow;while((key_col&0xff)==0xff&&scan_rowbyrow>0xef){ ++row; scan_rowbyrow=_crol_(scan_rowbyrow,1); key_row=scan_rowbyrow; }key_value=key_col&0xff;scan_rowbyrow=0x01;while(key_value&scan_rowbyrow){ ++col; scan_rowbyrow=_crol_(scan_rowbyrow,1); }while((key_col&0xff)!=0xff);delay(8);//延時8ms消抖if((key_col&0xff)==0xff)//再次檢測確認{key_row=0xffkey_value=row*4+col;if(key_value<9)key_value+='0'+1;elseif(key_value==9)key_value='0';elsekey_value+='A'-10;}return(key_value);}該程序先定義了四個局部變量,row為行數(shù)、col為列數(shù)、key-value為鍵值、scan-rowbyrow為一行一行掃描并賦予初值Oxfe,再將此值賦給鍵盤行地址,即對鍵盤第一行進行掃描,此時判斷鍵盤列是否全部為1,若全為1表明第一行無鍵按下,row值加一。同理去判斷第二行、第三行等等。判斷完成后row和col的值就是按鍵所處的行數(shù)和列數(shù)。例如是第二行第三列的鍵被按下,那么row=2,col=3,最后根據(jù)公式key-value=row4+col計算出按鍵值,再將鍵值返回即可。最后根據(jù)返回的鍵值轉去處理相應的子程序,子程序是由case語句來完成的,case語句如下:switch(key) { case'A':n_ref_key=atoi(str);TIMER1_CONTROL=1;break; case'B':n_ref_select_flag=~n_ref_select_flag;break; case'C':pwm_positive=10000;pwm_negtive=10000;n_ref_key=3000; TIMER1_CONTROL=1;break; case'D':n_ref_select_flag=0;n_ref_key+=100;break; case'E':n_ref_select_flag=0;n_ref_key-=100;break; case'F':pwm_positive=10000;pwm_negtive=10000;n_ref_key=0; set_refled_buf('0',0,4);set_fdbled_buf('0',0,4); TIMER1_CONTROL=0;break; case'0':get_str(str,4);break; default:; }在此編寫的case語句使得鍵盤上各鍵的功能是:A鍵是確認,B鍵是切換鍵盤給定和電位器給定的控制鍵,“0”鍵是鍵盤給定轉速啟動——先按“0”鍵后鍵入3位數(shù)字,然后按A鍵確認,若此時給定選擇B鍵為“鍵盤給定”則電動機會按設定轉速運行。C鍵是系統(tǒng)啟動鍵,F(xiàn)鍵是系統(tǒng)停止鍵,D鍵是電動機加速鍵,E鍵是電動機減速鍵。4.3顯示模塊顯示模塊的任務很簡單就是將填充到顯示緩沖區(qū)的字符顯示到數(shù)碼管LED上。編寫程序時,設兩個局部變量pos和ledbit。pos代表送第幾位的字符,ledbit是數(shù)碼管的位選,賦給其初值為0xfe是先讓數(shù)碼管第一位亮。這樣只需兩條語句:led_bit=ledbit;led_data=get_strokes(refled_buf[pos]);就可以讓顯示緩沖區(qū)的第一位送到第一位數(shù)碼管顯示。依次循環(huán)顯示四位數(shù)碼管,這也就是所謂的動態(tài)顯示。顯示程序如下所示:voidput_on_refleds(void){unsignedcharpos;unsignedcharledbit=0xfe;for(pos=0;pos<3;pos++){ led_bit=ledbit; led_data=get_strokes(refled_buf[pos]);delay(1);//延時1msledbit=_crol_(ledbit,1);}}voidput_on_fdbleds(void){unsignedcharpos;unsignedcharledbit=0xef;for(pos=0;pos<3;pos++){led_bit=ledbit; led_data=get_strokes(fdbled_buf[pos]);delay(1);//延時1msledbit=_crol_(ledbit,1);}}4.4轉速調節(jié)程序設計就整個系統(tǒng)而言,轉速調節(jié)程序的設計,包括PID控制算法的選擇都是關鍵部分,將影響到整個系統(tǒng)的控制質量等等。轉速調節(jié)程序是做為T1中斷服務程序編寫的,當鍵盤給定轉速并按下確認(A)鍵或按下啟動(C)鍵后T1定時器被啟動,從而T1定時器開始定時,定時滿后便向CPU發(fā)送中斷請求,CPU響應中斷后就去執(zhí)行轉速調節(jié)子程序,從而實現(xiàn)系統(tǒng)的轉速調節(jié)。PWM波的生成如下:voidasr_pid(unsignedintna,unsignedintnb){interr=na-nb;floatdelta_lou;delta_lou=mptr->Proportion*err//E[k]項-mptr->Integral*mptr->LastError//E[k-1]項+mptr->Derivative*mptr->PrevError;//E[k-2]項pwm_lou+=delta_lou;if(pwm_lou>1)pwm_lou=1;elseif(pwm_lou<0)pwm_lou=0;pwm_positive=30000*pwm_lou;pwm_negtive=30000-pwm_positive;mptr->PrevError=mptr->LastError;mptr->LastError=err;mptr->SumError+=err;}該程序是定時器T1的中斷服務子程序中的一部分。啟動該系統(tǒng)后無論是鍵盤給定還是電位器平滑給定,T1定時器被啟動,T1開始計時,計時滿CPU便轉去處理中斷服務子程序。進入子程序后CPU先測電動機的轉速,并將轉速值送到LED上進行顯示;若電動機過流就讓pwm-position的值等于pwm-negtive的值,從而使電動機停止轉動;再讀入給定的轉速轉換值并將其送到LED上顯示。最后就可以根據(jù)給定值和反饋至進行PID控制算法進行調速了。結束語結束語本文在廣泛查閱資料,了解無刷直流電機特性的基礎上,對無刷直流電機的控制原理進行了的研究,設計了無刷直流電機調速控制系統(tǒng)。本文所設計的基于AT89S52單片機的無刷直流電機控制器具有硬件結構簡單、保護功能完善主要實現(xiàn)了如下功能:(1)采用AT89S52單片機作為主控芯片,加強了電機的智能控制;(2)安全控制電機系統(tǒng),實現(xiàn)了系統(tǒng)的欠壓保護、過流保護;(3)設計了逆變器驅動電路、硬件過流保護電路,提高系統(tǒng)的可靠性;(4)設計采用辨相電路實行電機的正反轉判斷問題,從而控制正反轉;通過本次的畢業(yè)設計,我系統(tǒng)的學習了有關AT89S52系列單片機的知識,而且進一步了解了單片機編程技巧,學習了protel應用軟件,并成功的完成了基于C8051F330的級聯(lián)開關電源軟件設計。設計過程中遇到許多新的問題,讓我對軟件開發(fā)從理論的探討到實際中的實踐這樣相互聯(lián)系又相互分離的過程有了全面的認識,使我收獲不少,受益非淺由于時間與能力有限,本文所設計的控制系統(tǒng)還有待于進一步的改進,比如可采用無位置傳感器的控制方法,利用軟件檢測電機的反電動勢,從而省去位置傳感器,降低硬件成本,提高可靠性;還可采用專用控制芯片和單片機相結合的方式實現(xiàn)無刷直流電機的控制,使系統(tǒng)具有更好的靈活性和穩(wěn)定性。參考文獻參考文獻[1]李廣弟等.單片機基礎(第3版).北京航空航天大學出版社.2007.6[2]邱關源.電路(第5版).高等教育出版社.2006.5[3]閻石.數(shù)字電子技術基礎(第5版).高等教育出版社.2006.5[4]童詩白等.模擬電子技術基礎(第四版).高等教育出版社.2006.5[5]李發(fā)海等.電機拖動基礎(第3版).清華大學出版社.2005.8[6]王兆安等.電力電子技術(第5版).機械工業(yè)出版社.2009.5[7]孫傳友等.現(xiàn)代檢測技術及儀表.高等教育出版社.2006.5[8]胡文靜.永磁無刷直流電動機的發(fā)展及展望.微特電機.2002.35(4):34~38[9]蔡耀成.無刷直流電機中的霍爾位置傳感器.微特電機.1999.27(5):23~25[10]Teck—SengLow,MohammedJabbar,AzizurRahman,“Permanent—MagnetMotorsforBrushlessOperation”【J】.IEEETrans.IndustryApplications,1990,26(1):124-129.[11]Kenichilizuka,HideoUzuhashi,MinoruKano,eta1.MicrocomputerControlforSensor-lessBrushlessMotor[J】.IEEETrans.IndustryApplications,1985,21(4):95-601.[12]ChenZ,TomitaM,DokiS,eta1.Newadaptiveslidingobserversforpositionandveloci-sensorlesscontrolsofbrushlessDCmotors【J】.IEEETrans.onIndustryElectronics,2000,[13]張?。疅o刷直流電動機原理及應用【M】一匕京:機械1:業(yè)出版社,2001[14]李志民,張遇杰.同步電動機調速系統(tǒng).北京機械工業(yè)出版社,1995[15]姚國強,錢銳,陸成鷹.機電設備的單片機控制技術.辭學出版社,2006[16]曹建平.電動自行車調速控制電路的研究.電子工程師,2000[17]張立,黃兩一.電力電子場控器件及其應用.北京機械工業(yè)出版社,1995致謝致謝畢業(yè)論文即將結束,通過指導老師的幫助以及相關資料的查閱,作者學到了許多知識,對理論有了更深的認識,并且在理論與實踐的聯(lián)系上也有了不少進步,這為以后進入社會工作有了很大的幫助,奠定了堅實的基礎。感謝導師郎寶華教授的關心、指導和教誨。郎寶華教授追求真理、獻身科學、嚴以律己、寬已待人的崇高品質對學生將是永遠的鞭策。作者在攻讀學士學位期間的工作自始至終都是在郎寶華教授全面、具體的指導下進行的。郎老師淵博的學識、敏銳的思維、民主而嚴謹?shù)淖黠L,使學生收益匪淺,終生難忘。每當作者在設計中遇到問題時,郎寶華老師總能耐心的為作者解釋說明。在此,謹向郎寶華老師表示崇高的敬意和衷心的感謝!作者相信,這將成為作者未來努力向上的動力源泉!感謝同組同學和朋友們的關心和幫助!畢業(yè)設計(論文)知識產(chǎn)權聲明畢業(yè)設計(論文)知識產(chǎn)權聲明本人完全了解西安工業(yè)大學有關保護知識產(chǎn)權的規(guī)定,即:本科學生在校攻讀學士學位期間畢業(yè)設計(論文)工作的知識產(chǎn)權屬于西安工業(yè)大學。本人保證畢業(yè)離校后,使用畢業(yè)設計(論文)工作成果或用畢業(yè)設計(論文)工作成果發(fā)表論文時署名單位仍然為西安工業(yè)大學。學校有權保留送交的畢業(yè)設計(論文)的原文或復印件,允許畢業(yè)設計(論文)被查閱和借閱;學??梢怨籍厴I(yè)設計(論文)的全部或部分內容,可以采用影印、縮印或其他復制手段保存畢業(yè)設計(論文)。(保密的畢業(yè)設計(論文)在解密后應遵守此規(guī)定)畢業(yè)設計(論文)作者簽名:指導教師簽名:日期:別業(yè)設計(論文)獨創(chuàng)性聲明畢業(yè)設計(論文)獨創(chuàng)性聲明秉承學校嚴謹?shù)膶W風與優(yōu)良的科學道德,本人聲明所呈交的畢業(yè)設計(論文)是我個人在導師指導下進行的研究工作及取得的研究成果。盡我所知,除了文中特別加以標注和致謝的地方外,畢業(yè)設計(論文)中不包含其他人已經(jīng)發(fā)表或撰寫過的成果,不包含他人已申請學位或其他用途使用過的成果。與我一同工作的同志對本研究所做的任何貢獻均已在論文中作了明確的說明并表示了致謝。畢業(yè)設計(論文)與資料若有不實之處,本人承擔一切相關責任。畢業(yè)設計(論文)作者簽名:指導教師簽名:日期:附錄A無刷直流電機調速控制系統(tǒng)電路原理圖附錄A無刷直流電機調速控制系統(tǒng)電路原理圖附錄B程序清單附錄B程序清單#include<./Atmel/regx52.h>#include<absacc.h>#include<stdlib.h>#include<string.h>#include<intrins.h>#include<ctype.h>#defineled_bitXBYTE[0x88ff]/*LED尋位地址*/#defineled_dataXBYTE[0x09ff]/*LED數(shù)據(jù)地址*/#definekey_rowXBYTE[0x0Aff]/*鍵盤行地址*/#definekey_colXBYTE[0x0Cff]/*鍵盤列地址*/#defineTIMER0_CONTROLTR0/*定時器0控制位*/#defineTIMER1_CONTROLTR1/*定時器1控制位*/#defineTIMER2_CONTROLTR2/*定時器2控制位*/#definei_a_limit0x0D/*電樞限流0.5A*//*定義共陽極LED顯示段碼*/西安工業(yè)大學畢業(yè)設計(論文)staticstruct{charascii;charstroke;}codeled_strokes[27]={{'0',0xc0},{'1',0xf9},{'2',0xa4},{'3',0xb0},{'4',0x99},{'5',0x92},\{'6',0x82},{'7',0xf8},{'8',0x80},{'9',0x90},{'A',0x88},{'b',0x83},\{'c',0xc6},{'d',0xa1},{'E',0x86},{'F',0x8e},{'.',0x7f},{'P',0x8c},\{'U',0xc1},{'T',0xce},{'y',0x91},{'o',0xa3},{'-',0xbf},{'=',0xb7},\{'r',0xaf},{0x00,0x00},{0xff,0xff}};/*定義PI控制器參數(shù)*/floatProportion;//比例常數(shù)ProportionalConstfloatIntegral;//積分常數(shù)IntegralConstfloatDerivative;//微分常數(shù)DerivativeConstintLastError;//E[k-1]intPrrevError;//E[k-2]/*定義全局函數(shù)和變量*/voidinit_system(void);voidkey_monitor(void);voidset_refled_buf(unsignedchara,intpos,intlen);voidput_on_refleds(void);voidset_fdbled_buf(unsignedchara,intpos,intlen);voidput_on_fdbleds(void);bitkbd_hit(void);unsignedcharget_char(void);unsignedchar*get_str(unsignedchar*str,unsignedintlen);unsignedcharget_strokes(unsignedcharc);voidadc0804_start(void);unsignedintadc0804_read(void);unsignedintn_test(void);unsignedinti_a_test(void);unsignedread_nref(void);externvoiddelay(int);sfrAUXR=0x8e;sbitPWM_OUT=P1^6;/*PWM信號輸出位*/bitn_ref_select_flag=0;//給定選擇標識位unsignedintn_feedback=0;unsignedintn_ref=0;unsignedintpwm_positive;//脈寬范圍0~65536us,定時器0工作在方式1unsignedintpwm_negtive;floatpwm_lou;//PWM占空比unsignedintn_ref_key;unsignedintn_ref_pot;unsignedintmotor_i_a;unsignedcharrefled_buf[4];unsignedcharfdbled_buf[4];unsignedcharstr[4];main(){init_system();while(1){key_monitor(); put_on_refleds(); put_on_fdbleds();}}/*系統(tǒng)初始化函數(shù)*/voidinit_system(void){AUXR=0xff;TMOD=0x11;//T0,T1均工作在方式1T2CON=0x03;//T2工作方式:計數(shù)器,捕獲pwm_positive=pwm_negtive=25000;//PWM占空比初始值0.5TH0=(65536-pwm_positive)/256;//T0的計數(shù)初始值TL0=(65536-pwm_positive)%256;//EA=1;//開所有中斷ET0=1;//開PWM輸出中斷TR0=1;//開PWM輸出定時器IP=0x0a;//設置中斷優(yōu)先級T0,T1高優(yōu)先級TH1=(65536-10000)/256;//T1的計數(shù)初始值10msTL1=(65536-10000)%256;TR1=0;//關轉速調節(jié)定時器ET1=0;//關轉速調節(jié)中斷ET2=0;//關測速計數(shù)器溢出中斷EX0=0;//關INT0中斷IT0=1;//INT0負邊沿觸發(fā);IT1=1;//INT1負邊沿觸發(fā);set_refled_buf('0',0,4);set_fdbled_buf('0',0,4);LastError=0;//Error[-1]Proportion=0.000001;//比例常數(shù)ProportionalConstIntegral=0.00001;//積分常數(shù)IntegralConstpwm_lou=0.5;str[0]='3';str[1]='0';str[2]='0';str[3]='0';ET1=1;//開轉速調節(jié)中斷}/*段碼查找函數(shù)*/unsignedcharget_strokes(unsignedcharc){unsignedchari=0;while(led_strokes[i].ascii!=c)i++;return(led_strokes[i].stroke);}/*將當前給定顯示緩沖區(qū)字符顯示到LED上*/voidput_on_refleds(void){unsignedcharpos;unsignedcharledbit=0xfe;for(pos=0;pos<4;pos++){ led_bit=ledbit; led_data=get_strokes(refled_buf[pos]);delay(1);//延時1msledbit=_crol_(ledbit,1);}}/*將當前轉速反饋顯示緩沖區(qū)字符顯示到LED上*/voidput_on_fdbleds(void){unsignedcharpos;unsignedcharledbit=0xef;for(pos=0;pos<4;pos++){led_bit=ledbit; led_data=get_strokes(fdbled_buf[pos]);delay(1);//延時1msledbit=_crol_(ledbit,1);}}/*若有鍵按下,對相應命令進行解釋并轉相應處理子程序*/voidkey_monitor(void){unsignedcharkey;if(kbd_hit()){ key=get_char(); switch(key) { case'A':n_ref_key=atoi(str);TIMER1_CONTROL=1;break; case'B':n_ref_select_flag=~n_ref_select_flag;break;//切換 case'C':pwm_positive=10000;pwm_negtive=10000;n_ref_key=3000; TIMER1_CONTROL=1;break;//啟動,開轉速調節(jié)定時器 case'D':n_ref_select_flag=0;n_ref_key+=100;break;//加速 case'E':n_ref_select_flag=0;n_ref_key-=100;break;//減速 case'F':pwm_positive=10000;pwm_negtive=10000;n_ref_key=0; set_refled_buf('0',0,4);set_fdbled_buf('0',0,4); TIMER1_CONTROL=0;break;//停止,關轉速調節(jié)定時器 case'0':get_str(str,4);break; default:; } }elsereturn;}/*判斷是否有鍵按下函數(shù)*/bitkbd_hit(void){key_row=0x00;//往鍵盤行輸出0if((key_col&0xff)==0xff)//檢測列線return((bit)0);delay(8);//延時8ms消抖if((key_col&0xff)==0xff)//再次檢測確認return((bit)0);elsereturn((bit)1);}/*等待按鍵函數(shù)*/unsignedcharget_char(void){unsignedcharrow=0,col=0;unsignedcharkey_value;unsignedcharscan_rowbyrow=0xfe;/*分析按鍵行號*/key_row=scan_rowbyrow;while((key_col&0xff)==0xff&&scan_rowbyrow>0xef){ ++row; scan_rowbyrow=_crol_(scan_rowbyrow,1); key_row=scan_rowbyrow; }/*分析按鍵列號*/key_value=key_col&0xff;scan_rowbyrow=0x01;while(key_value&scan_rowbyrow){ ++col; scan_rowbyrow=_crol_(scan_rowbyrow,1); }/*等按鍵釋放*/while((key_col&0xff)!=0xff);delay(8);//延時8ms消抖if((key_col&0xff)==0xff)//再次檢測確認{key_row=0xff;/*計算按鍵值*/key_value=row*4+col;if(key_value<9)key_value+='0'+1;elseif(key_value==9)key_value='0';elsekey_value+='A'-10;}return(key_value);}/*取鍵盤字符串函數(shù)*/unsignedchar*get_str(unsignedchar*str,unsignedintlen){unsignedchari;unsignedcharch;unsignedcharkeyboard_buf[4];//鍵盤緩沖區(qū)unsignedcharkeybuf_pos=0;TIMER1_CONTROL=0;set_refled_buf('0',0,4);while(keybuf_pos<len){ put_on_refleds(); if(kbd_hit()) { ch=get_char(); ///*如果接收一個字符成功,將顯示緩沖區(qū)原字符向左滾動一位,并將新字符放末尾,且送到鍵盤緩沖區(qū)*/// if(ch<'A') { for(i=0;i<3;i++)refled_buf[i]=refled_buf[i+1]; refled_buf[3]=ch; put_on_refleds(); keyboard_buf[keybuf_pos]=ch; keybuf_pos++; } } }memcpy(str,keyboard_buf,len);return(str);}/*填充給定顯示緩沖區(qū)*/voidset_refled_buf(unsignedchara,intpos,intlen){unsignedcharledbuf_pos;for(ledbuf_pos=pos;len>0;len--){refled_buf[ledbuf_pos]=((islower(a))?(toupper(a)):(a));ledbuf_pos++;if(ledbuf_pos>=4)ledbuf_pos=0;}}/*填充轉速反饋顯示緩沖區(qū)*/voidset_fdbled_buf(unsignedchara,intpos,intlen){unsignedcharledbuf_pos;for(ledbuf_pos=pos;len>0;len--){fdbled_buf[ledbuf_pos]=((islower(a))?(toupper(a)):(a));ledbuf_pos++;if(ledbuf_pos>=4)ledbuf_pos=0;};}/*PWM定時產(chǎn)生中斷服務函數(shù)*/voidtimer0(void)interrupt1using1{PWM_OUT=~PWM_OUT;if(PWM_OUT==0){TH0=(65536-pwm_negtive)/256;TL0=(65536-pwm_negtive)%256;}else{TH0=(65536-pwm_positive)/256;TL0=(65536-pwm_positive)%256;}TIMER0_CONTROL=1;return;}/*T1定時轉速調節(jié)中斷服務函數(shù)*/voidtimer1(void)interrupt3using1{/////刷新顯示的變量/////unsignedcharpos;unsignedcharledbit=0xfe;//測速n_feedback=n_test();/*把整型數(shù)轉換為字符型******************************/if(n_feedback<10){fdbled_buf[0]=(n_feedback+48);fdbled_buf[1]=48;fdbled_buf[2]=48;fdbled_buf[3]=48;}if(n_feedback<100){fdbled_buf[0]=(n_feedback/10+48);fdbled_buf[1]=(n_feedback%10+48);fdbled_buf[2]=48;fdbled_buf[3]=48;}if(n_feedback<1000){fdbled_buf[0]=(n_feedback/100+48);fdbled_buf[1]=(n_feedback%100/10+48);fdbled_buf[2]=(n_feedback%10+48);fdbled_buf[3]=48;}if(n_feedback<10000){fdbled_buf[0]=(n_feedback/1000+48);fdbled_buf[1]=(n_feedback%1000/100+48);fdbled_buf[2]=(n_feedback%100/10+48);fdbled_buf[3]=(n_feedback%10+48);}else{fdbled_buf[0]=(n_feedback/10000+48);fdbled_buf[1]=(n_feedback%10000/1000+48);fdbled_buf[2]=(n_feedback%1000/100+48);fdbled_buf[3]=(n_feedback%100/10+48);}/////刷新顯示/////for(pos=0;pos<4;pos++){led_bit=ledbit; led_data=get_strokes(re
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程竣工驗收報告建筑物隔音性能檢測
- 鹽田樓頂防水施工方案
- 2025年網(wǎng)絡安全產(chǎn)業(yè)布局及發(fā)展預測:市場規(guī)模與技術趨勢分析
- 廚房排風管施工方案
- 江蘇省南京市南京師范大學附屬中學2024-2025學年高一上學期期末考試數(shù)學試卷(解析版)
- 幕墻競標方案模板范本
- 升降平臺鋼筋施工方案
- 巡視通道修繕施工方案
- 裝修施工方案與技術措施
- 電梯井道整改施工方案
- 【精益生產(chǎn)在機械制造企業(yè)中的應用研究(論文)】
- 藥品質量管理體系文件目錄
- 安徽涵豐科技有限公司年產(chǎn)6000噸磷酸酯阻燃劑DOPO、4800噸磷酸酯阻燃劑DOPO衍生品、12000噸副產(chǎn)品鹽酸、38000噸聚合氯化鋁、20000噸固化劑項目環(huán)境影響報告書
- GA/T 492-2004城市警用地理信息圖形符號
- 化妝品生產(chǎn)許可申請表樣板
- 老年綜合評估和老年綜合征課件
- 2023年西安鐵路職業(yè)技術學院單招綜合素質考試筆試題庫及答案解析
- (新版)網(wǎng)絡攻防知識考試題庫(含答案)
- 人員技能矩陣圖
- 教育評價學全套ppt課件完整版教學教程
- JJG 1063-2010 電液伺服萬能試驗機-(高清現(xiàn)行)
評論
0/150
提交評論