PROTEUS仿真論文_第1頁
PROTEUS仿真論文_第2頁
PROTEUS仿真論文_第3頁
PROTEUS仿真論文_第4頁
PROTEUS仿真論文_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、proteus設(shè)計(jì)的步進(jìn)電機(jī)仿真摘要:步進(jìn)電機(jī)廣泛應(yīng)用在生產(chǎn)實(shí)踐的各個(gè)領(lǐng)域。它最大的應(yīng)用是在數(shù)控機(jī)床的制造中,因?yàn)椴竭M(jìn)電機(jī)不需要a/d轉(zhuǎn)換,能夠直接將數(shù)字脈沖信號(hào)轉(zhuǎn)化成為角位移,所以被認(rèn)為是理想的數(shù)控機(jī)床的執(zhí)行元件。本設(shè)計(jì)利用proteus仿真軟件進(jìn)行電路仿真,系統(tǒng)通過設(shè)置四個(gè)按鍵分別控制不進(jìn)電機(jī)的起止、圈數(shù)、方向、不進(jìn)速度,使用1602液晶顯示以上參數(shù)。整個(gè)系統(tǒng)具有穩(wěn)定性好,實(shí)用性強(qiáng),操作界面友好等優(yōu)點(diǎn)。關(guān)鍵詞:proteus 仿真 不進(jìn)電機(jī) 拍數(shù)一、 proteus簡(jiǎn)介proteus isis是英國labcenter公司開發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于windows操作系統(tǒng)上,可以仿

2、真、分析(spice)各種模擬器件和集成電路,該軟件的特點(diǎn)是:實(shí)現(xiàn)了單片機(jī)仿真和spice電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、rs232動(dòng)態(tài)仿真、i2c調(diào)試器、spi調(diào)試器、鍵盤和lcd系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:68000系列、8051系列、avr系列、pic12系列、pic16系列、pic18系列、z80系列、hc11系列以及各種外圍芯片。提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此

3、在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如keil c51 uvision2等軟件。具有強(qiáng)大的原理圖繪制功能。總之,該軟件是一款集單片機(jī)和spice分析于一身的仿真軟件,功能極其強(qiáng)大。二、整體電路分析如下圖,整個(gè)設(shè)計(jì)以stc89c51單片機(jī)為中心,由復(fù)位電路,時(shí)鐘電路,電機(jī)驅(qū)動(dòng),步進(jìn)電機(jī),顯示電路等組成,硬件模塊如圖2-1所示:圖1 硬件模塊圖通過按鍵進(jìn)行相應(yīng)的參數(shù)設(shè)定,單片機(jī)接收到信號(hào)后經(jīng)過判斷驅(qū)動(dòng)電機(jī)驅(qū)動(dòng)模塊,然后由驅(qū)動(dòng)電路驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)轉(zhuǎn),并用1602顯示設(shè)置的參數(shù)。三、系統(tǒng)硬件電路選擇與設(shè)計(jì)1、主控器的選擇按照題目要求本次主控單元使用c51單片機(jī)對(duì)整

4、個(gè)系統(tǒng)進(jìn)行控制。stc89c51rc包含512字節(jié)ram 、32條i/o口線、3個(gè)16位定時(shí)/計(jì)數(shù)器、8輸入4優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)、1個(gè)串行i/o口(可用于多機(jī)通信、i/o擴(kuò)展或全雙工uart)以及片內(nèi)振蕩器和時(shí)鐘電路。此外,由于器件采用了靜態(tài)設(shè)計(jì),可提供很寬的操作頻率范圍(頻率可降至0)。可實(shí)現(xiàn)兩個(gè)由軟件選擇的節(jié)電模式、空閑模式和掉電模式??臻e模式凍結(jié)cpu,但ram、定時(shí)器、串口和中斷系統(tǒng)仍然工作。掉電模式保存ram的內(nèi)容,但是凍結(jié)振蕩器,導(dǎo)致所有其它的片內(nèi)功能停止工作。由于設(shè)計(jì)是靜態(tài)的,時(shí)鐘可停止而不會(huì)丟失用戶數(shù)據(jù)。運(yùn)行可從時(shí)鐘停止處恢復(fù)。所以該單片機(jī)可以滿足系統(tǒng)要求,電路圖如下:圖2 單

