版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p> BACHELOR DISSERTATION</p><p> 論文題目:基于MCS51單片機(jī)步進(jìn)電機(jī)的控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)</p><p> 學(xué)位類別: 工 學(xué) 學(xué) 士 </p><p&
2、gt; 學(xué)科專業(yè): 10級(jí)自動(dòng)化2班 </p><p> 作者姓名: </p><p> 導(dǎo)師姓名: </p><p> 完成時(shí)間:
3、 2014年5月12日 </p><p> 基于MCS51單片機(jī)步進(jìn)電機(jī)的控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)</p><p><b> 中 文 摘 要</b></p><p> 步進(jìn)電機(jī)最早出現(xiàn)在十九世紀(jì)初期,經(jīng)過一段時(shí)期的發(fā)展步進(jìn)電機(jī)被廣泛應(yīng)用在各個(gè)領(lǐng)域,因?yàn)槠渚哂辛己玫目刂谱饔?。所以?duì)步
4、進(jìn)電機(jī)控系統(tǒng)進(jìn)一步的探索有著更為深遠(yuǎn)的意義。</p><p> 本設(shè)計(jì)是基于單片步進(jìn)電機(jī)的控制系統(tǒng),硬件設(shè)計(jì)采用STC89C52單片機(jī)為控制核心;選取ULN2003作為驅(qū)動(dòng)器提供脈沖頻率,驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)轉(zhuǎn);通過鍵盤的加減速按鈕、正反轉(zhuǎn)按鈕和停止按鈕來控制步進(jìn)電機(jī)的速度、方向和停止,最后通過測(cè)試傳感器將這幾個(gè)參數(shù)顯示在12864液晶顯示器上。軟件設(shè)計(jì)采用KEIL軟件工具進(jìn)行C語言編寫,通過各個(gè)模塊端口的定義,編寫
5、出了步進(jìn)電機(jī)加減速控制和正反轉(zhuǎn)的程序,最后通過各模塊程序調(diào)試對(duì)硬件電路施行控制。</p><p> 本設(shè)計(jì)以經(jīng)濟(jì)實(shí)用為原則,通過軟硬件結(jié)合的設(shè)計(jì),實(shí)現(xiàn)了對(duì)步進(jìn)電機(jī)轉(zhuǎn)動(dòng)速度和方向的有效控制。該系統(tǒng)具有控制性好,設(shè)計(jì)成本低等優(yōu)點(diǎn)。</p><p> 關(guān)鍵字:STC89C52;步進(jìn)電機(jī);控制系統(tǒng);測(cè)速傳感器</p><p> Stepper motor contro
6、l system design and implementation based on MCS51 microcontroller</p><p><b> ABSTRACT</b></p><p> The stepping motor was invented in the early 1800s, after a long period of de
7、velopment of the stepper motor is widely used in various fields, because it has good control effect. Therefore, the study of the stepper motor control system has a very important significance. </p><p> This
8、 design is stepper motor control system based microcomputer, hardware design uses STC89C52 microcontroller as the control core; select ULN2003 as driver provides pulse frequency drive stepper motor rotation; through acce
9、leration and deceleration button keyboard, forward and reverse button and stop buttons to control the stepper motor speed, direction and stops, Then these several parameters was displayed on the LCD monitor 12864 by the
10、speed sensor. Software design using KEIL software tools </p><p> The design principle of economical and practical, through combination of software and hardware designed to achieve the effective control of t
11、he stepper motor rotation speed and direction. The system has good controllability and low coat.</p><p> Keywords: STC89C52; stepper motor; control systems; speed sensor</p><p><b> 目 錄&
12、lt;/b></p><p><b> 第一章 緒論1</b></p><p><b> 1.1課題背景1</b></p><p> 1.2課題研究的目的及意義2</p><p> 1.3系統(tǒng)設(shè)計(jì)的主要任務(wù)2</p><p> 第二章 總體方案設(shè)計(jì)3
13、</p><p> 2.1系統(tǒng)總體設(shè)計(jì)與分析3</p><p> 2.2各模塊功能說明3</p><p><b> 2.3本章小結(jié)4</b></p><p> 第三章 控制系統(tǒng)硬件分析與設(shè)計(jì)5</p><p> 3.1.中央處理器模塊5</p><p>
14、; 3.1.1單片機(jī)5</p><p> 3.1.2復(fù)位電路7</p><p> 3.1.3振蕩電路8</p><p><b> 3.2顯示模塊8</b></p><p><b> 3.3驅(qū)動(dòng)模塊9</b></p><p> 3.3.1步進(jìn)電機(jī)10&l
15、t;/p><p> 3.3.2 ULN200311</p><p> 3.4電源模塊12</p><p> 3.5鍵盤模塊12</p><p> 3.6本章小結(jié)13</p><p> 第四章 控制系統(tǒng)軟件分析與設(shè)計(jì)14</p><p> 4.1 主程序流程圖14</p&
16、gt;<p> 4.2 12864顯示程序流程圖15</p><p> 4.3正反轉(zhuǎn)程序流程圖16</p><p> 4.4加減速程序流程圖17</p><p> 4.5本章小結(jié)17</p><p> 第五章 系統(tǒng)的測(cè)試與結(jié)果分析18</p><p> 5.1軟件測(cè)試工具18<
17、;/p><p> 5.2測(cè)試數(shù)據(jù)與分析19</p><p> 5.2.1圈數(shù)測(cè)試19</p><p> 5.2.2速度測(cè)試19</p><p> 5.3本章小結(jié)21</p><p> 第六章 畢業(yè)設(shè)計(jì)總結(jié)22</p><p><b> 參考文獻(xiàn)23</b>
18、;</p><p><b> 致謝24</b></p><p><b> 附錄25</b></p><p> 附錄一 系統(tǒng)電路仿真圖25</p><p> 附錄二 系統(tǒng)實(shí)物圖26</p><p> 附錄三 單片機(jī)端口分配表27</p><
19、;p> 附錄四 系統(tǒng)程序28</p><p><b> 第一章 緒論</b></p><p> 本章簡(jiǎn)單的介紹了步進(jìn)電機(jī)的發(fā)展史,步進(jìn)電機(jī)在各個(gè)領(lǐng)域的應(yīng)用。論述了研究本課題的目的和意義,最后簡(jiǎn)要的敘述了本設(shè)計(jì)控制系統(tǒng)需要完成的幾項(xiàng)任務(wù)。</p><p><b> 1.1課題背景</b></p>
20、<p> 在21世紀(jì),電動(dòng)機(jī)在我們社會(huì)中扮演著十分重要的角色,無論在工業(yè)、農(nóng)業(yè)還是在我們?nèi)粘I钪衅鹬匾淖饔?。步進(jìn)電機(jī)是一種特殊的可以控制的電動(dòng)機(jī),在現(xiàn)代社會(huì)的額各個(gè)領(lǐng)域有著廣泛的應(yīng)用。因?yàn)椴竭M(jìn)電機(jī)具有良好的控制作用,而且是當(dāng)今機(jī)械電子工程的主要構(gòu)件之一。因此步進(jìn)電機(jī)大量地使用在各類不同的自動(dòng)化設(shè)備及控制裝置等領(lǐng)域 []。</p><p> 早期的步進(jìn)電機(jī)大約出現(xiàn)在十九世紀(jì)三十年代左右,在通電
21、的情況下,有一種能夠自由旋轉(zhuǎn)的電磁鐵,就是我們所說的早期步進(jìn)電機(jī),其工作原理和現(xiàn)在的步進(jìn)電機(jī)本質(zhì)上是相同的[]。到了上世紀(jì)初,由于出現(xiàn)大規(guī)模的戰(zhàn)爭(zhēng),軍工業(yè)和造船業(yè)等重工業(yè)的快速發(fā)展,步進(jìn)電機(jī)的需求量被無線放大。同時(shí)期的西方報(bào)紙和期刊先后刊登了大量步進(jìn)電機(jī)在軍工業(yè)和造船業(yè)上應(yīng)用的文章,那是的文章已經(jīng)詳細(xì)的介紹了不進(jìn)電機(jī)電的設(shè)計(jì)方法和計(jì)算等。在后來的一段時(shí)期這些理論被用于實(shí)踐指導(dǎo)步進(jìn)電機(jī)的結(jié)構(gòu)設(shè)計(jì)和批量的生產(chǎn)[]。</p>&
22、lt;p> 到了二十世紀(jì)八十年代后,步進(jìn)電動(dòng)機(jī)的控制方式開始變得更加多樣化,主要原因是多用途模式的步進(jìn)電機(jī)的產(chǎn)生。在微電子個(gè)計(jì)算機(jī)技術(shù)高速發(fā)展的情況下,直接引起了對(duì)步進(jìn)電機(jī)的使用數(shù)量成爆炸式增長(zhǎng),在各國(guó)家的軍事領(lǐng)域和國(guó)民經(jīng)濟(jì)領(lǐng)域都有著廣泛的應(yīng)用。步進(jìn)電機(jī)實(shí)際上是一種將電脈沖轉(zhuǎn)化為角位移的控制元件,它突出的優(yōu)點(diǎn)是自身構(gòu)造簡(jiǎn)單,具有快速的啟動(dòng)、停止和反轉(zhuǎn)響應(yīng),運(yùn)行安全可靠。步進(jìn)電機(jī)還有一些非常特殊的地方,它的步距值不會(huì)隨著現(xiàn)場(chǎng)溫度和
23、電壓的變化而改變,同時(shí)誤差亦不會(huì)長(zhǎng)時(shí)間積累,所以給實(shí)踐的操作中帶來了很大的方便[]。步進(jìn)電機(jī)大量使用在各類產(chǎn)品中,其中消費(fèi)類產(chǎn)品包括打印機(jī)和照相機(jī)等;工業(yè)產(chǎn)品包括機(jī)器人、數(shù)字控制體系和紙帶傳送機(jī)構(gòu)等。因此對(duì)步進(jìn)電機(jī)的詳細(xì)研究具有十分重要的意義。本文設(shè)計(jì)了一種以STC89C52單片機(jī)為核心元件的控制系統(tǒng)。</p><p> 1.2課題研究的目的及意義</p><p> 隨著現(xiàn)代工業(yè)和農(nóng)業(yè)
24、的不斷發(fā)展壯大,步進(jìn)電機(jī)的使用量也成爆炸式增長(zhǎng)。以前的步進(jìn)電機(jī)的控制精度和控制效果已無法達(dá)到當(dāng)今社會(huì)生產(chǎn)力的要求,因此如何更好的發(fā)展和應(yīng)用步進(jìn)電機(jī)是非常值得思考的。本課題的設(shè)計(jì)就是對(duì)步進(jìn)電機(jī)進(jìn)行控制,其本身就具有一些突出的優(yōu)點(diǎn)是快速的起動(dòng)、停止和反轉(zhuǎn)響應(yīng);由于其采用開環(huán)控制,從而自身構(gòu)造更加簡(jiǎn)易化并且成本低[]。在微電子個(gè)計(jì)算機(jī)技術(shù)高速發(fā)展的情況下,步進(jìn)電機(jī)也朝著小型化矩形化發(fā)展以適應(yīng)當(dāng)前各種設(shè)備的需要,所以本課題對(duì)于步進(jìn)電機(jī)控制的研究
25、具有十分重要的意義。</p><p> 1.3系統(tǒng)設(shè)計(jì)的主要任務(wù)</p><p> 設(shè)計(jì)的該控制系統(tǒng)應(yīng)完成以下幾項(xiàng)任務(wù):</p><p> ?。?)步進(jìn)電機(jī)的啟動(dòng)和停止控制;</p><p> (2)步進(jìn)電機(jī)的加速和減速控制;</p><p> (3)步進(jìn)電機(jī)的正反轉(zhuǎn)控制;</p><p&g
26、t; ?。?)步進(jìn)電機(jī)的轉(zhuǎn)速動(dòng)態(tài)顯示在液晶顯示器上。</p><p> 第二章 總體方案設(shè)計(jì)</p><p> 2.1系統(tǒng)總體設(shè)計(jì)與分析</p><p> 本設(shè)計(jì)是使用STC89C52為控制元件,設(shè)計(jì)出一種基于單片機(jī)步進(jìn)電機(jī)的控制系統(tǒng)。該控制系統(tǒng)通過自有的鍵盤模塊來實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)進(jìn)行有效的控制,并且將步進(jìn)電機(jī)的轉(zhuǎn)速顯示在液晶顯示器上,轉(zhuǎn)動(dòng)方向以文字的形式
27、顯示在液晶顯示器上。下圖是系統(tǒng)總體結(jié)構(gòu)框圖。</p><p> 圖1 系統(tǒng)總體結(jié)構(gòu)框圖</p><p> 2.2各模塊功能說明</p><p> 本設(shè)計(jì)控制系統(tǒng)有五個(gè)模塊:中央處理器模塊、12864液晶顯示模塊、步進(jìn)電機(jī)驅(qū)動(dòng)模塊、電源模塊和鍵盤模塊。</p><p> ?。?)中央處理器模塊主要由振蕩電路和復(fù)位電路構(gòu)成。振蕩電路是給最
28、小系統(tǒng)模塊提供給頻率,單片機(jī)的運(yùn)行速度就是一該頻率為基準(zhǔn)的,頻率高單片機(jī)運(yùn)行速度快。復(fù)位電路就是系統(tǒng)運(yùn)行時(shí)在受到外部干擾,內(nèi)部程序運(yùn)行出錯(cuò)時(shí),通過按下復(fù)位按鈕可以讓原程序重新開始運(yùn)行,保證了單片機(jī)的正常啟動(dòng)[]。</p><p> (2)本設(shè)計(jì)的顯示模塊采用12864液晶器來動(dòng)態(tài)顯示步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)速度和方向。 </p><p> (3)本世紀(jì)的進(jìn)電機(jī)驅(qū)動(dòng)模塊選用驅(qū)動(dòng)器ULN2003為
29、步進(jìn)電機(jī)提供電脈沖信號(hào),進(jìn)而驅(qū)動(dòng)步進(jìn)電機(jī)轉(zhuǎn)動(dòng)。ULN2003的輸入端與單片機(jī)的P1口相連。 </p><p> ?。?)電源模塊是通過整流橋?qū)⒆儔浩鹘祲哼^來的交流電壓轉(zhuǎn)化為直流5V供給其他四個(gè)模塊。 </p><p> ?。?)本設(shè)計(jì)的鍵盤模塊包括了控制方向按鈕鍵、加速按鈕鍵、減速按
30、鈕鍵和啟停按鈕鍵,與單片機(jī)的P3口相連,通過這些鍵盤按鈕可以對(duì)步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)狀態(tài)進(jìn)行有效的控制。 </p><p><b> 2.3本章小結(jié)</b></p><p> 本章首先簡(jiǎn)單的說明了該設(shè)計(jì)的思想,在控制低成本,且能完成該設(shè)計(jì)的情況下,通過綜合考慮用了以STC89C52單片機(jī)作為本設(shè)計(jì)系統(tǒng)的控制核心元件。</p><p> 第三章
31、控制系統(tǒng)硬件分析與設(shè)計(jì)</p><p> 3.1.中央處理器模塊</p><p> 中央處理器系統(tǒng)就是用最少的電子元件搭建的單片機(jī)而且能夠正常工作的系統(tǒng),其最小系統(tǒng)包括了單片機(jī),復(fù)位電路、振蕩電路和外部擴(kuò)展等部分組成。中央處理器模塊電路圖如下: </p><p> 圖2中央處理器模塊電路圖</p><p><b> 3.
32、1.1單片機(jī)</b></p><p><b> ?。?)概述</b></p><p> 單片機(jī)也就是微型處理器,世界上第一個(gè)位微處理器是因特爾公司研制出來的。因特爾公司的8051單片機(jī)是當(dāng)時(shí)最成功的微處理器?;谶@種單片機(jī)的操作系統(tǒng)在當(dāng)代仍有使用。[]</p><p> 單片機(jī)的主要組成部分包括運(yùn)算器、控制器寄存器和輸入輸出設(shè)備
33、。其中運(yùn)算器的功能是執(zhí)行各種算術(shù)的運(yùn)算和邏輯比較;控制器的功能是指令的存取以及控制CPU與和輸入輸出設(shè)備的數(shù)據(jù)交換。單片機(jī)相當(dāng)于一個(gè)微型計(jì)算機(jī),但是其沒有計(jì)算機(jī)的外圍設(shè)備[]。單片機(jī)具有一些明顯的有點(diǎn),體積小、重量輕而且價(jià)格便宜,為學(xué)生的學(xué)習(xí)和研發(fā)人員提供了便利的條件。另外在學(xué)習(xí)單片機(jī)之后我們能夠很輕松的接受復(fù)雜的計(jì)算機(jī)原理和結(jié)構(gòu)的知識(shí)。單片機(jī)的出現(xiàn)首先應(yīng)用在工業(yè)領(lǐng)域。 </p><p> 單片機(jī)在各個(gè)領(lǐng)域都
34、有著廣泛的應(yīng)用,它的發(fā)展趨勢(shì)是小型化和高度集中化。8051是一款飽受好評(píng)的單片機(jī),它生產(chǎn)出來之后就被大量使用。這種單片機(jī)具有明顯的優(yōu)越性就是其體積小、簡(jiǎn)單可靠而且性能不錯(cuò)。經(jīng)過無數(shù)次的發(fā)展,2000年ARM退出了32位的高端單片機(jī),但是其價(jià)格比較昂貴,沒有8051性價(jià)比高。因此8051單片機(jī)一直在廣泛使用這。</p><p> 在二十一世紀(jì),單片機(jī)存在在各種電子器件產(chǎn)品中,最典型的我們周中使用的手機(jī),電話,游戲
35、機(jī)等,家庭的家用電器,筆記本電腦內(nèi)部都有單片機(jī)。我們?nèi)粘3鲩T的交通工具汽車上就包含了幾十個(gè)單片機(jī),有的大型重工業(yè)控制系統(tǒng)上單片機(jī)的應(yīng)用數(shù)量更多。單片機(jī)是世界上使用數(shù)量最多的處理器。</p><p><b> ?。?)單片機(jī)的選擇</b></p><p> 設(shè)計(jì)產(chǎn)品我們首先要考慮到經(jīng)濟(jì)性和可靠性,本設(shè)計(jì)采用STC89C52單片機(jī)足以滿足我們?cè)O(shè)計(jì)的需要,其是一種單時(shí)鐘的
36、單片機(jī),其擁有以下優(yōu)點(diǎn):運(yùn)算速度高、功耗低、抗干擾能力強(qiáng)等。STC89C52的運(yùn)算速度是早期8051的10倍左右。</p><p> STC89C52主要特性如下:</p><p> 針對(duì)本系統(tǒng),RAM和Flash容量足夠大,有定時(shí)器中斷功能能實(shí)現(xiàn)實(shí)時(shí)溫度的采集,提供有EEPROM,可以設(shè)置掉電保護(hù),是之前設(shè)置的溫度不丟失,全雙工的工作方式是的系統(tǒng)更加可靠。[]</p>
37、<p><b> ?。?)引腳功能說明</b></p><p> 圖3單片機(jī)引腳功能圖</p><p> VCC:電源電壓。 </p><p><b> GND:接地。 </b></p><p> P0口(32腳~39腳):通
38、常被定義為數(shù)據(jù)/地址的低八位,適用于外部數(shù)據(jù)寄存器。P0口通常作為一個(gè)輸入端口,使用時(shí)要接上上拉電阻。</p><p> P1口(1腳~8腳):是一個(gè)輸入輸出的端口,每個(gè)端口可以獨(dú)立控制。</p><p> P2口(21腳~28腳):具有P0和P1的基本功能既可以做輸入輸出端口也可以做外部數(shù)據(jù)寄存器,每個(gè)端口也可以獨(dú)立控制。</p><p> P3口(10腳~
39、17腳):可以作為一個(gè)輸入輸出端口,也可以充當(dāng)單片機(jī)的一個(gè)特殊功能端口。</p><p> 下表是P3口個(gè)引腳功能說明如下[]:</p><p> 表1.P3口引腳功能說明</p><p><b> 3.1.2復(fù)位電路</b></p><p> 復(fù)位電路:其作用是把原有狀態(tài)的電路初始化到一個(gè)確定的電路,單片機(jī)的復(fù)
40、位端口接上適當(dāng)?shù)碾娮韬碗娙輼?gòu)成的電路就是所說的中央處理器系統(tǒng)的復(fù)位電路。復(fù)位電路一般包括上電復(fù)位和按鍵復(fù)位,本設(shè)計(jì)采用的按鍵復(fù)位,通過一個(gè)獨(dú)立按鍵來手動(dòng)控制電路的復(fù)位。復(fù)位電路圖如下所示: </p><p><b> 圖4復(fù)位電路圖</b></p><p><b> 3.1.3振蕩電路</b></p>&
41、lt;p> 振蕩電路:晶振是組成單片機(jī)系統(tǒng)的關(guān)鍵元件之一,晶振電路在單片機(jī)系統(tǒng)里存在著十分中重要的作用,晶振兩端接在單片機(jī)的XTAL1 和 XTAL2引腳上。單片機(jī)的晶振的實(shí)質(zhì)作用是給中央處理器提供時(shí)鐘電路,單片機(jī)工作運(yùn)行的速度與晶振提供的頻率有關(guān)。本設(shè)計(jì)的晶振電路用了30pf的電容和 12MH的晶體振蕩器作為核心元件。振蕩電路圖如下: </p><
42、;p><b> 圖5振蕩電路圖</b></p><p><b> 3.2顯示模塊</b></p><p> 本設(shè)計(jì)顯示部分采用12864液晶顯示器,通過各個(gè)端口的定義,在12864上動(dòng)態(tài)的顯示步進(jìn)電機(jī)的速度和方向。顯示模塊電路圖如下: </p><p><b> 圖6顯示電路
43、模塊圖</b></p><p> (1)12864的基本特性</p><p> 12864是128*64點(diǎn)陣型液晶模塊的點(diǎn)陣數(shù)簡(jiǎn)稱,因?yàn)橐诵曰@示中文漢字,所以12864是最好的選擇。 </p><p> 12864液晶顯示器是一種內(nèi)部含有簡(jiǎn)體中文字庫的點(diǎn)陣圖形液晶顯示模塊。其內(nèi)部設(shè)置了大量的點(diǎn)陣
44、和ASCII 字符集,可以完成數(shù)學(xué)、漢字和圖形的顯示。其串口借口引腳信號(hào)表如下[] : </p><p> 表2.12864串口接口管腳信號(hào)</p><p><b> 3.3驅(qū)動(dòng)模塊</b></p><p> 本系統(tǒng)設(shè)計(jì)的主要目的是為了有效的控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)速度個(gè)運(yùn)轉(zhuǎn)方向,
45、所以我們要把單片機(jī)的電脈沖信號(hào)轉(zhuǎn)化為能使步進(jìn)電機(jī)轉(zhuǎn)動(dòng)的步距角,本設(shè)計(jì)中我采用了驅(qū)動(dòng)器ULN2003作為脈沖信號(hào)的提供原。驅(qū)動(dòng)模塊電路圖如下所示: </p><p><b> 圖7驅(qū)動(dòng)電路模塊圖</b></p><p><b> 3.3.1步進(jìn)電機(jī)</b></p><p> (1)步進(jìn)電機(jī)的工作原理<
46、;/p><p> 通常電動(dòng)機(jī)是由靜止的轉(zhuǎn)子和轉(zhuǎn)動(dòng)的轉(zhuǎn)子組成,電動(dòng)機(jī)的轉(zhuǎn)子是一種永磁體,當(dāng)有電流通過定子繞組時(shí),定子起著接受電能產(chǎn)生旋轉(zhuǎn)磁場(chǎng)的作用。轉(zhuǎn)子在該磁場(chǎng)的作用下旋轉(zhuǎn)一個(gè)角度,從而讓轉(zhuǎn)子的磁場(chǎng)方向與定子的磁場(chǎng)方向保持一致。同樣,定子的磁場(chǎng)旋轉(zhuǎn)一個(gè)角度,轉(zhuǎn)子也會(huì)沿著該方向轉(zhuǎn)動(dòng)相同的角度。每接收一個(gè)電脈沖信號(hào),電動(dòng)機(jī)就會(huì)轉(zhuǎn)動(dòng)一個(gè)固定角度。脈沖數(shù)量越多電機(jī)旋轉(zhuǎn)角度越大,脈沖頻率越高電機(jī)轉(zhuǎn)速越快,可以看出它們兩輛成正比
47、關(guān)系。我們只需要改變繞組的通電順序就能夠改變電動(dòng)機(jī)的轉(zhuǎn)動(dòng)方向。因此控制電動(dòng)機(jī)的轉(zhuǎn)動(dòng)實(shí)際上就是控制脈沖數(shù)量和頻率。[]</p><p> ?。?)步進(jìn)電機(jī)的分類</p><p> 步進(jìn)電機(jī)根據(jù)結(jié)構(gòu)的差異通常分為以下三類:</p><p><b> 表3.步進(jìn)電機(jī)分類</b></p><p> (3)步進(jìn)電機(jī)的主要特點(diǎn)
48、和特性</p><p> 步進(jìn)電機(jī)轉(zhuǎn)動(dòng)的前提是必須添加驅(qū)動(dòng),脈沖信號(hào)時(shí)唯一能驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn)的驅(qū)動(dòng)信號(hào),也就是沒有脈沖信號(hào)電機(jī)就不會(huì)運(yùn)轉(zhuǎn)。當(dāng)添加一個(gè)穩(wěn)定的脈沖信號(hào),其就會(huì)按照固定的角度轉(zhuǎn)動(dòng),轉(zhuǎn)動(dòng)的速度與脈沖頻率成正比。能夠瞬間啟動(dòng)和快速停止時(shí)步進(jìn)電機(jī)的一個(gè)優(yōu)越特性。改變步進(jìn)電機(jī)轉(zhuǎn)動(dòng)方向的一個(gè)簡(jiǎn)便方法就是改變脈沖順序。步進(jìn)電機(jī)主要具有以下有點(diǎn)[]:</p><p> 1、電機(jī)旋轉(zhuǎn)的角度與脈沖
49、數(shù)成正比;</p><p> 2、最大的轉(zhuǎn)矩出現(xiàn)在電機(jī)停止的位置上;</p><p> 3、每一步的精度在3%~5%,而且誤差不會(huì)長(zhǎng)期積累,上一步的誤差不會(huì)疊加到下一步,因而具有良好的位置精度;</p><p> 4、電機(jī)具有快速的起停和反轉(zhuǎn)響應(yīng);</p><p> 5、步進(jìn)電機(jī)沒有電刷,運(yùn)行可靠,因此電機(jī)自身的軸承壽命決定了電機(jī)的壽
50、命;</p><p> 6、因?yàn)闆]有反饋環(huán)節(jié),故控制簡(jiǎn)單;</p><p> 7、脈沖信號(hào)的頻率決定了轉(zhuǎn)速,故電機(jī)有較寬的調(diào)速范圍。</p><p> 但是,這種電機(jī)也有自身的缺點(diǎn):</p><p> 1、在控制不當(dāng)?shù)那闆r下容易產(chǎn)生共振;</p><p> 2、很難獲得較高的轉(zhuǎn)動(dòng)速度;</p>
51、<p><b> 3、轉(zhuǎn)矩較??;</b></p><p> 4、在體積重量方面沒有優(yōu)勢(shì),能源利用率低;</p><p> 5、過載運(yùn)轉(zhuǎn)時(shí)會(huì)破壞同步,高速轉(zhuǎn)動(dòng)時(shí)會(huì)產(chǎn)生振動(dòng)和噪聲。</p><p> ?。?)本設(shè)計(jì)采用了28BY-J48型進(jìn)電機(jī)。其參數(shù)如下[]:</p><p> 表4. 28BY-J48型
52、進(jìn)電機(jī)技術(shù)參數(shù)</p><p> 3.3.2 ULN2003</p><p> ULN2003是一種晶體管陣列,它的明顯特點(diǎn)是功能強(qiáng)大,而且成本不高,是各種電路的理想器件,應(yīng)用范圍非常廣。圖8、圖9是ULN2003的芯片引腳圖和外形圖:</p><p> 圖8 ULN2003芯片引腳圖</p><p> 圖9 ULN2003外形圖&l
53、t;/p><p><b> 3.4電源模塊</b></p><p> 下圖是電源模塊圖,有兩套電源電路,其中一個(gè)是備用電路。如下圖所示:</p><p><b> 圖10電源模塊圖</b></p><p> 電源模塊整流橋采用的是2W10整流橋,其是一種圓形直插式整流橋。其最大平均工作電流2A,
54、最大反向電壓時(shí)1000V[]。整流橋外形圖如下: </p><p><b> 圖11整流橋外形圖</b></p><p><b> 3.5鍵盤模塊</b></p><p> 鍵盤模塊主要是對(duì)步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)速度和轉(zhuǎn)動(dòng)方向進(jìn)行有效的控制,該模塊包含了加速按鈕、減速按鈕、正反轉(zhuǎn)按鈕和停
55、止按鈕??刂撇贿M(jìn)電機(jī)電的轉(zhuǎn)速只需要按下加速或者減速按鈕;對(duì)步進(jìn)電機(jī)的方向進(jìn)行控制我們只需要按下正或反轉(zhuǎn)按鈕;停止按鈕可以隨時(shí)讓步進(jìn)電機(jī)停止轉(zhuǎn)動(dòng)。鍵盤模塊電路圖如下所示:</p><p> 圖12鍵盤模塊電路圖 </p><p><b> 3.6本章小結(jié)</b></p><p> 本章內(nèi)容首先介紹了該控制系統(tǒng)的組成模塊,并對(duì)各個(gè)模塊硬件設(shè)
56、計(jì)作了詳細(xì)的說明。另外,還對(duì)步進(jìn)電機(jī)和單片機(jī)的原理等知識(shí)作了說明。</p><p> 第四章 控制系統(tǒng)軟件分析與設(shè)計(jì)</p><p> 綜合總體設(shè)計(jì)方案和各模塊硬件電路的考慮,該系統(tǒng)的軟件設(shè)計(jì)思路:第一步:各模塊初始化,對(duì)12864、驅(qū)動(dòng)器進(jìn)行設(shè)置為下一步接受信息做好準(zhǔn)備。第二步:通過ULN2003產(chǎn)生的脈沖驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng),顯示在12864上,在通過鍵盤掃描得到設(shè)定的信息;第三步:通過鍵
57、盤按鈕里控制步進(jìn)電機(jī)的運(yùn)轉(zhuǎn)情況,并顯示在顯示器上。</p><p> 4.1 主程序流程圖</p><p><b> 圖13主程序流程圖</b></p><p> 主程序流程圖:首先是對(duì)各個(gè)模塊進(jìn)行初始化,包括12864,步進(jìn)電機(jī)等。然后通過按鍵掃描得出設(shè)定速度并進(jìn)行顯示。然后讀FLAG標(biāo)志選擇是正轉(zhuǎn)還是反轉(zhuǎn),正轉(zhuǎn)時(shí),確定轉(zhuǎn)速和圈數(shù),然后
58、調(diào)用12864顯示程序顯示。然后返回按鍵掃描,構(gòu)成循環(huán)。</p><p> 4.2 12864顯示程序流程圖</p><p> 圖14 12864顯示程序流程圖</p><p> 12864顯示程序流程圖:首先是初始化,針對(duì)顯示屏進(jìn)行設(shè)計(jì),比如設(shè)定游標(biāo)的移動(dòng)方向,游標(biāo)位置反白允許,設(shè)定CGRAM地址,并口或者工作模式等等。第二步寫指令,寫入控制指令,選擇寫入1
59、2864的顯示位置。第三步,寫入數(shù)據(jù),可以寫入單個(gè)字符也可以寫入字符串,單個(gè)數(shù)據(jù)時(shí)要加入0X30,還可以寫入圖片內(nèi)容,在寫入時(shí)逐個(gè)寫入,直到結(jié)束。第四步,12864內(nèi)部寫計(jì)數(shù)器計(jì)數(shù)器為0時(shí),顯示結(jié)束,完成一次顯示過程。</p><p> 4.3正反轉(zhuǎn)程序流程圖</p><p> 圖15正反轉(zhuǎn)程序流程圖</p><p> 正反轉(zhuǎn)程序流程圖:首先是在主程序里面初始
60、化定時(shí)器0,主要是開總中斷,開外部中斷0,設(shè)定邊沿式觸發(fā)中斷。然后設(shè)定一個(gè)正反轉(zhuǎn)FLAG標(biāo)志,判斷當(dāng)FLAG標(biāo)志位’1’為時(shí)選擇正轉(zhuǎn),反之,F(xiàn)LSF標(biāo)志位位‘0’時(shí)選擇反轉(zhuǎn)。該改變FALG標(biāo)志的方法是選擇外部中斷。具體是:通過一個(gè)獨(dú)立按鍵作為外部中斷0的輸入,當(dāng)有按鍵按下時(shí),邊沿觸發(fā),然后申請(qǐng)中斷,執(zhí)行中斷服務(wù)程序。在中斷服務(wù)程序里面首先按鍵去抖動(dòng)程序,去抖動(dòng)后對(duì)FLAG標(biāo)志取反從而每按一次按鍵FLAG標(biāo)志位改變一次,執(zhí)行結(jié)束后返回主程
61、序。這樣每按一次按鍵正反轉(zhuǎn)改變一次實(shí)現(xiàn)正反轉(zhuǎn)。</p><p> 4.4加減速程序流程圖</p><p> 圖16加減速程序流程圖</p><p> 加減速程序流程圖:通過兩個(gè)獨(dú)立按鍵實(shí)現(xiàn),一個(gè)代表加速,一個(gè)代表減速。首先設(shè)置按鍵對(duì)應(yīng)單片機(jī)端口部分,然后檢測(cè)是否有低電平,當(dāng)檢測(cè)到有低電平時(shí),延時(shí)10ms去抖動(dòng),再次判斷是否有低電平,仍然是低電平時(shí)判斷按鍵是否釋
62、放,當(dāng)按鍵釋放時(shí)才執(zhí)行下一部程序,針對(duì)本程序,當(dāng)加按鍵按下后增加轉(zhuǎn)速NUM值就可以加速,反之,減按鍵按下后減小NUM值從而減小速度。</p><p><b> 4.5本章小結(jié)</b></p><p> 本章簡(jiǎn)單的介紹了系統(tǒng)軟件設(shè)計(jì)的思想,并且說明了主程序和各子程序的設(shè)計(jì)方法和思路,描繪出了各程序流程圖。</p><p> 第五章 系統(tǒng)的測(cè)
63、試與結(jié)果分析</p><p><b> 5.1軟件測(cè)試工具</b></p><p> KEIL是常用的開發(fā)軟件,適應(yīng)于包括大部分的單片機(jī)系統(tǒng)和部分嵌入式系統(tǒng)的開發(fā)。它的突出特點(diǎn)是操作者可在初始化新建工程文件時(shí)將單片機(jī)的芯片資料庫直接添加到開發(fā)環(huán)境中,這樣使得用戶軟件編寫變得更加便捷靈活。工程文件一旦生成操作者就不再需要進(jìn)行文件的初始化操作,而且可以直接將程序代碼放
64、進(jìn)工程中。如下圖所示:</p><p> 圖17KEIL界面圖</p><p> 運(yùn)用軟件調(diào)試工具Debug可以很好的觀察程序執(zhí)行過程。表示啟動(dòng)和停止調(diào)試模式;表示打開和關(guān)閉項(xiàng)目窗口;表示打開和關(guān)閉輸出窗口;表示設(shè)置程序斷點(diǎn)等等可以幫助操作者進(jìn)行程序的分析、差錯(cuò)以及時(shí)序的確定。如下圖所示:</p><p> 圖18 Debug調(diào)試界面</p>&
65、lt;p> 5.2測(cè)試數(shù)據(jù)與分析</p><p> 通過由測(cè)速傳感器和最小系統(tǒng)構(gòu)成的測(cè)試平臺(tái),檢測(cè)步進(jìn)電機(jī)轉(zhuǎn)動(dòng)的圈數(shù)和速度的誤差。該測(cè)試平臺(tái)的實(shí)物圖如下:</p><p> 圖19測(cè)試平臺(tái)實(shí)物圖</p><p><b> 5.2.1圈數(shù)測(cè)試</b></p><p> 首先在步進(jìn)電機(jī)轉(zhuǎn)動(dòng)時(shí)開始計(jì)數(shù),直到步進(jìn)
66、電機(jī)停止轉(zhuǎn)動(dòng),記錄電機(jī)轉(zhuǎn)動(dòng)了多少圈。將記錄的圈數(shù)與先前程序設(shè)置的圈數(shù)進(jìn)行比較,下面是電機(jī)正轉(zhuǎn)和反轉(zhuǎn)時(shí)測(cè)試的圈數(shù)數(shù)據(jù)表:</p><p> 表5正轉(zhuǎn)時(shí)測(cè)試的圈數(shù)數(shù)據(jù)</p><p> 表6反轉(zhuǎn)時(shí)的測(cè)試圈數(shù)數(shù)據(jù)</p><p> 測(cè)試結(jié)果說明步進(jìn)電機(jī)在正常運(yùn)轉(zhuǎn)時(shí),設(shè)定的圈數(shù)和實(shí)際測(cè)得的圈數(shù)相同。進(jìn)而說明轉(zhuǎn)過的圈數(shù)沒有誤差。</p><p>
67、<b> 5.2.2速度測(cè)試</b></p><p> 電機(jī)轉(zhuǎn)動(dòng)時(shí),通過測(cè)速傳感器模塊將步進(jìn)電機(jī)的速度動(dòng)態(tài)顯示在顯示器上,通過加減速鍵盤按鈕來改變?cè)O(shè)定值,同時(shí)也改變了電機(jī)的實(shí)際轉(zhuǎn)速。然后將其實(shí)際轉(zhuǎn)速與先前設(shè)定的速度進(jìn)行比較,下面是電機(jī)正轉(zhuǎn)和反轉(zhuǎn)時(shí)測(cè)試的速度數(shù)據(jù)表:</p><p> 表7電機(jī)正轉(zhuǎn)時(shí)測(cè)試速度數(shù)據(jù)</p><p> 表8電機(jī)
68、反轉(zhuǎn)時(shí)測(cè)試速度數(shù)據(jù)</p><p> 為了更加直觀的反應(yīng)實(shí)際測(cè)量速度與設(shè)定速度的誤差,我們用折線圖展現(xiàn)出來。下圖是正轉(zhuǎn)是的實(shí)測(cè)速度與設(shè)定速度折線圖,反轉(zhuǎn)類似在這省略了。</p><p> 圖20實(shí)測(cè)速度與設(shè)定速度折線圖</p><p> 從上圖可以看出步進(jìn)電機(jī)實(shí)測(cè)速度與設(shè)定速度的誤差始終保持在一定范圍,誤差沒有因?yàn)闇y(cè)量次數(shù)的增加而積累,所以可以認(rèn)為其誤差不會(huì)長(zhǎng)
69、期積累。下面用正轉(zhuǎn)時(shí)的數(shù)據(jù)表格來計(jì)算誤差,證明其誤差不會(huì)積累。</p><p><b> 第一次測(cè)量誤差:</b></p><p><b> 第二次測(cè)量誤差:</b></p><p><b> 第三次測(cè)量誤差:</b></p><p><b> …</b
70、></p><p><b> 第七次測(cè)量誤差:</b></p><p> 通過數(shù)據(jù)分析可以得到步進(jìn)電機(jī)的誤差始終在一定范圍內(nèi),誤差不會(huì)積累。</p><p><b> 5.3本章小結(jié)</b></p><p> 本章首先介紹了設(shè)計(jì)使用的KEIL軟件工具,接著重點(diǎn)敘述了本設(shè)計(jì)通過測(cè)試平臺(tái)。
71、證明了步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)圈數(shù)沒有誤,轉(zhuǎn)速的誤差在一定范圍內(nèi),且不會(huì)長(zhǎng)期積累。進(jìn)而也證明了步進(jìn)電機(jī)具有良好的控制作用。</p><p> 第六章 畢業(yè)設(shè)計(jì)總結(jié)</p><p> 通過近期的努力,畢業(yè)設(shè)計(jì)順利的完成了。本次設(shè)計(jì)主要呈現(xiàn)了對(duì)單片機(jī)在控制欲實(shí)現(xiàn)及步進(jìn)電機(jī)的簡(jiǎn)單應(yīng)用,在本次設(shè)計(jì)中,通過自身的努力讓我在各方面的能力都有一定的提高。通過這次設(shè)計(jì),我對(duì)單片機(jī)的調(diào)試、ULN2003的工作原理
72、和12864顯示器等都有了一些新的認(rèn)識(shí)和了解。同時(shí),我對(duì)本設(shè)計(jì)的總體硬件電路的組裝和調(diào)試印象很深,總體電路的組裝和調(diào)試十分重要,直接關(guān)系到設(shè)計(jì)的電路能否正常運(yùn)行。</p><p> 在本設(shè)計(jì)的軟件編程方面,為了能把各個(gè)模塊的程序良好的組合在一起并能夠順利的實(shí)現(xiàn)運(yùn)作,進(jìn)行了大量的程序調(diào)試,需要經(jīng)幾個(gè)模塊程序一起調(diào)試,在這個(gè)過程中話費(fèi)了大量的時(shí)間。</p><p> 本設(shè)計(jì)完成了題目所要求
73、的基本功能,原計(jì)劃要擴(kuò)展一下該設(shè)計(jì),但是由于時(shí)間和精力現(xiàn)在無法實(shí)習(xí),在以后的工作中可以繼續(xù)完成。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 坂本正文. 步進(jìn)電機(jī)應(yīng)用可以[M].北京:科學(xué)出版社,2006:23-45.</p><p> [2]張強(qiáng),吳紅星,謝宗武.基于單片機(jī)的電動(dòng)機(jī)控制技術(shù)[J].北京:中國(guó)電力
74、出版社,2008 ,22(1):34-58.</p><p> [3]欒居里. 永磁同步電動(dòng)機(jī)的開環(huán)步進(jìn)驅(qū)動(dòng)器的研究[J].機(jī)械設(shè)計(jì)與制造 , 2012,16(2):135-143.</p><p> [4]袁任光,張偉武.電動(dòng)機(jī)控制電路選用與258實(shí)例[M].北京:機(jī)械工業(yè)出版社,2005:56-60.</p><p> [5]王秀和.永磁電機(jī)[M].北京:
75、中國(guó)電力出版社,2007:21-35.</p><p> [6]房玉明,杭柏林.基于單片機(jī)的步進(jìn)電機(jī)開環(huán)控制系統(tǒng)[J].電機(jī)與控制應(yīng)用,2006,18(2):202-223.</p><p> [7]H.S.Kim,K.H.Kim,M.J.Youn.On-Line Dead-Time Compensation Method Based On Time Delay Control[J].
76、IEEE Trans.on Control Systems Technology,2003,11 (2):279-285.</p><p> [8] 劉國(guó)榮.單片微型計(jì)算機(jī)技術(shù)[M] .北京:機(jī)械工業(yè)出版社,1996:105-112.</p><p> [9] 宏晶科技. STC89C52RC 單片機(jī)中文資料[J].技術(shù)手冊(cè),2012,3,11-13</p><p&
77、gt; [10] 黃友銳.單片機(jī)原理及應(yīng)用[M].合肥:合肥工業(yè)大學(xué)出版社,2006.</p><p> [11] 繪晶科技. 12864液晶顯示器中文資料[J].技術(shù)手冊(cè),2012,6,16-18</p><p> [12] 欒居里. 永磁同步電動(dòng)機(jī)的開環(huán)步進(jìn)驅(qū)動(dòng)器的研究[J].機(jī)械設(shè)計(jì)與制造,2012,16(3):105-116. </p><p> [
78、13] 王潤(rùn)孝,秦現(xiàn)生.機(jī)床數(shù)控原理與系統(tǒng)[M].西安:西北工業(yè)大學(xué)出版社,1997:45-56.</p><p> [14] 德昌機(jī)電科技.步進(jìn)電機(jī)中文資料[J].技術(shù)手冊(cè),2013,4-6.</p><p> [15] 鼎好電子科技.整流橋英文資料[J].技術(shù)手冊(cè),2012,2-3.</p><p><b> 致謝</b></p
79、><p> 在此次的畢業(yè)設(shè)計(jì)過程中,我要感謝院系領(lǐng)導(dǎo)能給我這樣一個(gè)好平臺(tái)去鍛煉與展示自己。感謝**老師在此過程中給我的解惑與指導(dǎo)幫助。</p><p> 記得在上學(xué)期剛選題的時(shí)候,曾經(jīng)對(duì)這個(gè)課題有比較多的疑問和考慮。首先是對(duì)題意的要求了解的不夠深,其次是采用的制冷方法很難確定,可以確定的話成本也很難接受。由于在之前,比如參電協(xié)焊接大賽或數(shù)學(xué)建模比賽,我們所做的都是一個(gè)團(tuán)隊(duì)去完成的。所以,個(gè)
80、人都沒有經(jīng)歷過自己獨(dú)立的去完成一個(gè)項(xiàng)目,顯然得到的鍛煉也相對(duì)較少。對(duì)于本次畢業(yè)設(shè)計(jì)的方案,我是糾結(jié)了很久,與老師交流了很多,也同實(shí)驗(yàn)室里的同學(xué)交流了不少。當(dāng)然,我想還是我之前學(xué)習(xí)的知識(shí)不夠,才導(dǎo)致了我在本次設(shè)計(jì)中遇到諸多問題。</p><p> 經(jīng)過了這次的畢業(yè)設(shè)計(jì),我遇到了很多困難,也成長(zhǎng)了不少。矛盾的確是在推動(dòng)我們前進(jìn)的動(dòng)力。雖然,我日后的工作不一定是與本專業(yè)相關(guān)的,但是作為大學(xué)里的最后一次作業(yè),那一定要認(rèn)
81、認(rèn)真真的去完成。我覺得做事還是不能好高騖遠(yuǎn),得從小事做起,成功是積累出來的。在做事的過程中一定要仔細(xì)、認(rèn)真、用心。哪怕是最小、做不起眼的工作也要做好!例如,在設(shè)計(jì)電源的過程中就由于自己的大意,沒有考慮好功耗,導(dǎo)致電源芯片發(fā)熱嚴(yán)重。同時(shí)經(jīng)過了這次的獨(dú)立設(shè)計(jì),讓我提高了自學(xué)能力與自己解決問題的能力。</p><p> 回想起剛接觸本課題時(shí)的那種心態(tài),與如今順利完成時(shí)的心態(tài)。真的感覺很有成就感,我想這足以讓人自信不已
82、。不過還是設(shè)計(jì)的有點(diǎn)不足,很多功能并不是很穩(wěn)定。也通過了這次的設(shè)計(jì)讓我對(duì)日后的工作有了更多的認(rèn)識(shí)與理解。當(dāng)然,這得感謝丁老師給我提供的指導(dǎo),真的非常的感謝!</p><p> 大學(xué)的這四年里,遇到了好老師,對(duì)學(xué)生影響真的很大。還有就是很多幫助我的同學(xué)們。有了你們的幫助,我的專業(yè)知識(shí)學(xué)變得更加的扎實(shí)、牢固,我迷茫與糾結(jié)的時(shí)間也少很多。</p><p> 最后,衷心地感謝*老師和幫助我的同
83、學(xué)!</p><p><b> 附錄</b></p><p> 附錄一 系統(tǒng)電路仿真圖</p><p><b> 附錄二 系統(tǒng)實(shí)物圖</b></p><p> 附錄三 單片機(jī)端口分配表</p><p><b> 附錄四 系統(tǒng)程序</b><
84、/p><p><b> 1.主程序</b></p><p> /*------------------------------------------------</p><p><b> 主程序</b></p><p> ------------------------------------
85、------------*/</p><p> void main()</p><p><b> {</b></p><p> Init_0();//外部中斷0</p><p> Init_Timer0();//定時(shí)器中斷0</p><p> Init_1();//外部中斷1<
86、/p><p> Init_ST7920(); //初始化</p><p> LCD_PutString(0,1,"步進(jìn)電機(jī)控制系統(tǒng)"); //Y從1-4;X從0-7;</p><p> LCD_PutString(0,2,"當(dāng)前速度: r/m");</p><p> LCD_PutS
87、tring(0,3,"設(shè)定速度: r/m");</p><p> LCD_PutString(0,4,"顯示圈 : q ");</p><p><b> while(1)</b></p><p><b> { </b></p><p> s
88、udu_sd(); //矩陣鍵盤顯示設(shè)定速度</p><p> dianji(); //控制電機(jī)加減速和正反轉(zhuǎn)</p><p> sudu_jc(); //檢測(cè)實(shí)際速度</p><p> qs_jc(); //檢測(cè)實(shí)際圈數(shù)</p><p><b> }</b></p>
89、;<p><b> }</b></p><p><b> 2.顯示部分</b></p><p> #include"delay.h"</p><p> #include"12864.h"</p><p> sbit RS = P2^4;
90、 //12864</p><p> sbit RW = P2^5;</p><p> sbit E = P2^6;</p><p> sbit RES = P2^3;</p><p> sbit PSB = P2^1;</p><p> sbit PAUSE = P3^0;</p><
91、p> sbit KEY_ADD=P1^4; // 按鍵</p><p> sbit KEY_DEC = P1^5;</p><p> unsigned char Speed=6; //電機(jī)實(shí)際轉(zhuǎn)速</p><p> unsigned char numm; //設(shè)定速度</p><p> unsigned char
92、 dis[2];</p><p> #define DataPort P0 //MCU P0<------> LCM</p><p> /*------------------------------------------------</p><p><b> 檢測(cè)忙位</b></p><p
93、> ------------------------------------------------*/</p><p> void Check_Busy()</p><p><b> { </b></p><p><b> RS=0;</b></p><p><b>
94、RW=1;</b></p><p><b> E=1;</b></p><p> DataPort=0xff;</p><p> while((DataPort&0x80)==0x80);//忙則等待</p><p><b> E=0;</b></p>&l
95、t;p><b> }</b></p><p> /*------------------------------------------------</p><p><b> 寫命令</b></p><p> ------------------------------------------------*/
96、</p><p> void Write_Cmd(unsigned char Cmd)</p><p><b> {</b></p><p> Check_Busy();</p><p><b> RS=0;</b></p><p><b> RW=0;&
97、lt;/b></p><p><b> E=1;</b></p><p> DataPort=Cmd;</p><p> DelayUs2x(5);</p><p><b> E=0;</b></p><p> DelayUs2x(5);</p>
98、<p><b> }</b></p><p> /*------------------------------------------------</p><p><b> 寫數(shù)據(jù)</b></p><p> -----------------------------------------------
99、-*/</p><p> void Write_Data(unsigned char Data)</p><p><b> {</b></p><p> Check_Busy();</p><p><b> RS=1;</b></p><p><b> R
100、W=0;</b></p><p><b> E=1;</b></p><p> DataPort=Data;</p><p> DelayUs2x(5);</p><p><b> E=0;</b></p><p> DelayUs2x(5);</
101、p><p><b> }</b></p><p> /*------------------------------------------------</p><p><b> 液晶屏初始化</b></p><p> --------------------------------------
102、----------*/</p><p> void Init_ST7920()</p><p><b> { </b></p><p> DelayMs(40); //大于40MS的延時(shí)程序</p><p> PSB=1; //設(shè)置為8BIT并口工作模式&l
103、t;/p><p> DelayMs(1); //延時(shí)</p><p> RES=0; //復(fù)位</p><p> DelayMs(1); //延時(shí)</p><p> RES=1; //復(fù)位置高</p><p>
104、; DelayMs(10);</p><p> Write_Cmd(0x30); //選擇基本指令集</p><p> DelayUs2x(50); //延時(shí)大于100us</p><p> Write_Cmd(0x30); //選擇8bit數(shù)據(jù)流</p><p> DelayUs2x(20)
105、; //延時(shí)大于37us</p><p> Write_Cmd(0x0c); //開顯示(無游標(biāo)、不反白)</p><p> DelayUs2x(50); //延時(shí)大于100us</p><p> Write_Cmd(0x01); //清除顯示,并且設(shè)定地址指針為00H</p><p&
106、gt; DelayMs(15); //延時(shí)大于10ms</p><p> Write_Cmd(0x06); //指定在資料的讀取及寫入時(shí),設(shè)定游標(biāo)的移動(dòng)方向及指定顯示的移位,光標(biāo)從右向左加1位移動(dòng)</p><p> DelayUs2x(50); //延時(shí)大于100us</p><p><b> }&l
107、t;/b></p><p> /*------------------------------------------------</p><p><b> 顯示字符串</b></p><p> x:橫坐標(biāo)值,范圍0~8</p><p> y:縱坐標(biāo)值,范圍1~4</p><p>
108、 ------------------------------------------------*/</p><p> void LCD_PutString(unsigned char x,unsigned char y,unsigned char code *s)</p><p><b> { </b></p><p><b>
109、; switch(y)</b></p><p><b> {</b></p><p> case 1: Write_Cmd(0x80+x);break;</p><p> case 2: Write_Cmd(0x90+x);break;</p><p> case 3: Write_Cmd(0x88
110、+x);break;</p><p> case 4: Write_Cmd(0x98+x);break;</p><p> default:break;</p><p><b> }</b></p><p> while(*s>0)</p><p><b> { <
111、/b></p><p> Write_Data(*s);</p><p><b> s++;</b></p><p> DelayUs2x(50);</p><p><b> }</b></p><p><b> }</b></p&
112、gt;<p> /* ------------------------------------------------ </p><p> 設(shè)定速度顯示位置 //位置顯示與上述一樣</p><p> ------------------------------------------------*/</p><p> void LCD_P
113、OS(unsigned char X,unsigned char Y)</p><p><b> {</b></p><p> unsigned char pos;</p><p> if(Y==1) {Y=0x80;}</p><p> else if(Y==2) {Y=0x90;}</p>&l
114、t;p> else if(Y==3) {Y=0x88;}</p><p> else if(Y==4) {Y=0x98;}</p><p><b> pos=Y+X;</b></p><p> Write_Cmd(pos);//顯示地址</p><p><b> }</b><
115、/p><p> /* ------------------------------------------------ </p><p> 按鍵掃描子程序,設(shè)置初始速度值程序</p><p> ------------------------------------------------*/</p><p> void KEY_SCAN
116、(void) //掃描按鍵設(shè)置初始時(shí)鐘信號(hào)</p><p><b> {</b></p><p> unsigned char shiwei;</p><p> unsigned char gewei;</p><p> if(!KEY_ADD) //十位自我設(shè)置</p>
117、<p><b> {</b></p><p> DelayMs(10);</p><p> if(!KEY_ADD)</p><p><b> {</b></p><p> while(!KEY_ADD);</p><p> if(Speed>
118、=2)</p><p><b> {</b></p><p> Speed=Speed-1; </p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p
119、><p> if(!KEY_DEC) //減自我設(shè)置</p><p><b> {</b></p><p> DelayMs(10);</p><p> if(!KEY_DEC)</p><p><b> {</b></p><p>
120、; while(!KEY_DEC);</p><p> Speed=Speed+1;</p><p><b> }</b></p><p><b> }</b></p><p> if(Speed==1)</p><p><b> {</b>
121、</p><p><b> numm=36;</b></p><p><b> }</b></p><p> if(Speed==2)</p><p><b> {</b></p><p><b> numm=22;</b>
122、;</p><p><b> }</b></p><p> if(Speed==3)</p><p><b> {</b></p><p><b> numm=14;</b></p><p><b> }</b></
123、p><p> if(Speed==4)</p><p><b> {</b></p><p><b> numm=12;</b></p><p><b> }</b></p><p> if(Speed==5)</p><p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)(論文)基于mcs51單片機(jī)步進(jìn)電機(jī)的控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- mcs51單片機(jī)溫度控制系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于mcs51單片機(jī)控制系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)
- 基于mcs51單片機(jī)的洗衣控制系統(tǒng)
- 畢業(yè)設(shè)計(jì)--基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 基于51單片機(jī)控制步進(jìn)電機(jī)畢業(yè)設(shè)計(jì)
- 基于51單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
- mcs51單片機(jī)最小系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
- 【畢業(yè)設(shè)計(jì)】基于89c51單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于at89c51單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)
- 步進(jìn)電機(jī)畢業(yè)設(shè)計(jì)---基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)
- 【畢業(yè)設(shè)計(jì)】基于89c51單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)--畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--mcs-51單片機(jī)溫度控制系統(tǒng)的設(shè)計(jì)
- 51單片機(jī)畢業(yè)論文--基于mcs-51單片機(jī)的步進(jìn)電機(jī)系統(tǒng)
- 畢業(yè)設(shè)計(jì)(論文)-基于at89c51單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)
評(píng)論
0/150
提交評(píng)論