版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 摘要 </b></p><p> 本文主要介紹了基于AT89C51單片機的直流電機控制系統(tǒng)的設計。包括介紹直流電機調速的相關知識以及PWM調速的基本原理和實現(xiàn)方法,這對于直流電機速度控制系統(tǒng)的實現(xiàn)提供了一個有效的途徑。本次畢業(yè)設計主要任務是完成單片機的直流電機控制系統(tǒng)總體設計,包括直流電機的驅動方式,直流電機的控制方式,單片機外圍電路、鍵盤電路、驅動
2、電路、顯示電路等硬件設計及相應的驅動程序設計,設計出的控制系統(tǒng)應能夠使直流電機實現(xiàn)正反轉、加減速調節(jié),并可從鍵盤輸入進行相應工作模式的切換,用顯示屏顯示當前的狀態(tài),如速度、正反轉等信息。</p><p> 關鍵詞: 直流電機調速;單片機; PWM;LCD顯示;</p><p><b> Abstract</b></p><p> This
3、 article introduces the AT89C51 microcontroller based DC motor control system design. Including introduction of DC motor speed-related knowledge, as well as basic principle and implementing method of PWM speed control, F
4、or realization of DC motor speed control system provides an effective way. The graduation major task is to complete overall design of single-chip computer control system of DC motor, Including the dc motor drive mode, th
5、e control of dc motor, Microcontroller peripheral circui</p><p> Keywords: single chip; PWM; DC motor speed; LCD display;</p><p><b> 目 錄</b></p><p> 1 緒論……………………………
6、………………………………………………………1</p><p> 1.1 電機調速系統(tǒng)的發(fā)展概況……………………………………………………1</p><p> 1.2 論文題研究目的及意義………………………………………………………11.3 論文主要研究內容……………………………………………………………2</p><p> 2 直流電機的基本理論………………………
7、…………………………………………3</p><p> 2.1直流電機的基本結構及調速原理……………………………………………3</p><p> 2.1.1直流電機的基本結構…………………………………………………3</p><p> 2.1.2直流電機工作原理……………………………………………………3</p><p> 2.1.3直流電
8、機的基本參數(shù)…………………………………………………4</p><p> 2.1.4直流電機調速原理……………………………………………………4</p><p> 2.2調速基本原理及其實現(xiàn)方法…………………………………………………4 </p><p> 2.2.1調速基本原理…………………………………………………………6</p><p>
9、 2.2.2調速實現(xiàn)方法…………………………………………………………6</p><p> 3系統(tǒng)硬件設計…………………………………………………………………………8</p><p> 3.1設計要求………………………………………………………………………8</p><p> 3.2系統(tǒng)方案………………………………………………………………………8</p>
10、;<p> 3.3直流電機驅動控制模塊………………………………………………………9</p><p> 3.3.1直流電機驅動方式……………………………………………………9</p><p> 3.3.2驅動方案選擇…………………………………………………………11</p><p> 3.4直流電機的調速……………………………………………………………
11、…11 </p><p> 3.4.1 PWM極性選擇…………………………………………………………12</p><p> 3.4.2 PWM調脈寬工作方式…………………………………………………12</p><p> 3.4.3 PWM的軟件實現(xiàn)………………………………………………………12</p><p> 3.5控制內容………………
12、………………………………………………………12</p><p> 3.6系統(tǒng)模塊分析與設計…………………………………………………………14</p><p> 3.6.1單片機最小系統(tǒng)的設計………………………………………………14</p><p> 3.6.2電源電路設計…………………………………………………………18</p><p>
13、 3.6.3直流電機驅動電路設計………………………………………………18</p><p> 3.6.4顯示模塊設計…………………………………………………………21</p><p> 3.6.5鍵盤電路設計………………………………………………………22</p><p> 3.6.6 元件選擇與參數(shù)計算………………………………………………23</p>
14、<p> 3.6.7 系統(tǒng)整體硬件電路…………………………………………………24</p><p> 3.7 設計所需部分器件 …………………………………………………………26</p><p> 3.8 技術路線 ……………………………………………………………………26</p><p> 3.9 應用軟件的編制、調試 ………………………………………
15、……………27</p><p> 4 系統(tǒng)軟件設計 ………………………………………………………………………28</p><p> 4.1系統(tǒng)總體設軟件設計思想……………………………………………………28</p><p> 4.2 系統(tǒng)各個模塊軟件設計 ……………………………………………………29</p><p> 4.2.1 產生PW
16、M波的軟件設計 ……………………………………………30</p><p> 4.2.2 測量速度的軟件設計 ………………………………………………31</p><p> 4.2.3 電機轉向的軟件設計 ………………………………………………32</p><p> 4.2.4 電機加減速的軟件設計 ……………………………………………32</p><
17、p> 4.2.5 LCD顯示的軟件設計…………………………………………………32</p><p> 5 調試與仿真 …………………………………………………………………………33</p><p> 5.1 設計仿真原理圖 ……………………………………………………………33</p><p> 5.2 調試仿真問題解析 …………………………………………………
18、………36</p><p> 6 結論與總結 …………………………………………………………………………37</p><p> 參考文獻 …………………………………………………………………………38</p><p> 致謝 ………………………………………………………………………………39</p><p> 附錄(程序清單)…………………
19、………………………………………………40</p><p><b> 1 緒論</b></p><p> 1.1 電機調速系統(tǒng)的發(fā)展概況</p><p> 1964年H.stemmler和A.Schonung首先提出把PWM技術應用到電機傳動中從此為電機傳動的推廣應用開辟了新的局面。進入80年代以來,體積小、耗電少、成本低、速度快、功能強、
20、可靠性高的大規(guī)模集成電路微處理器已經商品化,把電機控制推上了一個嶄新的階段,以微處理器為核心的數(shù)字控制(簡稱微機數(shù)字控制)成為現(xiàn)代電氣傳動系統(tǒng)控制器的主要形式。直流電機調速系統(tǒng)的發(fā)展得力于微電子技術、電力電子技術、傳感器技術、永磁材料技術、自動控制技術和微機應用技術的最新發(fā)展成就。用于功率輸出控制,其中電機的控制部分已經由模擬控制逐漸讓位于以單片機為主的微處理器控制,形成數(shù)字與模擬的混合控制系統(tǒng)和純數(shù)字控制系統(tǒng),并正向全數(shù)字控制方向快速
21、發(fā)展。電動機的驅動部分所用的功率器件亦經歷了幾次更新?lián)Q代。目前開關速度更快、控制更容易的全控型功率器件MOSFET和IGBT成為主流。PWM取代數(shù)模轉換器(DAC) 功率器件控制條件的變化和微電子技術的使用也使新型的電動機控制方法能夠得到實現(xiàn)。脈寬調制控制方法在直流調速中獲得了廣泛的應用[3]?! ?lt;/p><p> 1.2 論文題研究目的及意義</p><p> 直流電動機
22、是最早出現(xiàn)的電動機,也是最早實現(xiàn)調速的電動機。長期以來,直流電動機一直占據(jù)著調速控制的統(tǒng)治地位。由于它具有良好的線性調速特性,簡單的控制性能,高效率,優(yōu)異的動態(tài)特性,現(xiàn)在仍是大多數(shù)調速控制電動機的最優(yōu)選擇。因此研究直流電機的速度控制,有著非常重要的意義。 隨著單片機的發(fā)展,數(shù)字化直流PWM調速系統(tǒng)在工業(yè)上得到了廣泛的應用,控制方法也日益成熟。它對單片機的要求是:具有足夠快的速度;有PWM口,用于自動產生PWM波;有捕捉功能,用于測頻
23、;有A/D轉換器、用來對電動機的輸出轉速、輸出電壓和電流的模擬量進行模/數(shù)轉換;有各種同步串行接口、足夠的內部ROM和RAM,以減小控制系統(tǒng)的無力尺寸;有看門狗、電源管理功能等。因此該設計中選用單片機AT89C51通過設計基于AT89C51單片機的直流PWM調速系統(tǒng)并調試得出結論,對運動控制的相關知識進行鞏固。</p><p> 1.3 論文主要研究內容</p><p> 完成單片機的
24、直流電機控制系統(tǒng)總體設計,包括直流電機的驅動方式,直流電機的控制方式,單片機電路、鍵盤電路、驅動電路、顯示電路等硬件設計及相應的驅動程序設計,設計出的控制系統(tǒng)應能使直流電機正反轉、加減速調節(jié),并可從鍵盤輸入進行相應工作模式的切換及加減速調節(jié),用顯示屏顯示當前的狀態(tài),如速度、正反轉等信息[12]。</p><p> 2 直流電機的基本理論</p><p> 2.1直流電機的基本結構及調速
25、原理</p><p> 2.1.1直流電機的基本結構</p><p> 直流電機由定子和轉子兩部分組成。在定子上裝有磁極(電磁式直流電機磁極由繞在定子上的磁繞提供),其轉子由硅鋼片疊壓而成,轉子外圓有槽,槽內嵌有電樞繞組,繞組通過換向器和電刷引出,直流電機結構如圖2-1所示[9]。</p><p> 圖2-1直流電動機結構</p><p&g
26、t; 2.1.2 直流電機工作原理</p><p> 直流電機電路模型如圖2-2所示,磁極N、S間裝著一個可以轉動的鐵磁圓柱體,圓柱體的表面上固定著一個線圈abcd。當線圈中流過電流時,線圈受到電磁力作用,從而產生旋轉。根據(jù)左手定則可知,當流過線圈中電流改變方向時,線圈的受方向也將改變,因此通過改變線圈電路的方向實現(xiàn)改變電機的方向[14]。</p><p> 圖2-2直流電動機電路
27、模型</p><p> 2.1.3 直流電機主要技術參數(shù)</p><p> 直流電機的主要額定值有:</p><p> 額定功率Pn:在額定電流和電壓下,電機的負載能力。</p><p> 額定電壓Ue:長期運行的最高電壓。 </p><p> 額定電流Ie:長期運行的最大電流。</p>
28、<p> 額定轉速n:單位時間內的電機轉動快慢,以r/min為單位。</p><p> 勵磁電流If:施加到電極線圈上的電流[3]。</p><p> 2.2 調速基本原理及其實現(xiàn)方法</p><p> 2.2.1 調速基本原理</p><p> ?。?)直流電機轉速的數(shù)學模型可用圖2-3表示,由圖可見電機的電樞電動勢Ea
29、的正方向與電樞電流Ia的方向相反,Ea為反電動勢;電磁轉矩T1的正方向與轉速n的方向相同,是拖動轉矩;軸上的機械負載轉矩T2及空載轉矩T0均與n相反,是制動轉矩[9]。</p><p> 圖2-3 直流電機的數(shù)學模型</p><p> 根據(jù)基爾霍夫第二定律,得到電樞電壓電動勢平衡方程式(2-1):</p><p><b> ?。?-1)</b&g
30、t;</p><p> 式(2-1)中,為電樞回路電阻,電樞回路串聯(lián)保繞阻與電刷接觸電阻的總和;</p><p> 是外接在電樞回路中的調節(jié)電阻。</p><p> 由此可得到直流電機的轉速公式為: </p><p><b> ?。?-2)</b></p><p> 式(2-2)中,
31、為電動勢常數(shù),是磁通量。由(2-1)和(2-2)得:</p><p><b> (2-3) </b></p><p> 由式(2-3)中可以看出,對于一個已經制造好的電機,當勵磁電壓和負載轉矩恒定時,它的轉速由回在電樞兩端的電壓Ea決定,電樞電壓越高,電機轉速就越快,電樞電壓降低到0V時,電機就停止轉動;改變電樞電壓的極性,電機就反轉[1]。</p>
32、<p> 對于直流電機來說,如果加在電樞兩端的電壓為圖2-4所示的脈動電流壓(要求脈動電壓的周期遠小于電機的慣性常數(shù)),可以看出,在T不變的情況下,改變t1和t2寬度,得到的電壓將發(fā)生變化[14],下面對這一變化進一步推導。</p><p> 圖2-4 施加在電樞兩端的脈動電壓</p><p> 設電機接全電壓U時,其轉速最大為Vmax。若施加到電樞兩端的脈動電壓占空比
33、為D=t1/T,則電樞的平均電壓為:</p><p><b> ?。?-4)</b></p><p> 由式(2-3)得到:</p><p><b> (2-5)</b></p><p> 在假設電樞內阻轉小的情況下式中,是常數(shù)。圖2-5為施加不同占空比時實測的數(shù)據(jù)繪制所得占空比與轉速的關系圖
34、。</p><p> 圖2-5占空比與電機轉速的關系</p><p> 由圖看出轉速與占空比D并不是完全速的線性關系(圖中實線),原因是電樞本身有電阻,不過一般直流電機的內阻一般較小,故可以近視其為線性關系。</p><p> 由此可見,改變施加在電樞兩端電壓就可以變電機的轉速度,這就是直流電機PWM調速原理。</p><p> 2.
35、2.2 PWM實現(xiàn)方法</p><p> PWM信號的產生通常有兩種方法:一種是軟件的方法;另一種是硬件的方法。本文主要介紹利用單片機對PWM信號的軟件實現(xiàn)方法。51系列典型產品AT89C51具有兩個定時器 和 。通過控制定時器初值和 ,從而可以實現(xiàn)從C51的任意輸出口輸出不同占空比的脈沖波形。大致的的編程思路是這樣的:T0定時器中斷是讓一個I/O口輸出高電平,在這個定時器T0的中斷當中起動定時器T1,而這個T
36、1是讓I/O口輸出低電平,這樣改變定時器T0的初值就可以改變頻率,改變定時器T1的初值就可以改變占空比。</p><p> 如果單片機的時鐘頻率為,定時器/計數(shù)器為位,則定時器初值與定時時間的關系為:</p><p><b> ?。?-6)</b></p><p> —— 定時器定時初值;</p><p> ——
37、一個機器周期的時鐘數(shù);</p><p> 本設計以AT89C51單片機為核心,以6個彈跳按鈕作為輸入達到控制直流電機的啟動、停止、加速、減速、正轉、反轉,以LCD顯示電機速度大小。設計中采用PWM技術對電機進行控制,通過對占空比的計算達到調速的目的[11]。</p><p><b> 3 系統(tǒng)硬件設計</b></p><p><b&g
38、t; 3.1 設計要求</b></p><p> (1) 通過鍵盤改變脈沖的占空比從而達到改變轉速使得電機轉速從高到低,從低到高。</p><p> (2) 通過改變輸出電平的極性從而改變電機的轉向,實現(xiàn)電機的正轉反和轉。</p><p> (3) 能夠通過LCD顯示電機的的轉向。</p><p> (4) 通過啟動鍵啟
39、動電機,從而達到防止電機誤啟動的目的。</p><p> (5) 能夠通過電機最終顯示電機的速度。</p><p><b> 3.2系統(tǒng)方案</b></p><p> (1) 速度加減的實現(xiàn):</p><p> 單片機通過控制L298的使能端“允許”或者“禁止”,通過改變a(脈沖寬度)的值,從而達到控制PWM脈沖
40、寬度調節(jié)電機轉速的目的,即采用P1.1通過軟件延時程序延時得到PWM信號與ENA引腳相連,來調節(jié)電機的加速減速。</p><p> (2) 正反轉的控制:</p><p> 單片機通過L298中的H橋,從AT89C51中的P1.0輸出控制信號與L298的IN2相連,同時P1_0輸出的電信號與非門相連再輸入到IN1來達到控制BJT的基極電壓,IN1與IN2具有互鎖的控制L298中H橋的B
41、JT通斷,從而達到控制電機轉向的目的。</p><p> (3)電機速度的顯示:</p><p> 單片機通過P3.4/T0接受電機發(fā)出的脈沖信號(在仿真是采用proteus里MOTOR-encoder電機,用這個可以簡單的測得電機的轉速,主要原理是編碼器可以根據(jù)電機轉一圈輸出脈沖數(shù),根據(jù)統(tǒng)計的脈沖量得到電機的轉數(shù),中間的是編碼器轉一周,高電平一次。根據(jù)這可以測出轉速。左右兩邊是檢測左
42、轉還是右轉。哪邊先高電平,就是往哪邊轉。在本次設計中采用檢測每轉動一周高電平一次來簡單的計算電機的轉速。單片機T1采用模式一定時中斷定,T0采用模式一計數(shù)中斷定計數(shù)模式,由高8位TH0和低8位TL0兩個8位寄存器組成,當設定計算值為65536-50000=15536(D)時,轉換為十六進制就是3CB0(H),此時,TH0=3C,TL0=B0,定時器T1計數(shù)50ms,此時電機每轉動一周P3.4高電平一次,存儲電機轉動的轉數(shù),同時采集2.5
43、S之后將電機的轉數(shù)進行LCD顯示。</p><p> 3.3直流電機驅動模塊方案分析</p><p> 3.3.1 直流電機驅動方案</p><p> 方案一:更主要的問題在于一般電動機的電阻很小,但電流很大;分壓不僅會降低效率,而且實現(xiàn)很困難。</p><p> 方案二:采用繼電器對電動機的開或關進行控制。</p>&
44、lt;p> 方案三:直流電機是可以正反轉的。本電路采用的是基于PWM原理的H型橋式驅動電路。</p><p> 圖3-1 H型橋式驅動電路</p><p> PWM電路由復合體管組成H型橋式電路構成,四部分晶體管以對角組合分為兩組:根據(jù)兩個輸入端的高低電平決定晶體管的導通和截止。4個二極管在電路中起防止晶體管產生反向電壓的保護作用,防止電動機兩端的電流和晶體管上的電流過大的保護
45、作用。</p><p> 從而驅動電機沿另一方向轉動[15]。</p><p> 方案四:采用驅動芯片L298N驅動直流電機,L298N具有驅動能力強,外圍電路簡單等優(yōu)點,分析知采用驅動芯片L298N驅動直流電機。</p><p> 表 3-1 L298N驅動芯片真值表</p><p> 3.3.2 驅動方案選擇</p>
46、<p> 綜合上訴四中方案,在本次設計中采用方案四,片機通過控制L298的使能端“允許”或者“禁止”,通過改變a(脈沖寬度)的值,從而達到控制PWM脈沖寬度調節(jié)電機轉速的目的,即采用P1.1通過軟件延時程序延時得到PWM信號與ENA相連,來調節(jié)電機的加速減速。</p><p> 3.4直流電機的調速</p><p> 3.4.1 PWM極性選擇</p>&l
47、t;p> 方案一:雙極性工作制。</p><p> 方案二:單極性工作制。</p><p> 3.4.2 PWM調脈寬方式</p><p> 調脈寬的方式有三種:定頻調寬、定寬調頻和調寬調頻。并且在采用單片機產生PWM脈沖的軟件實現(xiàn)上比較方便。</p><p> 3.4.3 PWM軟件實現(xiàn)方式</p><p
48、> 方案一:采用軟件延時方式,在引入中斷之后,將有一定的誤差。</p><p> 方案二:采用定時器作為脈寬控制的定時方式,這一方式產生的脈沖寬度極其精確。綜合程序的編制以及自身學術水平的限制的考慮本設計采用方案一。</p><p><b> 3.5控制內容</b></p><p> 采用單片機構成的直流電動機數(shù)字PWM調速系統(tǒng),
49、其控制核心主要由最小系統(tǒng)、電源模塊、顯示模塊、直流電機組成。系統(tǒng)采用L298N芯片作為PWM 驅動直流電動機的供電主回路。單片機通過軟件延時處理輸出PWM信號, 實現(xiàn)了直流電動機的轉速控制,在運行中獲得了良好的動靜態(tài)性能。</p><p> ?。?)鍵盤識別:通過P1口的低電平輸入識別不同的按鍵。</p><p> ?。?)通過對單片機程序燒錄實現(xiàn)對直流電機的停止、加速、減速、正轉、反轉控
50、制。</p><p> ?。?)由于單片機的驅動能力不強,驅動直流電機需要很強的電流所以必須有外圍的驅動電路,因此本設計采用L298N芯片放大單片機微弱的電流。</p><p> 圖3-2 系統(tǒng)硬件框圖</p><p> 3.6系統(tǒng)模塊分析與設計</p><p> 3.6.1 單片機最小系統(tǒng)的設計</p><p>
51、; 單片機最小系統(tǒng):所謂最小系統(tǒng)就是指由單片機和一些基本的外圍電路所組成的一個可以使單片機工作的系統(tǒng)。一般來說,它包括單片機,晶振電路和復位電路。</p><p> 圖 3-3 單片機最小系統(tǒng)整體框</p><p><b> 控制器部分分析:</b></p><p> AT89C51 為 ATMEL 所生產的可電氣燒錄清洗的 8051
52、 相容單芯片,其內部程序代碼容量為4KB。</p><p> ?。ㄒ唬?AT89C51主要功能列舉如下:</p><p> 1、為一般控制應用的 8 位單芯片</p><p> 2、晶片內部具時鐘振蕩器 </p><p> 3、內部程式存儲器(ROM)為 4KB</p><p> 4、內部數(shù)據(jù)存儲器(RAM)
53、為 128B</p><p> 5、外部程序存儲器可擴充至 64KB</p><p> 6、外部數(shù)據(jù)存儲器可擴充至 64K 7、32 條雙向輸入輸出線,且每條均 可以單獨做 I/O 的控制</p><
54、;p> 8、5 個中斷向量源</p><p> 9、2 組獨立的 16 位定時器</p><p> 10、1 個全多工串行通信端口</p><p> 圖 3-4 AT89C51 11、8751 及 8752 單芯片具有數(shù)據(jù)保密的功能</p><p> 12、單芯片提供位邏輯運算指令[10]&
55、lt;/p><p> ?。ㄈ臀浑娐芳皶r鐘電路</p><p> 圖3-5 RC 復位電路</p><p><b> (四)時鐘電路</b></p><p> 晶體振蕩器的簡稱, AT89C51 單片機內部有一個用于構成振蕩器的高增益反相放大器。引腳XTAL1 和XTAL2 分別是此放大器的輸入端和輸出端。晶體振蕩
56、電路如圖3-6,晶振有一個重要的參數(shù),那就是負載電容值,選擇與負載電容值相等的并聯(lián)電容,就可以得到晶振標稱的諧振頻率[16]。</p><p> 3.6.2電源電路設計</p><p> 直流穩(wěn)壓電源的基本原理:直流穩(wěn)壓電源一般有電源變壓器T、整流濾波電路及穩(wěn)壓電路所組成,基本框圖如下。</p><p> 圖3-7 直流電源原理 </p><
57、;p> (1)電源變壓器T的作用是將220V的交流電壓變換成整流濾波電路所需要的交流電壓Ui。變壓器副邊與原邊的功率比為P2/P1=n,式中n是變壓器的效率。</p><p> (2)整流電路:整流電路將交流電壓Ui變換成脈動的直流電壓。再經濾波電路濾除較大的波紋成分,輸出波紋較小的直流電壓U1。常用的整流濾波電路有全波整流濾波、橋式整流濾波等。</p><p><b>
58、; 圖3-8 整流電路</b></p><p> (3)濾波電路:各濾波電路C滿足RL/C=(3~5)T/2,式中T為輸入交流信號周期,RL為整流濾波電路的等效負載電阻。</p><p> 穩(wěn)壓電路:常用的穩(wěn)壓電路有兩種形式:一是穩(wěn)壓管穩(wěn)壓電路,二是串聯(lián)型穩(wěn)壓電路[2]。常用穩(wěn)壓電路歸納如下表</p><p> 表3-2常用的穩(wěn)壓電路</
59、p><p> 3.6.3直流電機驅動電路設計</p><p> 在本次設計中采用L298N電機與其連接的電氣原理圖如圖3-10所示</p><p> 圖3-10直流電機驅動電路</p><p> 3.6.4顯示模塊設計</p><p> 在本設計課題中采用的是FM160128是一種圖形點陣液晶顯示器,它的引腳圖如
60、圖3-11所示。</p><p> 圖3-11 FM160128</p><p> 主要技術參數(shù)和性能:模塊內自帶-15負壓,用于LCD的驅動電壓</p><p> 3.6.5鍵盤電路設計</p><p> 工作原理:采用行掃描和列掃描,過程如下:</p><p> 1.CPU先使行線P1.1為低,其余行線
61、為高2.CPU讀入輸入緩沖器的狀態(tài),以確定哪條列線為0狀態(tài),若此時P1.70,</p><p> 則"C"鍵按下;若P1.5為0,則"E"鍵按下</p><p> 3.若輸入緩沖器(列線)狀態(tài)全部為1,說明P1.0行沒有鍵盤按下,CPU</p><p> 繼續(xù)使P1.1為0,其余行線為高,再讀入輸入緩沖器的狀態(tài),以確定
62、哪條列線為0,從而判斷是哪個鍵盤按下 4.當判斷那個鍵盤按下后,程序轉入相應的鍵盤處理程序</p><p> 圖3-12 矩陣式鍵盤結構</p><p> 啟動、停止、正轉、反轉、加速、減速六個開關采用鍵盤掃描分別與單片機列P1.4、P1.5、P1.6 、P1.7行P3.0、P3.1、P3.2、相連。實現(xiàn)直流電機的啟動、停轉,正轉實現(xiàn)直流電機的正轉,反轉實現(xiàn)直流電機的反轉,加
63、速實現(xiàn)直流電機的加速,減速實現(xiàn)直流電機的減速,其電路如圖:</p><p> 圖3-13 按鍵電路</p><p> 3.6.7 系統(tǒng)整體硬件電路</p><p> 系統(tǒng)整體硬件電路圖如圖3-16示:</p><p> 圖3-16 系統(tǒng)硬件電路圖</p><p> 3.7設計所需部分器件</p>
64、<p> AT89C51、L298N、12MHZ晶振、、電容、電阻、彈跳開關、LCD液晶顯示、非門、直流電機、整流橋、變壓器等。</p><p><b> 4 系統(tǒng)軟件的設計</b></p><p> 4.1系統(tǒng)總體設軟件設計思想</p><p> 獨立的功能模塊,畫出每一個功能模塊的詳細流程圖,并根據(jù)流程圖編寫程序,最后按
65、照軟件設計的總體結構框圖,將各模塊連接成一個完整的主程序。在主程序的設計中要合理地調用各模塊程序。模塊化設計的優(yōu)點是:無論是硬件還是軟件,每一個模塊都相對獨立。根據(jù)此次的設計可以得到如下的總體軟件流程圖。</p><p> N Y</p><p><b> Y</b></p><p
66、><b> Y</b></p><p> Y </p><p><b> Y</b></p><p> N </p
67、><p><b> Y </b></p><p> 圖4-1 軟件總體流程圖</p><p> 4.2 系統(tǒng)各個模塊軟件設計</p><p> 4.2.1 產生PWM波的軟件設計</p><p> 本設計中采用軟件延時方式對脈沖寬度進行控制,延時程序函數(shù)。對應的流程圖為:</p>
68、;<p> 圖4-2產生PWM波的軟件設計</p><p> 由此得到產生PWM波的部分程序如下:</p><p><b> while(1)</b></p><p> { if(a>=150) </p><p><b> a=150;</b></p>
69、<p> if(a<=10) </p><p><b> a=10;</b></p><p><b> P1_1=0; </b></p><p> delay(160-a); //(160-a)改變了延時函數(shù)的系數(shù)。</p><p><b
70、> P1_1=1;</b></p><p> delay(a); //延時程序</p><p> key=GeyKey();</p><p> if(key=='K6') a-=n; //K6按下電機加速,其中n是步長</p><p>
71、else //調節(jié)PWM波的高電平所占時段,</p><p> if(key=='K5') a+=n; </p><p><b> }</b></p><p><b> 定時器初始化設置</b></p><p>
72、; TMOD=0x15;</p><p><b> TH1=0x3c;</b></p><p><b> TL1=0xb0;</b></p><p><b> TH0=0x00;</b></p><p><b> TL0=0x00;</b><
73、;/p><p><b> ET0=1;</b></p><p><b> ET1=1;</b></p><p><b> TR0=1;</b></p><p><b> TR1=1;</b></p><p> 定時器設定模式1
74、時,由高8位TH0和低8位TL0兩個8位寄存器組成,當設定計算值為65536-50000=15536(D)時,轉換為十六進制就是3CB0(H),此時,TH0=3C,TL0=B0分別裝入定時器T1即可實現(xiàn)50ms的計時。</p><p> 4.2.2 測量速度的軟件設計</p><p> 在本次設計中采用檢測每轉動一周高電平一次來簡單的計算電機的轉速。單片機T1采用模式一定時中斷定,T0
75、采用模式一計數(shù)中斷定計數(shù)模式,此時電機每轉動一周P3.4高電平一次,存儲電機轉動的轉數(shù)。此次電機轉動速度的測量的部分程序如下:</p><p> void time()interrupt 3 </p><p><b> { </b></p><p><b> TR1=0;</b></p><
76、p><b> count++;</b></p><p><b> k+=TL0;</b></p><p> if(count==50)</p><p><b> { </b></p><p> sprintf(dsp,"%3d",k1
77、);</p><p> dprintf(0,108,dsp); </p><p> dprintf(60,108,"r/min"); </p><p><b> count=1;</b></p><p><b> k=0;</b></p><p
78、><b> }</b></p><p> 當定時器T1定時50ms到,產生中斷,count++是中斷次數(shù),k1是電機的轉速值,TL0存儲電機在50ms中的轉數(shù),在達到50次中斷之后即2.5S之后(電機速度趨向穩(wěn)定),k+=TL0即可得到電機的轉速值,再進行LCD的顯示。</p><p> 4.2.3 電機轉向的軟件設計</p><p&g
79、t; 對于電機的正反轉,可以根據(jù)L298的驅動原理得到流程圖:</p><p> 圖4-3電機轉向的軟件設計</p><p> 由流程圖可得到電機的轉向控的部分程序如下:</p><p> if(key=='K3')</p><p> { P1_0=1;</p><p> dprintf(
80、0,72,"方向: 順時針")</p><p><b> }</b></p><p><b> else </b></p><p> if(key=='K4') </p><p> { P1_0=0;</p><p> dpri
81、ntf(0,72,"方向: 逆時針");</p><p><b> }</b></p><p> 當按下按鈕K3或K4后改變單片機P1_0口的電平,再通過非門進而改變電機的轉動方向。</p><p> 4.2.4 電機加減速的軟件設計</p><p> 要實現(xiàn)電機的加減速控制時,當按下K6電機
82、減速,當按下K5時電機加速。由此得到其對應的程序如下:</p><p> key=GeyKey();</p><p><b> {</b></p><p> if(key=='K6') a-=n;</p><p><b> else </b></p><p
83、> if(key=='K5') a+=n;</p><p><b> }</b></p><p> 當按下按鈕K6或K5后改變延時函數(shù)變量a的值,進而改變單片機P1_0口的電平高低出現(xiàn)的時間比例。通過L298控制中H橋的BJT通斷頻率來控制電機的速度的加減。</p><p> 4.2.5 LCD顯示的軟件設計<
84、;/p><p> LCD顯示的初始化程序如下所示:</p><p> extern char fnLCMInit(); // LCM 初始化</p><p> extern void at(unsigned char x,unsigned char y);/*設定文本x,y值*/</p><p> extern void cls();
85、// 清屏</p><p> extern void charout(unsigned char *str); //ASCII(8*8) 顯示函數(shù)</p><p> extern void fnSetPos(unsigned char urow, unsigned char ucol);// 設置當前地址</p><p> extern uchar dpr
86、intf(uchar x,uchar y,char *fmt);// ASCII(8*16) 及 漢字(16*16) 顯示函數(shù)</p><p> extern uchar fnPR12(uchar uCmd); // 寫無參數(shù)的指令</p><p> extern uchar fnPR13(uchar uData); // 寫數(shù)據(jù)</p><p> exter
87、n unsigned int Adc0832(unsigned char channel);</p><p> extern void Line( unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, bit Mode);</p><p> extern void Pixel(unsigned c
88、har PointX,unsigned char PointY, bit Mode);</p><p> 注:在本次設計中LCD接口程序采用已編制好的程序,故未詳細敘述。</p><p><b> 5 調試與仿真</b></p><p> 5.1設計仿真原理圖</p><p> 圖5-1系統(tǒng)仿真初始圖</p
89、><p> 初始狀態(tài),當啟動Protues進行仿真,系統(tǒng)有如圖示5-2運行效果由圖可以看出電機的轉速顯示為0.同時LCD顯示屏顯示處于上電啟動狀態(tài)。</p><p> 圖5-2啟動仿真時的效果圖</p><p> 按下啟動鍵K1,直流電機有圖5-3的運行結果。由圖可以看出電機的轉速顯示為95r/min.同時LCD顯示屏顯示處于上電顯示狀態(tài)。</p>
90、<p> 圖5-3按下啟動按鈕啟動時的效果圖</p><p> 按下反轉鍵,可以看到直流電機迅速減速為0,并反方向轉動,有圖5-4的運行結果。</p><p> 圖5-4按下反轉按鈕時的效果圖</p><p> 按下加速鍵,可以明顯的觀察到直流電機的速度迅速加速到150r/min,且PWM的高電平與低電平之比有明顯區(qū)別,即高電平遠大于低電平。有圖5
91、-5的運行結果。</p><p> 圖5-5按下加速按鈕時的效果圖</p><p> 按下減速鍵,可以明顯的觀察到直流電機的速度迅速加速到0,且PWM的高電平與低電平之比有明顯區(qū)別,即高電平遠小于低電平。有圖5-6的運行結果。</p><p> 圖5-6按下減速按鈕時的效果圖</p><p> 按下停止鍵,可以看到電機停止轉動,PWM
92、波也為0。直流電機有圖5-7的運行結果。同時LCD顯示電機轉速為0。</p><p> 圖5-7按下停止按鈕時的效果圖</p><p> 5.2 調試仿真問題解析</p><p> 在本次設計仿寫的是c程序,Keil調試的時候應該顯示原程序才對??!但卻顯示一大堆圖片中一樣的東西,開始不知道怎么回事。后來點擊菜view->disassembly windo
93、w來關閉這個功能,可就解決了。在Protues仿真的時候出現(xiàn)電機不轉動,再怎么調試程序都無法解決,在同學的仔細分析之下發(fā)現(xiàn)電機的驅動模塊有一引腳沒有接地所導致。</p><p><b> 6 結論與總結</b></p><p> 通過Keil C編程,Proteus聯(lián)合調試仿真,基本上實現(xiàn)了本次畢業(yè)設計的要求完成了片機的直流電機控制系統(tǒng)總體設計,包括直流電機的驅
94、動方式,直流電機的控制方式,單片機電路、鍵盤電路、驅動電路、顯示電路等硬件設計及相應的驅動程序設計,設計出的控制系統(tǒng)應能使直流電機正反轉、加減速調節(jié),并可從鍵盤輸入進行相應工作模式的切換及加減速調節(jié),用顯示屏顯示當前的狀態(tài),如速度、正反轉等信息。同時通過示波器觀測到PWM波在電機啟動、停止、正反轉、加減速時的波形圖,符合設計預期。</p><p><b> 參考文獻</b></p&g
95、t;<p> [1]周立功.直流電機原理與驅動[M].西安:西安電子科技大學出版社.2008.1</p><p> [2]傅豐林.模擬電子線路基礎[M].西安:西安電子科技大學出版社.2001.1</p><p> [3]江志紅.51單片機技術與應用系統(tǒng)開發(fā)開發(fā)系統(tǒng)案例精選[M].北京:清華大學出版社,2008.12</p><p> [4]王
96、選民.智能儀器原理與設計[M].北京:清華大學出版社.2008.7</p><p> [5]楊欣,王玉鳳.51單片機應用從零開始[M].北京:清華大學出版.2008年</p><p> [6]何立民.單片機高級教程應用設計[M].北京:北京航空航天大學出版社.2000年</p><p> [7]李泉溪. 單片機原理與應用實例仿真[M].北京:北京航空航天大學出
97、版社.2009.8</p><p> [8]劉保錄.基于單片機的電機綜合參數(shù)測試儀設計[M].第10卷第2期</p><p> [9]岳東海.直流電機PWM無級調速控制系統(tǒng)設計[J] .價值工程2010(2)135-136</p><p> [10]趙良炳.現(xiàn)代電力電子技術基礎[M].清華大學出版社,1995</p><p> [11
98、]幸之.單片機應用系統(tǒng)抗干擾技術[M].北京:北京航空航天大學出版社.2001</p><p> [12]皮大能 南光群 劉金華. 單片機課程設計指導書[M].北京:北京理工大學出版社.2010.7</p><p> [13]周興華.用單片機控制直流電機變速[J].制作,2009: 86-87</p><p> [14]張廣成.電機PWM無級調速控制系統(tǒng)設計[
99、J].值工程. 2007: 102-108</p><p> [15]Katsuhiko Ogata.Modern Control Engineering. Publishing house of electronics industry.2000: 186-193.</p><p> [16]胡漢才,單片機原理及其接口技術(第2版) [M].清華大學出版社,2004</p>
100、;<p> [17]王福瑞.單片微機測控系統(tǒng)設計大全[M].北京航空航天大學出版社,1999</p><p> [18]余永權,汪明慧,黃英.單片機在控制系統(tǒng)中的應用[M].電子工業(yè)出版社,2003</p><p> [19]夏繼強.單片機實驗與實踐教程[M].北京.北京航空航天大學出版社.2001: 120-124</p><p> [20]
101、李廣第.單片機基礎[M].第1版.北京.北京航空航天大學出版社.1999: 26-29.</p><p> [21]肖洪兵.跟我學用單片機.北京[M].北京航空航天大學出版社.2002.8: 24-36.</p><p><b> 致謝</b></p><p> 首先非常感謝我的班主任xx老師在我大學的最后學習階段——畢業(yè)設計階段給我耐心
102、的幫助,在我在外地實習階段由于各種原因有居多不方便收集畢業(yè)設計資料的情況下,發(fā)送設計相關內容資料并且催促我主動及時完成畢業(yè)設計,指導我的畢業(yè)論文,期間提出來很多的寶貴建議,這種無私奉獻的敬業(yè)精神令人欽佩,在此我向xx老師表示我誠摯的謝意。是他們教會了我專業(yè)知識,教會了教會了我如何做人,我如何更好的學習生活。同時,在這里我要衷心的感謝所有任課老師和所有的同學在這四年來給自己的指導和無私的幫助,正是由于他們,我才能在各方面取得顯著的進步,我
103、的大學生活過的豐富多彩。通過這一階段的努力,我的畢業(yè)論文《基于AT89C51單片機的直流電機控制系統(tǒng)設計》基本完成了,這就意味著四年大學生活也即將結束了,也即將走上自己的工作崗位了,開始自己人生的規(guī)劃。</p><p> 我將銘記我曾經是xx的一名學子,在這里生活了四年,學到了許多也得到了許多。在今后的工作中把湖北理工學院的優(yōu)良傳統(tǒng)繼續(xù)發(fā)揚光大,做一名優(yōu)秀的理工人。</p><p>&l
104、t;b> 附錄(程序清單)</b></p><p> #include <showfun.h></p><p> #include <stdio.h></p><p> extern char fnLCMInit(); // LCM 初始化</p><p> extern void at(u
105、nsigned char x,unsigned char y);/*設定文本x,y值*/</p><p> extern void cls(); // 清屏</p><p> extern void charout(unsigned char *str); //ASCII(8*8) 顯示函數(shù)</p><p> extern void fnSetPos(uns
106、igned char urow, unsigned char ucol);// 設置當前地址</p><p> extern uchar dprintf(uchar x,uchar y,char *fmt);// ASCII(8*16) 及 漢字(16*16) 顯示函數(shù)</p><p> extern uchar fnPR12(uchar uCmd); // 寫無參數(shù)的指令<
107、/p><p> extern uchar fnPR13(uchar uData); // 寫數(shù)據(jù)</p><p> extern unsigned int Adc0832(unsigned char channel);</p><p> extern void Line( unsigned char x1, unsigned char y1, unsigned c
108、har x2, unsigned char y2, bit Mode);</p><p> extern void Pixel(unsigned char PointX,unsigned char PointY, bit Mode);</p><p> uchar dsp[10]={0,0,0,0,0,0,0,0,0,0,};</p><p> char ab
109、c[3]={0,0,0,};</p><p> uchar key=0;</p><p> uint a=100;</p><p> uchar n=5;</p><p> uchar count=1; </p><p> uint k1=0;</p><p> uchar GeyK
110、ey();</p><p> void delay(uchar i);</p><p> void control();</p><p><b> main()</b></p><p><b> { </b></p><p> fnLCMInit();</p
111、><p> fnSetPos(0,0);</p><p> dprintf(0,0,"直流電機加-減速及測速系統(tǒng)");</p><p> dprintf(0,72,"方向:");</p><p> dprintf(0,84,"轉速:"); </p><p&g
112、t; P1_1=0; //電機停止等待啟動</p><p> TMOD=0x15; //定時器設置,T0、T1設置為觀自在方式一,T0設置為計數(shù)電機沒轉一周產生24個脈沖,T1設置為定時,晶振采用6MHZ。T1=0X3CB0。</p><p><b> TH1=0x3c;</b></p><
113、;p><b> TL1=0xb0;</b></p><p><b> TH0=0x00;</b></p><p><b> TL0=0x00;</b></p><p><b> ET0=1;</b></p><p><b> ET
114、1=1;</b></p><p><b> TR0=1;</b></p><p><b> TR1=1;</b></p><p><b> while(1)</b></p><p> { key=GeyKey();</p><p>
115、 switch(key)</p><p><b> { </b></p><p> case 'k5': { dprintf(0,72,"方向: 順時針");</p><p> control();</p><p><b> break;</
116、b></p><p><b> }</b></p><p> case 'k6': { P1_0=0;</p><p> dprintf(0,72,"方向: 逆時針");</p><p> control();</p><p>&l
117、t;b> break;</b></p><p><b> }</b></p><p> case 'k4': {P1_0=1;dprintf(0,72,"方向: 順時針");break;}</p><p> case 'k3': {P1_0=0;dprintf(0,7
118、2,"方向: 逆時針");break;}</p><p> control();}</p><p> default: break;</p><p><b> }</b></p><p><b> }</b></p><p><b>
119、 }</b></p><p> uchar GeyKey()</p><p><b> {</b></p><p><b> P1_4=1;</b></p><p><b> P1_5=0;</b></p><p><b>
120、 P1_6=1;</b></p><p><b> P1_7=1;</b></p><p> _nop_();_nop_(); // 適當?shù)难訒r以便消除抖動</p><p> if(!P3_3)return 'k1';</p><p><b> P1_4=1;</b
121、></p><p><b> P1_5=1;</b></p><p><b> P1_6=0;</b></p><p><b> P1_7=1;</b></p><p> _nop_();_nop_();</p><p> if(!P3_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設計----運用at89c51單片機控制直流電機
- 單片機課程設計------基于89c51單片機的直流電機控制系統(tǒng)設計
- 基于89c51單片機直流電機控制及其程序
- 畢業(yè)論文----基于at89s52單片機直流電機pwm控制系統(tǒng)
- 畢業(yè)論文:基于單片機的直流電機pwm調速控制系統(tǒng)設計
- 畢業(yè)論文(設計)基于單片機的直流電機控制設計
- 基于at89s52單片機直流電機pwm控制系統(tǒng)畢業(yè)論文
- 畢業(yè)設計----51單片機控制直流電機
- 基于單片機at89c51系統(tǒng)的步進電機控制畢業(yè)論文
- 畢業(yè)論文——用單片機控制直流電機
- 畢業(yè)設計(論文)基于單片機的直流電機控制系統(tǒng)設計
- 畢業(yè)設計(論文)-基于at89c51單片機的步進電機控制系統(tǒng)
- 畢業(yè)設計(論文)-基于at89c51單片機的步進電機控制系統(tǒng)
- 畢業(yè)設計(論文)-基于at89c51單片機的步進電機控制系統(tǒng)
- 畢業(yè)設計(論文)-基于at89c51單片機的步進電機控制系統(tǒng)
- 基于單片機的直流電機測速系統(tǒng) 畢業(yè)論文
- (單片機控制直流電機)畢業(yè)論文_定稿
- 基于c51單片機直流電機測速儀設計畢業(yè)論文
- 基于51單片機的直流電機的pid控制器畢業(yè)論文
- 單片機直流電機調速系統(tǒng)的設計畢業(yè)論文
評論
0/150
提交評論