兩相步進(jìn)電機(jī)控制系統(tǒng)設(shè)計_第1頁
兩相步進(jìn)電機(jī)控制系統(tǒng)設(shè)計_第2頁
兩相步進(jìn)電機(jī)控制系統(tǒng)設(shè)計_第3頁
兩相步進(jìn)電機(jī)控制系統(tǒng)設(shè)計_第4頁
兩相步進(jìn)電機(jī)控制系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 綜合課程設(shè)計題 目兩相步進(jìn)電機(jī)學(xué) 院計信學(xué)院專 業(yè)10自動化班 級2班學(xué)生姓名 指導(dǎo)教師文遠(yuǎn)熔2012年12月28日 兩相步進(jìn)電機(jī)課程設(shè)計報告 步進(jìn)電機(jī)是一種進(jìn)行精確步進(jìn)運(yùn)動的機(jī)電執(zhí)行元件,它廣泛應(yīng)用于工業(yè)機(jī)械的數(shù)字控制,為使系統(tǒng)的可靠性、通用性、可維護(hù)性以及性價比最優(yōu),根據(jù)控制系統(tǒng)功能要求及步進(jìn)電機(jī)應(yīng)用環(huán)境,確定了設(shè)計系統(tǒng)硬件和軟件的功能劃分,從而實(shí)現(xiàn)了基于8051單片機(jī)的四相步進(jìn)電機(jī)的開環(huán)控制系統(tǒng)??刂葡到y(tǒng)通過單片機(jī)存儲器、I/O 接口、中斷、鍵盤、LED 顯示器的擴(kuò)展、步進(jìn)電機(jī)的環(huán)形分頻器、驅(qū)動及保護(hù)電路、人機(jī)接口電路、中斷系統(tǒng)及復(fù)位電路、單電壓驅(qū)動電路等的設(shè)計,實(shí)現(xiàn)了四相步進(jìn)電機(jī)的正

2、反轉(zhuǎn),急停等功能。為實(shí)現(xiàn)單片機(jī)控制步進(jìn)電機(jī)系統(tǒng)在數(shù)控機(jī)床上的應(yīng)用,系統(tǒng)設(shè)計了兩個外部中斷,以實(shí)現(xiàn)步進(jìn)電機(jī)在某段時間內(nèi)的反復(fù)正反轉(zhuǎn)功能,也即數(shù)控機(jī)床的刀架自動進(jìn)給運(yùn)動,隨著單片機(jī)技術(shù)的不斷發(fā)展,單片機(jī)在日用電子產(chǎn)品中的應(yīng)用越來越廣泛,自六十年代初期以來,步進(jìn)電機(jī)的應(yīng)用得到很大的提高。人們用它來驅(qū)動時鐘和其他采用指針的儀器,打印機(jī)、繪圖儀,磁盤光盤驅(qū)動器、各種自動控制閥、各種工具,還有機(jī)器人等機(jī)械裝置。此外作為執(zhí)行元件,步進(jìn)電機(jī)是機(jī)電一體化的關(guān)鍵產(chǎn)品之一,被廣泛應(yīng)用在各種自動化控制系統(tǒng)中,隨著微電子和計算機(jī)技術(shù)的發(fā)展,它的需要量與日俱增,在各個國民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用。步進(jìn)電機(jī)是機(jī)電數(shù)字控制系統(tǒng)中常用

