步進電機廣泛應用在生產實踐的各個領域。它最大的應用是在數控機床的制造中,因為步進電機不需要A/D轉換,能夠直接將數字脈沖信號轉化成為角位移,所以被認為是理想的數控機床的執(zhí)行元件。本設計利用proteus仿真軟件進行電路仿真,系統通過設置四個按鍵分別控制不進電機的起止、圈數、方向、不進速度,使用1602液晶顯示以上參數。整個系統具有穩(wěn)定性好,實用性強,操作界面友好等優(yōu)點。
步進電機是一種將電脈沖轉變?yōu)榻俏灰频膱?zhí)行機構,可通過控制脈沖數來控制角位移量。步進電機廣泛應用在生產實踐的各個領域。它最大的應用是在數控機床的制造中,因為步進電機不需要A/D轉換,能夠直接將數字脈沖信號轉化成為角位移,所以被認為是理想的數控機床的執(zhí)行元件。
一、 Proteus簡介
Proteus ISIS是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件。它運行于Windows操作系統上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點是:
①實現了單片機仿真和SPICE電路仿真相結合。具有模擬電路仿真、數字電路仿真、單片機及其外圍電路組成的系統的仿真、RS232動態(tài)仿真、I2C調試器、SPI調試器、鍵盤和LCD系統仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。
②支持主流單片機系統的仿真。目前支持的單片機類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。
③提供軟件調試功能。在硬件仿真系統中具有全速、單步、設置斷點等調試功能,同時可以觀察各個變量、寄存器等的當前狀態(tài),因此在該軟件仿真系統中,也必須具有這些功能;同時支持第三方的軟件編譯和調試環(huán)境,如Keil C51 uVision2等軟件。
④具有強大的原理圖繪制功能??傊?,該軟件是一款集單片機和SPICE分析于一身的仿真軟件,功能極其強大。
二、整體電路分析
如下圖,整個設計以STC89C51單片機為中心,由復位電路,時鐘電路,電機驅動,步進電機,顯示電路等組成,硬件模塊如圖2-1所示:

通過按鍵進行相應的參數設定,單片機接收到信號后經過判斷驅動電機驅動模塊,然后由驅動電路驅動步進電機運轉,并用1602顯示設置的參數。
三、系統硬件電路選擇與設計
1、主控器的選擇
按照題目要求本次主控單元使用C51單片機對整個系統進行控制。STC89C51RC包含512字節(jié)RAM 、32條I/O口線、3個16位定時/計數器、8輸入4優(yōu)先級嵌套中斷結構、1個串行I/O口(可用于多機通信、I/O擴展或全雙工UART)以及片內振蕩器和時鐘電路。此外,由于器件采用了靜態(tài)設計,可提供很寬的操作頻率范圍(頻率可降至0)??蓪崿F兩個由軟件選擇的節(jié)電模式、空閑模式和掉電模式??臻e模式凍結CPU,但RAM、定時器、串口和中斷系統仍然工作。掉電模式保存RAM的內容,但是凍結振蕩器,導致所有其它的片內功能停止工作。由于設計是靜態(tài)的,時鐘可停止而不會丟失用戶數據。運行可從時鐘停止處恢復。所以該單片機可以滿足系統要求,電路圖如下:

2、步進電機選擇
步進電機是一種能夠將電脈沖信號轉換成角位移或線位移的機電元件,它實際上是一種單相或多相同步電動機。單相步進電動機有單路電脈沖驅動,輸出功率一般很小,其用途為微小功率驅動。多相步進電動機有多相方波脈沖驅動,用途很廣。本設計使用的是四相三拍步進電機,連接圖如下:

3、驅動電路的選擇
驅動模塊我們使用集成驅動芯片ULN2003,給芯片是高耐壓、大電流達林頓管由七個硅NPN 達林頓管組成。該電路的特點如下:ULN2003 的每一對達林頓都串聯一個2.7K 的基極電阻,在5V 的工作電壓下它能與TTL 和CMOS 電路直接相連,可以直接處理原先需要標準邏輯緩沖器來處理的數據。ULN2003 工作電壓高,工作電流大,灌電流可達500mA,并且能夠在關態(tài)時承受50V 的電壓,輸出還可以在高負載電流并行運行。1腳輸入,16腳輸出,你的負載接在VCC與16腳之間,不用9腳。

