Controle motor de passo
O projeto em questão se trata do controle de um motor de passo através de instruções do usuário. O usuário pode, por exemplo, comandá-lo a girar meia volta ou uma volta inteira no sentido horário ou anti-horário.
2. Softwares utilizados
• MCU 8051 IDE: utilizado para a programação em linguagem assembly.
• PROG-CPU-8051-USB: Grava e executa o programa no hardware.
• Tera Term: É a interface de comunicação serial entre o usuário e os comandos que ele pode executar.
3. Esquemático do hardware
4. Programa criado
CLOCK BIT P0.0
DIR BIT P0.1
HAB BIT P0.2
FLAGM BIT 10H
FLAGT BIT 00H
FLAGR BIT 01H
ORG 0000H
SJMP PRINCIPAL
ORG 0023H
AJMP SUB_SERIAL
PRINCIPAL: SETB HAB MOV 30H, #0H MOV TH1, #0FDH MOV TL1, #0FDH MOV TMOD, #20H SETB TR1 MOV SCON, #50H MOV IE, #90H MOV DPTR, #MENU
DISPLAY: ACALL ENVIA
HABILITA: MOV IE,#90H
TECLA: JNB FLAGR, TECLA MOV IE,#00H CLR FLAGR ACALL MOTOR JB FLAGM,HABILITA CJNE A, #'T', EXEC ACALL PROGRAMAR SJMP HABILITA
EXEC: CJNE A, #'E', ERRO ACALL EXECUTAR SJMP HABILITA
ERRO: MOV DPTR, #ERRO1 MOV IE, #90H SJMP DISPLAY SJMP $
;INICIO DAS SUBROTINAS
;Subrotina de atendimento a unidade serial
SUB_SERIAL: CLR EA JNB TI, LER SETB FLAGT CLR TI
LER: JNB RI, FIM MOV A, SBUF SETB FLAGR CLR RI
FIM: SETB EA RETI ;Subrotina de Transmissão de caracteres
ENVIA: CLR FLAGT CLR A MOVC A,@A+DPTR CJNE A,#'$',PULO RET PULO: MOV SBUF,A JNB FLAGT,$ INC DPTR SJMP ENVIA
;Subrotina que seleciona os movimentos do motor de passo
MOTOR: SETB FLAGM CJNE A, #'0' ,COM1 MOV R4, #01H CLR DIR ACALL GIRO RET
COM1: CJNE A, #'1', COM2 MOV R4, #01H SETB DIR ACALL GIRO RET
COM2: CJNE A, #'2', COM3 MOV R4, #100 CLR DIR ACALL GIRO RET
COM3: CJNE A, #'3', COM4 MOV R4, #100