3、的執(zhí)行元件,由于其精度高、體積小、控制方便靈活,因此在智能儀表和位置控制中得到了廣泛的應(yīng)用,大規(guī)模集成電路的發(fā)展以及單片機(jī)技術(shù)的迅速普及,為設(shè)計功能強(qiáng),價格低的步進(jìn)電機(jī)控制驅(qū)動器提供了先進(jìn)的技術(shù)和充足的資源。 關(guān)鍵字: 步進(jìn)電機(jī) 單片機(jī)1 設(shè)計內(nèi)容 根據(jù)給定的任務(wù)要求選擇合適的單片機(jī)和其他電子元件,進(jìn)行系統(tǒng)硬件電路設(shè)計和軟件編程,根據(jù)系統(tǒng)制作并調(diào)試電路板,使之實(shí)現(xiàn)任務(wù)要求。兩相步進(jìn)電機(jī),步距角為3度,編程實(shí)現(xiàn)下列功能:(1) 按鍵,步進(jìn)電機(jī)按一定速度正轉(zhuǎn)。(2) 按鍵,步進(jìn)電機(jī)按一定速度反轉(zhuǎn)。(3) 任何時候按一下“STOP”鍵,步進(jìn)電機(jī)停止轉(zhuǎn)動。(4) 點(diǎn)動:按鍵,步進(jìn)電機(jī)轉(zhuǎn)過3度步距角;再

4、按,再轉(zhuǎn)過3度步距角(5) 用1602顯示屏顯示轉(zhuǎn)過的角度。(6) 用L298芯片驅(qū)動。2 步進(jìn)電機(jī)原理 2.1步進(jìn)電機(jī)原理及控制技術(shù) 步進(jìn)電機(jī)一般分為永磁式(PM)、反應(yīng)式(VR)和混合式(HB)3種類型。目前,二相混合式步進(jìn)電機(jī)的應(yīng)用最為廣泛。圖5為二相六線式步進(jìn)電機(jī)的工作原示意圖。由圖可知,它有2個繞組,且每個繞組都有一個中間抽頭。因此,二相步進(jìn)電機(jī)也就有了6根引線。當(dāng)電機(jī)中的繞組通電后,其定子磁極產(chǎn)生磁場,將轉(zhuǎn)子吸合到相應(yīng)的磁極處。若繞組在控制脈沖的作用下,通電方向使定子在順時針方向輪流產(chǎn)生磁場,則電機(jī)可順時針轉(zhuǎn)動;通電方向使定子在逆時針方向輪流產(chǎn)生磁場,則電機(jī)可逆時針轉(zhuǎn)動。控制脈沖每

5、作用一次,通電方向就變化一次,使電機(jī)轉(zhuǎn)動一步,即一個步距角。脈沖頻率越高,電機(jī)轉(zhuǎn)動也就越快。本次課設(shè)所使用的二相步進(jìn)電機(jī)需要采用雙極性的接法。雙極性則是指步進(jìn)電機(jī)線圈中電流的流動方向不是單向的,即繞組線圈中的電流有時沿某一方向流動,有時按相反方向流動。步進(jìn)電機(jī)的雙極性驅(qū)動電路如圖2-5所示它使用8個晶體管來驅(qū)動2組相位。雙極性驅(qū)動電路可以同時驅(qū)動四線式或六線式的二相步進(jìn)電機(jī)。對于二相六線式步進(jìn)電機(jī)而言, 2個繞組的中間抽頭Vdd1和Vdd2都懸空。根據(jù)步進(jìn)電機(jī)的工作原理,當(dāng)控制器給驅(qū)動器發(fā)出脈沖信號時,驅(qū)動器經(jīng)過環(huán)形分配器和功率放大后,電機(jī)繞組通電的順序?yàn)?其4個狀態(tài)按順序周而復(fù)始進(jìn)行變化,電

