O Programa abaixo consiste basicamente em gerar o acionamento básico p/ a rotação de um motor de passo.
Os pinos utilizados são (P3.2 , P3.3 , P3.4 , P3.5) pois esses são os pinos ligados ao drive em nossos Kits 8051 CMXV .
A ligação entre o motor de passo as (P3.2 , P3.3 , P3.4 , P3.5) deverão seguir a ordem PASSO 1 , PASSO 2 , PASSO 3 , PASSO 4 respectivamente.
Download do arquivo Asm, Bin e Hex do programa abaixo.
;################################################################################################
;# EMPRESA:            ========== CONTROL CHIP ENGENHARIA ========                                                                                     #
;# PROGRAMADOR:        Israel Cortez                                                                                                                                                           #
;# DATA DO SOFTWARE:   20/05/2009                                                                                                                                                          #
;# VERSãO ATUAL:       1                                                                                                                                                                                   #
;# ULTIMA ALTERAçãO:   --                                                                                                                                                                             #
;################################################################################################
        ORG 0000H
        LJMP INICIO     ;
               
        ORG 0027H       ;inicio do programa principal
INICIO: 
        MOV A,#254
        MOV R1,A
        MOV R2,#40
          
        
ESPERA:    
        MOV A,R1
        CPL A
        JB ACC.0,ACIONA2
        JB ACC.1,ACIONA3
        JB ACC.2,ACIONA4
        JB ACC.3,ACIONA5 
        JB ACC.4,ACIONA2
        JB ACC.5,ACIONA3
        JB ACC.6,ACIONA4
        JB ACC.7,ACIONA5
        
ROTACIONA:        
        CPL A
        RL A
        MOV R1,A 
        MOV A,R2       ;
        MOV R7,A
        
        CALL TIMER_1
        SJMP ESPERA     ;espera receber      
        
ACIONA2:CLR P3.2
        SETB P3.3
        SETB P3.4
        SETB P3.5
        SJMP ROTACIONA        
ACIONA3:CLR P3.3
        SETB P3.2
        SETB P3.4
        SETB P3.5
        SJMP ROTACIONA
ACIONA4:CLR P3.4
        SETB P3.2
        SETB P3.3
        SETB P3.5
        SJMP ROTACIONA        
ACIONA5:CLR P3.5
        SETB P3.2
        SETB P3.3
        SETB P3.4
        SJMP ROTACIONA        
        
;####################
;
;   TEMPORIZADOR
;
;####################
TIMER_1:                    
CJNE    R7,#0,INICIO_TIMER_1
MOV R7,#1
INICIO_TIMER_1:
MOV R5,#250        
MOV R6,#5
REPETE_TEMPO:
NOP     ;1uS
NOP     ;1uS
NOP     ;1uS
NOP     ;1uS
DJNZ R5,REPETE_TEMPO
MOV R5,#250
DJNZ R6,REPETE_TEMPO
DJNZ R7,INICIO_TIMER_1
RET
END

