版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 本科畢業(yè)論文</b></p><p><b> ?。?0 屆)</b></p><p> 基于Proteus的直流電機(jī)控制系統(tǒng)的設(shè)計(jì)</p><p><b> 誠信聲明</b></p><p> 本人鄭重聲明:本論文及其研究工作是本人在指導(dǎo)
2、教師的指導(dǎo)下獨(dú)立完成的,在完成論文時(shí)所利用的一切資料均已在參考文獻(xiàn)中列出。</p><p><b> 本人簽名:</b></p><p> 所在學(xué)院</p><p> 專業(yè)班級機(jī)械電子工程</p><p> 學(xué)生姓名</p><p> 指導(dǎo)教師</p><p> 完成日期
3、</p><p><b> 畢業(yè)設(shè)計(jì)任務(wù)書</b></p><p> 設(shè)計(jì)題目: 基于Proteus的直流電機(jī)控制系統(tǒng)的設(shè)計(jì) </p><p> 1.設(shè)計(jì)的主要任務(wù)及目標(biāo)</p><p> 本設(shè)計(jì)是利用Pr
4、oteus軟件與直流電動機(jī),通過合理的設(shè)備選型、參數(shù)設(shè)置和程序設(shè)計(jì),完成對直流電動機(jī)的正反轉(zhuǎn)控制及直流電機(jī)的調(diào)速控制,實(shí)現(xiàn)控制功能,達(dá)到本次設(shè)計(jì)的目的。首先應(yīng)參閱各類相關(guān)資料,完成電動機(jī)控制回路原理圖,然后進(jìn)行硬件設(shè)計(jì)及程序編制與調(diào)試。</p><p> 2.設(shè)計(jì)的基本要求和內(nèi)容</p><p> ?。?)查閱關(guān)于直流電機(jī)控制的文獻(xiàn)資料,并撰寫開題報(bào)告;</p><p
5、> ?。?)熟悉Proteus的開發(fā)環(huán)境、并完成整體方案的設(shè)計(jì);</p><p> (3)完成直流電機(jī)控制回路的硬件、軟件設(shè)計(jì);</p><p> ?。?)編寫設(shè)計(jì)說明書</p><p><b> 3.主要參考文獻(xiàn)</b></p><p> [1] 代啟化.基于Proteus的電路設(shè)計(jì)與仿真[J]. 現(xiàn)代電子
6、技術(shù),2006,29(19):84-86</p><p> [2] 張俊凡.基于直流電機(jī)變頻調(diào)速系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 學(xué)位授予單位:華中科技大學(xué) 學(xué)位名稱:碩士 學(xué)位年度:2009 </p><p> [3] 劉春華,王向周,南順成,徐冬平.基于PWM控制器的低壓直流電機(jī)控制系統(tǒng)設(shè)計(jì)及其應(yīng)用[C]. 會議名稱:第3屆制造業(yè)自動化與信息化學(xué)術(shù)交流會 日期:2004</p&
7、gt;<p><b> 4.進(jìn)度安排</b></p><p> 基于Proteus的直流電機(jī)控制系統(tǒng)的設(shè)計(jì)</p><p> 摘要:直流電機(jī)作為最常見的一種電機(jī),具有非常優(yōu)秀的線性機(jī)械特性、較寬的調(diào)速范圍、良好的啟動性以及簡單的控制電路等優(yōu)點(diǎn),在社會的各個(gè)領(lǐng)域中都得到了十分廣泛的應(yīng)用。 </p><p> 本文設(shè)計(jì)了以單片
8、機(jī)AT89C51和L298驅(qū)動芯片控制直流電機(jī)脈寬調(diào)制(PWM)調(diào)速系統(tǒng)。主要介紹了直流電機(jī)控制系統(tǒng)的基本方案,闡述了該系統(tǒng)的基本結(jié)構(gòu)、工作原理、運(yùn)行特性及其設(shè)計(jì)方法。本系統(tǒng)采用霍爾元器件測量電動機(jī)的轉(zhuǎn)速,用單片機(jī)軟件實(shí)現(xiàn)PWM調(diào)整電機(jī)轉(zhuǎn)速,給出了程序流程圖、程序。硬件電路實(shí)現(xiàn)了對電機(jī)的預(yù)置初值、正反轉(zhuǎn)、急停、加速、減速的控制,以及轉(zhuǎn)速在四位LED上的顯示。</p><p> 關(guān)鍵詞:單片機(jī)AT89C51, 脈
9、寬調(diào)制,直流電機(jī)</p><p> Design of the control system of dc motor based on Proteus</p><p> Abstract:The direct current machine takes the most common one kind of electrical machinery, has the very outs
10、tanding linear physical characteristics, the wide governor deflection, the good starting as well as merits and so on simple control circuit, therefore obtained the very widespread application in society’s each domain.<
11、;/p><p> This article designs the MCU AT89C51 and L298 drive chip control dc motor pulse width modulation (PWM) control system. Mainly introduces the control system of dc motor, this paper expounds the basic s
12、cheme of the system is the basic structure, working principle,operation characteristics and design method. This system USES hall components measured the speed of the motor used in the simulation software , MCU software r
13、ealization PWM motor speed adjustment, the program flow chart, keilc Proteus pro</p><p> Key words: Single Chip Microcontroller, AT89C51, Pulse Width Modulation, DC Motor</p><p><b> 目
14、錄</b></p><p><b> 1 緒論1</b></p><p><b> 1.1研究背景1</b></p><p><b> 1.2研究意義1</b></p><p> 2 系統(tǒng)硬件設(shè)計(jì)3</p><p> 2.1
15、直流電機(jī)的簡介3</p><p> 2.1.1直流電機(jī)的基本結(jié)構(gòu)3</p><p> 2.1.2直流電機(jī)的工作原理3</p><p> 2.1.3直流電機(jī)調(diào)速原理3</p><p> 2.2系統(tǒng)方案設(shè)計(jì)6</p><p> 2.2.1直流電機(jī)驅(qū)動方案6</p><p>
16、2.2.2 PWM方式的選擇6</p><p> 2.2.3 PWM控制信號的產(chǎn)生方式7</p><p> 2.2.4正反轉(zhuǎn)的設(shè)計(jì)7</p><p> 2.2.5速度調(diào)控的實(shí)現(xiàn)7</p><p><b> 2.3系統(tǒng)原理8</b></p><p> 2.4系統(tǒng)模塊的設(shè)計(jì)9&l
17、t;/p><p> 2.4.1單片機(jī)最小系統(tǒng)設(shè)計(jì)9</p><p> 2.4.2直流電機(jī)驅(qū)動電路設(shè)計(jì)12</p><p> 2.4.3轉(zhuǎn)速測量及顯示模塊設(shè)計(jì)15</p><p> 3 系統(tǒng)軟件設(shè)計(jì)19</p><p><b> 3.1主程序19</b></p><
18、;p> 3.2 PWM控制程序24</p><p> 3.3正反轉(zhuǎn)控制程序25</p><p> 3.4顯示功能的實(shí)現(xiàn)26</p><p> 3.5鍵盤的功能的實(shí)現(xiàn)與設(shè)計(jì)28</p><p><b> 結(jié) 論30</b></p><p><b> 參考文獻(xiàn)
19、31</b></p><p><b> 致 謝32</b></p><p> 附錄1 系統(tǒng)硬件原理圖33</p><p> 附錄2 系統(tǒng)程序34</p><p><b> 1 緒論</b></p><p><b> 1.1研究背景<
20、;/b></p><p> 1964年U.stemmler和A.Schonung首先提出把PWM技術(shù)應(yīng)用到電機(jī)傳動中,從此為電機(jī)傳動的推廣應(yīng)用開辟了新的局面[1]。進(jìn)入80年代以來,由于微電子技術(shù)、電力電子技術(shù)、傳感器技術(shù)、永磁材料技術(shù)、電動控制技術(shù)、微機(jī)應(yīng)用技術(shù)的興起,電動機(jī)有了最新的發(fā)展成果[2]。正是這些技術(shù)的進(jìn)步使電機(jī)控制技術(shù)在近20多年內(nèi)發(fā)生了翻天覆地的變化,逐漸形成以體積小、耗電少、成本低、速
21、度快、功能強(qiáng)、可靠性高的大規(guī)模集成電路微處理器,與電機(jī)相結(jié)合,把電機(jī)控制推上了一個(gè)嶄新的階段。其中電動機(jī)的控制部分已由模擬控制逐漸讓位于以單片機(jī)為主的微處理器控制,形成數(shù)字和模擬的混合控制系統(tǒng)和純數(shù)字控制的應(yīng)用,并向全數(shù)字化控制方向快速發(fā)展[3]。電動機(jī)的驅(qū)動部分所用的功率器件經(jīng)歷了幾次更新?lián)Q代,目前開關(guān)速度更快、控制更容易的全控型功率器件MOSFET和IGBT成為主流。功率器件控制條件的變化和微電子技術(shù)的使用也使新型的電動控制方法能夠
22、得到實(shí)現(xiàn),脈寬調(diào)制控制方法(PWM和SPWM),變頻技術(shù)在直流調(diào)速和交流調(diào)速中獲得廣泛的應(yīng)用[4]。永磁材料技術(shù)的突破與微電子技術(shù)的結(jié)合又產(chǎn)生了一批新型電動機(jī),如永磁直流電動機(jī)、交</p><p><b> 1.2研究意義</b></p><p> 隨著現(xiàn)代科學(xué)技術(shù)的不斷更新發(fā)展,電動機(jī)技術(shù)已經(jīng)頻頻出現(xiàn)在科研,軍事,教育,工業(yè),以及人們的日常生活中。在目前實(shí)際應(yīng)用
23、中,主要出現(xiàn)有步進(jìn)電動機(jī)和直流電動機(jī)兩大類,他們在不同的領(lǐng)域中都起著比較核心的作用[6]。</p><p> 對電動機(jī)的控制可分為簡單控制和復(fù)雜控制兩種,簡單控制是對電動機(jī)進(jìn)行啟動、制動、正反轉(zhuǎn)控制和順序控制;復(fù)雜控制是對電動機(jī)的轉(zhuǎn)速轉(zhuǎn)速、轉(zhuǎn)角、轉(zhuǎn)矩、電壓、電流等物理量進(jìn)行控制。本次設(shè)計(jì)可以作為簡單控制向復(fù)雜控制的過度,實(shí)現(xiàn)直流電機(jī)啟動、制動、正反轉(zhuǎn)控制外,還要進(jìn)行轉(zhuǎn)速控制為以后復(fù)雜控制做為基礎(chǔ)學(xué)習(xí)。 <
24、/p><p> 直流電動機(jī)具有良好的起動、制動性能,宜于在大范圍內(nèi)平滑調(diào)速,在許多需要調(diào)速或快速正反向的電力拖動領(lǐng)域中得到了廣泛的應(yīng)用。從控制的角度來看,直流調(diào)速還是交流拖動系統(tǒng)的基礎(chǔ)。早期直流電動機(jī)的控制均以模擬電路為基礎(chǔ),采用運(yùn)算放大器、非線性集成電路以及少量的數(shù)字電路組成,控制系統(tǒng)的硬件部分非常復(fù)雜,功能單一,而且系統(tǒng)非常不靈活、調(diào)試?yán)щy,阻礙了直流電動機(jī)控制技術(shù)的發(fā)展和應(yīng)用范圍的推廣。隨著單片機(jī)技術(shù)的日新月
25、異,使得許多控制功能及算法可以采用軟件技術(shù)來完成,為直流電動機(jī)的控制提供了更大的靈活性,并使系統(tǒng)能達(dá)到更高的性能。采用單片機(jī)構(gòu)成控制系統(tǒng),可以節(jié)約人力資源和降低系統(tǒng)成本,從而有效的提高工作效率,可以實(shí)現(xiàn)復(fù)雜的控制:控制靈活性和適應(yīng)性好,無零點(diǎn)漂移,控制精密高,可提供人機(jī)界面,多機(jī)聯(lián)網(wǎng)工作。 采用智能功率電路驅(qū)動比傳統(tǒng)的分立功率器件組成的驅(qū)動體積小,功能強(qiáng);減少了電路元器件數(shù)量,提高了系統(tǒng)的可靠性??刂齐娐饭柟β孰娐芳稍谝黄?,使監(jiān)控更
26、容易實(shí)現(xiàn)。集成化使電路的連線減少,減少了布線電容和電感以及信號傳輸?shù)难訒r(shí),增加了系統(tǒng)抗干擾的能力,集成化使系統(tǒng)成本大大降低。</p><p><b> 2 系統(tǒng)硬件設(shè)計(jì)</b></p><p> 2.1 直流電機(jī)的簡介</p><p> 2.1.1直流電機(jī)的基本結(jié)構(gòu)</p><p> 直流電機(jī)由定子和轉(zhuǎn)子兩部分組
27、成。在定子上裝有磁極(電磁式直流電機(jī)磁極由繞在定子上的磁繞提供), 其轉(zhuǎn)子由硅鋼片疊壓而成,轉(zhuǎn)子外圈有槽,槽內(nèi)嵌有電樞繞組,繞組通過換向器和電刷引出,直流電機(jī)的結(jié)構(gòu)如下圖2.1所示:</p><p> 圖2.1 直流電動機(jī)結(jié)構(gòu) 圖2.2 直流電動機(jī)工作原理圖 </p><p> 2.1.2直流電機(jī)的工作原理</p><p>
28、 如圖2.2所示,磁極N、S間裝著一個(gè)可轉(zhuǎn)動的鐵磁圓柱體,直流電機(jī)里邊固定有環(huán)狀永磁體,圓柱體的表面上固定著一個(gè)線圈 abcd,當(dāng)電流通過轉(zhuǎn)子上的線圈時(shí)產(chǎn)生安培力,從而產(chǎn)生旋轉(zhuǎn)。根據(jù)左手定則可知,當(dāng)流過線圈中的電流改變方向時(shí),線圈的受力方向也將改變,因此通過改變線圈電流的方向可實(shí)現(xiàn)改變電機(jī)轉(zhuǎn)動的方向。</p><p> 2.1.3直流電機(jī)調(diào)速原理 </p><p> 根據(jù)勵(lì)磁方式不同
29、,直流電機(jī)分為自勵(lì)和他勵(lì)兩種類型。不同勵(lì)磁方式的直流電機(jī)機(jī)械特性曲線有所不同。但在調(diào)節(jié)電壓時(shí)都可以改變它們的速度 ,由公式2.1</p><p> n=(Ua-IaRa)/Ceφ (2.1)</p><p> 可知調(diào)節(jié)電壓都可以改變速度,本設(shè)計(jì)實(shí)現(xiàn)無級調(diào)速,可通過PWM控制固定電壓的直流電源開關(guān)頻率,從而改變負(fù)載兩端的電壓,進(jìn)而達(dá)到
30、控制要求。</p><p> 直流電機(jī)轉(zhuǎn)速的數(shù)學(xué)模型可用圖2.3表示、由圖可見電機(jī)的電樞電動勢Ea的正方向與電樞電流Ia的方向相反,Ea為反電動勢,電磁轉(zhuǎn)矩T1的正方向與轉(zhuǎn)速n的方向相同,是拖動轉(zhuǎn)矩,軸上的機(jī)械負(fù)載轉(zhuǎn)矩T2及空載轉(zhuǎn)矩T0均與n相反,是制動轉(zhuǎn)矩</p><p> 圖2.3 直流電機(jī)的數(shù)學(xué)模型</p><p> 根據(jù)基爾霍夫定律,得到電樞電壓平衡方
31、程式</p><p> U=Ea-Ia(Ra+Rc) (2.2)</p><p> 上式2.2中,Ra為電樞回路電阻,電樞回路串聯(lián)保繞阻與電刷接觸電阻的總和,Rc是外接在電樞回路中的調(diào)節(jié)電阻</p><p> 由此可得到直流電機(jī)的轉(zhuǎn)速公式為:</p><p> n=(Ua-IaR
32、a)/Ceφ (2.3)</p><p> 上式2.3中,Ce為電動勢常數(shù),φ是磁通量??傻?</p><p> n=Ea/ Ceφ (2.4)</p><p> 由上式2.4可以看出,對于一個(gè)己經(jīng)制造好的電機(jī),當(dāng)勵(lì)磁電壓和負(fù)載轉(zhuǎn)矩恒定時(shí),它的轉(zhuǎn)
33、速由電樞兩端的電壓Ea決定,電樞電壓越高,電機(jī)轉(zhuǎn)速就越快,電樞電壓降低到0時(shí),電機(jī)就停止轉(zhuǎn)動:改變電樞電壓的極性,電機(jī)就反轉(zhuǎn)。</p><p> 對于本課題直流電機(jī)來說,電壓是一個(gè)脈動電壓,如圖2.4,在調(diào)速中通過脈動電壓來控制電動機(jī)的平均電壓,即PWM調(diào)速,在驅(qū)動控制調(diào)速系統(tǒng)中,按一個(gè)固定的頻率來接通和斷開電源,并根據(jù)需要改變一個(gè)周期內(nèi)"接通"和"斷開"時(shí)間的長短。通過
34、改變直流電機(jī)電樞上電壓的"占空比"來改變平均壓的大小,從而控制電動機(jī)的轉(zhuǎn)速。在脈沖作用下,當(dāng)電機(jī)通電時(shí),速度增加,電機(jī)斷電時(shí),速度逐漸減少。只要按一定規(guī)律改變通、斷電的時(shí)間,即可讓電機(jī)轉(zhuǎn)速得到控制。</p><p> 圖2.4 電樞兩端的脈動電壓</p><p> 設(shè)電機(jī)接通電源時(shí)電機(jī)轉(zhuǎn)速最大為Vmax, 設(shè)占空比為a,則電機(jī)的平均速度為:</p>&
35、lt;p> Vd=Vmax*a (2.5)</p><p> 式2.5中Vd---電機(jī)的平均速度,Vmax---電機(jī)全通電時(shí)的速度,a=t1/T---占空比。 由公式2.5可見當(dāng)我們改變占空比a時(shí),就可以得到不同的電機(jī)平均速度Vd 。由2.4可得</p><p> n=Ea/ Ceφ≈Vmax*a/Ceφ=ka
36、 (2.6)</p><p> 假設(shè)電樞內(nèi)阻很小的情況下上式2.6中的k= Vmax/ Ceφ是常數(shù),則施加不同的占空比時(shí),測的占空比與轉(zhuǎn)速的關(guān)系圖如圖2.5</p><p> 圖2.5 占空比與電機(jī)轉(zhuǎn)速關(guān)系</p><p> 由上圖可知平均速度與占空比并不是嚴(yán)格的線性關(guān)系,原因是電樞本身有電阻,但在一般的應(yīng)用直流電機(jī)的內(nèi)阻都很小,
37、故可以將其近似地看成線性關(guān)系。</p><p> 由此可見改變施加在電樞兩端的電壓就可以改變電機(jī)的轉(zhuǎn)速,這就是直流電機(jī)調(diào)速原理。</p><p><b> 2.2系統(tǒng)方案設(shè)計(jì)</b></p><p> 2.2.1直流電機(jī)驅(qū)動方案</p><p> 方案一:采用電阻網(wǎng)絡(luò)或數(shù)字電位器調(diào)整電動機(jī)的分壓,從而達(dá)到調(diào)速的目
38、的。但是電阻網(wǎng)絡(luò)只能實(shí)現(xiàn)有級調(diào)速,而數(shù)字電阻的元器件價(jià)格比較昂貴。更主要的問題在于一般電動機(jī)的電阻很小,但電流很大,分壓不僅會降低效率,而且實(shí)現(xiàn)很困難。 </p><p> 方案二:采用繼電器對電動機(jī)的開或關(guān)進(jìn)行控制,通過開關(guān)的切換對電機(jī)的速度進(jìn)行調(diào)整。這個(gè)方案的優(yōu)點(diǎn)是電路較為簡單,缺點(diǎn)是繼電器的響應(yīng)時(shí)間慢、機(jī)械結(jié)構(gòu)易損壞、壽命較短、可靠性不高。 </p><p> 方案三:采用由L2
39、98的H型PWM電路。用單片機(jī)控制L298驅(qū)動芯片使之工作在占空比可調(diào)的開關(guān)狀態(tài),精確調(diào)整電動機(jī)轉(zhuǎn)速。這種電路效率非常高,H型電路保證了可以簡單地實(shí)現(xiàn)轉(zhuǎn)速和方向的控制。電子開關(guān)的速度很快,穩(wěn)定性也極佳,是一種廣泛采用的PWM調(diào)速技術(shù)。 </p><p> 綜合上述三種方案,方案三調(diào)速特性優(yōu)良、調(diào)整平滑、調(diào)速范圍廣、過載能力大,因此在本次設(shè)計(jì)中采用方案三,由電動機(jī)的驅(qū)動芯片為L298來驅(qū)動電機(jī)轉(zhuǎn)動。</p&
40、gt;<p> 2.2.2 PWM方式的選擇</p><p> 在PWM調(diào)速時(shí),占空比a是一個(gè)重要的參數(shù),如下圖2.6所示,以下3種方法都可以改變占空比的值。</p><p> 方案一:定寬調(diào)頻法,這種是保持t1不變只改變t,這樣使得周期T也隨之改變。</p><p> 方案二:調(diào)寬調(diào)頻法,這種是保持t不變而改變t1,這樣使得周期T或頻率也隨之
41、改變。</p><p> 方案三:定頻調(diào)寬法,這種是周期T不變而改變t1 和 t ,前兩種方法由于在調(diào)速時(shí)改變了控制脈沖的周期或頻率,當(dāng)控制脈沖的頻率與系統(tǒng)的固有頻率接近時(shí)將會引起震蕩,因此前2種方法用得很少。目前在直流電機(jī)的控制中主要用定頻調(diào)寬法。</p><p> 圖 2.6 占空比a=t1/T</p><p> 2.2.3 PWM控制信號的產(chǎn)生方式&l
42、t;/p><p> 方案一:分立電子元件組成的PWM信號發(fā)生器</p><p> 這種方法是用分立的邏輯電子元件組成PWM信號發(fā)生器,其為早期的方法,現(xiàn)在逐漸被淘汰。</p><p><b> 方案二:軟件模擬法</b></p><p> 利用單片機(jī)的一個(gè)I/O口的引腳,通過軟件對這個(gè)引腳不斷地輸出高低電平來實(shí)現(xiàn)PW
43、M波的輸出,采用定時(shí)器做為脈寬控制的定時(shí)方式,這一方式產(chǎn)生的脈沖寬度極其精確,誤差只在幾個(gè)us。本設(shè)計(jì)采用方案二。</p><p> 2.2.4正反轉(zhuǎn)的設(shè)計(jì)</p><p> 單片機(jī)通過L298中的H橋從AT89C51中的P3.0、 P3.1輸出控制信號與L298的IN1、IN2相連,通過控制P3.0、 P3.1的端口的高低電平,從而達(dá)到控制電機(jī)轉(zhuǎn)向的目的。</p>&l
44、t;p> 2.2.5速度調(diào)控的實(shí)現(xiàn)</p><p> 單片機(jī)通過控制L298的使能端“允許”或“禁止”,通過改變a(脈沖寬度)的值,從而達(dá)到控制PWM脈沖寬度調(diào)節(jié)電機(jī)轉(zhuǎn)速的目的,這里利用定時(shí)計(jì)數(shù)器讓單片機(jī)的P3口的P3.0引腳輸出不同的方波,然后經(jīng)驅(qū)動芯片L298放大后控制直流電機(jī)。驅(qū)動電機(jī)的輸入電壓是兩腳的電壓差,在調(diào)速時(shí)一根引腳線為低電平,另一個(gè)引腳產(chǎn)生調(diào)速方波, 這樣兩個(gè)引腳的電壓差就可通過控制其
45、中一個(gè)引腳來控制。定時(shí)計(jì)數(shù)器若干時(shí)間 比如(0.1ms)中斷一次,就使P3.0或P3.1 產(chǎn)生一個(gè)高電平或低電平。直流電機(jī)的速度分為100個(gè)等級 ,因此一個(gè)周期就有100個(gè)脈沖,速度等級對應(yīng)一個(gè)周期的高電平的個(gè)數(shù)。占空比為高電平脈沖個(gè)數(shù)占一個(gè)周期總脈沖個(gè)數(shù)的百分?jǐn)?shù)。一個(gè)周期加在電機(jī)兩端的電壓為脈沖高電壓乘以占空比 。占空比越大,加在電機(jī)兩端的電壓越大,電機(jī)轉(zhuǎn)動越快。電機(jī)的平均速度等于在一定的占空比下電機(jī)的最大速度乘以占空比 。當(dāng)我們改變
46、占空比時(shí),就可以得到不同的電機(jī)平均速度,從而達(dá)到調(diào)速的目的。</p><p><b> 2.3系統(tǒng)原理</b></p><p> 本文主要介紹利用單片機(jī)對PWM信號的軟件實(shí)現(xiàn)辦法。采用單片機(jī)構(gòu)成的直流電動機(jī)數(shù)字PWM調(diào)速系統(tǒng),其控制核心主要由顯示模塊、鍵盤、驅(qū)動模塊、測速模塊、直流電機(jī)組成。系統(tǒng)采用L298芯片作為PWM驅(qū)動直流電動機(jī)的供電主回路,單片機(jī)通過軟件延
47、時(shí)處理輸出PWM信號,實(shí)現(xiàn)了直流電動機(jī)的轉(zhuǎn)速控制,在運(yùn)行中獲得了良好的動靜態(tài)性能。</p><p> (1)鍵盤識別:通過P1口的底電平輸入,識別不同的按鍵</p><p> (2)通過對單片機(jī)的程序輸入來實(shí)現(xiàn)對直流電動機(jī)的啟動、停止、正反轉(zhuǎn)、加速、減速的控制。</p><p> ?。?)由于單片機(jī)的驅(qū)動能力不強(qiáng),驅(qū)動直流電機(jī)需要很強(qiáng)的電流,所以必須有外圍的驅(qū)動
48、電路,因此本設(shè)計(jì)采用L298芯片放大單片機(jī)的微弱電流來驅(qū)動直流電動機(jī)轉(zhuǎn)動。系統(tǒng)框圖如下:</p><p> 圖2.7系統(tǒng)硬件框圖</p><p> 故本次設(shè)計(jì)由3大模塊來實(shí)現(xiàn)基本功能:</p><p> (1)單片機(jī)系統(tǒng),單片機(jī)采用PWM控制原理控制直流電動機(jī),設(shè)計(jì)復(fù)位電路和晶振電路。</p><p> ?。?)外圍電路,實(shí)現(xiàn)單片機(jī)和電
49、動機(jī)驅(qū)動電路的電路接口,直流電動機(jī)機(jī)動電路和直流電動機(jī)的接口電路,以及按鍵顯示接口電路</p><p> ?。?)系統(tǒng)軟件編寫基于PWM控制程序,實(shí)現(xiàn)對直流電機(jī)的控制功能。</p><p> 2.4系統(tǒng)模塊的設(shè)計(jì)</p><p> 2.4.1單片機(jī)最小系統(tǒng)設(shè)計(jì)</p><p> 單片機(jī)最小系統(tǒng):所謂單片機(jī)最小系統(tǒng)就是指由單片機(jī)和一些基本
50、的外圍電路所組成的一個(gè)可以是單片機(jī)工作的系統(tǒng),一般來說,它包括單片機(jī),晶振電路和復(fù)位電路。如下圖2.8所示:</p><p><b> (1)單片機(jī)</b></p><p> 單片機(jī)是整個(gè)測量系統(tǒng)的主要部分,擔(dān)負(fù)對前端脈沖信號的處理、計(jì)算、以及信號的同步,計(jì)時(shí)等任務(wù);其次將測量的數(shù)據(jù)經(jīng)計(jì)算后,將得到的轉(zhuǎn)速值傳送到顯示接口中,用數(shù)碼管顯示數(shù)值。在本系統(tǒng)中考慮到計(jì)數(shù)的
51、范圍、使用的定時(shí)/計(jì)數(shù)器的個(gè)數(shù)及I/O口線,選用AT89C51單片機(jī)。</p><p> AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲的低電壓,高性能CMOS 8位微處理器。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能
52、8位CPU和閃爍存儲器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及引腳排列如圖2.9所示</p><p><b> 管腳說明:</b></p><p><b> VCC:供電電壓。</b></p>
53、<p><b> GND:接地。</b></p><p> P0口:P0口為一個(gè)8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的低八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須接上拉電阻。</p>
54、<p> P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為低八位地址接收。 <
55、;/p><p> 圖 2.9 AT89C51單片機(jī)引腳序列</p><p> P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時(shí),P2口輸出地址的高
56、八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號和控制信號。</p><p> P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故
57、。</p><p> P3口也可作為AT89C51的一些特殊功能口,如下所示:</p><p> P3.0 RXD(串行輸入口)</p><p> P3.1 TXD(串行輸出口)</p><p> P3.2 /INT0(外部中斷0)</p><p> P3.3 /INT1(外部中斷1)</p>
58、<p> P3.4 T0(計(jì)時(shí)器0外部輸入)</p><p> P3.5 T1(計(jì)時(shí)器1外部輸入)</p><p> P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)</p><p> P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)</p><p> P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號。</p><p&g
59、t; RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p><b> (2)復(fù)位電路:</b></p><p> 復(fù)位電路,就是利用它把電路恢復(fù)到起始狀態(tài)。就像計(jì)算器的清零按鈕的作用一樣,以便回到原始狀態(tài),重新進(jìn)行計(jì)算。和計(jì)算器清零按鈕有所不同的是,復(fù)位電路啟動的手段有所不同。一是在給電路通電時(shí)馬上進(jìn)行復(fù)位操作;二是在必
60、要時(shí)可以由手動操作。 </p><p> 復(fù)位電路的作用在上電或復(fù)位過程中,控制CPU的復(fù)位狀態(tài):這段時(shí)間內(nèi)讓CPU保持復(fù)位狀態(tài),而不是一上電或剛復(fù)位完畢就工作,防止CPU發(fā)出錯(cuò)誤的指令、執(zhí)行錯(cuò)誤操作,也可以提高電磁兼容性能。 </p><p> 單片機(jī)在啟動時(shí)都需要復(fù)位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。89系列單片機(jī)的復(fù)位信號是從RST引腳輸入到
61、芯片內(nèi)的施密特觸發(fā)器中的。當(dāng)系統(tǒng)處于正常工作狀態(tài)時(shí),且振蕩器穩(wěn)定后,如果RST引腳上有一個(gè)高電平并維持2個(gè)機(jī)器周期(24個(gè)振蕩周期)以上,則CPU就可以響應(yīng)并將系統(tǒng)復(fù)位。單片機(jī)系統(tǒng)的復(fù)位方式有:手動按鈕復(fù)位和上電復(fù)位 </p><p><b> ?、偈謩影粹o復(fù)位 </b></p><p> 手動按鈕復(fù)位需要人為在復(fù)位輸入端RST上加入
62、高電平如圖2.10所示。一般采用的辦法是在RST端和正電源Vcc之間接一個(gè)按鈕。當(dāng)人為按下按鈕時(shí),則Vcc的+5V電平就會直接加到RST端。手動按鈕復(fù)位的電路如所示。由于人的動作再快也會使按鈕保持接通達(dá)數(shù)十毫秒,所以完全能夠滿足復(fù)位的時(shí)間要求。</p><p><b> ?、谏想姀?fù)位 </b></p><p> AT89C51的上電復(fù)位電路如圖2.11所示
63、,只要在RST復(fù)位輸入引腳上接一電容至Vcc端,下接一個(gè)電阻到地即可。上電壓從無到有在RESET處會先處于高電平一段時(shí)間,然后由于該點(diǎn)通過電阻接地則RESET該點(diǎn)的電平會逐漸的改變?yōu)榈碗娖剑瑥亩沟脝纹瑱C(jī)復(fù)位口電平從1到0,達(dá)到給單片機(jī)復(fù)位的功能。</p><p> 圖2.10 上電復(fù)位電路 圖2.11 上電/外部復(fù)位電路</p><p> 由于本系統(tǒng)的設(shè)計(jì)不需
64、要太復(fù)雜,直接采用手動復(fù)位即可。</p><p><b> (3)時(shí)鐘電路</b></p><p> 晶體振蕩電路的簡稱,AT89C51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器。引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。晶體振蕩電路如圖所示,晶振有一個(gè)重要參數(shù),那就是負(fù)載電容值,選擇與負(fù)載電容值相等的并聯(lián)電容,就可以得到晶振標(biāo)稱的諧振頻率。
65、如下圖2.12所示:</p><p> 圖2.12 晶振電路</p><p> 2.4.2直流電機(jī)驅(qū)動電路設(shè)計(jì)</p><p> 根據(jù)電動機(jī)的驅(qū)動可分為方向可逆和方向不可逆兩種,本次設(shè)計(jì)由設(shè)計(jì)規(guī)則選擇方向可逆的電路驅(qū)動。由于單片機(jī)的輸出電壓和電流都很小,在許多的應(yīng)用場合單片機(jī)都不能驅(qū)動電機(jī),因此必須采用一些驅(qū)動芯片或構(gòu)件驅(qū)動電路以驅(qū)動控制對象。由于電路的要求,
66、本系統(tǒng)采用L298來驅(qū)動直流電機(jī)的轉(zhuǎn)動。</p><p> L298是ST公司生產(chǎn)的一種高電壓、大電流電機(jī)驅(qū)動芯片。該芯片的主要特點(diǎn)是:工作電壓高,最高工作電壓可達(dá)46V;輸出電流大,瞬間峰值電流可達(dá)3A,持續(xù)工作電流為2A;它是由達(dá)林頓管組成的雙橋高電壓大電流集成PWM電路,可以用來驅(qū)動直流電動機(jī)和步進(jìn)電動機(jī)、繼電器、線圈等感性負(fù)載,PWM電路由四個(gè)大功率晶體管組成的H橋電路構(gòu)成,四個(gè)晶體管分為組,交替導(dǎo)通和
67、截止 ,用單片機(jī)控制達(dá)林頓管使之工作在開關(guān)狀態(tài),根據(jù)調(diào)整輸入脈沖的占空比,精確調(diào)整電動機(jī)轉(zhuǎn)速。這種電路由于管子工作只在飽合和截止?fàn)顟B(tài)下,效率非常高。H型電路使實(shí)現(xiàn)轉(zhuǎn)速和方向的控制簡單化 ,且電子開關(guān)的速度很快,穩(wěn)定性也極強(qiáng),是一種廣泛采用的PWM調(diào)速技術(shù)。L298內(nèi)部的每個(gè)H 橋的下側(cè)橋臂晶體管發(fā)射極連在一起,其輸出腳(SENSA和SENSB) 用來連接電阻檢測電流。單片機(jī)通過控制L298的使能端“允許“或者“禁止”,通過改變a(脈沖寬
68、度)的值,從而達(dá)到控制PWM脈沖寬度調(diào)節(jié)電機(jī)轉(zhuǎn)速的目的,即通過軟件延時(shí)程序延時(shí)得到PWM信號與ENA相連,來調(diào)節(jié)電機(jī)的加速減速。L298芯片的引腳功能見下表2.1</p><p> 表2.1 L298引腳功能</p><p> 在本次設(shè)計(jì)中采用L298驅(qū)動電機(jī)與其連接的電氣原理圖如2.13所示,參數(shù)如表2.2所示:</p><p> 圖2.13 L298的驅(qū)動
69、連接電路</p><p> 表2.2 L298的工作參數(shù)</p><p> 2.4.3轉(zhuǎn)速測量及顯示模塊設(shè)計(jì)</p><p><b> (1)轉(zhuǎn)速測量</b></p><p> 由于本設(shè)計(jì)需要測量電動機(jī)的轉(zhuǎn)速,因此需要一個(gè)測量工具,以下是對測量元器件的原理及測量方法的介紹:</p><p>
70、;<b> ?、俎D(zhuǎn)速測量原理</b></p><p> 轉(zhuǎn)速是工程上一個(gè)常用的參數(shù),旋轉(zhuǎn)體的轉(zhuǎn)速常以每分鐘的轉(zhuǎn)數(shù)來表示。其單位為r/min。轉(zhuǎn)速的測量方法很多,由于轉(zhuǎn)速是以單位時(shí)間內(nèi)的轉(zhuǎn)數(shù)來衡量的,因此采用霍爾元器件測量轉(zhuǎn)速是較為常用的一種測量方法。</p><p> 霍爾元器件是由導(dǎo)體材料制成的一種薄片,器件的長、寬、高分別是l、b、d。若在垂直于薄片平面(沿厚
71、度d)方向施加外加磁場B,在沿l方向的兩個(gè)端面加以外電場,則有一定的電流經(jīng)過。由于電子在磁場中運(yùn)動,所以將受到一個(gè)洛倫磁力,其大小為:fl=qVB。式中:fl---洛倫磁力,q---載流子電荷,V---載流子運(yùn)動速度,B---磁感應(yīng)強(qiáng)度。</p><p> 這樣使電子的運(yùn)動軌跡發(fā)生偏移,在霍爾元器件薄片的兩個(gè)側(cè)面分別產(chǎn)生電子積聚或電荷過剩,形成霍爾電場,霍爾元器件兩個(gè)側(cè)面間電位差UH稱為霍爾電壓?;魻栯妷捍笮?/p>
72、: </p><p> UH=RH×I×B/d(mV) (2.7)</p><p> 式2.7中:RH---霍爾常數(shù),d----元件厚度,B---磁感應(yīng)強(qiáng)度,I---控制電流。設(shè)KH=RH/d,則UH=KH×I×B(mV),KH為霍爾元器件的靈敏系數(shù)(mV/mA/T),它表示該霍爾元器件在單位磁感
73、應(yīng)強(qiáng)度和單位控制點(diǎn)留下輸出霍爾電動勢的大小。應(yīng)注意,當(dāng)電磁感應(yīng)強(qiáng)度B反向時(shí),霍爾電動勢也反向。若控制電流保持不變,則霍爾感應(yīng)電壓將隨外界磁場強(qiáng)度而變化,根據(jù)這一原理,可以將一塊永久磁鋼固定在電動機(jī)的轉(zhuǎn)軸上轉(zhuǎn)盤的邊沿,轉(zhuǎn)盤隨被測軸旋轉(zhuǎn),磁鋼也將跟著同步旋轉(zhuǎn),在轉(zhuǎn)盤附近安裝一個(gè)霍爾元件,轉(zhuǎn)盤隨軸旋轉(zhuǎn)時(shí),霍爾元件收到磁鋼所產(chǎn)生的磁場影響,故輸出脈沖信號,其頻率和轉(zhuǎn)速成正比,測出脈沖的周期或頻率即可計(jì)算出轉(zhuǎn)速。本系統(tǒng)在進(jìn)行軟件仿真時(shí)采用moto
74、rencoder電機(jī)代替霍爾元件,該電機(jī)每轉(zhuǎn)動一圈產(chǎn)生一個(gè)脈沖,通過對產(chǎn)生的脈沖值計(jì)數(shù)可以測出電機(jī)轉(zhuǎn)動的速度。</p><p><b> ②轉(zhuǎn)速測量方法</b></p><p> 轉(zhuǎn)速是工程中應(yīng)用非常廣泛的一個(gè)參數(shù),早期模擬量的模擬處理一直是作為轉(zhuǎn)速測量的主要方法。這種測量方法在測量范圍和測量精度上,已不能適應(yīng)現(xiàn)代科技發(fā)展的要求。而隨著大規(guī)模及超大規(guī)模集成電路技術(shù)
75、的發(fā)展,數(shù)字測量系統(tǒng)得到普遍應(yīng)用。利用單片機(jī)對脈沖數(shù)字信號的強(qiáng)大處理能力,應(yīng)用全數(shù)字化的結(jié)構(gòu),使數(shù)字測量系統(tǒng)的越來越普及。在測量范圍和測量精度方面都有極大的提高。</p><p> 一般轉(zhuǎn)速測量系統(tǒng)有以下幾個(gè)部分構(gòu)成,轉(zhuǎn)速測量框圖如下圖2.14所示:</p><p> 圖2.14 轉(zhuǎn)速測量框圖</p><p> 單片機(jī)通過P3.4 口接受電機(jī)發(fā)出的脈沖信號,在
76、仿真里是采用protues里的motor-encoder電機(jī),用這個(gè)可以簡單的測得電機(jī)的轉(zhuǎn)速,主要原理是編碼器可以根據(jù)電機(jī)轉(zhuǎn)一圈輸出脈沖數(shù)、根據(jù)統(tǒng)計(jì)的脈沖量得到電機(jī)的轉(zhuǎn)數(shù),左右兩邊是檢測左轉(zhuǎn)還是右轉(zhuǎn)。哪邊先高電平,就是往哪邊轉(zhuǎn)。在本次設(shè)計(jì)中采用檢測每轉(zhuǎn)動一周高電平一次來簡單的計(jì)算電機(jī)的轉(zhuǎn)速。單片機(jī)T1采用模式一定時(shí)中斷模式,TO采用模式一計(jì)數(shù)中斷定計(jì)數(shù)模式,由高8位THO和低8位TLO兩個(gè)8位寄存器組成,當(dāng)設(shè)定計(jì)算值為65536-500
77、00=15536( D)時(shí),轉(zhuǎn)換為十六進(jìn)制就是3CB0(H)此時(shí)THO=3C, TLO=BO,定時(shí)器Tl計(jì)數(shù)50ms。此時(shí)電機(jī)每轉(zhuǎn)動一周,P3.4高電平一次,存儲電機(jī)轉(zhuǎn)動的轉(zhuǎn)數(shù),同時(shí)來集2.5s之后將電機(jī)的轉(zhuǎn)數(shù)進(jìn)行LED顯示。</p><p><b> (2)速度的顯示</b></p><p> 在本設(shè)計(jì)中需要顯示電機(jī)轉(zhuǎn)動的速度,因此需要選擇一個(gè)合適的顯示器,一般
78、在生活中用LED與LCD這兩種顯示器,由于LED顯示器與LCD顯示器相比,LED在亮度、功耗、可視角度和刷新速率等方面,都更具優(yōu)勢。LED與LCD的功耗比大約為10:1,而且更高的刷新速率使得LED在視頻方面有更好的性能表現(xiàn),能提供寬達(dá)160°的視角,可以顯示各種文字、數(shù)字、彩色圖像及動畫信息,也可以播放電視、錄像、VCD、DVD等彩色視頻信號,多幅顯示屏還可以進(jìn)行聯(lián)網(wǎng)播出。有機(jī)LED顯示屏的單個(gè)元素反應(yīng)速度是LCD液晶屏的1
79、000倍,在強(qiáng)光下也可以照看不誤,并且適應(yīng)零下40度的低溫。利用LED技術(shù),可以制造出比LCD更薄、更亮、更清晰的顯示器,擁有廣泛的應(yīng)用前景。</p><p> 由于LED數(shù)碼管具有亮度高、可靠性好等特點(diǎn),工業(yè)測控系統(tǒng)中常用LED數(shù)碼管作為顯示輸出。本系統(tǒng)也采用數(shù)碼管作顯示。用四位共陰LED數(shù)碼管實(shí)時(shí)顯示單片機(jī)的轉(zhuǎn)速,以單片機(jī)AT89C51的P0口做八位數(shù)據(jù)線,要求外接上拉電阻。以 P2.0-P2.3做數(shù)碼管的
80、控制端。運(yùn)行方式的設(shè)置由P1口外接按鍵來完成。判斷按鍵是否按下的方法是:首先置P1口為高電平;然后從P1.0開始到P1.4為止,逐個(gè)檢測引腳的電平,如果某引腳為低電平表示該鍵按下,此時(shí)需做相應(yīng)的處理實(shí)現(xiàn)按鍵功能,如果引腳為高電平則不做處理。</p><p> 它與單片機(jī)連接及它的引腳圖如下圖2.15所示: </p><p> 圖 2.15 數(shù)碼管引腳連接電路</p>
81、<p><b> 3 系統(tǒng)軟件設(shè)計(jì)</b></p><p><b> 3.1主程序</b></p><p> 根據(jù)硬件電路設(shè)計(jì),進(jìn)行程序設(shè)計(jì),在程序設(shè)計(jì)之前,首先要確定定時(shí)器的工作方式,確定串行口的工作模式等,下面分別討論。</p><p> ?。?)定時(shí)/計(jì)數(shù)器T0 </p><p&
82、gt; 本系統(tǒng)設(shè)計(jì)中,T0被用于計(jì)數(shù),我們當(dāng)然希望計(jì)數(shù)量越大越好,這樣可以獲得較大的測量范圍,因此,T0選定為工作方式1(16位的計(jì)數(shù)方式),設(shè)計(jì)中,沒有使用外部控制端,僅用指令置位/清零TR0來進(jìn)行計(jì)數(shù)的啟動/停止,這樣電路較為簡單,但精度會受到一定的影響,但在本設(shè)計(jì)中,認(rèn)為采用這種方式,精度可達(dá)到要求,因此,T0采用自由計(jì)數(shù)的方式,不用預(yù)置初值。 </p><p> (2)定時(shí)/計(jì)數(shù)器T1 </p&
83、gt;<p> 定時(shí)器T1每10ms中斷一次,用以進(jìn)行數(shù)碼管顯示和每一秒讀取一次計(jì)數(shù)器T0中的數(shù)值。這里選用T1的工作狀態(tài)為1。要使T1設(shè)定正確的定時(shí)時(shí)間,首先要計(jì)算其初值,定時(shí)時(shí)間為: </p><p> t=(-T1的初值)×晶振周期×12</p><p> 定時(shí)時(shí)間10ms: </p><p> 10ms=(-T1的初
84、值)×1/12*×12</p><p> 則: T1的初值=-</p><p> 因此, TH1=D8, TH1=F0 </p><p> 確定了定時(shí)/計(jì)數(shù)器T1的定時(shí)時(shí)間以后,就要計(jì)算定時(shí)初值,本系統(tǒng)用了12M的晶振,恰好是一個(gè)機(jī)器周期為1μs,因此,1ms定時(shí)時(shí)間意味著只要計(jì)數(shù)1000次即可,由于定時(shí)/計(jì)數(shù)器
85、T1是向上計(jì)數(shù),因此,要化為16進(jìn)制,并分別送入T1的高8位和低8位。這里,采用的keil匯編軟件有較強(qiáng)的預(yù)處理功能,能夠處理較復(fù)雜的運(yùn)算,因此,計(jì)數(shù)程序中可寫為:PlusCounter = TH0*256 + TL0。</p><p> 這里用PlusCounter作為轉(zhuǎn)化為10進(jìn)制數(shù)值的數(shù)值存儲器,TH0和TL0分別是二進(jìn)制計(jì)數(shù)值的高8位和低8位。</p><p> 由于AT89C
86、51單片機(jī)在中斷時(shí),會附加延時(shí)3-8個(gè)周期,在滿足一定條件的情形下,驗(yàn)證這個(gè)數(shù)值是否正確,可以在進(jìn)入仿真調(diào)試時(shí)通過觀察Keil提供的有關(guān)變量看到,如果不正確,可以根據(jù)實(shí)際情況略作調(diào)整,保證定時(shí)時(shí)間盡量準(zhǔn)確。 </p><p> ?。?)定時(shí)/計(jì)數(shù)器的方式控制字 </p><p> 定時(shí)/計(jì)數(shù)器的方式控制字TMOD,其地址為89H,復(fù)位值00H,不可位尋址。其8位控制。如圖3.4工作模式寄
87、存器TMOD的位定義所示。</p><p> 圖3.4 工作模式寄存器TMOD的定位義圖</p><p><b> 說明: </b></p><p> GATE:門控位。由GATE、軟件控制位TR0/1和INT0/1共同決定定時(shí)/計(jì)數(shù)器0/1的打開或關(guān)閉。當(dāng)GATE=0,只要用指令置TR0/1=1即可啟動定時(shí)/計(jì)數(shù)器0/1工作。GAT
88、E=1,只有INT0/1引腳為高電平且用指令置TR0/1=1時(shí),才能啟</p><p> 動定時(shí)/計(jì)數(shù)器0/1的工作。 </p><p> C/T:定時(shí)器/計(jì)數(shù)器選擇位。C/T=1,工作于計(jì)數(shù)器方式: C/T=0工作于定時(shí)器方式。 </p><p> M1M0:定時(shí)/計(jì)數(shù)工作模式選擇位。M1M0=00,13位計(jì)數(shù);M1M0=01,16位計(jì)數(shù);M1M0=10,自
89、動再裝入8位計(jì)數(shù);M1M0=11,工作于模式3狀態(tài)。 </p><p> 根據(jù)前面的描述,可以確定TMOD的控制字應(yīng)為00010101B。 </p><p><b> 程序如下: </b></p><p> void init_timer0() // T0、T1分別定義 </p><p><b&
90、gt; { </b></p><p> TMOD= 0xF1; </p><p><b> } </b></p><p> void init_timer1() </p><p><b> { </b></p><p> TMOD = 0x50; &l
91、t;/p><p><b> } </b></p><p> 將控制字分別送入TMOD。 </p><p> ?。?)定時(shí)/計(jì)數(shù)控制寄存器TCON </p><p> TCON地址88H,可進(jìn)行位尋址,復(fù)位值00H。如圖3.5控制寄存器TCON的位定義圖所示。 </p><p> 圖3.5 控制
92、寄存器TCON的位定義圖</p><p> TF0、TF1分別為定時(shí)器T0和計(jì)數(shù)器T1的溢出標(biāo)志位,TR0和TR1在正常情況下,都沒有溢出標(biāo)志,只有當(dāng)計(jì)數(shù)值或定時(shí)值超過65536時(shí),才能有溢出中斷請求,這兩位是由硬件置位和硬件清零,不需另行設(shè)置??稍赥0和T1的溢出中斷服務(wù)程序中,以供使用。 </p><p> TR1、TR0分別用于開啟T1和T0的開關(guān)位,其中TR1由系統(tǒng)開啟時(shí),直接
93、置位,打開T1,開始定時(shí),經(jīng)運(yùn)行判斷后,打開TR0。 </p><p> ?。?)變量分配及程序的初始化 </p><p> 在程序開始之前,首先進(jìn)行變量的分配,程序的初始化,根據(jù)硬件電路的要求,將各硬件電路置于其規(guī)定的狀態(tài);根據(jù)需要,對定時(shí)器、計(jì)數(shù)器、串行口等設(shè)置工作狀態(tài),預(yù)置初值等。以下是程序定義變量及進(jìn)行初始化的程序行:</p><p> uint Tco
94、unter = 0; //時(shí)間計(jì)數(shù)器 </p><p> bit Flag_Fresh = 0; //刷新標(biāo)志 </p><p> bit Flag_clac = 0; //計(jì)算轉(zhuǎn)速標(biāo)志 </p><p> bit Flag_Err = 0; //超量程標(biāo)志 </p><p> Disbuf[0] = 0;
95、 //開機(jī)時(shí),初始化為0000 </p><p> Disbuf[1] = 0; </p><p> Disbuf[2] = 0; </p><p> Disbuf[3] = 0; </p><p> init_timer0(); //T0、T1分別初始化 </p><p> init_timer
96、1(); </p><p> 本系統(tǒng)的主程序參考圖如圖3.1所示,在完成初始化工作以后,即循環(huán)等待,每1s時(shí)間到之后,T1中斷程序?qū)x取T0中的計(jì)數(shù)值,并將其放入約定的存儲單元中,并且判斷是否有鍵按下,當(dāng)P1.0被按下時(shí),主程序即轉(zhuǎn)入計(jì)算,第一步判斷是否有鍵按下,第二步將16進(jìn)制數(shù)的結(jié)果轉(zhuǎn)化為BCD碼,第三步,將BCD碼轉(zhuǎn)化并送入顯示緩沖區(qū)。當(dāng)轉(zhuǎn)速小于預(yù)設(shè)值時(shí),通過改變P3.0端口輸出脈沖的占空比來增加轉(zhuǎn)速。
97、</p><p> 圖3.1 系統(tǒng)總流程圖</p><p> 3.2 PWM控制程序</p><p> 本系統(tǒng)的PWM控制參考圖如圖3.2所示,在完成初始化工作以后,單片機(jī)通電啟動,根據(jù)程序輸入來控制占空比的大小,繼而控制轉(zhuǎn)速,達(dá)到所需目的。</p><p> 圖3.2 PWM控制程序流程圖</p><p>
98、 3.3正反轉(zhuǎn)控制程序</p><p> 本系統(tǒng)的正反轉(zhuǎn)控制參考圖如圖3.3所示,在完成初始化工作以后,單片機(jī)通電啟動,根據(jù)按鍵是否按下來控制正反轉(zhuǎn),當(dāng)P1.2為高電平,正轉(zhuǎn),當(dāng)接地變?yōu)榈碗娖?,則反轉(zhuǎn)。</p><p> 圖3.3 正反轉(zhuǎn)流程圖</p><p> 3.4顯示功能的實(shí)現(xiàn) </p><p> 定時(shí)計(jì)數(shù)器T1每10ms中
99、斷一次,用以進(jìn)行數(shù)碼管顯示和每1秒讀取一次計(jì)數(shù)器T0中的數(shù)值。 </p><p> ?。?)秒信號的產(chǎn)生 </p><p><b> 中斷產(chǎn)生后:</b></p><p> #define TIME_CYLC 100 </p><p> Tcounter++; </p><p> if(
100、Tcounter>TIME_CYLC) </p><p><b> { </b></p><p> Flag_clac = 1; </p><p><b> } </b></p><p> 判斷Tcounetr是否到達(dá)100了,如果到達(dá)100,則說明1秒時(shí)間已到,程序?qū)㈥P(guān)閉T0計(jì)數(shù)器
101、,然后對T0中已計(jì)得的數(shù)據(jù)進(jìn)行處理,然后再去進(jìn)行顯示,否則直接轉(zhuǎn)去顯示。這部份的程序流程圖如圖秒信號子程序流程圖3.6所示。 </p><p> 圖3.6 秒信號子程序流程圖</p><p> (2)數(shù)碼管的顯示 </p><p> 數(shù)碼管顯示采用動態(tài)方式,即通過延遲程序使數(shù)碼管分時(shí)點(diǎn)亮,依次循環(huán)。由于數(shù)碼管共有4位,延遲5ms,因此,每20ms即可輪流點(diǎn)亮
102、每個(gè)數(shù)碼管一次,利用人的視覺暫留現(xiàn)象,可以穩(wěn)定地顯示各位數(shù)碼管的值。 </p><p> 在程序中利用了一個(gè)延時(shí)函數(shù),在函數(shù)中由計(jì)數(shù)器自加來實(shí)現(xiàn)延時(shí)的(自加速度由晶振頻率決定),當(dāng)計(jì)數(shù)值到5000時(shí),計(jì)數(shù)值清零,點(diǎn)亮下一個(gè)數(shù)碼管,從而使第一至第四位數(shù)碼管按設(shè)定逐個(gè)點(diǎn)亮。下面以顯示182為例,即速度為182r/min加以說明。當(dāng)數(shù)碼管顯示182時(shí),意味著第四位數(shù)碼管顯示2,第三位顯示8,第二位顯示1,第一位顯示0
103、 。</p><p> 程序如下:當(dāng)轉(zhuǎn)速為182時(shí),即 </p><p> Disbuf[0] = 0; </p><p> Disbuf[1] = 1; </p><p> Disbuf[2] = 8; </p><p> Disbuf[3] = 2; </p><p><b&
104、gt; 送入顯示緩沖區(qū) </b></p><p> switch(disp)</p><p> { case 0: </p><p> { P2=disp_bit[disp]; //P2為位碼 </p><p> P0= table[Disbuf[0]]; //P0為段碼 </p
105、><p> break; } </p><p> ...... </p><p> 以此規(guī)律進(jìn)行顯示,直至四位全部顯示完畢,等待下一次循環(huán)。</p><p> 3.5鍵盤的功能的實(shí)現(xiàn)與設(shè)計(jì) </p><p> 本課題的硬件設(shè)計(jì)中使用了5個(gè)按鍵,功能分別是實(shí)現(xiàn)轉(zhuǎn)速測量的啟動、停止和加速
106、、減速、正反轉(zhuǎn)。加速可通過P1.3接口進(jìn)行控制,當(dāng)按鍵按下時(shí),按鍵端口接地,I/O接口P1.3輸入低電平,程序可表示為P1^3=0,通過此條件改變占空比便可實(shí)現(xiàn)加速功能,在按鍵過程中會有按鍵抖動,因此我們一般通過軟件延遲程序?qū)存I命令延遲5-10ms再執(zhí)行,便可減少抖動造成的誤差。程序如下: </p><p><b> while(1) </b></p><p>
107、 { while(up==0) //加速鍵 </p><p> { Delay(5); </p><p> while(up==0) </p><p> { pwm_disp+=10; </p><p> if( pwm_disp>=1000
108、) </p><p> pwm_disp=0; </p><p> while(up==0); </p><p><b> } </b></p><p><b> } </b></p><p><b> ......</b></p&g
109、t;<p><b> 結(jié) 論</b></p><p> 本文根據(jù)智能轉(zhuǎn)速測量系統(tǒng)的硬件設(shè)計(jì)和要求,設(shè)計(jì)出相應(yīng)軟件系統(tǒng)。文中首先對單片機(jī)用于轉(zhuǎn)速測量的理論、原理進(jìn)行了簡單的分析、比較,并對基于AT89C51單片機(jī)的轉(zhuǎn)速測量電路做了簡單的介紹,詳細(xì)闡述了軟件的設(shè)計(jì),編譯程序,最終實(shí)現(xiàn)轉(zhuǎn)速測量、顯示的功能。</p><p> 本設(shè)計(jì)的具體研究成果如下:
110、</p><p> (1)系統(tǒng)初始化程序的設(shè)計(jì) </p><p> 根據(jù)硬件電路的要求,將各硬件電路置于其規(guī)定的狀態(tài),根據(jù)需要,對定時(shí)器、計(jì)數(shù)器、串行口等設(shè)置工作狀態(tài),預(yù)置了初值。 </p><p> (2)鍵盤掃描程序的設(shè)計(jì) </p><p> 將開關(guān)直接與AT89C51單片機(jī)的P1.0接口相連,通過讀I/O口,判定各I/O線的電平
111、狀態(tài),即可識別出按下的按鍵。操作員通過鍵盤可以輸入數(shù)據(jù)或指令,實(shí)現(xiàn)了簡單的人機(jī)通信。 </p><p> (3)顯示程序的設(shè)計(jì) </p><p> 數(shù)碼管顯示采用動態(tài)方式,即通過延遲程序使數(shù)碼管分時(shí)點(diǎn)亮,依次循環(huán),通過設(shè)定了合適的時(shí)間,利用人的視覺暫留現(xiàn)象,便可穩(wěn)定地顯示出各位數(shù)碼管的值。</p><p><b> 參考文獻(xiàn)</b><
112、;/p><p> [1] 王燦,馬瑞卿,李玲娟,徐剛.基于單片機(jī)的舵機(jī)用無刷直流電機(jī)控制器設(shè)計(jì)[C]. 會議名稱:中國航空學(xué)會控制與應(yīng)用第十二屆學(xué)術(shù)年會 日期:2006 </p><p> [2] 崔金寶,顧穎玲.基于單片機(jī)控制的高精度寬范圍PWM直流調(diào)速系統(tǒng)[C]. 會議名稱:中國航空學(xué)會控制與應(yīng)用第六屆學(xué)術(shù)年會 日期:1994</p><p>
113、; [3] 高振東,林風(fēng)云,王東.基于單片機(jī)的低價(jià)直流電機(jī)PWM系統(tǒng)的設(shè)計(jì)[C]. 會議名稱:全國單片機(jī)學(xué)術(shù)交流會 會議錄名稱:全國單片機(jī)學(xué)術(shù)交流會論文集 日期:1998</p><p> [4] 劉春華,王向周,南順成,徐冬平.基于PWM控制器的低壓直流電機(jī)控制系統(tǒng)設(shè)計(jì)及其應(yīng)用[C]. 會議名稱:第3屆制造業(yè)自動化與信息化學(xué)術(shù)交流會 日期:2004 </p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)--直流電機(jī)模糊控制系統(tǒng)設(shè)計(jì)
- 直流電機(jī)課程設(shè)計(jì)--直流電機(jī)控制系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----fpga直流電機(jī)速度控制系統(tǒng)
- 基于fpga的直流電機(jī)的pwm控制系統(tǒng)_設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的直流電機(jī)控制系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 直流電機(jī)模糊控制系統(tǒng)設(shè)計(jì)
- fpga直流電機(jī)控制系統(tǒng)設(shè)計(jì)
- 基于FPGA的直流電機(jī)控制系統(tǒng)設(shè)計(jì).pdf
- 直流電機(jī)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)的直流電機(jī)控制系統(tǒng)設(shè)計(jì)
- 直流電機(jī)調(diào)速系統(tǒng)畢業(yè)設(shè)計(jì)
- 直流電機(jī)調(diào)速系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---pwm控制直流電機(jī)調(diào)速
- 畢業(yè)設(shè)計(jì)--數(shù)字式直流電機(jī)調(diào)速控制系統(tǒng)設(shè)計(jì)
- 直流電機(jī)控制系統(tǒng)的設(shè)計(jì)【文獻(xiàn)綜述】
- 直流電機(jī)控制系統(tǒng)的設(shè)計(jì)【開題報(bào)告】
- 基于matlab無刷直流電機(jī)驅(qū)動控制系統(tǒng)的仿真畢業(yè)設(shè)計(jì)
- 畢業(yè)論文---直流電機(jī)控制系統(tǒng)
- 直流電機(jī)控制系統(tǒng)畢業(yè)論文
- 畢業(yè)設(shè)計(jì)--電動小車中無刷直流電機(jī)的控制系統(tǒng)
評論
0/150
提交評論