6、機(jī)轉(zhuǎn)動; 若通電時序就變?yōu)闀r,電機(jī)就逆向轉(zhuǎn)動。步進(jìn)電機(jī)運(yùn)轉(zhuǎn)時,當(dāng)達(dá)林頓管Q1和Q4導(dǎo)通時,線圈中電流方向?yàn)锳;當(dāng)林頓管Q2和Q3導(dǎo)通時,線圈中電流方向?yàn)锳。可見,步進(jìn)電機(jī)線圈中的電流方向在運(yùn)轉(zhuǎn)過程中是不斷改變的。(1)圖4-21 二相步進(jìn)電機(jī)原理圖(2) 步進(jìn)電機(jī)的速度控制 如果給步進(jìn)電機(jī)發(fā)一個控制脈沖,它就轉(zhuǎn)一步,再發(fā)一個脈沖,它會再轉(zhuǎn)一步。兩個脈沖的間隔越短,步進(jìn)電機(jī)就轉(zhuǎn)得越快。調(diào)整送給步進(jìn)電機(jī)的脈沖頻率,就可以對步進(jìn)電機(jī)進(jìn)行調(diào)試。 (3) 步進(jìn)電機(jī)的起停控制 步進(jìn)電機(jī)由于其電氣特性,運(yùn)轉(zhuǎn)時會有步進(jìn)感。為了使電機(jī)轉(zhuǎn)動平滑,減小振動,可在步進(jìn)電機(jī)控制脈沖的上升沿和下降沿采用細(xì)分的梯形波,可以

7、減小步進(jìn)電機(jī)的步進(jìn)角,跳過電機(jī)運(yùn)行的平穩(wěn)性。在步進(jìn)電機(jī)停轉(zhuǎn)時,為了防止因慣性而使電機(jī)軸產(chǎn)生順滑,則需采用合適的鎖定波形,產(chǎn)生鎖定磁力矩,鎖定步進(jìn)電機(jī)的轉(zhuǎn)軸,使步進(jìn)電機(jī)轉(zhuǎn)軸不能自由轉(zhuǎn)動。 (4) 步進(jìn)電機(jī)的加減速控制 在步進(jìn)電機(jī)控制系統(tǒng)中,通過實(shí)驗(yàn)發(fā)現(xiàn),如果信號變化太快,步進(jìn)電機(jī)由于leizi888 2010慣性跟不上電信號的變化,這時就會產(chǎn)生堵轉(zhuǎn)和失步現(xiàn)象。所有步進(jìn)電機(jī)在啟動時,必須有加速過程,在停止時波形有減速過程。理想的加速曲線一般為指數(shù)曲線,步進(jìn)電機(jī)整個降速過程頻率變化規(guī)律是整個加速過程頻率變化規(guī)律的逆過程。選定的曲線比較符合步進(jìn)電機(jī)升降過程的運(yùn)行規(guī)律,能充分利用步進(jìn)電機(jī)的有效轉(zhuǎn)矩,快速

8、響應(yīng)性好,縮短了升降速的時間,并可防止失步和過沖現(xiàn)象。在一個實(shí)際的控制系統(tǒng)中,要根據(jù)負(fù)載的情況來選擇步進(jìn)電機(jī)。步進(jìn)電機(jī)能響應(yīng)而不失步的最高步進(jìn)頻率稱為“啟動頻率”,于此類似“停止頻率”是指系統(tǒng)控制信號突然關(guān)斷,步進(jìn)電機(jī)不沖過目標(biāo)位置的最高步進(jìn)頻率。電機(jī)的啟動頻率、停止頻率和輸出轉(zhuǎn)矩都要和負(fù)載的轉(zhuǎn)動慣量相適應(yīng),有了這些數(shù)據(jù),才能有效地對電機(jī)進(jìn)行加減速控制。加速過程有突然施加的脈沖啟動頻率f0。步進(jìn)電機(jī)的最高啟動頻率(突跳頻率)一般為0.1 KHz 到34KHz ,而最高運(yùn)行頻率則可以達(dá)到 N*102KHz ,以超過最高啟動頻率的頻率直接啟動,會產(chǎn)生堵轉(zhuǎn)和失步的現(xiàn)象。在一般的應(yīng)用中,經(jīng)過大量實(shí)踐和