5、片機(jī)最小系統(tǒng)電路圖2、步進(jìn)電機(jī)選擇步進(jìn)電機(jī)是一種能夠?qū)㈦娒}沖信號(hào)轉(zhuǎn)換成角位移或線位移的機(jī)電元件,它實(shí)際上是一種單相或多相同步電動(dòng)機(jī)。單相步進(jìn)電動(dòng)機(jī)有單路電脈沖驅(qū)動(dòng),輸出功率一般很小,其用途為微小功率驅(qū)動(dòng)。多相步進(jìn)電動(dòng)機(jī)有多相方波脈沖驅(qū)動(dòng),用途很廣。本設(shè)計(jì)使用的是四相三拍步進(jìn)電機(jī),連接圖如下:圖3 步進(jìn)電機(jī)接線圖3、驅(qū)動(dòng)電路的選擇驅(qū)動(dòng)模塊我們使用集成驅(qū)動(dòng)芯片uln2003,給芯片是高耐壓、大電流達(dá)林頓管由七個(gè)硅npn 達(dá)林頓管組成。該電路的特點(diǎn)如下:uln2003 的每一對(duì)達(dá)林頓都串聯(lián)一個(gè)2.7k 的基極電阻,在5v 的工作電壓下它能與ttl 和cmos 電路直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏

6、輯緩沖器來處理的數(shù)據(jù)。uln2003 工作電壓高,工作電流大,灌電流可達(dá)500ma,并且能夠在關(guān)態(tài)時(shí)承受50v 的電壓,輸出還可以在高負(fù)載電流并行運(yùn)行。1腳輸入,16腳輸出,你的負(fù)載接在vcc與16腳之間,不用9腳。 圖4 uln2003內(nèi)部結(jié)構(gòu)圖圖5 uln2003管腳圖uln2003是大電流驅(qū)動(dòng)陣列,多用于單片機(jī)、智能儀表、plc、數(shù)字量輸出卡等控制電路中??芍苯域?qū)動(dòng)繼電器等負(fù)載。所以足以滿足驅(qū)動(dòng)步進(jìn)電機(jī)的要求,連接圖如下:圖6 uln2003接線圖4、顯示電路的lcd顯示模塊是把lcd顯示屏、背景光源、線路 板和驅(qū)動(dòng)集成電路等部件構(gòu)造成1個(gè)整體作為1個(gè)獨(dú) 立部件使用,只留1個(gè)接口與外部通

7、信。顯示模塊通 過這個(gè)接口接收顯示的命令和數(shù)據(jù),并按指令和數(shù)據(jù) 的要求進(jìn)行顯示,外部電路通過這個(gè)接口讀出顯示模 塊的工作狀態(tài)和顯示數(shù)據(jù)。1602液晶模塊內(nèi)部的字 符發(fā)生存儲(chǔ)器(cgrom)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大 小寫、常用的符號(hào)和日文假名等,每1個(gè)字符都有1個(gè) 固定的代碼。用戶對(duì)模塊寫入適當(dāng)?shù)目刂泼睿纯?完成清屏、顯示、地址設(shè)置等操作 。設(shè)計(jì)采用并行方式控制,lcd與單片機(jī)的通訊接口電路如圖3所示采用直連的方法。圖7 1602顯示電路接線圖5鍵盤輸入模塊電路 設(shè)計(jì)中,鍵盤采用非編碼鍵盤系統(tǒng)中的獨(dú)立式按 鍵結(jié)構(gòu)。鍵盤工作方式采用定時(shí)掃描方式

8、。采用定時(shí) 器to定時(shí),通過輸出數(shù)據(jù),識(shí)別按鍵的工作狀態(tài)。鍵 盤主要用來提供人機(jī)接口,電路如圖3所示,采用獨(dú)立 式按鍵電路,各按鍵開關(guān)均采用了上拉電阻,保證在按 鍵斷開時(shí),各io有確定的高電平。按鍵功定義如 下:當(dāng)p32按下時(shí),步進(jìn)電機(jī)開始加速;當(dāng)p33按下 時(shí),步進(jìn)電機(jī)開始減速;當(dāng)p34按下時(shí),步進(jìn)電機(jī)開始 正轉(zhuǎn);當(dāng)p35按下時(shí),步進(jìn)電機(jī)開始反轉(zhuǎn)。按鍵抖動(dòng)的消除采用軟件消抖實(shí)現(xiàn)。連接圖如下:圖8 按鍵接連接圖四、系統(tǒng)軟件設(shè)計(jì)1、軟件流程圖圖9 系統(tǒng)流程圖2程序代碼見附件。五、總結(jié)采用模塊程序設(shè)計(jì),逐個(gè)模塊調(diào)好以后,再進(jìn)行系統(tǒng)程序總調(diào)試。利用仿真軟件proteus及keilc5l進(jìn) 行調(diào)試。

