版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、大連理工大學(xué)本科設(shè)計報告題目: 步進(jìn)電機(jī)轉(zhuǎn)速控制系統(tǒng)設(shè)計 步進(jìn)電機(jī)轉(zhuǎn)速控制系統(tǒng)設(shè)計一、 設(shè)計要求使用步進(jìn)電機(jī)作為被控制對象;由ZLG7290做人機(jī)對話平臺;利用單片機(jī)的P1(8位)和P3(部分口線)構(gòu)造系統(tǒng)。利用ZLG7290的鍵盤控制直流電機(jī),也可以利用ADC模塊(與電位器配合),利用電位器控制轉(zhuǎn)速;利用ZLG7290的8位LED數(shù)碼管顯示電機(jī)轉(zhuǎn)向、轉(zhuǎn)速參數(shù)顯示。二、 設(shè)計分析及系統(tǒng)方案設(shè)計系統(tǒng)分析: 程序為無限循環(huán)結(jié)構(gòu)。先調(diào)用A/D轉(zhuǎn)換程序,再調(diào)用BCD轉(zhuǎn)換程序,利用ZLG7290不斷顯示數(shù)碼管的數(shù)字,中斷程序包括鍵盤輸入電機(jī)旋轉(zhuǎn)方向,電位器控制電機(jī)轉(zhuǎn)速。算法描述:1)30H-37H(DA
2、TA1):顯示緩沖區(qū),裝載待顯示的字形碼,實驗中只用到4個數(shù)碼管,分別是30H,31H,34H,35H,不需要的32H,33H,36H,37H賦熄滅碼#00H。不斷調(diào)用WRNBYT子程序?qū)?shù)據(jù)寫入ZLG7290的10H-17H,顯示數(shù)據(jù)。2)單雙八拍相序放在20H-27H中,高四位都賦F,這樣不會影響低四位步進(jìn)電機(jī)相序節(jié)拍信號的輸出,為接下來中斷控制方向和轉(zhuǎn)速做準(zhǔn)備。3)設(shè)定定時器T1定時方式1,TH1和TL1賦初值#00H(TH1原始為#00H),A/D轉(zhuǎn)換的數(shù)據(jù)傳送給TH1,每當(dāng)T1定時時間到時,通過P1口的低四位(P1.0-P1.3)發(fā)出步進(jìn)電機(jī)的一個相序節(jié)拍,定時時間的改變就可改變電機(jī)
3、轉(zhuǎn)動的速度。4)拆分子程序。將累加器A中的數(shù)據(jù)拆分為兩個四位16進(jìn)制數(shù)并查表,為顯示方向和電機(jī)速度做準(zhǔn)備。5)中斷服務(wù)程序INT_7290,2A-2D裝載從ZLG7290的00H單元開始讀出的連續(xù)4個字節(jié)數(shù)據(jù),其中2BH中的就是鍵值。當(dāng)S1或S2鍵按下時,利用ZLG7290的/INT信號引發(fā)單片機(jī)的一個中斷,取鍵值后調(diào)用拆分查表程序?qū)⒎较蝻@示在數(shù)碼管上。其中S1鍵按下電機(jī)逆時針轉(zhuǎn)動,S2鍵按下電機(jī)順時針轉(zhuǎn)動。6)控制轉(zhuǎn)速子程序T1_INT,將A/D轉(zhuǎn)換結(jié)果送給累加器A,低四位清零后送給定時器高八位,判斷方向位,利用CJNE命令,若方向位是1則執(zhí)行接下來的語句,若不是則跳轉(zhuǎn)到LOOP11,再判斷
4、時候等于2,若是則執(zhí)行下來的語句,若不是則跳轉(zhuǎn)到DO,不做任何操作,即電機(jī)停止轉(zhuǎn)動。7)A/D轉(zhuǎn)換子程序,將轉(zhuǎn)換結(jié)果送3FH中,再經(jīng)過數(shù)據(jù)濾波,采集256次相加再取高8位數(shù)據(jù)即為平均值送3EH中。8)BCD轉(zhuǎn)換子程序,將3EH中數(shù)據(jù)與#0F0相與,取出高四位,再半字節(jié)交換,寄存器B中送10,相除后A中為十位數(shù),B中為個位數(shù),在此調(diào)用拆分子程序查表的相應(yīng)字形碼后送30H,31H顯示。三、系統(tǒng)電路圖四、 外圍接口模塊硬件電路功能描述步進(jìn)電機(jī)是一種將脈沖信號變換成相應(yīng)角位移或線位移的電磁裝置,當(dāng)有脈沖輸入時步進(jìn)電機(jī)一步一步的轉(zhuǎn)動,每給一個脈沖信號,就轉(zhuǎn)過一定的角度。步進(jìn)電動機(jī)的角位移量和輸入脈沖的個
5、數(shù)嚴(yán)格成正比,在時間上與輸入脈沖同步,因此只要控制輸入脈沖的數(shù)量、頻率及電動機(jī)繞組通電的相序,便可獲得所需的轉(zhuǎn)角、轉(zhuǎn)速及轉(zhuǎn)動方向。ZLG7290B:ZLG7290B是數(shù)碼管動態(tài)顯示驅(qū)動、鍵鍵盤掃描管理芯片。能夠驅(qū)動8位共陰極結(jié)構(gòu)的LED數(shù)碼管或64位獨立的LED,同時還能掃描管理多達(dá)64個按鍵(S1-S56、F0-F7)的掃描識別。本實驗用到了4個數(shù)碼管顯示方向和速度,兩個按鍵S1,S2控制方向的改變。TLC549是被廣泛應(yīng)用的CMOS8位A/D轉(zhuǎn)換器。該芯片有一個模擬輸入端口,三態(tài)的數(shù)據(jù)串行輸出接口可以方便地和微處理器或外圍設(shè)備連接。TLC549僅僅使用輸入/輸出時鐘和芯片選擇信號控制數(shù)據(jù)。
6、本實驗中通過電位器將連續(xù)的模擬的電阻值經(jīng)過TLC549轉(zhuǎn)換成8為二進(jìn)制數(shù)字信號。五、 主程序中主要變量定義變量名稱RAM單元/寄存器功能DATA130H顯示緩沖區(qū)首地址20H相序首地址28HA/D轉(zhuǎn)換數(shù)據(jù)濾波求和中的高八位29HA/D轉(zhuǎn)換數(shù)據(jù)濾波求和中的低八位2AH-2DH讀出的ZLG7290de 00H-03H數(shù)據(jù)存放地址2EH相序循環(huán)次數(shù)8FX2FH控制轉(zhuǎn)向標(biāo)志3CH相序列表中最后一個相序地址3DH相序列表中第一個相序地址3EH濾波結(jié)果存放地址3FHA/D轉(zhuǎn)換結(jié)果存放地址六、系統(tǒng)軟件中各個子程序的功能描述子程序名稱入口參數(shù)出口參數(shù)功能 描述CFR3、R4R3、R4將數(shù)據(jù)拆分為兩位16進(jìn)制數(shù)
7、查表得對應(yīng)字形碼INT_7290R0、R7、R2、R3、R4R3、R4顯示電機(jī)轉(zhuǎn)動方向T1_INT3FHA控制電機(jī)轉(zhuǎn)動速度ADZH無A模擬信號轉(zhuǎn)換為數(shù)字信號BCD_CONTAR3、R416進(jìn)制數(shù)轉(zhuǎn)換為10進(jìn)制數(shù)DELAYR0、R1R0、R1延時子程序使顯示穩(wěn)定RDADDR0,R2,R3,R4,R7R0到R0+7多字節(jié)讀操作WRNBYTR0,R2,R3,R7無多字節(jié)寫操作STA無無I²C啟動信號STOP無無I²C停止信號MACK無無發(fā)送I²C應(yīng)答信號MNACK無無發(fā)送I²C非應(yīng)答信號CACK無F0I²C應(yīng)答檢測WRBYTA無I²C發(fā)送一
8、個字節(jié)RDBYT無R2I²C接收一個字節(jié)七、主程序程序流程圖T1定時時間到/INT0主程序入口TL1賦初值#00HTH 1賦AD轉(zhuǎn)換結(jié)果讀出ZLG7290B內(nèi)部00H-03H的數(shù)據(jù)于2A-2D中對ZLG7290B復(fù)位開INT0,T1中斷NFX=#01?設(shè)定T1工作方式和初值NY取鍵值、拆分查表建立相序表FX=#02?逆時針轉(zhuǎn)相序加1送顯示緩沖區(qū)Y建立變量緩沖區(qū)停止順時針轉(zhuǎn)相序減1RETIAD轉(zhuǎn)換模塊INT_7290中斷服務(wù)子程序BCD轉(zhuǎn)換模塊調(diào)WRNBYT寫入數(shù)據(jù)到ZLG7290的顯示緩沖區(qū)NDJNE 3EHMOV 3EH,#08HMOV 3DH,#20HMOV 3CH,#27H延時
9、子程序Y主程序流程圖DORETIT1_INT中斷服務(wù)子程序八、程序清單;#ADC模塊連線#DATBITP3.3CLKBITP3.4CSBITP3.5;#鍵盤控制模塊連線#SDABITP1.4SCLBITP1.5 WSLAEQU070HRSLAEQU071HFXEQU2FH;將控制轉(zhuǎn)向標(biāo)志放在2FH單元DATA1EQU30H;變量緩沖區(qū)的首地址;*ORG8000HLJMP8100HORG8003HLJMPINT_7290;控制轉(zhuǎn)向的中斷服務(wù)程序ORG801BHLJMPT1_INT;控制轉(zhuǎn)速的中斷服務(wù)程序;*; 初始化部分 ;*ORG8100HSTART: MOVSP,#60HCLRP1.7 ;7
10、290復(fù)位LCALLDELAYSETBP1.7SETBEA ;開INT0中斷SETBEX0SETBIT0 ;觸發(fā)極性為下降沿 SETBET1;開T1中斷SETBTR1MOVTMOD,#10H;設(shè)定定時器T1工作方式及初值MOVTH1,#00HMOVTL1,#00HMOV3DH,#20HMOV3CH,#27HMOV2EH,#08HMOVFX,#00HMOV20H,#0F8H;相序放在20H27H中MOV21H,#0FCHMOV22H,#0F4HMOV23H,#0F6HMOV24H,#0F2HMOV25H,#0F3HMOV26H,#0F1HMOV27H,#0F9H;*MOV 34H,#0DAH M
11、OV 35H,#0FCH;用34H、35H顯示FLAG;用30H31H顯示ADC轉(zhuǎn)換結(jié)果MOVDATA1+7,#00H;熄滅MOVDATA1+6,#00H;熄滅MOVDATA1+3,#00H;熄滅MOVDATA1+2,#00H;*;向7290B寫入數(shù)據(jù);*LOOP:LCALLADZH;數(shù)據(jù)濾波LCALLBCD_CONT;轉(zhuǎn)換成十進(jìn)制MOVR7,#08HMOVR2,#10HMOVR3,#WSLAMOVR0,#DATA1LCALLWRNBYT;調(diào)顯示子程序LCALLDELAY ;使顯示穩(wěn)定 SJMPLOOP ;*LEDSEG:DB0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0
12、E4H;0-7的字形碼DB0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH;8-F的字形碼DB0FAH,1EH,12H,00H;a,t,= 和熄滅碼;*;拆分程序(將A中的數(shù)據(jù)拆分為兩個四位16進(jìn)制數(shù)并查表);( 結(jié)果在R4、R3中 ) ;*CF:PUSH02H ;將A中的數(shù)據(jù)拆分為兩個四位16進(jìn)制數(shù)并查表PUSHDPH PUSHDPLMOVDPTR,#LEDSEGMOVR2,AANLA,#0FHMOVCA,A+DPTRMOVR3,AMOVA,R2SWAPAANLA,#0FHMOVCA,A+DPTRMOVR4,APOPDPLPOPDPHPOP02HRET ;*; 中斷服務(wù)程
13、序 INT_7290:(INT0),顯示FLAG值;*INT_7290:PUSH00HPUSH02HPUSH03HPUSH04HPUSH07HPUSHACCPUSHPSWMOVR0,#2AH;狀態(tài)數(shù)據(jù)區(qū)首址MOVR7,#04H;取狀態(tài)數(shù)據(jù)個數(shù)MOVR2,#00H ;內(nèi)部數(shù)據(jù)首地址MOVR3,#WSLA;取器件地址(寫)MOVR4,#RSLA;取器件地址(讀) LCALLRDADD;讀出7290的00H-03H數(shù)據(jù)存于2AH-2DH NOP;設(shè)定一個斷點,以觀察讀出的4個數(shù)據(jù)MOVFX,2BH;取健值,存放在2BH內(nèi)MOVA,FX;顯示FLAGLCALLCF;拆分、查表MOVDATA1+4,R3
14、MOVDATA1+5,R4POPPSWPOPACCPOP07HPOP04HPOP03HPOP02HPOP00HRETI;*; 中斷服務(wù)程序 改變轉(zhuǎn)向;*T1_INT:PUSH00HPUSH01HMOVR0,3DHMOVR1,3CHMOVTL1,#00HMOVA,3FHANLA,#0F0HMOVTH1,ALOOP1:MOVA,FXCJNEA,#01H,LOOP11;若FLAG=02H則跳轉(zhuǎn)到LOOP11,左循環(huán),逆時針MOVA,R0MOVP1,AINC3DHSJMPLOOP12LOOP11: CJNEA,#02H,DOMOVA,R1MOVP1,ADEC3CHLOOP12:DJNZ2EH,DO;一
15、個相序周期完成MOV2EH,#08HMOV3DH,#20HMOV3CH,#27HDO:POP01HPOP00HRETI;#ADC的相關(guān)子程序#ADZH: PUSH00HPUSH02HLOOP2:MOV R2,#0FFHLCALLTLC549_ADCMOVA,3FHMOV29H,AMOV28H,#00H;放累加和高八位的內(nèi)存單元28H清0LOOP20:LCALLTLC549_ADCCLRCADDA,29HMOV29H,A;29H放低位MOVA,#00HADDCA,28HMOV28H,A;28H放高位DJNZR2,LOOP20MOV3EH,A;將數(shù)據(jù)濾波的結(jié)果放在3EH中POP02HPOP00HR
16、ETTLC549_ADC:PUSH07HCLRACLRCLKMOVR7,#08HCLRCSLOOP3: SETBCLKMOVC,DATRLCACLRCLKDJNZR7, LOOP3MOV3FH,A;將ADC轉(zhuǎn)換的結(jié)果放在3FH中SETBCSCLRCLKPOP07HRET;*BCD_CONT: PUSH07HPUSH06HPUSH05HPUSH02HMOVA,3EH ANL A,#0F0H SWAP AMOVB,#0AH;B中放入10DIVABMOVR6,A;R6中得十位數(shù) MOVR5,B;R5中得個位數(shù)MOVA,R6LCALLCF;調(diào)拆分子程序(入口A出口R4,R3-字形碼)MOVDATA1+
17、1,R3MOVA,R5LCALLCF;調(diào)拆分子程序(入口A出口R4,R3-字形碼)MOVDATA1+0,R3POP02HPOP05HPOP06HPOP07HRET DELAY:PUSH00HPUSH01HMOVR0,#00HDELAY1:MOVR1,#00HDJNZR1,$DJNZR0,DELAY1POP01HPOP00HRET;*;通用的I2C通訊子程序;相關(guān)子程序WRBYT、STOP、CACK、STA;*WRNBYT:PUSHPSWPUSHACCWRADD:MOVA,R3;取外圍器件地地址(包含r/w=0)LCALLSTA;發(fā)送起始信號S LCALLWRBYT;發(fā)送外圍地址LCALLCAC
18、K;檢測外圍器件的應(yīng)答信號JBF0,WRADD;如果應(yīng)MOVA,R2LCALLWRBYT;發(fā)送內(nèi)部寄存器首地址LCALLCACK;檢測外圍器件的應(yīng)答信號JBF0,WRADD;如果應(yīng)答不正確返回重來 WRDA:MOVA,R0LCALLWRBYT;發(fā)送外圍地址LCALLCACK;檢測外圍器件的應(yīng)答信號JBF0,WRADD;如果應(yīng)答不正確返回重來INCR0DJNZ R7,WRDALCALLSTOP POPACCPOPPSWRET ;*;通用的I2C通訊子程序(多字節(jié)讀操作);入口參數(shù)R7字節(jié)數(shù);;R0目標(biāo)數(shù)據(jù)塊首地址;R2從器件內(nèi)部子地址;;R3器件地址(寫);R4器件地址(讀);相關(guān)子程序WRBY
19、T、STOP、CACK、STA、MNACK ;*RDADD: PUSHPSW;從PCF8563的02H單元讀入7個參數(shù)PUSHACC;存放于20H-26H單元RDADD1:LCALLSTA MOVA,R3;取器件地址(寫)LCALLWRBYT;發(fā)送外圍地址LCALLCACK;檢測外圍器件的應(yīng)答信號JBF0,RDADD1;如果應(yīng)答不正確返回重來MOVA,R2;取內(nèi)部地址LCALLWRBYT;發(fā)送外圍地址LCALLCACK;檢測外圍器件的應(yīng)答信號JBF0,RDADD1;如果應(yīng)答不正確返回重來LCALLSTAMOVA,R4;取器件地址(讀)LCALLWRBYT;發(fā)送外圍地址LCALLCACK;檢測外
20、圍器件的應(yīng)答信號JBF0,RDADD1;如果應(yīng)答不正確返回重來RDN:LCALLRDBYT MOVR0,ADJNZR7,ACKLCALLMNACKLCALLSTOPPOPACCPOPPSWRETACK:LCALLMACKINCR0SJMPRDN ;(3)I2C各個信號子程序;*;啟動信號子程序S ;*STA:SETBSDA;啟動信號SSETBSCLNOP;產(chǎn)生4.7US延時NOPNOPNOPNOPCLRSDANOP;產(chǎn)生4.7US延時NOPNOPNOPNOP CLRSCLRET ;*;停止信號子程序P ;*STOP:CLRSDA ;停止信號PSETBSCLNOP;產(chǎn)生4.7US延時NOPNOP
21、NOPNOPSETBSDANOP;產(chǎn)生4.7US延時NOPNOPNOPNOPCLRSCLCLRSDARET ;*;應(yīng)答信號子程序 MACK;*MACK:CLRSDA;發(fā)送應(yīng)答信號ACKSETBSCLNOP;產(chǎn)生4.7US延時NOPNOPNOPNOPCLRSCLSETBSDARET;*;非應(yīng)答法信號子程序MNACK;*MNACK:SETBSDA;發(fā)送非應(yīng)答信號NACKSETBSCLNOP;產(chǎn)生4.7US延時NOPNOPNOPNOPCLRSCLCLRSDARET;*;應(yīng)答檢測子程序CACK;*CACK:SETBSDA;應(yīng)答位檢測子程序SETBSCL CLRF0MOVC,SDA;采樣SDAJNCCE
22、ND;應(yīng)答正確時轉(zhuǎn)CENDSETBF0;應(yīng)答錯誤時F0置一CEND:CLRSCLRET;*;發(fā)送一個字節(jié)子程序WRBYT;*WRBYT:PUSH06HMOVR6,#08H;發(fā)送一個字節(jié)子程序 WLP:RLCA ;(入口參數(shù)A)MOVSDA,CSETBSCLNOP;產(chǎn)生4.7US延時NOPNOPNOPNOPCLRSCLDJNZR6,WLPPOP06HRET;*;接收一個字節(jié)子程序RDBYT ;*RDBYT: PUSH06HMOVR6,#08H;接收一個字節(jié)子程序RLP:SETBSDASETBSCL; *NOP;!產(chǎn)生大于15微秒的延時!NOP ;注意這是專門為ZLG7290NOP ;添加的20微秒延時部
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版戶外用品銷售代理及品牌合作合同2篇
- 臨時場地租賃協(xié)議2024版3篇
- 二零二五年度農(nóng)家樂餐飲承包合作協(xié)議3篇
- 二零二五年度年薪制員工聘用合同書:行業(yè)特定版
- 二零二五年度居民供水用水節(jié)能減排合同范本3篇
- 2025年度生物制藥研發(fā)人員聘用勞動合同范本3篇
- 2025年度個人小戶型房產(chǎn)買賣合同附帶房產(chǎn)過戶手續(xù)指導(dǎo)3篇
- 2025年食品生產(chǎn)HACCP體系審核與認(rèn)證協(xié)議2篇
- 二零二五年度工業(yè)廢水處理設(shè)施運(yùn)營管理協(xié)議3篇
- 二零二五年度建筑石材加工及供應(yīng)合同范本3篇
- 人力資源 -人效評估指導(dǎo)手冊
- 大疆80分鐘在線測評題
- 2023年成都市青白江區(qū)村(社區(qū))“兩委”后備人才考試真題
- 2024中考復(fù)習(xí)必背初中英語單詞詞匯表(蘇教譯林版)
- 海員的營養(yǎng)-1315醫(yī)學(xué)營養(yǎng)霍建穎等講解
- 《現(xiàn)代根管治療術(shù)》課件
- 肩袖損傷的護(hù)理查房課件
- 2023屆北京市順義區(qū)高三二模數(shù)學(xué)試卷
- 公司差旅費報銷單
- 2021年上海市楊浦區(qū)初三一模語文試卷及參考答案(精校word打印版)
- 八年級上冊英語完形填空、閱讀理解100題含參考答案
評論
0/150
提交評論