9、反復(fù)驗(yàn)證,頻率如按直線上升或下降,控制效果就可以滿足常規(guī)的應(yīng)用要求。用PLC 實(shí)現(xiàn)步進(jìn)電機(jī)的加P 減速控制,實(shí)踐上就是控制發(fā)脈沖的頻率。加速時,使脈沖頻率增高,減速則相反。如果使用定時器來控制電機(jī)的速度,加減速控制就是不斷改變定時中斷的設(shè)定值。速度從v1v2 變化,如果是線性增加,則按給定的斜率加 P 減速;如果是突變,則按階梯加速處理。在此過程中要處理好兩個問題: 速度轉(zhuǎn)換時間應(yīng)盡量短。為了縮短速度轉(zhuǎn)換的時間,可以采用建立數(shù)據(jù)表的方法。結(jié)合各曲線段的頻率和各段間的階梯頻率,就可以建立一個連續(xù)的數(shù)據(jù)表,并通過轉(zhuǎn)換程序?qū)⑵滢D(zhuǎn)換為定時初始表。通過在不同的階段調(diào)用相應(yīng)的定時的初值,就可控制電機(jī)的運(yùn)行

10、。定時初值的計算是在定時中斷外實(shí)現(xiàn)的,并不占用中斷時間,保證電機(jī)的高速運(yùn)行。 保證控制速度的精確性。要從一個速度準(zhǔn)確達(dá)到另一個速度,就要建立一個校驗(yàn)機(jī)制,以防超過或未達(dá)到所需速度。 (5) 步進(jìn)電機(jī)的換向控制 步進(jìn)電機(jī)換向時,一定要在電機(jī)降速停止或降到突跳頻率范圍之內(nèi)在換向,以免產(chǎn)生較大的沖擊而損壞電機(jī)。換向信號一定要在前一個方向的最后一個脈沖,結(jié)束后以及下一個方向的第一個脈沖前發(fā)出。對于脈沖的設(shè)計主要要求其有一定的脈沖寬度、脈沖序列的均勻度及高低電平方式。在某一高速下的正、反向切換實(shí)質(zhì)包含了降速換向加速3 個過程。 步進(jìn)電機(jī)有如下特點(diǎn): 步進(jìn)電機(jī)的角位移與輸入脈沖數(shù)嚴(yán)格成正比,因此當(dāng)它轉(zhuǎn)一轉(zhuǎn)

11、后,沒有累計誤差,具有良好的跟隨性。 由步進(jìn)電機(jī)與驅(qū)動電路組成的開環(huán)數(shù)控系統(tǒng),既非常方便、廉價,也非常可靠。同時,它也可以有角度反饋環(huán)節(jié)組成高性能的閉環(huán)數(shù)控系統(tǒng)。 步進(jìn)電機(jī)的動態(tài)響應(yīng)快,易于啟停、正反轉(zhuǎn)及變速。 速度可在相當(dāng)寬的范圍內(nèi)平滑調(diào)節(jié),低速下仍能保證獲得很大的轉(zhuǎn)矩,因此一般可以不用減速器而直接驅(qū)動負(fù)載。 步進(jìn)電機(jī)只能通過脈沖電源供電才能運(yùn)行,它不能直接用交流電源或直流電源。 3 硬件電路設(shè)計3.1 系統(tǒng)總體設(shè)計框圖AT89C51單片機(jī)系統(tǒng)控制器按鍵輸入電源電路驅(qū)動電路數(shù)碼管顯示預(yù)置數(shù)控制清零脈沖序列方向控制信號步進(jìn)電機(jī)功率放大信號同步顯示角度及轉(zhuǎn)速3.2 LCD1602顯示器3.2.1