9、系統(tǒng)實(shí)現(xiàn)了可程序設(shè)定和顯示步進(jìn)角、步進(jìn)方向 和步進(jìn)速度,支持用開關(guān)量單獨(dú)控制步進(jìn)電機(jī)的轉(zhuǎn)向, 轉(zhuǎn)速。電路簡(jiǎn)單可靠,結(jié)構(gòu)緊湊,控制靈活,成本低,可 移植性強(qiáng)。經(jīng)實(shí)驗(yàn)驗(yàn)證,本系統(tǒng)對(duì)步進(jìn)電機(jī)的各項(xiàng)控 制都能達(dá)到比較理想的效果,具有較高的實(shí)用價(jià)值。通過此次課程設(shè)計(jì),我不僅將知識(shí)融會(huì)貫通,而且在查找資料的過程中也了解了許多課外知識(shí),開拓了視野,使自己在專業(yè)知識(shí)方面和動(dòng)手能力方面有了很大的提高,讓我學(xué)會(huì)了理論到實(shí)踐的轉(zhuǎn)化,即如何將自己學(xué)到的運(yùn)用到以后的生活和工作中,同時(shí),也讓我意識(shí)到團(tuán)隊(duì)精神的重要性。此外,感謝丁老師的悉心教導(dǎo)以及同學(xué)的幫助,正是王老師細(xì)心的輔導(dǎo)和提供的一些參考資料還有同學(xué)們的互相幫助,讓

10、我順利的完成了畢業(yè)設(shè)計(jì),相信這對(duì)我以后的生活和工作都會(huì)有很大的幫助。六參考文獻(xiàn)1徐薇莉,曹柱中控制理論與設(shè)計(jì)m上海:上海交通大學(xué)出版 社2003 2黃 堅(jiān)自動(dòng)控制原理及其應(yīng)用m北京:高等教育出版社, 2004 3先鋒工作室單片機(jī)程序設(shè)計(jì)實(shí)例m北京:清華大學(xué)出版社, 2003 4王幸之,鐘愛琴at89系列單片機(jī)原理及接口技術(shù)m北京:北京航天大學(xué)出版社,2004 5康華光,陳大欽模擬電子電路m北京:高教育出版社,2004 七附錄(1) 整體電路圖(2)程序代碼#include #include #define uchar unsigned char#define uint unsigned int

11、#define delaynop(); _nop_();_nop_();_nop_();_nop_();unsigned char code ffw8=0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6; /反轉(zhuǎn)unsigned char code rev8=0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe; /正轉(zhuǎn)/unsigned char code ffw8=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09; /反轉(zhuǎn)/unsigned char code rev8=0x09,0x08,0x0c,0x0

12、4,0x06,0x02,0x03,0x01; /正轉(zhuǎn)sbit k1 = p32; /運(yùn)行與停止sbit k2 = p33; /設(shè)定圈數(shù)sbit k3 = p34; /方向轉(zhuǎn)換sbit k4 = p35; /速率調(diào)整sbit lcd_rs = p20; sbit lcd_rw = p21;sbit lcd_en = p22;bit on_off=0; /運(yùn)行與停止標(biāo)志bit direction=1; /方向標(biāo)志bit rate_dr=1; /速率標(biāo)志bit snum_dr=1; /圈數(shù)標(biāo)志uchar code cdis1 = no.0738230126 ;uchar code cdis2 = 2

13、012/5/24;uchar code cdis3 = stop ;uchar code cdis4 = num: rate: ;uchar code cdis5 = running ;uchar m,v=0,q=0;uchar number=0,number1=0; uchar snum=20,snum1=20; /預(yù)設(shè)定圈數(shù)uchar rate=3; /預(yù)設(shè)定速率uchar data_temp,data_temp0,data_temp2; /*/* /* 延時(shí)t毫秒 /* 11.0592mhz時(shí)鐘,延時(shí)約1ms /* /*/void delay(uint t) uchar k; while

