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