12、 液晶顯示器各種圖形的顯示原理   線段的顯示 點(diǎn)陣圖形式液晶由M×N個顯示單元組成,假設(shè)LCD顯示屏有64行,每行有128列,每8列對應(yīng)1字節(jié)的8位,即每行由16字節(jié),共16×8=128個點(diǎn)組成,屏上64×16個顯示單元與顯示RAM區(qū)1024字節(jié)相對應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對應(yīng)。例如屏的第一行的亮暗由RAM區(qū)的000H00FH的16字節(jié)的內(nèi)容決定,當(dāng)(000H)=FFH時,則屏幕的左上角顯示一條短亮線,長度為8個點(diǎn);當(dāng)(3FFH)=FFH時,則屏幕的右下角顯示一條短亮線;當(dāng)(000H)=FFH,(001H)=00H,(002

13、H)=00H,(00EH)=00H,(00FH)=00H時,則在屏幕的頂部顯示一條由8段亮線和8條暗線組成的虛線。這就是LCD顯示的基本原理。字符的顯示:   用LCD顯示一個字符時比較復(fù)雜,因?yàn)橐粋€字符由6×8或8×8點(diǎn)陣組成,既要找到和顯示屏幕上某幾個位置對應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮,為“0”的不亮。這樣一來就組成某個字符。但由于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)找出顯示RAM對應(yīng)的地址,設(shè)立光標(biāo),在此送上

14、該字符對應(yīng)的代碼即可。漢字的顯示:漢字的顯示一般采用圖形的方式,事先從微機(jī)中提取要顯示的漢字的點(diǎn)陣碼(一般用字模提取軟件),每個漢字占32B,分左右兩半,各占16B,左邊為1、3、5右邊為2、4、6根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)可找出顯示RAM對應(yīng)的地址,設(shè)立光標(biāo),送上要顯示的漢字的第一字節(jié),光標(biāo)位置加1,送第二個字節(jié),換行按列對齊,送第三個字節(jié)直到32B顯示完就可以LCD上得到一個完整漢字 3.2.2引腳功能說明1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表 編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電

15、源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極3.2.3其與單片機(jī)的連接如下圖所示 1602液晶模塊內(nèi)部的控制器共有11條控制指令,如下表所示序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯

16、器地址001顯示數(shù)據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計數(shù)器地址10寫數(shù)到CGRAM或DDRAM)10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容3.3 80C51單片機(jī)3.4 時鐘信號控制電路 如圖3.3所示,89C51芯片內(nèi)部有一個高增益反相放大器,用于構(gòu)成振蕩器。反相放大器的輸入端為XTAL1,輸出端為XTAL2,兩端跨接石英晶體及兩個電容就可以構(gòu)成穩(wěn)定的自激振蕩器。電容C1和C2可以穩(wěn)定頻率并對振蕩頻率有微調(diào)作用。振蕩脈沖頻率為0到24。振蕩信號從XTAL2端輸入到片內(nèi)的時鐘發(fā)生器上。 圖 3.3 時鐘信號控制電路3.5 驅(qū)動電路 如圖3.5所示,驅(qū)動電路用L298

17、來驅(qū)動步進(jìn)電機(jī),L298 所出產(chǎn)的雙全橋步進(jìn)電機(jī)專用驅(qū)動芯片,內(nèi)部包含4信道邏輯驅(qū)動電路,是一種二相 和四相步進(jìn)電機(jī)的專用驅(qū)動器,可同時驅(qū)動2個二相或1個四相步進(jìn)電機(jī),內(nèi)含二個H-Bridge 的高電壓、大電流雙全橋式驅(qū)動器,接收標(biāo)準(zhǔn)TTL邏輯準(zhǔn)位信號,可驅(qū)動46V、2A以下的步進(jìn)電機(jī),且可以直接透過電源來調(diào)節(jié)輸出電壓;此芯片可直接由單片機(jī)的IO端口來提供模擬時序信號。圖 3.5 驅(qū)動電路引腳功能說明:引腳NameFunction 功能說明1;15Sense A; Sense B電流監(jiān)測端,1、15和PowerSO的2、19用法一樣,SEN1、SEN2分別為兩個H橋的電流反饋腳,不用時可以直接

