⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dianji.asm

📁 这是接口课程设计时做的一个控制电机转动的程序
💻 ASM
字号:
DATA SEGMENT
     BUF  DB 0
     MESS DB 'K0-K6 控制步进电机转速!',0AH,0DH 		           
          DB 'K7 控制步进电机转向!','$'
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
          DB 100 DUP(?)
STACK ENDS
CODE SEGMENT 
     ASSUME CS:CODE,DS:DATA,SS:STACK
START:MOV AX,DATA 	             
      MOV DS,AX 		      
      MOV AX,STACK 	              
      MOV SS, AX    		                
      LEA DX,MESS              	          
      MOV AH,09 		          
      INT 21H 		           
      MOV DX,28BH               ;初始化8255,工作方式0,A口输出,B口,C口输入           
      MOV AL,8BH               
      OUT DX,AL              
      MOV BUF,33H
OUT1: MOV AL,BUF                ; A口输出33H
      MOV DX,288H               
      OUT DX,AL
      MOV AH,0BH                ;判断有无键按下  
      INT 21H      
      CMP AL,0            
      JZ  IN1		        ; 若ZF为0转IN1
      MOV AH,4CH		;有键入则 返回DOS
      INT   21H
IN1:  MOV  DX,28AH              ; c端口 
      IN AL,DX                  ; 读开关状态并进行
      TEST AL,01H	        ; 判断K0的状态
      JNZ K0
      TEST AL,02H               ; 判断K1的状态
      JNZ K1
      TEST AL,04H               ; 判断K2的状态
      JNZ K2
      TEST AL,08H               ; 判断K3的状态
      JNZ K3
      TEST AL,10H               ; 判断K4的状态
      JNZ K4
      TEST AL,20H               ; 判断K5的状态
      JNZ K5
      TEST AL,40H               ; 判断K6的状态
      JNZ K6
STOP: MOV DX,288H               ; A端口 
      MOV AL,0FFH
      OUT dx,al
      JMP OUT1                  ;若无开关控制则转回out1
   K0:MOV BL,04H                ; 置K0延迟时间常数
  SAM:TEST AL,80H               ; 测试开关K7
      JNZ  ZX0
      JMP NX0
    K1:MOV BL,10H
       JMP SAM
    K2:MOV BL,20H 		          
       JMP SAM  
    K3:MOV BL,40H 		
       JMP SAM     
    K4:MOV BL,80H
       JMP SAM 
    K5:MOV BL,0C0H 
       JMP SAM
    K6:MOV BL,0FFH
       JMP SAM 
   ZX0:CALL  DELAY
       MOV AL,BUF
       ROR AL,1 
       MOV BUF,AL 		  
       JMP OUT1 
   NX0:CALL DELAY   
       MOV AL,BUF
       ROL AL,1
       MOV BUF,AL
       JMP OUT1  
DELAY  PROC NEAR             ; 延迟子程序  
INCX:MOV  CX,0FFFFH 
DELAY2:LOOP DELAY2 
       DEC BL                ;置延迟时间常数bl
       JNZ INCX              
       RET
DELAY ENDP
CODE ENDS
     END START   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -