版權(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><b> ?。?0 屆)</b></p><p> 基于Proteus的直流步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)</p><p> 所在學(xué)院 </p><p> 專業(yè)班級(jí)
2、 電子信息工程 </p><p> 學(xué)生姓名 學(xué)號(hào) </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 </p><p><b> 摘 要</b
3、></p><p> 直流步進(jìn)電機(jī)在生產(chǎn)設(shè)備和過程自動(dòng)化中發(fā)揮著日益重要的作用,它直接關(guān)系到對(duì)整個(gè)生產(chǎn)系統(tǒng)的控制,因此直流步進(jìn)電機(jī)控制的研究具有重要的現(xiàn)實(shí)意義。由于微型計(jì)算機(jī)與微電子技術(shù)的發(fā)展,使得步進(jìn)電機(jī)的應(yīng)用更加廣泛,在數(shù)控機(jī)床、機(jī)器人、遙控、航天等領(lǐng)域都能見到步進(jìn)電機(jī)的身影。</p><p> 直流步進(jìn)電動(dòng)機(jī)啟動(dòng)快、制動(dòng)性能良好,適合在需要快速調(diào)節(jié)的場(chǎng)合使用。本系統(tǒng)針對(duì)直流
4、步進(jìn)電機(jī)的特點(diǎn),設(shè)計(jì)了一種基于Proteus環(huán)境的直流步進(jìn)電機(jī)控制系統(tǒng)。該系統(tǒng)主要包括硬件設(shè)計(jì)、軟件設(shè)計(jì)和仿真調(diào)試三部分。</p><p> 系統(tǒng)利用單片機(jī)低功耗、處理能力強(qiáng)的特點(diǎn)來對(duì)直流步進(jìn)電機(jī)進(jìn)行控制。設(shè)定速度后,對(duì)設(shè)定的速度和旋轉(zhuǎn)方向采用脈沖分配器對(duì)電機(jī)進(jìn)行調(diào)節(jié),輸出的控制信號(hào)傳遞給速度控制電路,從而實(shí)現(xiàn)速度的控制與正反轉(zhuǎn)的控制。系統(tǒng)具有操作簡(jiǎn)便、控速精度高、自動(dòng)化程度高等特點(diǎn),有效的實(shí)現(xiàn)了直流步進(jìn)電機(jī)的
5、速度控制,具有良好的實(shí)用價(jià)值。</p><p> 關(guān)鍵詞:直流步進(jìn)電機(jī);Proteus;AT89C51單片機(jī)</p><p><b> Abstract</b></p><p> DC (direct current) stepper motor in production equipment and process automation
6、 is playing an increasingly important role, It is directly related to the control of the entire production system, DC stepper motor control therefore has important practical significance. Because micro-computer and micro
7、electronics technology, making more extensive application of the stepper motor in CNC machine tools, robots, remote control, aerospace and other fields could be seen stepping motor on the scene.</p><p> DC
8、stepper motor start fast, good braking performance, the need for rapid adjustment to suit the occasion. This system according to the characteristics of dc stepping motor, design a kind of the dc stepping motor control sy
9、stem based on Proteus The system includes three parts, hardware design, software design and simulation debugging.</p><p> System with a microcontroller to control the DC stepper motor, because of its low po
10、wer consumption, processing power is good. After setting the speed,rotation speed and direction set by adjusting the motor pulse distributor, output control signals to the speed control circuit, in order to achieve speed
11、 control and reversing control. System has many features, such as simple operation, high control accuracy, high automation, it effectively realized the dc stepping motor speed control, has the goo</p><p> K
12、ey Words:DC stepper motor;Proteus;AT89C51 microcontroller</p><p><b> 目 錄</b></p><p><b> 1 引言1</b></p><p> 2系統(tǒng)方案設(shè)計(jì)3</p><p><b> 3 硬件
13、設(shè)計(jì)4</b></p><p> 3.1 微處理器系統(tǒng)4</p><p> 3.1.1 時(shí)鐘電路4</p><p> 3.1.2 復(fù)位電路5</p><p> 3.2步進(jìn)電機(jī)驅(qū)動(dòng)模塊5</p><p> 3.2.1 電機(jī)驅(qū)動(dòng)模塊選擇5</p><p> 3.2
14、.2 電機(jī)驅(qū)動(dòng)模塊介紹6</p><p> 3.2.3直流步進(jìn)電機(jī)驅(qū)動(dòng)電路圖7</p><p> 3.3 液晶顯示模塊8</p><p> 3.3.1顯示模塊選擇8</p><p> 3.3.2 液晶顯示器介紹8</p><p> 3.3.3 液晶顯示電路9</p><p>
15、; 3.4鍵盤控制模塊9</p><p> 3.4.1 鍵盤控制模塊元件選擇9</p><p> 3.4.2 鍵盤控制模塊電路10</p><p><b> 4 軟件設(shè)計(jì)11</b></p><p> 4.1 主程序11</p><p> 4.2 轉(zhuǎn)速控制程序12</
16、p><p> 4.3 方向控制程序14</p><p> 4.4 液晶顯示模塊15</p><p> 4.5 按鍵控制模塊16</p><p> 5 仿真和調(diào)試17</p><p> 5.1 調(diào)試工具與平臺(tái)17</p><p> 5.2 系統(tǒng)調(diào)試與仿真17</p>
17、<p> 5.3 測(cè)試結(jié)果與分析20</p><p> 5.3.1 設(shè)計(jì)所達(dá)到的性能指標(biāo)20</p><p> 5.3.2 結(jié)果分析論述20</p><p><b> 7 結(jié)論21</b></p><p> 致 謝錯(cuò)誤!未定義書簽。</p><p><b&
18、gt; 參考文獻(xiàn)22</b></p><p><b> 1 引言</b></p><p> 步進(jìn)電機(jī)是將電脈沖信號(hào)變換成角位移或直線位移的執(zhí)行部件。它有定位和運(yùn)轉(zhuǎn)兩種基本狀態(tài),當(dāng)有脈沖輸入時(shí)步進(jìn)電機(jī)一步一步地轉(zhuǎn)動(dòng),每給它一個(gè)脈沖信號(hào),它就轉(zhuǎn)動(dòng)一定的角度[1]。步進(jìn)電機(jī)的角位移量和輸入脈沖的個(gè)數(shù)嚴(yán)格成正比,在時(shí)間上與輸入脈沖同步,因此只要控制輸入脈沖
19、的數(shù)量、頻率及電動(dòng)機(jī)繞組通電的相序,便可獲得所需的轉(zhuǎn)角、轉(zhuǎn)速及轉(zhuǎn)動(dòng)方向。在沒有脈沖輸入時(shí),在繞組電源的激勵(lì)下氣隙磁場(chǎng)能使轉(zhuǎn)子保持原有位置處于定位狀態(tài),因此非常適合予單片機(jī)控制。步進(jìn)電機(jī)作為一種高可控性的特種電機(jī),利用其沒有誤差積累的特點(diǎn),廣泛應(yīng)用于各種開環(huán)控制[2]。</p><p> 步進(jìn)電機(jī)在簡(jiǎn)單的開環(huán)工作方式下能夠達(dá)到相當(dāng)高的定位精度,且低速運(yùn)行時(shí)又可輸出很大的轉(zhuǎn)矩,因此在運(yùn)動(dòng)控制中得到了廣泛的應(yīng)用[3]
20、。步進(jìn)電機(jī)在使用中三個(gè)主要的電機(jī)結(jié)構(gòu)是:永久磁鐵式,可變磁阻式和混合式[4]。直流步進(jìn)電機(jī)是最常見和成本最低的小型步進(jìn)電機(jī),具有良好的起動(dòng)、制動(dòng)性能,宜于在大范圍內(nèi)平滑調(diào)速,在許多需要調(diào)速或快速正反向的電力拖動(dòng)領(lǐng)域中得到了廣泛的應(yīng)用。直流步進(jìn)電機(jī)的特性使它成為調(diào)速系統(tǒng)最容易使用的電機(jī)。目前,隨著單片機(jī)技術(shù)的日新月異,使得許多控制功能及算法可以采用軟件技術(shù)來完成,為直流步進(jìn)電機(jī)的控制提供了更大的靈活性,并使系統(tǒng)能達(dá)到更高的性能。采用單片機(jī)
21、構(gòu)成控制系統(tǒng),可以節(jié)約人力資源和降低系統(tǒng)成本,從而有效的提高工作效率。</p><p> Proteus軟件是來自英國(guó)Labcenter electronics公司的EDA工具軟件,組合了高級(jí)原理布圖、混合模式SPICE仿真,PCB設(shè)計(jì)以及自動(dòng)布線來實(shí)現(xiàn)一個(gè)完整的電子設(shè)計(jì)統(tǒng)[5]。Proteus與其他單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒有單片機(jī)參與電路的工作情況
22、。因此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語句執(zhí)行時(shí)單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過程和結(jié)果。這樣就彌補(bǔ)了實(shí)驗(yàn)和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象。也避免因硬件電路設(shè)計(jì)過程錯(cuò)誤引起的程序異?;蛴布?shí)驗(yàn)條件限制影響開發(fā)[6]。</p><p> Proteus軟件提供了大量的仿真設(shè)備和元器件,比如有30多個(gè)元件庫(kù),以及數(shù)千種數(shù)字和模擬元件,還包括各種單片機(jī)、常用邏輯電路,各種虛
23、擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等,還有各種調(diào)試信號(hào)直流、交流、脈沖及各種變化信號(hào)[7]。通過Proteus中各虛擬儀器所構(gòu)建硬件電路,調(diào)試所設(shè)計(jì)程序的控制效果,達(dá)到虛擬硬件調(diào)試、虛擬系統(tǒng)調(diào)試程序的目的,為步進(jìn)電機(jī)控制系統(tǒng)開發(fā)提供有效的理論實(shí)踐依據(jù)。</p><p><b> 系統(tǒng)方案設(shè)計(jì)</b></p><p> 在制定直流電動(dòng)機(jī)的控制系統(tǒng)總體方案的時(shí),
24、首先考慮軟件與硬件的合理分配,以達(dá)到速度與靈活性的均衡。硬件的優(yōu)勢(shì)在于響應(yīng)速度快,可靠性高,而軟件的特點(diǎn)則是靈活、適應(yīng)性強(qiáng)。具體到本設(shè)計(jì)中考慮到要求對(duì)直流步進(jìn)電動(dòng)機(jī)能夠靈活精確的調(diào)速,因此選用軟硬件相結(jié)合的方式。直流電動(dòng)機(jī)驅(qū)動(dòng)和控制的系統(tǒng)的結(jié)構(gòu)圖如圖2-1所示。</p><p> 圖2-1 系統(tǒng)結(jié)構(gòu)圖</p><p> 本設(shè)計(jì)是實(shí)現(xiàn)一個(gè)由51單片機(jī)控制的直流步進(jìn)電機(jī)系統(tǒng),單片機(jī)產(chǎn)生驅(qū)
25、動(dòng)脈沖信號(hào),產(chǎn)生的脈沖信號(hào)傳遞給直流步進(jìn)電機(jī)的驅(qū)動(dòng)器,由于單片機(jī)產(chǎn)生的驅(qū)動(dòng)脈沖信號(hào)是設(shè)定好的,則步進(jìn)電機(jī)將會(huì)按照設(shè)定好的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度,將脈沖信號(hào)變成角位移。直流步進(jìn)電機(jī)的轉(zhuǎn)速是由脈沖信號(hào)頻率控制的,改變單片機(jī)產(chǎn)生的驅(qū)動(dòng)脈沖就能夠控制步進(jìn)電機(jī)的轉(zhuǎn)速與角位移量,以此來達(dá)到調(diào)速的目的。同樣,改變脈沖信號(hào)的方向就能夠改變步進(jìn)電機(jī)的旋轉(zhuǎn)方向。</p><p> 將單片機(jī)AT89C51產(chǎn)生的驅(qū)動(dòng)脈沖通過L297/
26、L298芯片進(jìn)行功率放大,從而驅(qū)動(dòng)步進(jìn)電機(jī)。通過設(shè)置好的按鍵,實(shí)現(xiàn)步進(jìn)電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、加速、減速等功能,其控制方法是通過軟硬件相結(jié)合的方法,來實(shí)現(xiàn)了運(yùn)用單片機(jī)對(duì)步進(jìn)電機(jī)的穩(wěn)定控制,最終達(dá)到設(shè)計(jì)要求。系統(tǒng)采用LM016L液晶顯示屏即時(shí)顯示控制電動(dòng)機(jī)的轉(zhuǎn)動(dòng)信息。系統(tǒng)軟件編寫遵循模塊化設(shè)計(jì)的原則,代碼具有良好的易維護(hù)性和可移植性。</p><p><b> 3 硬件設(shè)計(jì)</b></p&g
27、t;<p> 本系統(tǒng)硬件主要有五大模塊組成:微處理器系統(tǒng)、電機(jī)驅(qū)動(dòng)模塊、液晶顯示模塊、鍵盤控制模塊。</p><p> 3.1 微處理器系統(tǒng)</p><p> 系統(tǒng)采用AT89C51作為微處理器系統(tǒng)。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓、高性能CMOS 8位微處理器。該器件與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU
28、和閃爍存儲(chǔ)器組合在單個(gè)芯片中,AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案[8]。</p><p> 3.1.1 時(shí)鐘電路</p><p> 單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。在芯片外部XTAL1和XTAL2之間跨接晶體振蕩器和微調(diào)電容,構(gòu)成了一個(gè)穩(wěn)定的自激振蕩器。這里使用振蕩頻率為12MHz的石英晶體。其電
29、路圖如圖3-1所示。在晶振兩端加了2個(gè)300pF的起振電容C1、C2,電容的作用是補(bǔ)償和保護(hù),這也就使晶振能夠方便快速的起振。</p><p> 圖3-1 晶振時(shí)鐘電路</p><p> 3.1.2 復(fù)位電路</p><p> 為確保微機(jī)系統(tǒng)中電路穩(wěn)定可靠工作,復(fù)位電路是必不可少的一部分,復(fù)位電路的第一功能是上電復(fù)位。一般微機(jī)電路正常工作需要供電電源為5V&
30、#177;5%,即4.75~5.25V。由于微機(jī)電路是時(shí)序數(shù)字電路,它需要穩(wěn)定的時(shí)鐘信號(hào),因此在電源上電時(shí),只有當(dāng)VCC超過4.75V低于5.25V以及晶體振蕩器穩(wěn)定工作時(shí),復(fù)位信號(hào)才被撤除,微機(jī)電路開始正常工作。</p><p> 為了避免復(fù)位時(shí)間過長(zhǎng),單片機(jī)處于循環(huán)復(fù)位狀態(tài),復(fù)位電路中的R、C的值的選擇必須適當(dāng)。本設(shè)計(jì)采用按鍵電平復(fù)位,電平復(fù)位是通過RST端經(jīng)電阻與VCC接通而實(shí)現(xiàn)的,其電路圖如圖3-2所示
31、。RST引腳是復(fù)位信號(hào)的輸入端,復(fù)位信號(hào)是高電平有效。</p><p> 圖3-2 單片機(jī)復(fù)位電路</p><p> 3.2步進(jìn)電機(jī)驅(qū)動(dòng)模塊</p><p> 3.2.1 電機(jī)驅(qū)動(dòng)模塊選擇</p><p> 步進(jìn)電機(jī)驅(qū)動(dòng)模塊可以從兩種方案中選擇。</p><p> 方案一:采用H橋式驅(qū)動(dòng)。H橋式電機(jī)驅(qū)動(dòng)電路
32、包括4個(gè)三極管,每個(gè)三極管接一個(gè)電機(jī)的繞組,要使電機(jī)運(yùn)轉(zhuǎn),必須導(dǎo)通對(duì)角線上的一對(duì)三極管。因?yàn)殡姍C(jī)的轉(zhuǎn)速是通過對(duì)勵(lì)磁繞組的導(dǎo)通與截止實(shí)現(xiàn)的,所以根據(jù)不同三極管對(duì)的導(dǎo)通情況,電流可能會(huì)從左至右或從右至左流過電機(jī),從而控制電機(jī)的旋轉(zhuǎn)方向和速度。這種方案在實(shí)際設(shè)計(jì)用分立元件制作H橋比較復(fù)雜,需要控制器件也太多,不符合設(shè)計(jì)簡(jiǎn)潔的要求。</p><p> 方案二:采用專用集成電路芯片LM18200T驅(qū)動(dòng)電機(jī),用單片機(jī)控制L
33、M18200T的輸入使之工作在占空比可調(diào)的開關(guān)狀態(tài),精確調(diào)整電動(dòng)機(jī)轉(zhuǎn)速。電子開關(guān)的速度很快,穩(wěn)定性也極強(qiáng)。采用集成電路芯片,節(jié)省空間和元器件。缺點(diǎn)是電機(jī)啟動(dòng)時(shí),由于突然施加的電壓比較高,電機(jī)容易失步;而且價(jià)格較昂貴。</p><p> 方案三:使用L298芯片驅(qū)動(dòng)電機(jī)[9]</p><p> L298既可以驅(qū)動(dòng)直流電機(jī)也可以驅(qū)動(dòng)步進(jìn)電機(jī),本設(shè)計(jì)中電動(dòng)機(jī)為直流步進(jìn)電機(jī)。L298芯片輸出電
34、壓最高可達(dá)50V,可以直接通過電源來調(diào)節(jié)輸出電壓;可以直接用單片機(jī)的IO口提供信號(hào);而且電路簡(jiǎn)單,使用比較方便。</p><p> 通過三種方案的比較分析,使用L298芯片充分發(fā)揮了它的調(diào)節(jié)功能,能通過電源電壓調(diào)節(jié)輸出電壓來穩(wěn)定地驅(qū)動(dòng)步進(jìn)電機(jī),且價(jià)格不高,故選用L298驅(qū)動(dòng)電機(jī)。</p><p> 3.2.2 電機(jī)驅(qū)動(dòng)模塊</p><p> 本系統(tǒng)的電機(jī)驅(qū)動(dòng)模
35、塊是由L297與L298組合方式實(shí)現(xiàn)的。L297是步進(jìn)電機(jī)控制器,應(yīng)用于雙極性兩相步進(jìn)電機(jī)或單極性四相步進(jìn)電機(jī)的控制,可有半步、正步和波狀三種驅(qū)動(dòng)模式。片內(nèi)PWM斬波電路允許開關(guān)式控制繞組電流。L297的一個(gè)顯著特點(diǎn)是僅需時(shí)鐘、方向和模式輸入信號(hào)。由于步進(jìn)電機(jī)所需相位由電路內(nèi)部產(chǎn)生,這樣就很好的減輕了單片機(jī)的負(fù)擔(dān)。</p><p> L298是SGS公司的產(chǎn)品,內(nèi)部包含4通道邏輯驅(qū)動(dòng)電路。是一種二相和四相電機(jī)的
36、專用驅(qū)動(dòng)器,即內(nèi)含二個(gè)H橋的高電壓大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn)TTL邏輯電平信號(hào),可驅(qū)動(dòng)46V、2A以下的電機(jī)[10]。</p><p> 因?yàn)橄到y(tǒng)所用的電機(jī)為四相電機(jī),所以L297與L298的組合電路能滿足設(shè)計(jì)要求。這種組合的驅(qū)動(dòng)方式為定電流驅(qū)動(dòng),每相電流的峰值可達(dá)2A。在驅(qū)動(dòng)電路中,L297作為步進(jìn)電機(jī)的控制器,用來產(chǎn)生驅(qū)動(dòng)信號(hào)與電機(jī)電流的設(shè)定。L298則作為驅(qū)動(dòng)步進(jìn)電機(jī)的電力輸出,是雙全橋連接方式驅(qū)動(dòng)。
37、因?yàn)轵?qū)動(dòng)電路采用的是雙極性驅(qū)動(dòng),因此電機(jī)線圈能夠被完全利用,這就使得步進(jìn)電機(jī)可以達(dá)到最佳的驅(qū)動(dòng)效果。</p><p> 3.2.3直流步進(jìn)電機(jī)驅(qū)動(dòng)電路圖</p><p> 根據(jù)系統(tǒng)設(shè)計(jì)的要求,L297的引腳4(A)與L298的IN1相連,其作用是傳輸給L298步進(jìn)電機(jī)的A相驅(qū)動(dòng)信號(hào)。引腳5(INH1)與L298的ENA端相連,這樣做的目的是為了控制A相和B相的驅(qū)動(dòng)極。當(dāng)此引腳為低電平時(shí)
38、,A相、B相驅(qū)動(dòng)控制被禁止;當(dāng)線圈級(jí)斷電時(shí),雙極性橋用這個(gè)信號(hào)使負(fù)載電源快速衰減。若CONTROL端輸入是低電平時(shí),用斬波器調(diào)節(jié)負(fù)載電流。L297的引腳6(B)與L298的IN2相連,其作用是傳輸給L298步進(jìn)電機(jī)的B相驅(qū)動(dòng)信號(hào);L297的引腳7(C)與L298的IN3相連,其作用是傳輸給L298步進(jìn)電機(jī)的C相驅(qū)動(dòng)信號(hào);引腳8與L298的ENB相連來控制步進(jìn)電機(jī)C相與D相的驅(qū)動(dòng)級(jí),其作用與引腳5(INH1)相同。L297的10腳(ENA
39、BLE)是其使能端,當(dāng)它為低電平時(shí),INH1,INH2,A,B,C,D都為低電平。當(dāng)系統(tǒng)被復(fù)位時(shí)用來阻止電機(jī)驅(qū)動(dòng)。L297的SENS2和SENS1與L298的SENSB和SENSA相連,這樣連接的作用是生成步進(jìn)電機(jī)四相的電壓反饋電路,在反饋電路中需要添加一個(gè)與信號(hào)源內(nèi)阻相同的反饋電阻,這樣可以減少輸出失調(diào)電壓,提高跟隨精度。L297的17腳(</p><p> 綜上所述,可以在Proteus軟件下生成L297與
40、L298組合生成的直流步進(jìn)電機(jī)驅(qū)動(dòng)仿真圖,如圖3-3所示。</p><p> 圖3-3 步進(jìn)電機(jī)驅(qū)動(dòng)模塊</p><p> 3.3 液晶顯示模塊</p><p> 3.3.1顯示模塊選擇</p><p> 顯示模塊采用的是液晶顯示屏。這是因?yàn)長(zhǎng)CD具有功耗低、輕薄短小、平面直角顯示以及影象穩(wěn)定不閃爍,可視面積大,畫面效果好,抗干擾能
41、力強(qiáng)等特點(diǎn)。而數(shù)碼管雖然低能耗、低損耗、低壓、壽命長(zhǎng)、耐老化,程序編譯容易,資源占用較少,但顯示的內(nèi)容較少,并不是很符合系統(tǒng)要求。</p><p> 3.3.2 液晶顯示器</p><p> 根據(jù)系統(tǒng)的設(shè)計(jì)要求及設(shè)計(jì)條件,本系統(tǒng)采用LM016L液晶顯示器。LM016L液晶模塊采用HD44780作為主控芯片,能夠?qū)崿F(xiàn)字符移動(dòng)、閃爍等功能,具有簡(jiǎn)單而功能較強(qiáng)的指令集。LM016L與單片機(jī)M
42、CU通訊可采用8位或者4位并行傳輸兩種方式。HD44780控制器有兩個(gè)8位寄存器、指令寄存器(IR)和數(shù)據(jù)寄存器(DR)、忙標(biāo)志(BF)、顯示數(shù)據(jù)RAM(DDRAM)、字符發(fā)生器ROM(CGROM)、字符發(fā)生器RAM(CGRAM)、地址計(jì)數(shù)器(AC)[11]。字符產(chǎn)生器存儲(chǔ)了192個(gè)常用字符,用戶自定義的字符產(chǎn)生CGRAM。除了CGROM和CGRAM外,LCD內(nèi)部還有一個(gè)DDRAM,其作用是存放待顯示的內(nèi)容,LCD控制器的指令還規(guī)定,必
43、須先送待顯示字符的顯示位置也就是DDRAM的地址然后再送待顯示字符代碼指令。當(dāng)忙標(biāo)志BF為1時(shí),液晶模塊處于內(nèi)部處理模式,不能響應(yīng)外部操作指令和接受數(shù)據(jù)。</p><p> 3.3.3 液晶顯示電路</p><p> 根據(jù)元器件各個(gè)引腳的功能以及系統(tǒng)要求。其中D0~D7為數(shù)據(jù)線接接單片機(jī)P0.0~P0.7接口;RS端與單片機(jī)P2.0接口相連,其功能為高電平時(shí)數(shù)據(jù)線上為數(shù)據(jù)信號(hào),低電平時(shí)
44、數(shù)據(jù)線上為指令信號(hào);RW端接單片機(jī)P2.1接口,功能為高電平時(shí)為讀數(shù)據(jù)模式,低電平時(shí)為寫數(shù)據(jù)模式;E為使能端接單片機(jī)P2.2接口。因?yàn)橐壕э@示器是與單片機(jī)的P0口相連的,所以必須在液晶顯示器的數(shù)據(jù)線與單片機(jī)P0口間的連接線上加上上拉電阻。這是因?yàn)樵O(shè)計(jì)選用的顯示模塊為液晶顯示器,液晶顯示器為NPN型,只有P0為1時(shí)才能使后端導(dǎo)通。但是單片機(jī)的P0口是開漏的,不管它的驅(qū)動(dòng)能力多大,相當(dāng)于它是沒有電源的,需要外部的電路提供,因此需要上拉電阻。
45、顯示電路如圖3-4所示。</p><p> 圖3-4 液晶顯示電路</p><p><b> 3.4鍵盤控制模塊</b></p><p> 3.4.1 鍵盤控制模塊元件選擇</p><p> 由于系統(tǒng)設(shè)計(jì)中直流步進(jìn)電機(jī)的控制變速范圍相對(duì)比較廣。再加上需要控制直流步進(jìn)電機(jī)的正反轉(zhuǎn),所以需要多按鍵的鍵盤來實(shí)現(xiàn)設(shè)定的
46、功能。根據(jù)系統(tǒng)的需求最終選擇Proteus元件庫(kù)中的BUTTON按鍵來實(shí)現(xiàn)。系統(tǒng)中的按鍵按照設(shè)計(jì)要求分為四個(gè),分別為加速按鍵、減速按鍵、正轉(zhuǎn)按鍵、反轉(zhuǎn)按鍵。四個(gè)按鍵與設(shè)計(jì)要求的功能一一對(duì)應(yīng),足以滿足系統(tǒng)設(shè)計(jì)要求。</p><p> 3.4.2 鍵盤控制模塊電路</p><p> 在設(shè)計(jì)中開外部中斷0能使脈沖頻率加快,所以加速鍵與單片機(jī)的P3.2口相連,開外部中斷1使脈沖頻率變慢,因此減
47、速鍵與單片機(jī)的P3.3口相連。通過控制定時(shí)器能夠控制電機(jī)的旋轉(zhuǎn)方向,所以單片機(jī)P3.4和P3.5分別于正轉(zhuǎn)鍵和反轉(zhuǎn)鍵相連。</p><p> 在按鍵與單片機(jī)相連時(shí)必須要接上拉電阻,這是為了為了防止干擾,增加電路的穩(wěn)定性。因?yàn)樵谠骷嗟那闆r下單片機(jī)提供高電平信號(hào)能力不足。而一旦這些信號(hào)被負(fù)載或者干擾拉下到某個(gè)電壓下,單片機(jī)無法正確地接收信息和發(fā)出指令,只能不斷地復(fù)位重啟。當(dāng)按下其中一個(gè)按鍵時(shí),電源通過上拉電阻和
48、按鍵接地形成通路,使相應(yīng)的單片機(jī)輸入管腳接地,也就是給單片機(jī)送入一個(gè)低電平,此地電平為有效電平。鍵盤模塊的電路圖如圖3-5所示。</p><p> 圖3-5 鍵盤模塊電路圖</p><p><b> 4 軟件設(shè)計(jì)</b></p><p> 系統(tǒng)的軟件設(shè)計(jì)主要包括主程序、轉(zhuǎn)速控制程序、方向控制程序、液晶顯示模塊、按鍵控制模塊五部分。<
49、;/p><p><b> 4.1 主程序</b></p><p> 通過對(duì)系統(tǒng)的分析可以得出,因?yàn)殡S時(shí)都有可能加速、減速、等級(jí)變速和旋轉(zhuǎn)方向信號(hào),所以采用中斷方式效率最高。其中主程序要完成的工作主要有系統(tǒng)初始化的設(shè)置、系統(tǒng)狀態(tài)的顯示以及各種速度的判斷等。系統(tǒng)初始狀態(tài)的設(shè)置內(nèi)容比較多,需要初始化定時(shí)器、外部中斷,對(duì)定時(shí)器送初值以決定脈沖分配方式,速度值存儲(chǔ)區(qū)送初值決定步
50、進(jìn)電機(jī)的啟動(dòng)速度,對(duì)方向值存儲(chǔ)區(qū)送初值決定步進(jìn)電機(jī)旋轉(zhuǎn)方向等[12]。系統(tǒng)開啟不操作的情況下,電機(jī)旋轉(zhuǎn)方向?yàn)檎D(zhuǎn),轉(zhuǎn)速值為120n/min。主程序流程圖如圖4-1所示。</p><p> 圖4-1 主程序流程圖</p><p> 主程序中初始化程序如下所示:</p><p> TMOD=0x66;</p><p><b>
51、 EA=1;</b></p><p><b> TH0=0xff;</b></p><p> TL0=0xff; </p><p><b> ET0=1;</b></p><p><b> TR0=1;</b></p><p><
52、;b> TH1=0xff;</b></p><p><b> TL1=0xff;</b></p><p><b> ET1=1;</b></p><p><b> TR1=1;</b></p><p><b> IT0=1;</b&g
53、t;</p><p><b> EX0=1;</b></p><p><b> IT1=1;</b></p><p><b> EX1=1;</b></p><p> TMOD是一個(gè)專用寄存器,用于設(shè)定兩個(gè)定時(shí)器/計(jì)數(shù)器的工作方式,因?yàn)橄到y(tǒng)需要兩個(gè)計(jì)數(shù)器所以TMOD中的
54、C/T位為1,還需要常數(shù)自動(dòng)裝入的8位計(jì)數(shù)器工作方式即TMOD中的M1和M0位分別為1、0,所以TMOD=0x66。EA=1表示中斷允許。因?yàn)閱纹瑱C(jī)工作方式是8位計(jì)數(shù)結(jié)構(gòu),計(jì)數(shù)值有限,最大只能到255,所以TL0=0xff,TH0=0xff,TL1=0xff,TH0=0xff。TR0=1和TR1=1作用是啟動(dòng)定時(shí)器0和定時(shí)器1。ET0=1,ET1=1表示定時(shí)器0和定時(shí)器1允許中斷。IT0=1,IT1=1為脈沖觸發(fā)方式(負(fù)跳變有效)。EX
55、0=1表示允許外部中斷0中斷,EX1=1表示允許外部中斷1中斷。</p><p> 4.2 轉(zhuǎn)速控制程序</p><p> 步進(jìn)電機(jī)是否轉(zhuǎn)動(dòng)是由其控制繞組中步進(jìn)脈沖有無來決定的,轉(zhuǎn)動(dòng)的速度和方向通過控制繞組中的通電方式?jīng)Q定。因此要實(shí)現(xiàn)步進(jìn)的目的就必須給電機(jī)的各繞組按一定的規(guī)律分配時(shí)鐘脈沖。</p><p> 脈沖分配器又稱環(huán)形分配器。其主要功能是把來源于控制環(huán)
56、節(jié)的時(shí)鐘脈沖串按一定的規(guī)律分配給步進(jìn)電機(jī)驅(qū)動(dòng)器的各相輸入端,從而達(dá)到步進(jìn)的目的[13]。</p><p> 電機(jī)的各勵(lì)磁繞組導(dǎo)通時(shí)間長(zhǎng)了電機(jī)轉(zhuǎn)速變快,反之,各勵(lì)磁繞組截止時(shí)間長(zhǎng)了電機(jī)轉(zhuǎn)速變慢。因此基于步進(jìn)電機(jī)和時(shí)鐘脈沖成正比這種關(guān)系,可以采用單片機(jī)內(nèi)部定時(shí)/計(jì)數(shù)器,利用軟件延時(shí)可以很容易改變單片機(jī)的脈沖頻率,以此來實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)轉(zhuǎn)速的控制。這樣也使得硬件設(shè)計(jì)更加簡(jiǎn)潔[14]。</p><p&
57、gt; 直流步進(jìn)電機(jī)的速度控制實(shí)際上是對(duì)系統(tǒng)發(fā)出的脈沖信號(hào)的頻率或方向進(jìn)行控制。即在加速過程中,使脈沖輸出頻率增加;在減速過程中,使脈沖輸出頻率減少。軟件延時(shí)與硬件中斷都可以改變脈沖信號(hào)的頻率。</p><p> 定時(shí)器初始值定義后,改變定時(shí)器循環(huán)次數(shù),即可實(shí)現(xiàn)步進(jìn)電機(jī)的加減速調(diào)節(jié)。系統(tǒng)轉(zhuǎn)度控制流程圖如圖4-2所示。</p><p> 圖4-2 直流步進(jìn)電機(jī)轉(zhuǎn)速控制流程圖</
58、p><p> 轉(zhuǎn)速控制程序如下所示:</p><p> unsigned int RunSpeed=50</p><p> //中斷0:加速程序</p><p> if(RunSpeed>=12)</p><p> RunSpeed=RunSpeed-2;</p><p> //中
59、斷1:減速程序</p><p> if(RunSpeed<=100)</p><p> RunSpeed=RunSpeed+2;</p><p> 程序中RunSpeed為每個(gè)脈沖需要的時(shí)間,其初始值為50ms/脈沖,所以系統(tǒng)啟動(dòng)時(shí)電機(jī)轉(zhuǎn)速為120轉(zhuǎn)/分.RunSpeed>=12表示每個(gè)脈沖需要的時(shí)間大于或等于12ms/脈沖即電機(jī)轉(zhuǎn)速為500轉(zhuǎn)/分
60、;RunSpeed<=100表示每個(gè)脈沖需要的時(shí)間小于或等于100ms/脈沖即電機(jī)轉(zhuǎn)速為50轉(zhuǎn)/分。</p><p> 4.3 方向控制程序</p><p> 直流步進(jìn)電機(jī)方向的控制也就是脈沖信號(hào)方向的控制。通過改變脈沖信號(hào)的相位來改變電機(jī)的運(yùn)行方向,由于定時(shí)器產(chǎn)生的脈沖頻率一定時(shí),只有通過外部中斷來實(shí)現(xiàn)脈沖相位的改變,當(dāng)脈沖相位改變時(shí),定時(shí)器判斷電機(jī)轉(zhuǎn)動(dòng)方向并提供相同的脈沖頻率
61、,以實(shí)現(xiàn)改變電機(jī)轉(zhuǎn)動(dòng)方向不改變電機(jī)轉(zhuǎn)速的目的。電機(jī)方向控制流程圖如圖4-3所示。</p><p> 圖4-3 電機(jī)方向控制流程圖</p><p> 電機(jī)方向控制主要程序如下所示:</p><p> #define RIGHT_RUN 1</p><p> //定時(shí)器0中斷程序:正轉(zhuǎn)</p><p> Run
62、State=RIGHT_RUN;</p><p><b> P1_0=1;</b></p><p> #define LEFT_RUN 0</p><p> //定時(shí)器1中斷:反轉(zhuǎn)</p><p> RunState=LEFT_RUN;</p><p><b> P1_0=0;
63、 </b></p><p> 步進(jìn)電機(jī)啟動(dòng)時(shí)為正轉(zhuǎn),P1_0=1、P1_0=0是電機(jī)的轉(zhuǎn)向標(biāo)志。#define RIGHT_RUN 1,表示電機(jī)轉(zhuǎn)向標(biāo)志為1,步進(jìn)電機(jī)正轉(zhuǎn);#define LEFT_RUN 0表示電機(jī)轉(zhuǎn)向標(biāo)志為0,步進(jìn)電機(jī)反轉(zhuǎn)。</p><p> 4.4 液晶顯示模塊</p><p> 液晶顯示模塊的主要功能是通過讀取單片機(jī)提供的信
64、息,在LCD上顯示實(shí)時(shí)的電機(jī)轉(zhuǎn)速,轉(zhuǎn)動(dòng)方向及部分按鍵功能。LCD的初始化包括復(fù)位設(shè)置、清除顯示、地址歸位、顯示開關(guān)、游標(biāo)設(shè)置、讀寫地址設(shè)置等。</p><p> 液晶顯示的操作主要步驟:</p><p> 初始化。當(dāng)系統(tǒng)啟動(dòng)時(shí),液晶顯示模塊會(huì)自動(dòng)恢復(fù)到設(shè)定好的顯示方式。初始化程序如下所示:</p><p><b> P0=0x38; </b&g
65、t;</p><p><b> P0=0x0f; </b></p><p><b> P0=0x0c; </b></p><p> P0=0x38是對(duì)液晶顯示器進(jìn)行功能設(shè)置,設(shè)置內(nèi)容為2行顯示,5*7點(diǎn)陣,8位數(shù)據(jù)寬度。P0=0x0f表示P0口作為數(shù)據(jù)輸入口。P0=0x0c表示液晶顯示器的顯示開但是光標(biāo)關(guān)。</
66、p><p> 寫命令。顯示位置設(shè)置、清屏。寫命令程序如下所示:</p><p><b> P0=0x01;</b></p><p><b> P0=0x06;</b></p><p> P0=0x01為清屏指令;P0=0x06表示輸入方式的設(shè)置,其對(duì)液晶顯示器的輸入設(shè)置為當(dāng)將一字符寫入DDRAM
67、時(shí),地址加1,光標(biāo)右移,整個(gè)顯示不移動(dòng)。</p><p> 寫數(shù)據(jù)。把需要顯示字符的ASCII寫入液晶并讓其顯示。寫數(shù)據(jù)程序代碼如下所示:</p><p><b> RS=0;</b></p><p><b> RW=0;</b></p><p><b> E=0;</b&g
68、t;</p><p><b> E=1;</b></p><p> RS=0表示數(shù)據(jù)線上為指令信號(hào);RW=0是將液晶顯示器的工作模式變?yōu)閷憯?shù)據(jù)模式。</p><p> 讀忙信號(hào)。液晶顯示屬于慢顯示器件,所以在執(zhí)行每條指令前一定應(yīng)該測(cè)忙信號(hào),確定其不忙時(shí)再進(jìn)行操作。當(dāng)確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯
69、示字符地址,也就是告訴模塊在哪里顯示字符[15]。讀忙信號(hào)程序如下所示:</p><p><b> RS=0;</b></p><p><b> RW=1;</b></p><p><b> E=0;</b></p><p> for(a=0;a<2;a++);
70、</p><p><b> E=1;</b></p><p><b> P0=0xff;</b></p><p> if(P0_7==0);</p><p><b> return 0;</b></p><p><b> else;&
71、lt;/b></p><p> goto start;</p><p> RS=0表示數(shù)據(jù)線上為指令信號(hào),RW=1為液晶顯示器讀數(shù)據(jù)模式,E=0為使能端置0,for(a=0;a<2;a++)表示第一、第二行循環(huán)。P0=0xff是因?yàn)樵趯?后,引腳就和地?cái)嚅_,讀到的為真實(shí)的數(shù)據(jù)。否則,引腳和地連接的話,無論外部電路是高電平還是低電平,引腳都會(huì)把它拉低,這樣讀到的總是0。if(
72、P0_7==0)判斷模塊的忙標(biāo)志是否為低電平。</p><p> 4.5 按鍵控制模塊</p><p> 按鍵控制模塊程序如下所示:</p><p> void t_0(void) interrupt 1//正轉(zhuǎn)按鍵</p><p> void t_1(void) interrupt 3//反轉(zhuǎn)按鍵</p><p&
73、gt; void SpeedUp() interrupt 0//加速按鍵</p><p> void SpeedDowm() interrupt 2//減速按鍵</p><p> 當(dāng)按下正轉(zhuǎn)按鍵時(shí)定時(shí)器0外部輸入為低電平,定時(shí)器0有效,定時(shí)器0控制步進(jìn)電機(jī)正轉(zhuǎn);當(dāng)按下反轉(zhuǎn)按鍵時(shí)定時(shí)器1外部輸入為低電平,定時(shí)器1有效,定時(shí)器1控制步進(jìn)電機(jī)正轉(zhuǎn);當(dāng)按下加速按鍵時(shí)外部中斷0有效,外部中斷0
74、控制步進(jìn)電機(jī)加速;當(dāng)按下減速按鍵時(shí)外部中斷1有效,外部中斷1控制步進(jìn)電機(jī)減速。</p><p><b> 5 仿真和調(diào)試</b></p><p> 5.1 調(diào)試工具與平臺(tái)</p><p> 本設(shè)計(jì)采用Keil C編程,用Proteus軟件仿真。Keil C是一種單片機(jī)C語言軟件開發(fā)系統(tǒng),此軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,
75、其生成的目標(biāo)代碼效率非常高,多數(shù)語句生成的匯編代碼緊湊且容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)。</p><p> Proteus的ISIS是一款電路分析實(shí)物仿真系統(tǒng),可仿真、分析各種模擬電路與集成電路,元件庫(kù)齊全,具有對(duì)單片機(jī)及其外圍電路組成的綜合系統(tǒng)的交互仿真功能,是不可多得的專業(yè)的單片機(jī)軟件仿真系統(tǒng)。</p><p> 因?yàn)橄到y(tǒng)程序比較復(fù)雜,為了使仿真運(yùn)行能夠達(dá)到預(yù)期的
76、效果,要對(duì)Keil C與Proteus進(jìn)行聯(lián)合調(diào)試。進(jìn)行聯(lián)調(diào)是為了在keil c51中運(yùn)行程序時(shí),proteus中的單片機(jī)系統(tǒng)也會(huì)跟著運(yùn)行。這時(shí)可以在keil c51中進(jìn)行單步、跳過、運(yùn)行到光標(biāo)、運(yùn)行到斷點(diǎn)等調(diào)試,同時(shí)可以在proteus的單片機(jī)系統(tǒng)中跟蹤觀察運(yùn)行結(jié)果。</p><p> 5.2 系統(tǒng)調(diào)試與仿真</p><p> 當(dāng)連接好仿真元件和載入AT89C51的執(zhí)行文件后,單擊P
77、roteus的仿真啟動(dòng)按鈕,則開始對(duì)本系統(tǒng)的仿真。其運(yùn)行流程如下:</p><p> (1)首先進(jìn)入啟動(dòng)界面,本系統(tǒng)每次啟動(dòng)后將進(jìn)入待機(jī)界面,同時(shí)步進(jìn)電機(jī)進(jìn)入待機(jī)狀態(tài)。</p><p> (2)當(dāng)按下任意一個(gè)按鍵后,此時(shí)系統(tǒng)將開始控制電機(jī),電機(jī)將以設(shè)定的轉(zhuǎn)速開始正轉(zhuǎn),同時(shí)也可以對(duì)旋轉(zhuǎn)方向進(jìn)行設(shè)定。如圖5-1所示,LCD的第一行顯示的是設(shè)定的電機(jī)轉(zhuǎn)速,第二行顯示的是電機(jī)的轉(zhuǎn)動(dòng)方向。<
78、;/p><p> 圖5-1 系統(tǒng)整體仿真圖</p><p> 系統(tǒng)使用的晶振頻率為12MHz。參數(shù)設(shè)置如圖5-2所示。</p><p> 圖5-2 晶振頻率參數(shù)設(shè)置</p><p> 系統(tǒng)程序代碼在keil C軟件中的調(diào)試圖如圖5-3所示。</p><p> 圖5-3 系統(tǒng)代碼調(diào)試圖</p>
79、<p> 因?yàn)橄到y(tǒng)設(shè)計(jì)中所選用的電機(jī)為四相步進(jìn)電機(jī),所以當(dāng)速度為250n/min時(shí)輸入電機(jī)的脈沖如圖5-4所示。與此同時(shí)單片機(jī)產(chǎn)生的時(shí)鐘脈沖如圖5-5所示。</p><p> 圖5-4 250n/min時(shí)輸入電機(jī)的脈沖信號(hào)</p><p> 圖5-5 250n/min時(shí)單片機(jī)產(chǎn)生的脈沖信號(hào)</p><p> 5.3 測(cè)試結(jié)果與分析</p&
80、gt;<p> 5.3.1 設(shè)計(jì)所達(dá)到的性能指標(biāo)</p><p> 本設(shè)計(jì)能夠通過按鍵實(shí)現(xiàn)直流步進(jìn)電機(jī)的加速、減速、正轉(zhuǎn)、反轉(zhuǎn)四中控制,同時(shí)能夠在LCD顯示器上顯示出直流步進(jìn)電機(jī)的正反轉(zhuǎn)以及設(shè)定的速度。在系統(tǒng)中電機(jī)運(yùn)行時(shí)沒有出現(xiàn)失步現(xiàn)象。對(duì)電機(jī)的控制精度高,控制速度范圍大,控制反應(yīng)快,且人機(jī)結(jié)合緊密。</p><p> 5.3.2 結(jié)果分析論述</p>&
81、lt;p> 根據(jù)仿真結(jié)果來看,設(shè)計(jì)的系統(tǒng)實(shí)現(xiàn)了通過四個(gè)按鍵對(duì)直流步進(jìn)電機(jī)加速、減速、正轉(zhuǎn)、反轉(zhuǎn)四種功能的控制,既達(dá)到了控制的靈活性要求又滿足了響應(yīng)速度快的特性,而且系統(tǒng)的結(jié)構(gòu)緊湊,可靠性高、成本較低。</p><p><b> 7 結(jié)論</b></p><p> 本設(shè)計(jì)方案按照任務(wù)書的要求,基本完成了任務(wù)。實(shí)現(xiàn)了直流步進(jìn)電機(jī)速度的調(diào)節(jié)及測(cè)量,以及在LCD上
82、顯示步進(jìn)電機(jī)速度與轉(zhuǎn)動(dòng)方向。該系統(tǒng)能夠在Proteus環(huán)境下仿真成功,表明系統(tǒng)設(shè)計(jì)理念、設(shè)計(jì)方法、元器件選擇、系統(tǒng)各部分程序都比較合理。</p><p> 由于條件的不足,沒有將課題做進(jìn)一步研究。比如,可以設(shè)置溫度控制轉(zhuǎn)速,光線控制轉(zhuǎn)速、聲音控制轉(zhuǎn)速等,這樣步進(jìn)電機(jī)的應(yīng)用范圍可能會(huì)更廣泛,更加人性化。再比如,可以設(shè)置報(bào)警電路,當(dāng)步進(jìn)電機(jī)轉(zhuǎn)速超過某一速度時(shí),越限報(bào)警電路開啟,從而增強(qiáng)步進(jìn)電機(jī)速度控制系統(tǒng)的全面性。
83、但這些措施勢(shì)必要增加系統(tǒng)設(shè)計(jì)的難度和成本,由于時(shí)間有限所以沒有采用,有待在以后的工作學(xué)習(xí)中不斷進(jìn)步。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 劉保延.步進(jìn)電機(jī)及其驅(qū)動(dòng)控制系統(tǒng)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1997.</p><p> [2] 楊宏,李國(guó)輝.基于Proteus與單片機(jī)的步進(jìn)電機(jī)控制設(shè)計(jì)[
84、J].現(xiàn)代電子技術(shù),2010,5,5(316):100~109. </p><p> [3] 孫耀杰,左賀,康龍?jiān)?,曹秉剛,史維祥.抑制混合式步進(jìn)電機(jī)轉(zhuǎn)矩波動(dòng)的時(shí)變重復(fù)控制[J].中國(guó)電機(jī)工程學(xué)報(bào),2004,11,24(11):183~187.</p><p> [4] Jayantha,Katupitiya,Kim Bentley.Interfacing with C++[M].20
85、06,4,11.</p><p> [6] 康健,王國(guó)戰(zhàn),劉超,盧靜.PROTEUS環(huán)境下步進(jìn)電機(jī)的控制研究[J].湖南工程學(xué)院報(bào),2010,3,20(1):50~63.</p><p> [5] 肖云茂,孫毅,張華興.基于Proteus的PC機(jī)對(duì)步進(jìn)電機(jī)運(yùn)動(dòng)控制仿真[J].機(jī)械設(shè)計(jì)與制造,2009,4,4:188~190.</p><p> [7] 張迎新.
86、單片機(jī)原理及應(yīng)用[M].北京:電子工業(yè)出版社,2005,6:30~35.</p><p> [8] 唐蘋.一種基于51單片機(jī)的直流電動(dòng)機(jī)控制系統(tǒng)設(shè)計(jì)[J].儀器儀表學(xué)報(bào),2007,8,28(8):560~565.</p><p> [9] 唐國(guó)棟,高云國(guó).基于L297/L298步進(jìn)電機(jī)的單片機(jī)控制[J].微計(jì)算機(jī)信息,2006,22(12-1):119~122.</p>
87、<p> [10] L298介紹[EB/OL].[2011-04-27].</p><p> http://seachqq.blog.163.com/blog/static/1518629420087310325129/</p><p> [11] 公茂法,馬寶甫,孫晨.單片機(jī)人機(jī)接口實(shí)例集[M].北京航空航天大學(xué)出版社,1998.</p><p>
88、 [12] 劉帥,祖靜,張紅艷.基于單片機(jī)的步進(jìn)電機(jī)控制設(shè)計(jì)[J].電子設(shè)計(jì)工程,2010,4:38~40.</p><p> [13] 洪維華,閻治安,易萍虎.一種新型步進(jìn)電機(jī)脈沖分配器的研究[J].微電機(jī),2004,37(2):75~80.</p><p> [14] 李碧鵬,翁惠輝.基于PMM8713脈沖分配器的步進(jìn)[J].江漢石油學(xué)院報(bào),2003,12,25(4):128~1
89、29.</p><p> [15] 盧超.基于Proteus的步進(jìn)電機(jī)控制系統(tǒng)仿真設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,2010,6,29(6):54~57.</p><p> 附錄1 系統(tǒng)程序代碼</p><p> #include "AT89X51.h"</p><p> int delay();</p>
90、<p> void inti_lcd();</p><p> void show_lcd(int);</p><p> void cmd_wr();</p><p> void ShowState();</p><p> void clock(unsigned int Delay) ;</p><p
91、> void DoSpeed(); //計(jì)算速度</p><p><b> //正轉(zhuǎn)值</b></p><p> #define RIGHT_RUN 1</p><p><b> //反轉(zhuǎn)值</b></p><p> #define LEFT_RUN 0</p>
92、;<p> sbit RS=0xA0;</p><p> sbit RW=0xA1;</p><p> sbit E=0xA2;</p><p> char SpeedChar[]="SPEED(n/min):";</p><p> char StateChar[]="RUN STATE:
93、";</p><p> char STATE_CW[]="CW";</p><p> char STATE_CCW[]="CCW";</p><p> char SPEED[3]="050";</p><p> unsigned int RunSpeed=50;
94、//速度</p><p> unsigned char RunState=RIGHT_RUN; //運(yùn)行狀態(tài)</p><p><b> main()</b></p><p><b> {</b></p><p><b> /*定時(shí)器設(shè)置*/</b></p>
95、<p> TMOD=0x66; //定時(shí)器0,1都為計(jì)數(shù)方式;方式2;</p><p> EA=1;//開中斷</p><p> TH0=0xff;//定時(shí)器0初值FFH;</p><p><b> TL0=0xff;</b></p><p><b> ET0=1;&l
96、t;/b></p><p><b> TR0=1;</b></p><p> TH1=0xff;//定時(shí)器1初值FFH;</p><p><b> TL1=0xff;</b></p><p><b> ET1=1;</b></p><p&
97、gt;<b> TR1=1;</b></p><p> IT0=1;//脈沖方式</p><p> EX0=1;//開外部中斷0:加速</p><p> IT1=1;//脈沖方式</p><p> EX1=1;//開外部中斷1:減速</p><p> inti_
98、lcd();</p><p> DoSpeed(); </p><p> ShowState();</p><p><b> while(1)</b></p><p><b> { </b></p><p> clock(RunSpeed);</p
99、><p> P1_1=P1_1^0x01;</p><p><b> }</b></p><p><b> }</b></p><p> //定時(shí)器0中斷程序:正轉(zhuǎn)</p><p> void t_0(void) interrupt 1</p><p
100、><b> {</b></p><p> RunState=RIGHT_RUN;</p><p><b> P1_0=1;</b></p><p><b> P0=0x01;</b></p><p><b> cmd_wr();</b>&
101、lt;/p><p> ShowState();</p><p><b> } </b></p><p> //定時(shí)器1中斷:反轉(zhuǎn)</p><p> void t_1(void) interrupt 3</p><p><b> {</b></p><
102、p> RunState=LEFT_RUN;</p><p><b> P1_0=0;</b></p><p><b> P0=0x01;</b></p><p><b> cmd_wr();</b></p><p> ShowState();</p>
103、<p><b> } </b></p><p> //中斷0:加速程序</p><p> void SpeedUp() interrupt 0</p><p><b> { </b></p><p> if(RunSpeed>=12)</p><
104、p> RunSpeed=RunSpeed-2; </p><p> DoSpeed();</p><p><b> P0=0x01;</b></p><p><b> cmd_wr();</b></p><p> ShowState();</p><p>&l
105、t;b> }</b></p><p> //中斷1:減速程序</p><p> void SpeedDowm() interrupt 2</p><p><b> { </b></p><p> if(RunSpeed<=100)</p><p> RunS
106、peed=RunSpeed+2; </p><p> DoSpeed();</p><p><b> P0=0x01;</b></p><p><b> cmd_wr();</b></p><p> ShowState();</p><p><b> }&
107、lt;/b></p><p> int delay() //判斷LCD是否忙</p><p><b> { </b></p><p><b> int a;</b></p><p><b> start:</b></p><
108、p><b> RS=0;</b></p><p><b> RW=1;</b></p><p><b> E=0;</b></p><p> for(a=0;a<2;a++);</p><p><b> E=1;</b></p&
109、gt;<p><b> P0=0xff;</b></p><p> if(P0_7==0)</p><p><b> return 0;</b></p><p> else </p><p> goto start;</p><p>&l
110、t;b> }</b></p><p> void inti_lcd() //設(shè)置LCD方式</p><p><b> {</b></p><p><b> P0=0x38;</b></p><p><b> cmd_wr();</b></p&
111、gt;<p><b> delay();</b></p><p> P0=0x01; //清除</p><p><b> cmd_wr();</b></p><p><b> delay();</b></p><p><b> P0=0
112、x0f;</b></p><p><b> cmd_wr();</b></p><p><b> delay();</b></p><p><b> P0=0x06;</b></p><p><b> cmd_wr();</b><
113、/p><p><b> delay(); </b></p><p><b> P0=0x0c;</b></p><p><b> cmd_wr();</b></p><p><b> delay();</b></p><p>&
114、lt;b> }</b></p><p> void cmd_wr() //寫控制字</p><p><b> {</b></p><p><b> RS=0;</b></p><p><b> RW=0;</b></p>
115、;<p><b> E=0;</b></p><p><b> E=1;</b></p><p><b> }</b></p><p> void show_lcd(int i) //LCD顯示子程序</p><p><b> { <
116、;/b></p><p><b> P0=i;</b></p><p><b> RS=1;</b></p><p><b> RW=0;</b></p><p><b> E=0;</b></p><p><b
117、> E=1;</b></p><p><b> }</b></p><p> void ShowState() //顯示狀態(tài)與速度</p><p><b> {</b></p><p><b> int i=0;</b></p>
118、<p> while(SpeedChar[i]!='\0')</p><p><b> {</b></p><p><b> delay();</b></p><p> show_lcd(SpeedChar[i]);</p><p><b> i++;&
119、lt;/b></p><p><b> }</b></p><p><b> delay();</b></p><p> P0=0x80 | 0x0d;</p><p><b> cmd_wr();</b></p><p><b>
120、; i=0;</b></p><p> while(SPEED[i]!='\0')</p><p><b> {</b></p><p><b> delay();</b></p><p> show_lcd(SPEED[i]);</p><
121、p><b> i++;</b></p><p><b> }</b></p><p><b> delay();</b></p><p><b> P0=0xC0;</b></p><p><b> cmd_wr();</b
122、></p><p><b> i=0;</b></p><p> while(StateChar[i]!='\0')</p><p><b> {</b></p><p><b> delay();</b></p><p>
123、 show_lcd(StateChar[i]);</p><p><b> i++;</b></p><p><b> }</b></p><p><b> delay();</b></p><p> P0=0xC0 | 0x0A;</p><p&
溫馨提示
- 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. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于proteus的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)-畢業(yè)論文
- 基于proteus的直流步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)【開題報(bào)告】
- 基于proteus的直流步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)【任務(wù)書】
- 步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)畢業(yè)論文
- 步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)【畢業(yè)論文】
- 基于plc控制的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)-畢業(yè)論文
- 基于proteus的步進(jìn)電機(jī)閉環(huán)控制仿真畢業(yè)論文
- 步進(jìn)電機(jī)控制系統(tǒng)畢業(yè)論文
- 基于步進(jìn)電機(jī)的自由擺控制系統(tǒng)設(shè)計(jì)【畢業(yè)論文】
- 基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文-基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)【畢業(yè)論文】
- 步進(jìn)電機(jī)在定位控制系統(tǒng)的應(yīng)用設(shè)計(jì)【畢業(yè)論文】
- 畢業(yè)論文--步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)(含外文翻譯)
- 車速表步進(jìn)電機(jī)的驅(qū)動(dòng)控制系統(tǒng)的設(shè)計(jì)【畢業(yè)論文】
- 步進(jìn)電機(jī)畢業(yè)設(shè)計(jì)---基于單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)畢業(yè)設(shè)計(jì)論文
- 畢業(yè)論文-開題報(bào)告-文獻(xiàn)綜述步進(jìn)電機(jī)控制系統(tǒng)的設(shè)計(jì)
- 步進(jìn)電機(jī)畢業(yè)論文-- 步進(jìn)電機(jī)的驅(qū)動(dòng)控制的設(shè)計(jì)
- 畢業(yè)論文----單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)
- 步進(jìn)電機(jī)畢業(yè)論文-- 步進(jìn)電機(jī)的驅(qū)動(dòng)控制的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論