18、接地2;3Out 1; Out 21Y1、1Y2輸出端4VS功率電源電壓,此引腳與地必須連接100nF電容器5;7Input 1; Input 21A1、1A2輸入端,TTL電平兼容6;11Enable A; Enable BTTL電平兼容輸入 1EN、2EN使能端,低電平禁止輸出8GNDGND地9VSS邏輯電源電壓。 此引腳與地必須連接100nF電容器10; 12Input 3; Input 42A1、2A2 輸入端,TTL電平兼容13; 14Out 3; Out 42Y1、2Y2 輸出端 監(jiān)測引腳15N.C.Not Connected 空3.6顯示電路 如圖3.6所示,步進(jìn)電機(jī)的轉(zhuǎn)速顯示是

19、通過1602來實(shí)現(xiàn)的。1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點(diǎn)陣型液晶模塊。它由若干個5X7或者5X11等點(diǎn)陣字符位組成,每個點(diǎn)陣字符位都可以顯示一個字符,每位之間有一個點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒芎芎玫仫@示圖形(用自定義CGRAM,顯示效果也不好)。 1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。 1602采用標(biāo)準(zhǔn)的16腳接口,其中: 第1腳:VSS為電源地 第2腳:VCC接5V電源正極 第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地

20、電源時對比度最高(對比度過高時會 產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度)。 第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。 第5腳:RW為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫操作。 第6腳:E(或EN)端為使能(enable)端。 第714腳:D0D7為8位雙向數(shù)據(jù)端。 第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。3.7鍵盤電路本次設(shè)計要對步進(jìn)電機(jī)實(shí)現(xiàn)正轉(zhuǎn)、反轉(zhuǎn)和點(diǎn)動等功能,所以設(shè)計了鍵盤按鍵分別進(jìn)行步進(jìn)電機(jī)的“正轉(zhuǎn)”、“反轉(zhuǎn)”、“點(diǎn)動”和“停止”。 4 軟件系統(tǒng)設(shè)計4.1 主程序流程圖 如圖4.1是主

21、程序流程圖,初始化程序后,有鍵按下該按鍵對應(yīng)值為0,其他按鍵則為1來進(jìn)行按鍵的處理,并且進(jìn)行控制步進(jìn)電機(jī)的正反轉(zhuǎn)及點(diǎn)動以及停轉(zhuǎn)。在處理案件的過程中,如有其他鍵按下,則退出該鍵的循環(huán)改為進(jìn)入更改過后的按鍵的處理程序然后調(diào)用顯示程序顯示轉(zhuǎn)過的角度數(shù)。如此進(jìn)行旋轉(zhuǎn)和顯示。開始否否否否否否否否是是是是是是是是是是是是是是是電機(jī)轉(zhuǎn)過一個反步距角是否暫停?顯示是否切換?顯示是否切換?數(shù)碼管顯示電機(jī)反轉(zhuǎn)速 正/反轉(zhuǎn)?是否啟動?數(shù)碼管顯示反轉(zhuǎn)過角度數(shù)碼管顯示正轉(zhuǎn)過角度數(shù)碼管顯示電機(jī)正轉(zhuǎn)速是否置位?電機(jī)轉(zhuǎn)過一個正步距角設(shè)置轉(zhuǎn)速電機(jī)開始正向轉(zhuǎn)動設(shè)置轉(zhuǎn)速電機(jī)開始反向轉(zhuǎn)動DOP是否按下?DOP是否按下?是否暫停?初始

22、化單片機(jī)否4.2 鍵盤處理共設(shè)置16鍵,09數(shù)字鍵 設(shè)置電機(jī)轉(zhuǎn)動轉(zhuǎn)速 及相關(guān)參數(shù)。 EBTER/STOP 確認(rèn)和暫停DOP 點(diǎn)動Z/F 控制電機(jī)正反轉(zhuǎn)BSELECT 設(shè)置位數(shù)選擇 REST 復(fù)位鍵5 Protues仿真平臺簡介Protues軟件是英國Labcenter electronics公司出版的EDA工具軟件。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞,Protues是一個能仿真模擬和數(shù)字電路,特別是能夠仿真單片機(jī)、A

