分享一個機電課設可能會用到資料。
系統的硬件設計部分包括按鍵模塊、電動機驅動模塊、STC89C51單片機系統、光電門測速模塊、保護電路、供電電源和直流電機。系統的軟件部分包括鍵盤控制程序設計、顯示程序設計、主控程序設計。
隨著時代的進步和科技的發展,電機調速系統在工農業生產、交通運輸以及日常生活中起著越來越重要的作用,因此,對電機調速的研究有著積極的意義。長期以來,直流電機被廣泛應用于調速系統中,而且一直在調速領域占居主導地位。
本設計是基于單片機控制的PWM直流電機調速系統,系統以STC89C51單片機為核心,以130小直流電機為控制對象,以L298N為H橋驅動芯片實現電動機的轉速反饋控制。調節PWM 占空比從而控制電機兩端電壓,以達到調速的目的。用4*4鍵盤輸入有關控制信號及參數,并在12864 LED上實時顯示輸入參數及動態轉速。系統的硬件設計部分包括按鍵模塊、電動機驅動模塊、STC89C51單片機系統、光電門測速模塊、保護電路、供電電源和直流電機。系統的軟件部分包括鍵盤控制程序設計、顯示程序設計、主控程序設計。整個系統實現了單片機控制電機的啟制動、正反轉、速度調節的效果。
目 錄
摘 要
Abstract
1 引言
1.1 直流調速系統概況
1.2 設計目的和意義
1.3 國內外發展現狀
1.4 設計要求和內容
2 直流調速原理分析與方案確定
2.1 直流PWM調速系統原理分析
2.2 方案論證和選擇
3 系統硬件設計
3.1 按鍵控制模塊
3.2 電動機驅動模塊
3.4 STC89C51單片機系統
3.5 光電門測速模塊
3.6 保護電路
3.7 供電電源
3.8 直流電動機的說明
3.9 系統總體設計電路圖
4 系統軟件設計
4.1 鍵盤控制程序設計
4.2 顯示程序設計
4.3 主控程序設計
5 實物的直流調速實現與調試
結 論
參考文獻
致 謝
1 引言
1.1 直流調速系統概況現代工業的電力拖動一般都要求局部或全部的自動化,因此必然要與各種控制元件組成的自動控制系統聯系起來,而電力拖動則可視為自動化電力拖動系統的簡稱。在這一系統中可對生產機械進行自動控制。 隨著近代電力電子技術和計算機技術的發展以及現代控制理論的應用,自動化電力拖動正朝著計算機控制的生產過程自動化的方向邁進。以達到高速、優質、高效率地生產。在大多數綜合自動化系統中,自動化的電力拖動系統仍然是不可缺少的組成部分。另外,低成本自動化技術與設備的開發,越來越引起國內外的注意。特別對于小型企業,應用適用技術的設備,不僅有益于獲得經濟效益,而且能提高生產率、可靠性與柔性,還有易于應用的優點。自動化的電力拖動系統更是低成本自動化系統的重要組成部分[1]。 在如今的現實生活中,自動化控制系統已在各行各業得到廣泛的應用和發展,其中自動調速系統的應用則起著尤為重要的作用。雖然直流電機不如交流電機那樣結構簡單、價格便宜、制造方便、容易維護,但是它具有良好的起、制動性能,宜于在廣泛的范圍內平滑調速,所以直流調速系統至今仍是自動調速系統中的主要形式。現在電動機的控制從簡單走向復雜,并逐漸成熟成為主流。其應用領域極為廣泛,例如:軍事和宇航方面的雷達天線、火炮瞄準、慣性導航等的控制;工業方面的數控機床、工業機器人、印刷機械等設備的控制;計算機外圍設備和辦公設備中的打印機、傳真機、復印機、掃描儀等的控制;音像設備和家用電器中的錄音機、數碼相機、洗衣機、空調等的控制。 隨著電力電子技術的發展,開關速度更快、控制更容易的全控型功率器件MOSFET和IGBT成為主流,脈寬調制技術表現出較大的優越性:主電路線路簡單,需要用的功率元件少;開關頻率高,電流容易連續,諧波少,電機損耗和發熱都較;低速性能好,穩速精度高,因而調速范圍寬;系統快速響應性能好,動態抗擾能力強;主電路元件工作在開關狀態,導通損耗小,裝置效率較高;近年來,微型計算機技術發展速度飛快,以計算機為主導的信息技術作為一嶄新的生產力,正向社會的各個領域滲透,直流調速系統向數字化方向發展成為趨勢[2]。 1.2 設計目的和意義直流電動機具有良好的起動、制動性能,宜于在大范圍內平滑調速,在許多需要調速或快速正反向的電力拖動領域中得到了廣泛的應用。從控制的角度來看,直流調速還是交流拖動系統的基礎。早期直流電動機的控制均以模擬電路為基礎,采用運算放大器、非線性集成電路以及少量的數字電路組成,控制系統的硬件部分非常復雜,功能單一,而且系統非常不靈活、調試困難,阻礙了直流電動機控制技術的發展和應用范圍的推廣。隨著單片機技術的日新月異,使得許多控制功能及算法可以采用軟件技術來完成,為直流電動機的控制提供了更大的靈活性,并使系統能達到更高的性能。采用單片機構成控制系統,可以節約人力資源和降低系統成本,從而有效的提高工作效率[3]。 傳統的控制系統采用模擬元件,雖在一定程度上滿足了生產要求,但是因為元件容易老化和在使用中易受外界干擾影響,并且線路復雜、通用性差,控制效果受到器件性能、溫度等因素的影響,故系統的運行可靠性及準確性得不到保證,甚至出現事故。 目前,直流電動機調速系統數字化已經走向實用化,伴隨著電子技術的高度發展,促使直流電機調速逐步從模擬化向數字化轉變,特別是單片機技術的應用,使直流電機調速技術又進入到一個新的階段,智能化、高可靠性已成為它發展的趨勢。 1.3 國內外發展現狀電力電子技術、功率半導體器件的發展對電機控制技術的發展影響極大,它們是密切相關、相互促進的。近30年來,電力電子技術的迅猛發展,帶動和改變著電機控制的面貌和應用。驅動電動機的控制方案有三種:工作在通斷兩個狀態的開關控制、相位控制和脈寬調制控制,在單向通用電動機的電子驅動電路中,主要的器件是晶閘管,后來是用相位控制的雙向可控硅。在這以后,這種半控型功率器件一直主宰著電機控制市場。到70和80年代才先后出現了全控型功率器件GTO晶閘管、GTR、POWER-MOSFET、IGBT和MCT等。利用這種有自關斷能力的器件,取消了原來普通晶閘管系統所必需的換相電路,簡化了電路結構,提高了效率,提高了工作頻率,降低了噪聲,也縮小了電力電子裝置的體積和重量。后來,諧波成分大、功率因數差的相控變流器逐步由斬波器或PWM變流器所代替,明顯地擴大了電機控制的調運范圍,提高了調速精度,改善了快速性、效率和功率因數[4]。 直流電機脈沖寬度調制(Pulse Width Modulation-簡稱PWM)調速系統產生于70年代中期。最早用于不可逆、小功率驅動,例如自動跟蹤天文望遠鏡、自動記錄儀表等。近十多年來,由于晶體管器件水平的提高及電路技術的發展,同時又因出現了寬調速永磁直流電機,它們之間的結合促使PWM技術的高速發展,并使電氣驅動技術推進到一個新的高度。 在國外,PWM最早是在軍事工業以及空間技術中應用。它以優越的性能,滿足那些高速度、高精度隨動跟蹤系統的需求。近八、九年來,進一步擴散到民用工業,特別是在機床行業、自動生產線及機器人等領域中廣泛應用。 如今,電子技術、計算機技術和電機控制技術相結合的趨勢更為明顯,促進電機控制技術以更快的速度發展著。隨著市場的發展,客戶對電機驅動控制要求越來越高,希望它的功能更強、噪聲更低、控制算法更復雜,而可靠性和系統安全操作也擺上了議事日程,同時還要求馬達恒速向變速發展,還要符合全球環保法規所要求的嚴格環境標準。進入21世紀后,可以預期新的更高性能電力電子器件還會出現,已有的各代電力電子元件還會不斷地改進提高[5]。 1.4 設計要求和內容設計以STC89C51單片機為中央處理器的直流調速系統,使STC89C51產生PWM信號對直流電動機進行轉速的控制。在設計中,通過對系統各大模塊的分析應用,使自己的設計達到了實現直流電動機調速的要求。完成系統硬件部分的設計、產生PWM控制信號關鍵軟件部分的設計。通過整合系統的各個模塊,從而構成了一個比較完整有效地直流電動機調速控制系統。
2 直流調速原理分析與方案確定 2.1 直流PWM調速系統原理分析 眾所周知,直流電機穩態轉速 n 的表達式為 n= (2.1) 式中 U  ------------ 電樞端電壓(V) I  -------------- 電樞電流(A)  ---------- 電樞電路總電阻(  )  ----------------每極磁通量(Wb) C  ---------------與電動機結構有關的常數 由式2.1可知,直流電機穩態轉速 n 的控制方法可分為兩類,即勵磁控制法與電樞電壓控制法。勵磁控制法控制磁通  ,其控制功率雖然較小,但低速時受到磁極飽和的限制,高速時受到換向火花和換向器結構強度的限制,而且由于勵磁線圈電感較大,動態性能也較差。所以常用的控制方法是改變電樞端電壓調速的電樞電壓控制法[6]。 設直流電源電壓為U  ,將電樞串聯成一個電阻R,接到電源 U  ,則穩態電壓方程式為 U = U - I R (2.2) 顯然,調節電阻R既可改變端電壓,達到調速的目的,但這種傳統的調壓調速方法,其效率太低,因此,隨著電力電子技術的進步,發展了很多新的電樞電壓控制方法,如:由交流電源供電,使用晶閘管整流器進行相控調壓;使用硅整流器將交流點整流成直流電,再由PWM降壓斬波器進行斬波調壓等。 晶閘管相控調壓或PWM斬波器調壓比串電阻調壓損耗小,效率高,而斬波調壓比相控調壓又多了不少優點,如需要的濾波裝置很小甚至只利用電樞電感已經足夠,不需要外加濾波裝置;電動機的損耗和發熱很小,動態響應較快等。 圖2.1為PWM降壓斬波器的原理電路及輸出電壓波形,在圖2.1(a)中,假定晶閘管 V  先導通了 T  秒(忽略 V  的管壓降,這期間電源電壓 U  全部加到電樞上),然后關斷了T  秒(這期間電樞端電壓為零)。如此反復,則電樞端電壓波形如圖2.1(b)中所示。電動機電樞端電壓 U  為其平均值。 
U = = = (2.3) 式中 (2.4) 在一個周期T中,晶體管V  導通時間的比率,稱為負載率或占空比。使用下面三種方法中的任何一種,都可以改變  的值,從而達到調壓的目的。 1、定寬調頻法。T  保持一定,使T  在0~  范圍內變化。 2、調寬調頻法。T  保持一定,使T  在0~  范圍內變化。 3、定頻調寬法。T  + T  =T保持一定,使T  在0~T范圍內變化。 不管那種方法的變化范圍均為0    1,因而電樞電壓的平均值U  的調節范圍為0~ U  ,均為正值,即電動機只能在某一方向調速。 占空比  表示了在一個周期T里開關管導通的時間與周期的比值。  的變化范圍為0≤  ≤1。當電源電壓U不變的情況下,輸出電壓的平均值U取決于占空比  的大小,改變  值也就改變了輸出電壓的平均值,從而達到控制電動機轉速的目的,即實現PWM調速。 在PWM調速時,占空比  是一個重要參數。改變占空比的方法有定寬調頻法、調寬調頻法和定頻調寬法等。常用的定頻調寬法,同時改變T  和T  ,但周期T(或頻率)保持不變[7]。 在電動機調速里,通過調節PWM波的占空比,實現電動機平均電壓出現變化,從而調節電機的轉速,占空比越大,電動機的平均電壓越大,轉速越快,反之越慢。 2.2 方案論證和選擇
2.2.1 穩壓電源的選擇穩壓電源的設計可以通過幾種方法實現,根據具體的設計要求,通過比較論證來確定我們到底要用哪個方案。  方案一:采用模擬的分立元件,通過電源變壓器、整流濾波電路以及穩壓電路,實現穩壓電源穩定輸出+5V、±12V、+24V電壓,并能可調輸出1.2~24V電壓。如圖2.2所示。但由于模擬分立元件的分散性較大,各電阻電容之間的影響很大,因此所設計的指標不高,而且使用的器件較多,連接復雜,體積較大,供耗也大,給焊接帶來了麻煩,同時焊點和線路較多,使成品的穩定性和精度也受到影響。
圖2.2 直流穩壓電源基本組成框圖 方案二:采用FPGA作為控制器的簡易數控直流電源設計方案如圖2.3所示。設計方案采用FPGA作為控制器完成數控部分、鍵盤、顯示器接口控制。輸出部分采用D/A0832與運算放大器UA714,輸出電壓波形由FPGA的輸出數據控制,不僅可以輸出直流電平,而且只要預先生成波形的量化數據,就可以產生多種波形輸出。顯示數據由FPGA提供。利用軟件和硬件結合的方法來設計穩壓電源,其精度和穩定性都有所提高;但是,采用FPGA來設計的成本很高,性價比很差[8]。 圖2.3 采用FPGA的簡易數控直流電源設計方案 方案比較:以上兩種方案均可以達到輸出穩壓電源的要求。方案一是利用純硬件來實現其功能的,方案二是以FPGA為核心控制器件,采用軟硬件結合來實現的。方案一的成本要比方案二低很多,性價比也比方案二好很多;但是方案一的穩定性和精度都沒方案二要高,而且方案二還可以用Modelsim XE 5.3d軟件進行仿真和調試等。設計人員可以充分利用VHDL硬件描述語言方便的編程,提高開發效率,縮短研發周期,易于進行功能的擴展,實現方法靈活,調試方便,修改容易。但考慮到穩壓電源的實用性,雖然方案一的精度和穩定度不及用FPGA來實現的精度和穩定度高,但是用于做穩壓電源已足夠了,我們采用第一種方案來進行穩壓電源的設計。 2.2.2 電機調速控制模塊方案一:采用電阻網絡或數字電位器調整電動機的分壓,從而達到調速的目的。但是電阻網絡只能實現有級調速,而數字電阻的元器件價格比較昂貴。更主要的問題在于一般電動機的電阻很小,但電流很大,分壓不僅會降低效率,而且實現很困難。 方案二:采用繼電器對電動機的開或關進行控制,通過開關的切換對電動機的速度進行調整。這個方案的優點是電路較為簡單,缺點是繼電器的響應時間慢、機械結構易損壞、壽命較短、可靠性不高。 方案三:采用由三極管組成的H型PWM電路。用單片機控制三極管使之工作在占空比可調的開關狀態,精確調整電動機轉速。這種電路由于工作在管子的飽和截止模式下,效率非常高;H型電路保證了可以簡單地實現轉速和方向的控制;電子開關的速度很快,穩定性也極佳,是一種廣泛采用的PWM調速技術。 兼于方案三調速特性優良、調整平滑、調速范圍廣、過載能力大,因此本設計采用方案三。 2.2.3 PWM調速工作方式方案一:雙極性工作制。雙極性工作制是在一個脈沖周期內,單片機兩控制口各輸出一個控制信號,兩信號高低電平相反,兩信號的高電平時差決定電動機的轉向和轉速。 方案二:單極性工作制。單極性工作制是單片機控制口一端置低電平,另一端輸出PWM信號,兩口的輸出切換和對PWM的占空比調節決定電動機的轉向和轉速。由于單極性工作制電壓波開中的交流成分比雙極性工作制的小,其電流的最大波動也比雙極性工作制的小,所以我們采用了單極性工作制。 2.2.4 PWM調脈寬方式調脈寬的方式有三種:定頻調寬、定寬調頻和調寬調頻。我們采用了定頻調寬方式,因為采用這種方式,電動機在運轉時比較穩定,并且在采用單片機產生PWM脈沖的軟件實現上比較方便。 2.2.5 PWM軟件實現方式方案一:采用定時器做為脈寬控制的定時方式,這一方式產生的脈沖寬度極其精確,誤差只在幾個us。 方案二:采用軟件延時方式,這一方式在精度上不及方案一,特別是在引入中斷后,將有一定的誤差。故采用方案一。 2.2.6 編程語言的選擇 在單片機應用系統開發中,常用的編程語言有匯編語言和C語言兩種。這兩種開發語言都具有各自的特點。以下就這兩種開發語言的特點分別作簡介并根據實際開發情況,選擇適合的開發語言。匯編語言的特點:可直接操縱系統的硬件資源,從而可以編寫高質量的編碼。但是采用匯編語言編寫比較復雜的數值計算程序相對比較困難,又因匯編語言源程序的可讀性遠不如高級語言,如果想修改程序功能,得花費心思重新閱讀程序,效率不是很高。 C語言的特點:C語言程序的優點是可讀性與可移植性好,程序開發周期短;使用C語言編程更符合人的思維方式和思考習慣,編寫代碼效率高,維護方便;采用C語言易于開發復雜的單片機應用程序,有利于單片機產品的重新選型和應用程序的移植,大大提高了單片機軟件的開發速度。 目前,在單片機的開發中,C語言得到越來越多的應用,而匯編語言也在很多環境下具有優勢。實際應用中,要根據具體情況來選擇開發語言。C語言不僅僅是在軟件開發上,而且具體應用在單片機以及嵌入式系統開發上。本設計中首先對系統初始化,讀取預置電壓,預存電壓值為10V,并將其發送給LCD顯示電壓。各部分軟件的設計綜合利用了C語言中結構式語句,函數的定義與調用,邏輯判斷以及循環控制,充分體現C語言的簡潔緊湊、運算符豐富、數據結構豐富以及可移植性高等優點。因此采用C語言編寫程序[9]。
3 系統硬件設計系統設計框圖如下圖所示,硬件電路結構初步設想由以下8部分組成:顯示器、按鍵、供電電源、驅動電路、STC89C51單片機、直流電動機、光電門測速電路、保護電路。驅動電路部分采用了L298芯片作為驅動模塊、H橋電路為功率放大電路所構成的電路結構?刂撇糠植捎肅語言編程控制,STC89C51芯片的定時器產生PWM脈沖波形,通過調節波形的寬度來控制電動機兩端電壓,便能夠實現對電機速度的控制。硬件系統電路設計框圖如圖3.1所示。 3.1系統設計框圖 3.1 按鍵控制模塊 系統里采用4*4矩陣鍵盤控制面板作為輸入轉速和控制電動機啟停、正反轉、置零和調節速度的模塊。鍵盤的實物照如圖,在具體操作過程中,它可以用來錄入轉速,A鍵控制電動機啟停,B鍵控制電動機的正反轉,*鍵可以置零。具體的調試在后面章節會做介紹。
圖3.2鍵盤控制面板 3.2 電動機驅動模塊本次設計的驅動芯片為L298。L298N是ST公司生產的一種高電壓、大電流電機驅動芯片。該芯片采用15腳封裝。主要特點是:工作電壓高,最高工作電壓可達46V;輸出電流大,瞬間峰值電流可達3A,持續工作電流為2A;額定功率25W。內含兩個H橋的高電壓大電流全橋式驅動器,可以用來驅動直流電動機和步進電動機、繼電器線圈等感性負載;采用標準邏輯電平信號控制;具有兩個使能控制端,在不受輸入信號影響的情況下允許或禁止器件工作有一個邏輯電源輸入端,使內部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。使用L298N芯片驅動電機,該芯片可以驅動一臺兩相步進電機或四相步進電機,也可以驅動兩臺直流電機。其實物圖如圖3.3。其內部框圖如圖3.4所示[10]。
圖3.3 L298實物圖 圖 3.4 L298內部結構圖 L298N 為SGS-THOMSON Microelectronics 所出產的雙全橋步進電機專用驅動芯片,內部包含4通道邏輯驅動電路,可同時驅動2個直流電機,內含二個H-Bridge 的高電壓、大電流雙全橋式驅動器,每橋的三級管的射極是連接在一起的,相應外接線端可用來連接外設傳感電阻。L298芯片是具有15個引出腳的多瓦數直插式封裝的集成芯片。它接收標準TTL邏輯準位信號,可驅動46V、2A以下的電機,且可以直接透過電源來調節輸出電壓;此芯片可直接由單片機的IO端口來提供模擬時序信號。 使用直流驅動器可以驅動兩臺直流電機。分別為M1和M2。引腳A,B可用于輸入PWM脈寬調制信號對電機進行調速控制。(如果無須調速可將兩引腳接5V,使電機工作在最高速狀態,既將短接帽短接)實現電機正反轉就更容易了,輸入信號端IN1接高電平輸入端IN2接低電平,電機M1正轉。(如果信號端IN1接低電平, IN2接高電平,電機M1反轉。)控制另一臺電機是同樣的方式,輸入信號端IN3接高電平,輸入端IN4接低電平,電機M2正轉。(反之則反轉),PWM信號端A控制M1調速,PWM信號端B控制M2調速。如表3.1所示[11]。 表3.1 L298驅動電動機各個管腳信號高低
本驅動電路由L298芯片來驅動和控制電機,L298其實就是一個全橋驅動電路。驅動電路原理如圖3.5所示。
(a) (b) 圖3.5 驅動電路原理圖 本次設計采用的L298有很強的驅動能力驅動電流可達2A。 圖中ENA和ENB分別為L298 兩橋的使能端,若為高電平則對應的橋處于工作狀態。我們要控制電機運動只需單片機送出一個信號就可以了。由于這次設計只要控制一個直流電機,所以我們就采用M1的電機控制就可以了。
3.3 顯示模塊設計 液晶顯示模塊是 128×64 點陣的漢字圖形型液晶顯示模塊,可顯示漢字及圖形,內置 8192個中文漢字(16×16 點陣)、128 個字符(8×16 點陣)及 64×256 點陣顯示 RAM(GDRAM)?膳c CPU 直接接口,提供兩種界面來連接微處理機:8位并行及串行兩種連接方式。具有多種功能:光標顯示、畫面移位、睡眠模式等。實物圖如圖3.6。
圖3.6 128×64 點陣的漢字圖形型液晶顯示器 在本次設計中需要顯示黑線數量、運行的狀態等一些數字、字母和漢字信息,因此使用12864比較合適。它是一種圖形點陣液晶顯示器,主要由行驅動器、列驅動器及128×64全點陣液晶顯示器組成,可完成漢字(16×16)顯示和圖形顯示。共有20個引腳,由于本次使用的是串口通信,不需要使用并口數據接線端口,因此在圖中省略了。12864液晶顯示器外觀管腳圖如圖3.7[12]。 圖 3.7 12864管腳圖
管腳說明如下: (1)1腳VSS,模塊的電源地。 (2)2腳VDD,模塊的電源正端。 (3)3腳V0,LCD驅動電壓輸入端。 (4)4腳RS,并行的指令/數據選擇信號;串行的片選信號。 (5)5腳R/W,并行的讀寫選擇信號;串行的數據口。 (6)6腳E,并行的使能信號;串行的同步時鐘。 (7)7~14腳DB0~DB7數據0~7。 (8)15腳PSB并/串行接口選擇H-并行;L-串行。 (9)16腳NC空腳。 (10)17腳RST,復位低電平有效。 (11)18腳VEE,LCD驅動負電壓輸入端。 (12)19腳A背光源正極(5V)。 (13)20腳K背光源負極(0V)。 用帶中文字庫的128×64顯示模塊時應注意以下幾點: 1、欲在某一個位置顯示中文字符時,應先設定顯示字符位置,即先設定顯示地址,再寫入中文字符編碼。 2、顯示ASCII字符過程與顯示中文字符過程相同。不過在顯示連續字符時,只須設定一次顯示地址,由模塊自動對地址加1指向下一個字符位置,否則,顯示的字符中將會有一個空ASCII字符位置。 3、當字符編碼為2字節時,應先寫入高位字節,再寫入低位字節。 4、模塊在接收指令前,向處理器必須先確認模塊內部處于非忙狀態,即讀取BF標志時BF需為“0”,方可接受新的指令。 5、“RE”為基本指令集與擴充指令集的選擇控制位。當變更“RE”后,以后的指令集將維持在最后的狀態,除非再次變更“RE”位,否則使用相同指令集時,無需每次均重設“RE”位。 在本次設計中,顯示器顯示電機的設定速度和實際速度,通過按鍵的控制,在顯示器上都會出現轉速的相應調整。顯示器的功能實現由程序的控制而來[13]。 3.4 STC89C51單片機系統STC89C51單片機學習板是一款基于8位單片機處理芯片STC89C52RC的系統。其功能強大,可以實現單片機開發的多種要求,學習、開發者可以根據需要選配多種常用模塊,達到實驗及教學的目的。 STC89C51系列單片機是宏晶科技推出的新一代超強抗干擾、高速、低功耗的單片機,指令代碼與傳統8051單片機完全兼容[14]。
圖3.8 STC89C51管腳圖 單片機各功能部件的運行都是以時鐘控制信號為基準,有條不紊地一拍一拍地工作,因此時鐘頻率直接影響單片機的速度,時鐘電路的質量也直接影響單片機系統的穩定性。電路中的電容C1和C2典型值通常選擇為30pF左右。對外接電容的值雖然沒有嚴格的要求,但電容的大小會影響振蕩器的頻率高低,振蕩器的穩定性和起振的快速性,晶振的頻率越高則系統的時鐘頻率也越高,單片機的運行速度也越快。本設計采用頻率為12MHZ,微調電容C1和C2為30pF的內部時鐘方式,電容為瓷片電容。  
圖3.9時鐘電路 圖3.10 復位電路
該電路采用按鍵手動復位。按鍵手動復位為電平方式。其中電平復位是通過RET端經電阻與電源VCC接通而實現的,當時鐘頻率適用于12MHZ時,C取100uF,R取10K,為保證可靠復位,在初識化程序中應安排一定的延遲時間[15]。 3.5光電門測速模塊光電門測速用途:廣泛用于電機轉速檢測,位置檢測,脈沖計數等。它的實物模型如下圖,它的工作電壓為DC 3-5V,并且具有以下的特點:
1、具有信號輸出指示
2、單路信號輸出
3、輸出有效信號為低電平
4、靈敏度不可調
5、可用于工件計數、電機測速
6、電路板輸出開關量 圖3.11 光電門測速模塊圖 在系統里面,通過電動機的轉頁上的缺口切斷光電門測速裝置所發出的光線可以達到給定轉速信號的作用。轉頁上共有兩個缺口,光電門通過發出的紅外光被截斷的頻率從而知道電動機的轉動頻率。通過系統計數和對比控制從而給出較準確的轉速。 本系統用到了光電耦合器,光電耦合器可以抑制尖脈沖和各種雜訊干擾信號。光電耦合器之所以在傳輸信號的同時能夠有效得抑制尖脈沖和各種雜訊干擾,使得通道上的信號雜訊比大為提高,主要有以下幾方面的原因: 1、光電耦合器的輸入阻抗很小,只有幾百歐姆,而干擾源的阻抗較大,通常為105-106歐姆。據分壓原理可知,即使干擾電壓的幅度較大,但饋送到光電耦合器輸入端的雜訊電壓會很小,只能形成很微弱的電流,由于沒有足夠的能量而不能使二極管發光,從而被抑制掉了。 2、光電耦合器的輸入回路與輸出回路之間沒有電氣聯系,也沒有共地;之間分布電容極小,而絕緣電阻又很大,因此回路一邊的各種干擾雜訊都很難通過光電耦合器饋送到另一邊去,避免了共阻抗耦合的干擾信號的產生。 3、光電耦合器可以起到很好的安全保障作用,即使當外部設備出現故障,甚至輸入信號短接時,也不會損壞儀表。因為光電耦合器件的輸入回路和輸出回路之間可以承受幾千伏的高壓。 4、光電耦合器的回應速度極快,其回應延遲時間只有10微秒,適于對回應速度要求很高的場合[16]。 圖3.12 光電耦合器 3.6 保護電路在實物中采用保險管做為保護電路,在電動機運行過程中,如果出現特殊情況,電動機供電電流過大,會導致保險管里的保險絲熔斷,這時候保險管會自動切斷保護電路,達到保護整個系統的功能。 圖3.13 保險管 3.7 供電電源本系統采用穩定的直流電源供電,ST89C51單片機的供電電壓為+5V,直流電動機的供電電壓為+5V。由外面所接的變壓器轉變220V交流電成為穩定的直流電而來?梢詾閱纹瑱C和直流電動機提供穩定的直流電壓[17]。 3.8直流電動機的說明本系統采用130微型直流電機,直流電機為系統里的被控對象,我們的目的是實現它的啟停、正反轉和調速的功能。它的一些數據參數如下表: 表3.2 130電機數據表
采用PWM進行直流電機調速,其實就是把波形作用于電機驅動電路的使用端,因此有必要對電機驅動電路進行介紹。
圖3.14 H橋式電機驅動電路 上圖所示為一個典型的直流電機控制電路。電路得名于“H橋式驅動電路”是因為它的形狀酷似字母H。4個三極管組成H的4條垂直腿,而電機就是H中的橫杠。電路中,H橋式電機驅動電路包括4個三極管和一個電機。要使電機運轉,必須導通對角線上的一對三極管。根據不同三極管對的導通情況,電流可能會從左至右或從右至左流過電機,從而控制電機的轉向。 當V1管和V3管導通時,電流就從電源正極經V1從左至右穿過電機,然后再經V3回到電源負極。該流向的電流將驅動電機順時針轉動。當三極管V1和V3導通時,電流將從左至右流過電機,從而驅動電機按特定方向轉動。當三極管V2和V4導通時,電流將從右至左流過電機,從而驅動電機沿另一方向轉動[18]。 3.9 系統總體設計電路圖系統總體電路如下圖,系統由STC89C51單片機控制模塊、按鍵面板、顯示模塊、直流電機驅動模塊、保護電路、速度檢測模塊、直流電動機和供電電源這幾個部分組成。系統實現了控制電動機的啟停、正反轉、復位和調節速度的功能。系統電路整體的原理是通過單片機給定PWM波形信號,使驅動模塊驅動電機的運轉,通過調節PWM波的占空比,使得電動機的平均供電電壓得到控制,從而調節電動機的轉速,在系統里,轉速反饋模塊會及時反應實際轉速,通過和設定轉速的比較,單片機會調節實際轉速,使其和設定轉速越來越趨近,這就是轉速反饋控制達到的效果[19]。
圖3.15 系統總體設計電路圖
4 系統軟件設計在直流調速系統中,對三個部分進行編寫程序,分別為鍵盤控制程序、顯示程序和主電路控制程序,這三個程序分別實現了鍵盤的按鍵控制功能、顯示電動機轉速的功能和整個系統的運行控制功能。下面我對這三大程序分別進行設計介紹并給出設計流程圖[20]。 4.1 鍵盤控制程序設計鍵盤控制流程圖如下圖所示,編寫的程序經過初始化、識別是否有鍵入,經過接受指令和數據,進行分析并作出處理,然后傳達給單片機。下面還給出了部分鍵盤控制設計的程序。
圖4.1 鍵盤控制程序流程圖
部分鍵盤控制設計程序: - #include"keyboard.h"
- bit key_flag,flag_1;
- uchar flag;
- void delay_ms(uint z)
- {
- uint x;
- uchar y;
- for (x=z;x>0;x--)
- for (y=250;y>0;y--);
- }
- {
- case 0xee:num = 1;flag++;flag_1=1;
- break;
- case 0xde:num = 2;flag++;flag_1=1;
- break;
- case 0xbe:num = 3;flag++;flag_1=1;
- break;
- case 0x7e:num = 10;
- break;
- }
- while(temp != 0xf0);
- do
- {
- temp = DUAN_KOU;
- temp = temp & 0xf0;
- }
- while(temp != 0xf0);
- {
- case 0xeb:num = 7;flag++;flag_1=1;
- break;
- case 0xdb:num = 8;flag++;flag_1=1;
- return num;
- }
復制代碼
4.2 顯示程序設計 顯示程序流程圖如下圖所示,編寫的程序經過初始化、清屏進入串口驅動模式,經過接受指令和數據,進行分析讀取字符串,然后在顯示屏上正確顯示出來。下面還給出了部分顯示設計的程序。
圖4.2顯示程序流程圖
部分顯示設計的程序: - #include"12864_ser.h"
- void write(bit start, unsigned char ddata);
- void sendbyte(unsigned char bbyte);
- void delaynms(unsigned int di);
- void lcdinit(void);
- {
- delaynms(100);
- PSB=0;
- RESET=0; delaynms(1); RESET=1;
- CS=1;
- write(0,0x30);
- write(0,0x02);
- write(0,0x06);
- write(0,0x0c);
- write(0,0x01);
- }
- void clr_12864()
- void write(bit start, unsigned char ddata)
- if(x==1)
- write(0,0x80+y);
- else if(x==2)
- write(0,0x90+y);
- else if(x==3)
- write(0,0x88+y);
- else if(x==4)
- write(0,0x98+y);
- //pos=x+y;
- //sendbyte(0xf8);delaynms(5);sendbyte(pos);delaynms(2);
- }
- {
- if(x==1)
- write(0,0x80+y);
- else if(x==2)
- write(0,0x90+y);
- else if(x==3)
- write(0,0x88+y);
- else if(x==4)
- write(0,0x98+y);
- //pos=x+y;
- //sendbyte(0xf8);delaynms(5);sendbyte(pos);delaynms(2);
- }
- void print(uchar *str)
- while(*str!='\0')
- {
- write(1,*str);
- str++;
- }
復制代碼
4.3 主控程序設計主控程序流程圖如下圖所示,編寫的程序經過初始化、通過給定初值,使定時器中斷得以控制,從而產生相應的PWM波形,使驅動芯片動作,控制電動機的正轉、反轉和停止,在這個過程里,速度檢測反饋模塊會把實時轉速反饋給單片機,從而知道與設定轉速是否相符,達到轉速反饋控制的目的[21]。下面還給出了部分設計的程序。
圖4.3 主控程序流程圖 部分主控程序設計: - #include"12864_ser.h"
- #include"keyboard.h"
- uint counter,sheding,timer,PWM,TS,ZF,PK,keynum,keynum1,keynum2,temp;
- uchar qian,bai,shi,ge;
- extern uchar flag;
- extern bit flag_1;
- uchar digit[] ={"0123456789"};
- uchar table[4];
- sbit P01=P0^1;
- sbit P02=P0^2;
- void Init_Timer1(void)
- {
- TMOD |= 0x10 | 0x40;
- TH1=0xFF;
- TL1=255;
- ET1=1;
- TR1=1; }
- void Init_Timer0(void)
- {
- TMOD |= 0x01;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- ET0=1;
- TR0=1; }
- void main(void)
- {
- P01=0;
- P02=0;
- write(1,digit[ge]);
- Init_Timer1();
- Init_Timer0();
- TS=70;
- gotoxy(3,2);
- write(1,':');
- while(flag<4)
- {
- table[flag-1]=get_key_val();
- if(flag_1==1)
- {
- write(1,digit[table[flag-1]]);
- flag_1=0;
- }
- }
復制代碼
5 實物的直流調速實現與調試基于STC89C51單片機控制的直流調速系統實物中主要包含了單片機控制部分、電路保護部分、速度檢測反饋部分、按鍵部分和顯示部分。實物采用數字鍵盤控制電動機轉速,實現了電動機的啟停、正轉、反轉、調速的功能。鍵盤上的A鍵是啟停控制鍵、B鍵是正反轉控制鍵、*號鍵為復位鍵。顯示器上可以顯示出電動機的設定轉速和實際轉速。通過速度反饋和分析對比,單片機會控制實際轉速越來越趨近設定轉速。達到對速度的控制目的。具體的實物模型如圖5.1所示。
圖5.1 實物模型圖
圖5.1 實物模型圖 具體的調試和分析過程如下: 1、在打開單片機供電電源和電動機驅動模塊電源后,實物顯示初始狀態,設定轉速和實際轉速均為0,在鍵盤上按鍵設定一個轉速如4500 r/min,則電動機開始啟動并加速,經過一段時間實際速度會越來越趨向于4500 r/min,直到最后達到和設定轉速十分靠近。具體的調試效果如圖5.2。在操作過程中,A鍵可控制電機的啟停。按下A鍵電動機會停止,再按一次電動機會重新運轉。
圖5.2 調試效果圖 
2、按下正反轉控制鍵B后,電動機會改變轉速方向,經過一段時間,電動機自動調節轉動方向,顯示器上顯示反轉4500 r/min。需要停止轉動可以按鍵A。調試效果如圖5.3。
圖5.3 調試效果圖
3、按下復位按鈕*號鍵,電動機會恢復到初試狀態,設定速度和實際速度都將置零。 4、在電動機運轉過程中給它一個干擾,如給電動機運行一個阻礙,電動機實際速度會變慢,經過速度反饋給單片機,單片機經過對比并調節PWM波形,控制PWM占空比來調節電動機的速度。電動機會漸漸恢復到初始設定的轉速上來,體現了系統的速度反饋和抗干擾的功能。具體調試如圖5.4,圖5.5。
圖5.4 給定干擾時的效果圖 圖5.5 調節恢復后的效果圖
實物的原件清單在下表中給出: 表5.1實物原件清單
結 論 設計是學生理論聯系實際的橋梁,是對課本知識的擴展和補充,是我們體察工程實際問題復雜性、學習和工作的又一次嘗試。此次設計使我充分認識到生產的靈活性和多變性。設計中培養了我們發現問題、解決問題的能力,在自我分析和理解的基礎上再經過指導老師的指導,經過半年多的不懈努力,此次設計終于是完成了。 我深深的體會到,設計不同于平時的作業,在設計中需要自己做出決策,即自己確定方案、選擇流程、查取資料、進行過程和設備計算,并對自己的選擇做出論證和核算,經過反復的分析比較,擇優選定最理想的方案和合理的設計。為了寫好這一設計,我查閱了很多的參考資料,參照了同類工程處理設計的成功經驗,根據本設計的具體情況和要求,做出了符合實際要求的、能夠解決實際問題的設計。同時,通過此次設計,培養了我分析和解決設計實際問題的能力。我相信這種嚴謹的學習方法、正確的設計思想、實事求是、嚴肅認真和高度責任感的工作作風對以后的工作和學習是大有裨益的。 本次完成的單片機控制PWM直流調速系統的設計能夠實現通過單片機STC89C51產生PWM信號對130直流電動機的轉速控制。在設計中,通過對系統各大模塊的分析應用,使自己的設計基本達到了實現直流電動機調速的要求。由于時間和經費的限制,本次設計基本上完成了硬件部分的設計、產生PWM控制信號關鍵軟件部分的設計和實物模型。從而形成了一個比較完整的基于單片機控制PWM直流調速系統,達到了預期的目標。 目前,PWM直流調速系統已經在日常生活中應用比較頻繁,但通過本次設計,我還是學到和鞏固了很多以前沒掌握或粗淺了解的知識,使我對PWM直流調速系統有了更深次的了解和掌握,并通過本次硬件和軟件的設計,相信能夠為我以后的工作提供相當寶貴的經驗和基礎。
完整的Word格式文檔51黑下載地址:
基于AT89C51單片機控制的雙閉環直流調速系統設計.doc
(3.09 MB, 下載次數: 82)
2019-1-11 13:24 上傳
點擊文件名下載附件
|