freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

中南大學(xué)_微機(jī)課設(shè)報(bào)告-小型步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)(完整版)

2025-07-15 09:13上一頁面

下一頁面
  

【正文】 圖 6 步進(jìn)電機(jī)模塊 此模塊的主要功能是通過接收 8255 的 A 口輸入信號(hào)來控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng), A,B,C,D 分別代表不同的四個(gè)相位,分別接入到 PA4,PA5,PA6 和 PA7,實(shí)現(xiàn)轉(zhuǎn)動(dòng)控 制。電機(jī)轉(zhuǎn)動(dòng)時(shí)按下,電機(jī)暫停,當(dāng)前電機(jī)運(yùn)行參數(shù)不變,再次按下時(shí),電機(jī)繼續(xù)按暫停前參數(shù)運(yùn)行; 停止鍵:無論電機(jī)處于任何狀態(tài),按下此鍵,電機(jī)停止轉(zhuǎn)動(dòng),電機(jī)各運(yùn)行參數(shù)復(fù)位,默認(rèn)參數(shù)為:“順時(shí)針,停止?fàn)顟B(tài), 1 檔”; 檔位鍵:無論電機(jī)處于任何狀態(tài),均可設(shè)定電機(jī)檔位。 四相步進(jìn)電機(jī)按 照通電順序的不同,可分為單四拍、雙四拍、八拍三種工作方式。 驅(qū)動(dòng)控制系統(tǒng)組成 : 使用、控制步進(jìn)電機(jī)必須由環(huán)形脈沖,功率放大等組成的控制系統(tǒng),其方框圖如下: 脈沖信號(hào)的產(chǎn)生 : 脈沖信號(hào)一般由單片機(jī)或 CPU產(chǎn)生,一般脈沖信號(hào)的占空比為 左右,電機(jī)轉(zhuǎn)速越高,占空比則越大。使得在速度、位置等控制領(lǐng)域用步進(jìn)電機(jī)來控制變的非常的簡單。它是一片使用單一 +5V電源的 40腳雙列直插式大規(guī)模集成電路。 熟練掌握和運(yùn)用匯編和 C 語言編寫程序控制 8255 各口的輸入輸出,并正確帶動(dòng)數(shù)碼管及步進(jìn)電機(jī);能熟練運(yùn)用匯編和 C 語言實(shí)現(xiàn) 8254 的定時(shí)功能,以確保 8255 輸出的脈沖頻率穩(wěn)定。主要使用到了并行接口電路 825 LED七段數(shù)碼管電路、 8086cpu、步進(jìn)電機(jī)等元件。主要是通過按鍵的不同來設(shè)置直流電機(jī)的轉(zhuǎn)速、運(yùn)行狀態(tài)和方向。 熟練掌握 ISA 總線配置方式下硬件實(shí)驗(yàn)的調(diào)試 ,并能獨(dú)立的排除故障 ,以確保實(shí)驗(yàn)的順利進(jìn)行。 8255A的通用性強(qiáng),使用靈活,通過它 CPU 可直接與外設(shè)相連接。 步進(jìn)電機(jī)動(dòng)態(tài)指標(biāo)及術(shù)語: 步距角精度: 步進(jìn)電機(jī)每轉(zhuǎn)過一個(gè)步距角的實(shí)際值與理論值的誤差。 下圖步進(jìn)電機(jī)為一四相步進(jìn)電機(jī),采用單極性直流電源供電。單四拍與雙四拍的步距角相等,但單四拍的轉(zhuǎn)動(dòng)力矩小。 左起第一個(gè)數(shù)碼管顯示 當(dāng)前電機(jī)的運(yùn)行狀態(tài): S(Stop)表示當(dāng)前電機(jī)為停止?fàn)顟B(tài); E(Enable)表示當(dāng)前電機(jī)為運(yùn)行狀態(tài); P(Pause)表示當(dāng)前電機(jī)為暫停狀態(tài)。 圖 7 顯示模塊 小型步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)報(bào)告 11/ 39 20xx 年 12 月 30 號(hào) 此模塊的主要功能是顯示當(dāng)前步進(jìn)電機(jī)的運(yùn)行狀態(tài)、運(yùn)行方向和運(yùn)行檔位。 E(Enable)表示當(dāng)前電機(jī)為運(yùn)行狀態(tài); P(Pause)表示當(dāng)前電機(jī)為暫停狀態(tài)。 小型步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)報(bào)告 13/ 39 20xx 年 12 月 30 號(hào) DIR(Direction): 0 = 逆時(shí)針( Anticlockwise); 1 = 順時(shí)針( Clockwise)。 3 .保存鍵值子程序 此函數(shù)完成在按下小鍵盤按鍵后,將其相應(yīng)的電機(jī)運(yùn)行狀態(tài) 、轉(zhuǎn)向和轉(zhuǎn)速數(shù)值保存起來,以備其它子程序使用。如果讀得數(shù)據(jù)全部為 1,則說明無鍵閉合。所以我們選用了動(dòng)態(tài)掃描顯示法。 第二, 8255 芯片 A、 B、 C 端口一共才 24 各接口,而在進(jìn)行鍵盤掃描及數(shù)碼管顯示和步進(jìn)電機(jī)的獨(dú)立模塊實(shí)驗(yàn)室,分別需要 22 和 4 個(gè)接口,如果簡單的將兩個(gè)模塊結(jié)合先不考慮程序的問題,單單一個(gè) 8255 芯片無法滿足兩者的簡單結(jié)合。 void clear(void)。 //****************根據(jù)查看配置信息修改下列符號(hào)值 ******************* define IOY0 0x3000 //***************************************************************** define MY8255_A IOY0 + 0x00*4 define MY8255_B IOY0 + 0x01*4 define MY8255_C IOY0 + 0x02*4 define MY8255_MODE IOY0 + 0x03*4 char a[]={0x6d,0x79,0x73,0x77,0x39,0x06,0x5b,0x4f,0x66,0x40}。 int n。 if(mode==1) break。 } if(grd==2) { outp(MY8255_A, c[i])。j++) { keyscan()。 } if(grd==2) { outp(MY8255_A, c1[i])。j++) { 小型步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)報(bào)告 23/ 39 20xx 年 12 月 30 號(hào) keyscan()。i++) { for(j=0。 delay0(0x100)。 for(i=0。 0x02) ) { n = i + 4。 0x08) ) { n = i + 12。 } void dis(void) { int i。 j |= 0x80。 grd=1。 dis()。 int j。8255的 A口地址 MY8255_B EQU IOY0+01H*4 。CALL KEYSCAN JMP KAISHI DANG21: MOV DH,[SI+6] CMP DH,06H JNZ DANG31 PUSH CX MOV CX,08H MOV BX,OFFSET DTABLE2 DA21: MOV AL,[BX] INC BX MOV DX,MY8255_A OUT DX,AL CALL DALLY1 CALL DALLY1 CALL DALLY1 LOOP DA21 。掃描按鍵 JNZ GETKEY1 。選取一列,將 X1~ X4中一個(gè)置 0 MOV DX,MY8255_C OUT DX,AL MOV DX,MY8255_C 。是否為第 3行 JNZ L4 。顯示刷新 CALL CLEAR 。將 4列全選通, X1~ X4置 0 OUT DX,AL MOV DX,MY8255_C IN AL,DX 。寫入數(shù)碼管 A~ Dp CALL DALLY DEC SI DEC SI 。記得我大一做的課程設(shè)計(jì)是“學(xué)生成績管理系統(tǒng)”,是純軟件的。但我并不覺得辛苦,因?yàn)槲野l(fā)現(xiàn)當(dāng)自己動(dòng)手讓那些芯片完成自己想要的功能是一件很興奮的事。我排出了很多原因,最后還是發(fā)現(xiàn)了錯(cuò)誤的原因??梢哉f從這次的課程設(shè)計(jì)中我的知識(shí)層面又得到了提升。判斷是否顯示完? JZ OUT1 。取出 Y1~ Y4的反值 RET CCSCAN ENDP CLEAR PROC NEAR 。掃描按鍵,判斷按鍵是否彈起 JNZ KON 。設(shè)置第 3行第 1列的對應(yīng)的鍵值 JMP KCODE L4: TEST AL,08H 。是否為第 1行 JNZ L2 。顯示刷新 CALL DALLY CALL DALLY CALL CLEAR 。CALL KEYSCAN JMP KAISHI DANG41: MOV DH,[SI+6] CMP DH,08H JNZ KAISHI1 PUSH CX MOV CX,08H MOV BX,OFFSET DTABLE2 DA41: MOV AL,[BX] INC BX MOV DX,MY8255_A OUT DX,AL CALL DALLY1 CALL DALLY1 CALL DALLY1 LOOP DA41 。8255的 C口地址 MY8255_MODE EQU IOY0+03H*4 。i=time。 ccscan()。 if(n==1) grd=2。 } void action(void) { if(n==5) { 小型步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)報(bào)告 26/ 39 20xx 年 12 月 30 號(hào) if(dir==1) dir=0。 for(i=3。 小型步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)報(bào)告 25/ 39 20xx 年 12 月 30 號(hào) return。 return。i++) { outp(MY8255_C, j)。 ccscan()。j++) { } } return。 } key()。keyscan()。 } if(dir==0) { if(grd==4) { outp(MY8255_A, c1[i])。keyscan()。 } if(dir==1) { if(grd==4) { outp(MY8255_A, c[i])。 void main() { int i=0。 char c[]= {0x10,0x30,0x20,0x60,0x40,0xc0,0x80,0x90}。 void action(void)。 第三,在進(jìn)行程序的編寫時(shí),我起初的想法是通過鍵盤掃描程序判斷按鍵的按下,再通過 相應(yīng)的按鍵實(shí)現(xiàn)對步進(jìn)電機(jī)的控制,但在編寫程序的過程中發(fā)現(xiàn)這樣太繁瑣,而且程序的可讀性很差,因此,我想到了先定義幾個(gè)變量,通過鍵盤掃描程序判斷按鍵的按下,再通過相應(yīng)的按鍵對這些變量進(jìn)行賦值,最后通過這些變量的值對步進(jìn)電機(jī)進(jìn)行控制。讀取鍵盤時(shí)要有一定的延時(shí),來跳過鍵盤在剛按下時(shí)產(chǎn)生的抖動(dòng)。用電平邏輯開關(guān)輸出高低電平來代替鍵盤按鍵。通過 8255 的 C 口高四位 ,使X1~X4(列 )全選通 ,然后由 8255的 C口低四位判斷各列所對應(yīng)的行是否有鍵安下 ,無任何鍵按下則 C 口低四位讀入的全是“ 1” ,若有鍵按下則 C口低四位讀入的對應(yīng)行是“ 0” ,其余全是“ 1” ,經(jīng)取反 (NOT)后掃描小鍵盤的子程序 CCSCAN 的功能變?yōu)?:若小鍵盤無鍵按下則 AL寄存器數(shù)據(jù)為“ 0” 。 數(shù)組
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1