ULN2003是大電流驅動陣列,多用于單片機、智能儀表、PLC、數字量輸出卡等控制電路中??芍苯域寗永^電器等負載。所以足以滿足驅動步進電機的要求,連接圖如下:

4、顯示電路的
LCD顯示模塊是把LCD顯示屏、背景光源、線路 板和驅動集成電路等部件構造成1個整體作為1個獨 立部件使用,只留1個接口與外部通信。顯示模塊通 過這個接口接收顯示的命令和數據,并按指令和數據 的要求進行顯示,外部電路通過這個接口讀出顯示模 塊的工作狀態(tài)和顯示數據。1602液晶模塊內部的字 符發(fā)生存儲器(CGROM)已經存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數字、英文字母的大 小寫、常用的符號和日文假名等,每1個字符都有1個 固定的代碼。用戶對模塊寫入適當的控制命令,即可 完成清屏、顯示、地址設置等操作 。設計采用并行方式控制,LCD與單片機的通訊接口電路如圖3所示采用直連的方法。

5鍵盤輸入模塊電路
設計中,鍵盤采用非編碼鍵盤系統中的獨立式按 鍵結構。鍵盤工作方式采用定時掃描方式。采用定時 器TO定時,通過輸出數據,識別按鍵的工作狀態(tài)。鍵 盤主要用來提供人機接口,電路如圖3所示,采用獨立 式按鍵電路,各按鍵開關均采用了上拉電阻,保證在按 鍵斷開時,各I/O有確定的高電平。按鍵功定義如 下:當P3.2按下時,步進電機開始加速;當P3.3按下 時,步進電機開始減速;當P3.4按下時,步進電機開始 正轉;當P3.5按下時,步進電機開始反轉。按鍵抖動的消除采用軟件消抖實現。連接圖如下:

四、系統軟件設計
1、軟件流程圖

proteus中的步進電機有兩種,
六線制(MOTOR-STEPPER)和四線制(MOTOR-BISTEPPER),六線制的左右中間兩根線接電源,任然剩下四根,但的順序和四線制的不同,見下圖。 注意a,b,c,d的順序

在實際情況中,單片機是不能直接拖動步進電機的,需用ULN2003這樣的器件 兩個步進電機都是四相電機。 如果用四拍:
那么P2輸出的(順時針)順序就是:0x03,0x06,0x0c,0x09
a 1 0 0 1
b 1 1 0 0
c 0 1 1 0
d 0 0 1 1
如果用八拍:
那么P2輸出的(順時針)順序就是:0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09
a 1 1 0 0 0 0 0 1
b 0 1 1 1 0 0 0 0
c 0 0 0 1 1 1 0 0
d 0 0 0 0 0 1 1 1
給一個測試八拍的仿真程序:
#include《reg52.h》
main(){
while(1){
unsigned int i,j,k;
for(k=0;k《255;k++){
for(i=0;i《75;i++)
for(j=0;j《255;j++);
P2=0x01;
for(i=0;i《75;i++)
for(j=0;j《255;j++);
P2=0x03;
for(i=0;i《75;i++)
for(j=0;j《255;j++);
P2=0x02;
for(i=0;i《75;i++)
for(j=0;j《255;j++);
P2=0x06;
for(i=0;i《75;i++)
for(j=0;j《255;j++);
P2=0x04;
for(i=0;i《75;i++)
for(j=0;j《255;j++);
P2=0x0c;
for(i=0;i《75;i++)
for(j=0;j《255;j++);
P2=0x08;
for(i=0;i《75;i++)
for(j=0;j《255;j++);
P2=0x09;
}
}
}
電子發(fā)燒友App







評論