14、(t-) for(k=0; k124; k+) /*/void delayb(uchar x) /x*0.14ms uchar i; while(x-) for (i=0; i13; i+) /*/* /*檢查lcd忙狀態(tài) /*lcd_busy為1時(shí),忙,等待。為0時(shí),閑,可寫指令與數(shù)據(jù)。 /* /*/ bit lcd_busy() bit result; lcd_rs = 0; lcd_rw = 1; lcd_en = 1; delaynop(); result = (bit)(p0&0x80); lcd_en = 0; return(result); /*/* /*寫指令數(shù)據(jù)到lcd /*

15、rs=l,rw=l,e=高脈沖,d0-d7=指令碼。 /* /*/void lcd_wcmd(uchar cmd) while(lcd_busy(); lcd_rs = 0; lcd_rw = 0; lcd_en = 0; _nop_(); _nop_(); p0 = cmd; delaynop(); lcd_en = 1; delaynop(); lcd_en = 0; /*/* /*寫顯示數(shù)據(jù)到lcd /*rs=h,rw=l,e=高脈沖,d0-d7=數(shù)據(jù)。 /* /*/void lcd_wdat(uchar dat) while(lcd_busy(); lcd_rs = 1; lcd_rw

16、 = 0; lcd_en = 0; p0 = dat; delaynop(); lcd_en = 1; delaynop(); lcd_en = 0; /*/* /* lcd初始化設(shè)定 /* /*/void lcd_init() delay(30); lcd_wcmd(0x38); /16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù) delay(5); lcd_wcmd(0x38); delay(5); lcd_wcmd(0x38); delay(5); lcd_wcmd(0x0c); /顯示開,關(guān)光標(biāo) delay(5); lcd_wcmd(0x06); /移動(dòng)光標(biāo) delay(5); lcd_wcmd(0

17、x01); /清除lcd的顯示內(nèi)容 delay(5);/*/* /* 設(shè)定顯示位置 /* /*/void lcd_pos(uchar pos) lcd_wcmd(pos | 0x80); /數(shù)據(jù)指針=80+地址變量/*/* /* lcd1602初始顯示子程序 /* /*/void lcd_init_dis() delay(10); /延時(shí) lcd_init(); /初始化lcd lcd_pos(0); /設(shè)置顯示位置為第一行的第1個(gè)字符 m = 0; while(cdis1m != 0) /顯示字符 lcd_wdat(cdis1m); m+; lcd_pos(0x40); /設(shè)置顯示位置為第二

18、行第1個(gè)字符 m = 0; while(cdis2m != 0) lcd_wdat(cdis2m); /顯示字符 m+; delay(3000); /延時(shí) lcd_pos(0); /設(shè)置顯示位置為第一行的第1個(gè)字符 m = 0; while(cdis3m != 0) /顯示字符 lcd_wdat(cdis3m); m+; lcd_pos(0x40); /設(shè)置顯示位置為第二行第1個(gè)字符 m = 0; while(cdis4m != 0) lcd_wdat(cdis4m); /顯示字符 m+; for(m=0;m2;m+) lcd_pos(0x0c+m); /顯示方向符號(hào) lcd_wdat(0x3

19、e); /*/*/*數(shù)據(jù)轉(zhuǎn)換子程序/*/*/void data_conv() data_temp0=data_temp/10; /高位 if(data_temp0=0) data_temp0=0x20; /高位為0不顯示 else data_temp0=data_temp0+0x30; data_temp2=data_temp%10; /低位 data_temp2=data_temp2+0x30; /*/*/*數(shù)據(jù)顯示子程序/*/*/void data_dis() data_temp = snum; /顯示圈數(shù) data_conv(); lcd_pos(0x44); lcd_wdat(data

20、_temp0); lcd_pos(0x45); lcd_wdat(data_temp2); data_temp = rate; /顯示速率 data_conv(); lcd_pos(0x4d); lcd_wdat(data_temp0); lcd_pos(0x4e); lcd_wdat(data_temp2);/*/*/* 顯示運(yùn)行方向符號(hào)/*/*/void motor_dr() if(direction=1) /正轉(zhuǎn)方向標(biāo)志 for(m=0;m2;m+) lcd_pos(0x0c+m); /顯示方向符號(hào) lcd_wdat(0x3e); else for(m=0;m2;m+) /反轉(zhuǎn)方向標(biāo)志

21、lcd_pos(0x0c+m); /顯示方向符號(hào) lcd_wdat(0x3c); /*/*/* 顯示運(yùn)行狀態(tài)/*/*/void motor_run() if(on_off=1) tr0=1; lcd_pos(0); /設(shè)置顯示位置為第一行的第1個(gè)字符 m = 0; while(cdis5m != 0) lcd_wdat(cdis5m); /running m+; motor_dr(); / else tr0=0; p0 =0x0f; lcd_pos(0); /設(shè)置顯示位置為第一行的第1個(gè)字符 m = 0; while(cdis3m != 0) lcd_wdat(cdis3m); /stop m+; motor_dr(); / snum=snum1; / number1=0; /清圈數(shù)計(jì)數(shù)器 /* * 主程序 * */main() lcd_init_dis(); tmod = 0x01; /t0定時(shí)方式1 tl0 = 0x33; th0 = 0xf5; ea = 1; et0 = 1; p1=0; while(1) if(k1=0) /beep(); while(k1=0); /等待鍵釋放 on_off=on_off; motor_run(); /k1 end/*/ if(k2=0) if(sn

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論