23、RM、DSP、FPGA等的軟件,它還能和KEIL軟件在同一臺機(jī)子實(shí)現(xiàn)聯(lián)調(diào)Protues可提供的仿真儀表資源 :示波器、邏輯分析儀、虛擬終端、SPI調(diào)試器、I2C調(diào)試器、信號發(fā)生器、模式發(fā)生器、交直流電壓表、交直流電流表。理論上同一種儀器可以在一個電路中隨意的調(diào)用PROTUES不僅可將許多單片機(jī)實(shí)例功能形象化,也可將許多單片機(jī)實(shí)例運(yùn)行過程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)到的效果。 它的元器件、連接線路等卻和傳統(tǒng)的單片機(jī)實(shí)驗(yàn)硬件高度對應(yīng)。這在相當(dāng)程度上替代了傳統(tǒng)的單片機(jī)實(shí)驗(yàn)教學(xué)的功能,例:元器件選擇、電路連接、電路檢測、電路修改、軟件調(diào)試、運(yùn)行結(jié)果等。

24、課程設(shè)計、畢業(yè)設(shè)計是學(xué)生走向就業(yè)的重要實(shí)踐環(huán)節(jié)。由于PROTUES提供了實(shí)驗(yàn)室無法相比的大量的元器件庫,提供了修改電路設(shè)計的靈活性、提供了實(shí)驗(yàn)室在數(shù)量、質(zhì)量上難以相比的虛擬儀器、儀表,因而也提供了培養(yǎng)學(xué)生實(shí)踐精神、創(chuàng)造精神的平臺。因此在不具備實(shí)驗(yàn)前可以利用protues進(jìn)行仿真的檢查。6 仿真的電路圖7 課程設(shè)計總結(jié)本系統(tǒng)主要研究了一種基于單片機(jī)的步進(jìn)電機(jī)控制及驅(qū)動的電路設(shè)計。設(shè)計采用AT89C51單片機(jī)作為控制模塊的核心,利用單片機(jī)編程實(shí)現(xiàn)了對步進(jìn)電機(jī)的控制。由單片機(jī)產(chǎn)生的信號經(jīng)ULN2003A芯片進(jìn)行功率放大,驅(qū)動步進(jìn)電機(jī)工作,同時由數(shù)碼管同步顯示預(yù)置數(shù)和所轉(zhuǎn)角度,由相應(yīng)的按鍵實(shí)現(xiàn)預(yù)置轉(zhuǎn)速

25、、控制、清零功能。系統(tǒng)能夠?qū)崿F(xiàn):(1) 預(yù)設(shè)步進(jìn)電機(jī)轉(zhuǎn)速;(2) 啟動停止、正轉(zhuǎn)反轉(zhuǎn)等功能的基本控制;(3) 同步顯示轉(zhuǎn)過角度;(4) 步進(jìn)電機(jī)處于停止?fàn)顟B(tài)時可以對預(yù)置數(shù)進(jìn)行清零操作。在系統(tǒng)設(shè)計過程中,力求硬件電路簡單,充分發(fā)揮軟件部分的優(yōu)勢,編程靈活方便來滿足系統(tǒng)的要求。通過實(shí)際測試表明本設(shè)計系統(tǒng)的性能優(yōu)于傳統(tǒng)步進(jìn)電機(jī)控制器,具有結(jié)構(gòu)簡單、可靠性高、實(shí)用性強(qiáng)、人機(jī)接口簡單方便、性價比高等特點(diǎn)。本設(shè)計作品,就是單片機(jī)在智能化儀表方面的具體應(yīng)用,充分體現(xiàn)了單片機(jī)的優(yōu)越之處。本論文,從硬件設(shè)計到軟件設(shè)計,根據(jù)硬件的工作原理及設(shè)計原理,對設(shè)計的設(shè)計方案做了仔細(xì)的分析。8 程序源代碼#include

