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