Red de conocimientos turísticos - Información de alquiler - Programa de ensamblaje para controlar el motor paso a paso mediante microcontrolador

Programa de ensamblaje para controlar el motor paso a paso mediante microcontrolador

ORG 00H

INICIO: MOV DPTR, #TAB1

MOV R0, #03H

MOV R1, #4H

MOV R4, #00H

MOV P0, #03H

ESPERAR: MOV P0, R0

MOV P0, #0FFH

JNB P3.4, TIZ ; Cuando P3.4 tiene presionado el botón de parada, salta a la subrutina de parada

JNB P3.0, ZHENG ; Cuando P3.0 tiene presionado el botón de inicio hacia adelante, , salta para detener la subrutina

JNB P3.1,FAN

SJMP WAIT

ZHENG: ;Adelante subrutina

MOV A ,R4

MOVC A,@A+DPTR

RETARDO DE LLAMADA

INC R4

LLAVE AJMP

VENTILADOR: ;Subrutina inversa

MOV R4,#6

MOV A,R4

MOVC A,@A+DPTR

MOV P3, A ;

ACALL DELAY

AJMP KEY

KEY: MOV P3,#0FFH ;Detección de LLAVE, asignar valor inicial

JB P3 .4,ZZ1

AJMP TIZ

TIZ: MOV P0,#00H ;Detener subrutina

TECLA AJMP

ZZ1: JB P3 .0, FZ1; detección de tecla de rotación hacia adelante, si se presiona una tecla, irá a FZI

CJNE R4, #8, LOOPZ Si el número de ciclos es 8, si es 8, borre; a 0

MOV R4,#0

LOOPZ: MOV A,R4 ;Leer pantalla de estado del motor

MOVC A,@A+DPTR

MOV P0,A ;Asignar a P0, mostrar 1 para rotación hacia adelante, 2 para rotación inversa, 3 para aceleración, 4 para desaceleración

SETB P1.1 ;Asignar nivel alto, apagar el luz de estado de marcha atrás

p>

CPL P1.0; enciende la luz de estado de avance

JNB P3.2, subrutina de aceleración JNB P3.3; , JIANSUZ; subrutina de desaceleración

ACALL DELAY

INC R4

TECLA AJMP

FZ1:

JB P3 .1,CLAVE

CJNE R4,#255,LOOPF

MOV R4,#8

LOOPF: DEC R4

MOV

A,R4

MOVC A,@A+DPTR ;Leer pulso

MOV P0,A ;Pulso de entrada al motor paso a paso

SETB P1.0< / p>

CPL P1.1

JNB P3.2,JIASUF;detección del botón de aceleración

JNB P3.3,JIANSUF;detección del botón de desaceleración

ACALL DELAY

AJMP KEY ;Saltar a subrutina de detección de LLAVE

DELAY:MOV A,R1;Retraso de subrutina

MOV R6,A

RETARDO2:MOV R5,#6H

DD2:MOV R7,#0

DD3:DJNZ R7,DD3

DJNZ R5, DD2

DJNZ R6,DELAY2

RET

DELAY1:

MOV R6,#20H

DD4: MOV R5,#02H

DD5: MOV R7,#0

DD6: DJNZ R7,DD6

DJNZ R5,DD5

DJNZ R6,DD4

RET

JIASUZ: ;Detección de clave acelerada

ACALL DELAY1

CJNE R1,#02,L1

JMP L2

L1: DEC R1

L2: JMP LOOPZ

JIANSUZ: ;Detección de tecla de desaceleración

ACALL DELAY1

CJNE R1,#08H,L3

JMP L4

L3: INC R1

L4: JMP LOOPZ ;Retorno LOOPZ, bucle

JIASUF: ;Subrutina de aceleración

ACALL DELAY1

CJNE R1,#02H,L5

JMP L6

L5: DEC R1

L6: JMP LOOPF

JIANSUF: ;Subrutina de desaceleración

ACALL DELAY1

CJNE R1,#08H,L7

JMP L8

L7: INC R1

L8: JMP LOOPF

TAB1:DB 02H,06H ,04H,0CH

DB 08H,09H,01H,03H

FIN