26、<reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int#define ink P3#define LCDPORT P0sbit RS=P20;sbit RW=P21;sbit E=P22;unsigned int buffer32;uchar buffer23;uchar Point,KeyValue=16,NUM,s1,xc; uchar code dc_s9=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09,0x01;unsign

27、ed char code ASCII=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39;uint cnt,cnt1,dcc1;uchar dc,a,dcs;uint cnt,cnt1,an,dcc,dca,dcc1;uint ge,shi,bai,qian,wan;void DELAY(unsigned int N) unsigned int i; for(i=0;i<N;i+);void WRITE_CMD(unsigned char CMD_BYTE) LCDPORT=CMD_BYTE; RS=0; RW=0; E=1; _nop_(

28、); E=0; _nop_();void WRITE_DAT(unsigned char DAT_BYTE) LCDPORT=DAT_BYTE; RS=1; RW=0; E=1; _nop_(); E=0; _nop_();void INIT(void) WRITE_CMD(0x38); DELAY(1000); WRITE_CMD(0x06); DELAY(1000); WRITE_CMD(0x0F); DELAY(1000); WRITE_CMD(0x0c); DELAY(1000); WRITE_CMD(0x01); DELAY(1000);void main(void)TMOD=0x1

29、1;TH1=0xFC;/1ms time constant12MTL1=0x18;ET1=1;TR1=1;TH0=0xfc;/10ms time constant12MTL0=0x18;ET0=1;TR0=1;PT0=1;EA=1;buffer3=0x53;buffer4=0x50;buffer5=0x45;buffer6=0x45;buffer7=0x44;buffer9=0x30;buffer10=0x30;buffer11=0x30;buffer12=0x2f;buffer13=0x4d;buffer14=0x49;buffer15=0x4e;buffer24=0x30;buffer25

30、=0x30;buffer26=0x30;buffer27=0x30;buffer28=0x30;buffer29=0x30;buffer30=0x30;buffer31=0xdf;INIT();s1=5;a=-1;cnt1=100;while(1) if(KeyValue<10)/ 輸入值 NUM=KeyValue; KeyValue=16; switch(s1) case 1: buffer1=ASCIINUM; break; case 2: buffer2=ASCIINUM; break; case 3: buffer9=ASCIINUM; break; case 4: buffer

31、10=ASCIINUM; buffer21=NUM; break; case 5: buffer11=ASCIINUM; buffer22=NUM; break; if(KeyValue=10) /位選 KeyValue=16;s1-; NUM=0; if(s1=3) s1=5; switch(KeyValue) case 15:if(a=-1) if(dc=0) +dcs; if(dcs>3) dcs=0; P1=dc_sdcs; dcc+; else -dcs; if(dcs<0) dcs=3; P1=dc_sdcs; dcc+; KeyValue=16; break; /鍵盤

32、中斷掃描/void T1_ISR(void) interrupt 3 static unsigned char i,k,in,n,m; static unsigned char CNT=0,KeyCNT=0;TH1=0xFC;/1ms time constant12MTL1=0x18; ink=0xf0; i+; if(i=16) WRITE_CMD(0xc0); DELAY(1000); if(i=32) i=0; WRITE_CMD(0x80); DELAY(1000); WRITE_DAT(bufferi); if(CNT%5=0)/鍵盤掃描 if(P3&0xf0)!=0xf0)&&(KeyCNT=0)KeyCNT+; switch(KeyCNT) case 0: break; case 1:if(P3&0xf0)!=0xf0) for(m=0;m<4;m+) ink=(0x01<<m); for(n=0;n<4;n+) in=ink; in=in>>(4+n); if(in&0x01)=0)k=n+m*4; KeyCNT+;elseKey

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論