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

正文內容

微機課程設計報告小型步進電機控制系統(tǒng)設計(附程序清單)(編輯修改稿)

2024-08-30 12:28 本頁面
 

【文章內容簡介】 ADD DL,AL MOV CL,4 MOV CL,4 SHL DX,CL SHL DX,CL MOV CL,100 ADD DL,AH DIV CL MOV AX,DX ADD DL,AL POP DX MOV CL,4 POP CX而在算術運算方面也遇到了不少的問題,由于設計過程中存在著小數(shù)所以很多時候總會出現(xiàn)算術方面錯誤,具體表現(xiàn)為結果的溢出或者結果小數(shù)點位置錯誤。解決的方法通常是先將所要計算的數(shù)值乘以100等使得數(shù)值為整數(shù),然后再進行計算,而在結果輸出時再除以相映的數(shù)值從而實現(xiàn)小數(shù)的算術運算功能,而不需要采用定義浮點型去計算小數(shù)以避免出現(xiàn)數(shù)值定義的錯誤。另一個常見的錯誤就是自定義存儲空間之間的數(shù)值存放,因為在許多時候總是需要將結果保存在某一段存儲空間里面,由于對存儲空間的定義使得其大小范圍各有不同,所以對其賦值時總是會出現(xiàn)溢出或數(shù)值轉換的錯誤。而在子程序調用以循環(huán)方面存在的問題是指針的計數(shù)以及標志位清零或置1搞錯從而使子程序運算錯誤或者進入死循環(huán)等。所采取的解決方法是對指針計數(shù)值在各個部分運算結束后進行清零以保證指針初值的正確。最后的問題就是DOS系統(tǒng)功能調用和BIOS中斷調用,因為本課題設計中要實現(xiàn)軟件時鐘,所以需要對軟件延遲以及中斷調用有一定的了解,對此在設計時查閱了一些相關的軟件中斷命令。當個模塊都調試成功后,即可合成到一起運行。本系統(tǒng)電機的速度可以通過速度增減鍵來控制。通過驗證各按鍵是否被有效采用,來檢驗該系統(tǒng)是否正確的完成了指定的功能。八、實驗程序的流程圖電機停止轉動鍵值為0?延時等待仍在按下?初始化8255開始小鍵盤有鍵按下?改變電機轉向(速度置最低)電機運行電機速度方向不變電機暫停鍵值為2?鍵值為3?鍵值為4~7結束小鍵盤有鍵按下?鍵值為1?數(shù)碼管同步顯示電機的狀態(tài)、轉速和方向主流程圖:否是否否是是 電機速度檔位否是否是否是是是否否掃描與顯示流程圖:鍵盤顯示子程序流程圖:鍵盤掃描子程序流程圖:九、匯編程序清單及程序注釋。步進電機實驗IOY0 EQU 0e400H 。片選IOY0對應的端口始地址MY8255_A EQU IOY0+00H*4 。8255的A口地址MY8255_B EQU IOY0+01H*4 。8255的B口地址MY8255_C EQU IOY0+02H*4 。8255的C口地址MY8255_MODE EQU IOY0+03H*4 。8255的控制寄存器地址STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENTDTABLE1 DB 6DH,79H,73H,77H,39H,06H,5BH,4FH,66H,80HDTABLE3 DB 10H,30H,20H,60H,40H,0C0H,80H,90HDATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,3000HMOV [SI],00HMOV [SI+2],09HMOV [SI+4],04HMOV [SI+6],05HMOV [SI+8],01HMOV DX,MY8255_MODE 。初始化8255工作方式 MOV AL,81H 。方式0,A口、B口輸出,C口低4位輸入 OUT DX,ALKAISHI: MOV SI,3000H MOV DH,[SI+8]CMP DH,8JA ZHI1CMP DH,1JB ZHI8JMP JIXUZHI1: MOV [SI+8],01HJMP JIXUZHI8: MOV [SI+8],08HJIXU: CALL KEYSCANMOV AH,1 。判斷是否有按鍵按下INT 16HJZ SFRUN 。無按鍵則跳回繼續(xù)循環(huán),有則退出QUIT: MOV AX,4C00H 。結束程序退出INT 21HSFRUN: MOV SI,3000H MOV DH,[SI]CMP DH,01HJNZ JIXU MOV DH,[SI+4] CMP DH,04H JNZ ZIJIAN INC [SI+8] JMP RUNKAISHI1: JMP KAISHIZIJIAN: DEC [SI+8]RUN: MOV AL,[SI+8] MOV BX,OFFSET DTABLE3 AND AX,00FFH ADD BX,AX DEC BX MOV AL,[BX] MOV DX,MY8255_C OUT DX,AL DANG1: MOV DH,[SI+6] CMP DH,05H JNZ DANG2 PUSH CX MOV CX,10HDA1: CALL DALLY1 CALL DALLY1 CALL DALLY1 CALL DALLY1CALL KEYSCAN JMP KAISHIDANG2: CMP DH,06H JNZ DANG3DA2: CALL DALLY1 CALL DALLY1 CALL DALLY1 JMP KAISHIDANG3: CMP DH,07H JNZ DANG4DA3: CALL DALLY1 CALL DALLY1 JMP KAISHIDANG4: CMP DH,08H JNZ KAISHI1DA4: CALL DALLY1 CALL KEYSCAN JMP KAISHIDALLY1 PROC NEAR 。軟件延時子程序 PUSH CX PUSH AX MOV CX,00AFHD11: MOV AX,5000HD22: DEC AX JNZ D22PUSH CX PUSH AX CALL KEYSCAN POP AX POP CXLOOP D11 POP AX POP CX RET DALLY1 ENDPKEYSCAN PROC NEAR 。鍵盤掃描子程序BEGIN: CALL DIS 。顯示刷新 CALL CLEAR 。清屏 CALL CCSCAN 。掃描按鍵 JNZ GETKEY1 。有鍵按下則跳置GETKEY1 JMP GOBACK1GETKEY1:CALL DIS 。顯示刷新 CALL DALLY CALL DALLY CALL CLEAR 。清屏 CALL CCSCAN 。再次掃描按鍵 JNZ GETKEY2 。有鍵按下則跳置GETKEY2 JMP BEGIN 。否則跳回開始繼續(xù)循環(huán)GETKEY2:MOV CH,0FEH MOV CL,00H 。設置當前檢測的是第幾列COLUM: MOV AL,CH 。選取一列,將X1~X4中一個置0 MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C 。讀Y1~Y4,用于判斷是哪一行按鍵閉合 IN AL,DXL1: TEST AL,01H 。是否為第1行 JNZ L2 。不是則繼續(xù)判斷 MOV AL,00H 。
點擊復制文檔內容
范文總結相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1