Buscando un programa para accionar un motor paso a paso bifásico de cuatro hilos
PUNTA LED P3.4
PUNTA CW P3.7
PUNTA CCW P3.5
PUNTA OUT_LOAD P1.4 p>
OUT_CLK BIT P1.7
DIS_DATA1 EQU 30H
DIS_DATA2 EQU 31H
DIS_DATA3 EQU 32H
DIS_DATA4 EQU 33H
DIS_COUNT EQU 34H
ORG 0000H
INICIO SJMP
ORG 000BH
MOV TH0, #0E0H
MOV TL0, #00H
PANTALLA DE LLAMADA
RETI
ORG 0023H
LCALL UART_INT
RETI
INICIO:
LCALL INICIALización
ORG 0070H
PRINCIPAL:
LCALL KEY_INPUT
LCALL DELAY
LED CPL
; LCALL WARCH_DOG; alimenta al perro guardián
SJMP MAIN
; ************************************************** **** ***
WARCH_DOG:
; MOV WDT_CONTR, #00110100B; Alimenta al perro 682ms
MOV WDT_CONTR, #00110101B; 1.365s
; MOV WDT_CONTR, #00110110B; Alimenta al perro 2.6s
RET
;-------------
RETARDO: ; Retardo de alta precisión 0,5 s (sin interrupción)
DEY1 DATOS 1FH
DEY2 DATOS 1EH
DEY3 DATOS 1DH
MOV DEY1, #25; 0.5S
DL1:
MOV DEY2, #200
DL2:
MOV DEY3, #184; 50uS 18.441828M(5T)
DJNZ DEY3, $
DJNZ DEY2, DL2
DJNZ DEY1, DL1
RET
-------------
-------------
DELAY_1MS : ; Retraso de alta precisión 1Ms (sin interrupción)
DEY4 DATOS 1CH
DEY5 DATOS 1BH
DEY6 DATOS 1AH
MOV DEY4, #1;
DL4:
MOV DEY5, #10
DL5:
MOV DEY6 , #184; 50uS 18.441828M(5T)
DJNZ DEY6,$
DJNZ DEY5,DL5
DJNZ DEY4,DL4
R
ET
-------------
************************ ***********************************
org 0100h
EJECUTAR:
CLR CW
lCALL DELAY_1MS
SETB CW
LCALL DELAY_1MS
RET
CW_OUT:
SETB CCW
CLR CW
LCALL DELAY_1MS
SETB CW
LCALL DELAY_1MS
RET
CCW_OUT:
CLR CCW
CLR CW
LCALL DELAY_1MS
SETB CW
LCALL DELAY_1MS
RET
CW4_OUT:
SETB CCW
CLR CW
LCALL DELAY_1MS
LCALL DELAY_1MS
LCALL DELAY_1MS
LCALL DELAY_1MS
SETB CW
LCALL DELAY_1MS
LCALL DELAY_1MS
LCALL DELAY_1MS
LCALL DELAY_1MS
RET
CCW4_OUT: p> p>
CLR CCW
CLR CW
LCALL DELAY_1MS
LCALL DELAY_1MS
LCALL DELAY_1MS
LCALL DELAY_1MS
SETB CW
LCALL DELAY_1MS
LCALL DELAY_1MS
LCALL DELAY_1MS
LCALL DELAY_1MS
RET
END