




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課 程 設(shè) 計(jì) 課程名稱 微型計(jì)算機(jī)控制技術(shù) 題目名稱 步進(jìn)電機(jī)角度控制(1)學(xué)生學(xué)院 自動(dòng)化學(xué)院 專業(yè)班級(jí) 自動(dòng)化(4)班 學(xué) 號(hào)學(xué)生姓名指導(dǎo)教師 2012 年 6 月 26 日一、 系統(tǒng)設(shè)計(jì)說明1. 硬件設(shè)計(jì)本次設(shè)計(jì)要求通過鍵盤按鍵實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)次數(shù)和每次轉(zhuǎn)動(dòng)的角度的控制,并通過數(shù)碼管顯示出來。本方案中通過按鍵對(duì)步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)角度進(jìn)行設(shè)定,給各個(gè)按鍵設(shè)置不同的鍵值。按下按鍵時(shí),給8255A一個(gè)信號(hào)設(shè)定步進(jìn)電機(jī)下一步的動(dòng)作。8086通過8255A的數(shù)據(jù)總線讀取該信號(hào),并作出反應(yīng),通過給8255A一系列的指令驅(qū)動(dòng)其工作,從而驅(qū)動(dòng)步進(jìn)電機(jī)和LED顯示器2. 軟件設(shè)計(jì)顯示模塊設(shè)計(jì)說明:為使顯
2、示程序具有通用性和靈活性,在8086內(nèi)設(shè)置一個(gè)顯示緩沖區(qū),顯示緩沖區(qū)的每個(gè)單元與LED的各位一一對(duì)應(yīng)。當(dāng)主程序需要顯示,只需將要顯示的字符送入顯示緩沖區(qū),然后調(diào)用顯示子程序。顯示子程序的任務(wù)則是逐一取出顯示緩沖區(qū)中的字符、查字形表轉(zhuǎn)換成相應(yīng)字型碼,然后通過字段口輸出顯示。顯示模塊是用四位七段數(shù)碼管來顯示轉(zhuǎn)動(dòng)次數(shù)和每次轉(zhuǎn)動(dòng)的角度。給八個(gè)按鍵設(shè)置不同的子程序,當(dāng)按下按鍵時(shí),根據(jù)事先設(shè)定好的各個(gè)按鍵對(duì)應(yīng)的轉(zhuǎn)動(dòng)角度的值輸出到數(shù)碼管進(jìn)行顯示。步進(jìn)電機(jī)模塊設(shè)計(jì)說明:在此設(shè)計(jì)中,采用的是八拍步進(jìn)電機(jī)。步進(jìn)電機(jī)控制程序就是完成環(huán)形分配器的任務(wù),從而控制電動(dòng)機(jī)的轉(zhuǎn)動(dòng),以達(dá)到控制轉(zhuǎn)動(dòng)角度和位移的目的。控制模型可以
3、以立即數(shù)的形式一一給出。對(duì)于步進(jìn)電機(jī)模塊的程序設(shè)計(jì)采用循環(huán)程序設(shè)計(jì)方法。先把轉(zhuǎn)動(dòng)的次數(shù)和角度的控制模型存放在內(nèi)存單元中,然后再逐一從單元中取出控制模塊并輸出。首先啟動(dòng),按下按鍵選擇步進(jìn)電機(jī)的角度,然后讀入轉(zhuǎn)動(dòng)的控制模型驅(qū)動(dòng)步進(jìn)電機(jī)轉(zhuǎn)動(dòng)。二、 程序設(shè)計(jì)流程圖開始結(jié)束實(shí)現(xiàn)鍵的功能數(shù)碼顯示是否按鍵三、 心得體會(huì)這是大學(xué)最后一次的單片機(jī)課程設(shè)計(jì)了,這一次我抽到的是86,用C語言去設(shè)計(jì)的。從中我發(fā)現(xiàn)相對(duì)匯編語言,C語言有很多優(yōu)點(diǎn)。經(jīng)過不斷地去編程加載,我復(fù)習(xí)了C語言編程,同時(shí)懂得如何在單片機(jī)上實(shí)現(xiàn)C語言編程。數(shù)碼管,鍵盤和異步電動(dòng)機(jī),是三個(gè)不一樣的模塊,從實(shí)現(xiàn)的過程中,鞏固了很多知識(shí)。最重要的是,發(fā)現(xiàn)問
4、題,去尋找問題的緣由,從而解決。四、 主要參考文獻(xiàn)計(jì)算機(jī)控制技術(shù)實(shí)驗(yàn)指導(dǎo)書,李傳芳等編。51單片機(jī)C語言教程,郭天祥等編。電子工業(yè)出版社。 微型計(jì)算機(jī)原理及應(yīng)用,何小敏等編。機(jī)械工業(yè)出版社。任務(wù)一:編程控制步進(jìn)電機(jī),順時(shí)針方向行走180度(角度顯示在七段LED上)3秒后行走45度(顯示角度)3秒后行走90度(顯示角度)3秒后再次進(jìn)入循環(huán)。程序代碼:STACK SEGMENT STACKDW 256 DUP(?)STACK ENDSDATA SEGMENTTABLE1 DB 10H,30H,20H,60H,40H,0C0H,80H,90HDATA ENDSCODE SEGMENTASSUME C
5、S:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AXMAIN: MOV AL,81H, OUT 63H,AL MOV AH,30H MOV BX,0FF00H MOV DX,01H CALL DISPA0: MOV CX,0008H MOV SI,OFFSET TABLE1A1: MOV AL,SI OUT 60H,AL CALL DALLY INC SI DEC AH JNZ L1 CALL DALL CMP BX,0FFH JNZ A MOV AH,30H XOR BX,0FFFFH MOV DX,01H JMP L1A: CMP BX,OFFOOH JNZ
6、A8 MOV AH,0CH XOR BX,0FF00H MOV DX,02H CALL DISP JMP L1A8: MOV AH,18H XOR BX,0FFH MOV DX,03H CALL DISPL1: LOOP A1 JMP A0DISP: CMP DX,01H JNZ D1 MOV AL,0EFH OUT 62H,AL MOV AL,0FCH OUT 61H,AL CALL TIME MOV AL,0DFH OUT 62H,AL MOV AL,0FEH OUT 61H,AL CALL TIME MOV AL,0BFH OUT 62H,AL MOV AL,60H OUT 61H,AL
7、 CALL TIME RETD1: CMP DX,02H JNZ D2 MOV AL,0EFH OUT 62H,AL MOV AL,0B6H OUT 61H,AL CALL TIME MOV AL,0DFH OUT 62H,AL MOV AL,66H OUT 61H,AL CALL TIME RETD2: MOV AL,0FEH OUT 62H,AL MOV AL,0FCH OUT 61H,AL CALL TIME MOV AL,0DFH OUT 62H,AL MOV AL,0F6H OUT 61H,AL CALL TIME RETTIME: PUSH AX PUSH CXTIME1: MOV
8、 AX,0010HTIME2 : DEC AX JNZ TIME2 LOOP TIME1 POP CX POP AX RETDALLY: PUSH CX MOV CX,0100HA4: PUSH AX POP AX LOOP A4 POP CX RETDALLY1: PUSH AX PUSH CX MOV CX,0002HT1: MOV AX,0010HT2: DEC AX JNZ T2 LOOP T1 POP CX POP AX RETDALL: PUSH CX PUSH AX MOV CX,0300HA6: MOV AX,056CHA7: DEC AX CALL DISP JNZ A7 L
9、OOP A6 POP AX POP CX RETCODE ENDS END START任務(wù)二:完成A/D轉(zhuǎn)換實(shí)驗(yàn)并把轉(zhuǎn)換結(jié)果顯示在七段LED上顯示出來。程序代碼:STACK SEGMENT STACKDW 64 DUP(?)STACK ENDSDATA SEGMENTTAB1 DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH, 0FEH,0F6H,0EFH,3EH,9CH,7AH,9EH,8EHDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AL OUT 00H,AL CALL DAL
10、LY IN AL,00H MOV BX,OFFSET TAB1 PUSH AX MOV AL,80H OUT 63H,AL POP AX PUSH AX AND AX,000FH ADD BX,AX MOV AL,BX OUT 61H,AL MOV AL,0FEH OUT 62H,AL CALL TIME MOV AL,0FFH OUT 62H,AL POP AX MOV BX,OFFSET TAB1 PUSH AX AND AX,00F0H SHR AL,4 ADD BX,AX MOV AL,BX OUT 61H,AL MOV AL,0DFH OUT 62H,AL CALL TIME MOV
11、 AL,0FFH OUT 62H,AL POP AX JMP STARTTIME: PUSH AX PUSH CX MOV CX,0020HT1: MOV AX,0030HT2: DEC AX JNZ T2 LOOP T1 POP CX POP AX RETDALLY: PUSH CX PUSH AX MOV CX,0004HA5: MOV AX,005CHA6: DEC AX JNZ A6 LOOP A5 POP AX POP CX RETCODE ENDS END START任務(wù)三:實(shí)現(xiàn):(1) 定義鍵盤按鍵:3個(gè)功能鍵:設(shè)置SET、清零CLR,開始START;(2) 顯示器上三位顯示每次
12、行走的角度;(3) 通過鍵盤按鍵,設(shè)置步進(jìn)電機(jī)行走的最大角度值:按SET鍵后,使用鍵盤設(shè)置角度,再按一次START置入;按CLR清零返回原位。(4) 轉(zhuǎn)動(dòng)電位器啟動(dòng)步進(jìn)電機(jī)跟隨轉(zhuǎn)動(dòng),到位后停止;電位器回原位步進(jìn)電機(jī)也回原位。步進(jìn)電機(jī)角度能顯示分辨率為15度。程序代碼:#include#define pa 0x60#define pb 0x61#define pc 0x62#define com 0x63#define uint unsigned int#define uchar unsigned charucharduan=0xfc,0x60,0xf2,0x66,0xb6,0xbe,0xe0,
13、0xfe,0xf6,0xef,0x3e,0x9c,0x7a,0x9e,0x8euchar wei=0xef,0xdf,0xbf,0x7f;uchar moto=0x90,0x80,0xc0,0x40,0x60,0x20,0x30,0x10;uchar buff=0,0,0,0;int flag=1;int dushu,max=0;Void delay(int t)Int a,b;For(a=t;a0;a-)For(b=110; b0:b-);Void dis(int a,int b,int c,int d)Outp(pc,wei3);Outp(pb,duana);Depaly(15)Outp(
14、pc,wei2);Outp(pb,duanb);Depaly(15)Outp(pc,wei1);Outp(pb,duanc);Depaly(15)Outp(pc,wei0);Outp(pb,duand);Depaly(15)Void keyscan1()Uchar temp,i;Outp(pc,0x7f);Temp=inp(pc);Temp=temp&0x0c;If(temp=0x08) dushu=1;Buff0=buff0+1; If(buff09)buff0=0; If(temp=0x04)dushu=5;Buff1=buff1+1; If (buff19)buff1=0;Outp(pc
15、,0xbf);Temp=inp(pc);If(temp=0x88)dushu=2;flag=3;If(temp=0x04)dushu=6; Buff2=buff2+1; If(buff29) buff2=0; Outp(pc,0xdf);Temp=inp(pc);Temp=temp&0x0c;If(temp=0x08)dushu=3;If(temp=0x04)dushu=7;flag=1;Outp(pc,0xef);Temp=inp(pc);Temp=temp&0x0c;If(temp=0x08)dushu=4;flag=2;If(temp=0x04)dushu=8; Buff3=buff3+
16、1; If(buff39)buff3=0; delay(150);Void keyscan()Uchar temp;Outp(pc,0x00);Temp=inp(pc);Temp=temp&0x0c;If(temp!=0x0c)delay(2);If (temp!=0x0c)Keyscan1();Void main()signed int y=0,step=0,x,dian,i;Uchar temp;Outp(com,0x81);While(1)Keyscan();If(flag=1)dis(buff3,buff2,buff1,buff0);If(flag=2)buff0=0;buff1=0;,buff2=0;buff3=0;max=0;If(y0)If(step=8)step=0;For(i=4;i0;i-)(outp(pa,moto8-step);Step+;Delay(10);Y=y-15;Dis(0,0,0,0);If(flag=3)outp(com,0x81);Outp(0x00,1)Doam=inp(0x00);Max=buff0+buff1*10+buff2*100+buff3*1000;X=max/15*dian/255*15;If(xy)If(step=8)step=0;For(i=4;i0;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- “春瓶”名稱的釋義及其原始功能探究
- 新媒體裝置交互-洞察及研究
- 培訓(xùn)機(jī)構(gòu)績(jī)效管理辦法
- 公益放映預(yù)算管理辦法
- 隱私保護(hù)成本效益-洞察及研究
- 社會(huì)治理:近二十年國(guó)內(nèi)社會(huì)治理創(chuàng)新研究
- 2025版生產(chǎn)安全事故應(yīng)急預(yù)案5匯編
- 檔案耗材供應(yīng)管理辦法
- 構(gòu)成一般事故的指標(biāo)是
- 航空應(yīng)急救援體系
- 2025至2030中國(guó)直聯(lián)式真空泵行業(yè)市場(chǎng)現(xiàn)狀分析及競(jìng)爭(zhēng)格局與投資發(fā)展報(bào)告
- 2025至2030中國(guó)無源光分路器行業(yè)發(fā)展趨勢(shì)分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 痛風(fēng)治療與護(hù)理課件
- T/CCBD 19-2022品牌餐廳評(píng)價(jià)規(guī)范
- 河南省南陽(yáng)市內(nèi)鄉(xiāng)縣2025屆數(shù)學(xué)七下期末調(diào)研試題含解析
- 校際結(jié)對(duì)幫扶協(xié)議書
- 第四版(2025)國(guó)際壓力性損傷潰瘍預(yù)防和治療臨床指南解讀
- 企業(yè)電工面試題及答案
- 倉(cāng)庫(kù)與生產(chǎn)線的有效對(duì)接計(jì)劃
- 《心律失?;颊叩淖o(hù)理》課件
- 2025江蘇省惠隆資產(chǎn)管理限公司招聘30人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
評(píng)論
0/150
提交評(píng)論