求步进电机的汇编程序

请问如何实现逻辑开关控制步进电机的启动与关闭,正转与反转。

第1个回答  推荐于2016-01-23

8086的,自己看一下吧

DATA   SEGMENT 

PORTA EQU   0200H ;8255A口

PORTB EQU   0202H ;8255B口

PORTC EQU   0204H ;8255C口

CON0    EQU   0206H    ;8255控制口 

PORT1 EQU   0400H ;8253计数器0

PORT2 EQU   0402H ;8253计数器1

PORT3 EQU   0404H ;8253计数器2

CON1    EQU   0406H    ;8253控制口

DATA1 DB  00001100B ;正转电流

        DB  00000110B 

        DB  00000011B

        DB  00001001B

DATA2   DB  00000110B ;反转电流

        DB  00001100B 

        DB  00001001B

        DB  00000011B 

DATA    ENDS

CODE    SEGMENT

ASSUME  CS:CODE,DS:DATA,ES:DATA

START: MOV  AX,DATA    ;初始化

        MOV  DS,AX

        MOV  ES,AX

        MOV  AX,0

        MOV  SS,AX

        MOV  SI,1000H

        MOV  DX,CON0 ;8255初始化

        MOV  AL,10001001B    ;A,B,C口工作在方式0,A口输出,C口输入

        OUT  DX,AL 

        MOV  DX,CON1         ;8253初始化

        MOV  AL,00010010B    ;计数器0二进制读写低字节计数工作在方式2

        OUT  DX,AL

A0:     MOV  DX,PORTC

        IN   AL,DX

        TEST AL,00010000B  ;测试是否K1按下,是继续测试,不是则跳转

        JNZ  A1 

        JMP  A0       

A1:     TEST AL,00100000B  ;测试是否K2按下,是则跳转到反转

        JZ   A2

        TEST AL,01000000B  ;测试是否K3按下,是则跳转到正转

        JZ   A3 

        JMP  A0 

A2:     LEA  SI,DATA1      ;取使电机反转的代码地址

        MOV  CL,4

        MOV  DX,PORTA      

        MOV  AL,01000000B

        OUT  DX,AL          ;让灯亮

AA2:    MOV  AL,[SI]

        OUT  DX,AL         ;送转动电流代码到8255A口

        INC  SI

        DEC  CL

;        CALL DELAY

        CMP  CL,00H

        JZ   A0           ;转了一圈继续扫描是否有键按下

        JMP  AA2  

A3:     LEA  SI,DATA2     ;取使电机正转的代码地址 

        MOV  CL,4

        MOV  DX,PORTA 

        MOV  AL,10000000B

        OUT  DX,AL          ;让灯2亮

AA3:    MOV  AL,[SI]

        OUT  DX,AL        ;送转动电流代码到8255A口       

        INC  SI

        DEC  CL

 ;       CALL DELAY

        CMP  CL,00H 

        JZ   A0           ;转了一圈继续扫描是否有键按下

        JMP  AA3 

DELAY PROC                ;实现精确延时 

C0:     MOV  DX,PORT1

        MOV  AL,100       ;计数初值送计数器0

        OUT  DX,AL

        MOV  DX,PORTC     ;读8255的C口数据

        IN   AL,DX

        TEST AL,10000000B 

        JNZ  C0

        RET

DELAY   ENDP   

CODE ENDS

END  START     

本回答被提问者采纳
第2个回答  2014-06-17
几相几步?要什么的汇编?追问

二相的 要用逻辑开关与单片机合作控制电机

相似回答