“Conocimiento Programación>Lenguajes De Programación

¿Cuál es el programa en lenguaje ensamblador para la interfaz 8085 del motor paso a paso para girarlo en sentido horario y antihorario usando 8255?

2014/7/21
Programa para la interfaz 8085 del motor paso a paso para girarlo en sentido horario y antihorario usando 8255:

```

;Inicializar puntero de pila en 0FFFH (32767)

LXI SP, 0FFFH

;Definir constantes para el control del motor paso a paso:

MOV A,#10;Define el valor de retardo para el control del motor paso a paso (arbitrario)

MOV B,A; Copiar valor de retardo al registro B

MOV A,0;Define la dirección inicial (0 para el sentido de las agujas del reloj, 1 para el sentido contrario a las agujas del reloj)

MOV C,A;Copiar dirección al registro C

;Configurar el puerto de E/S 8255:

MVI A,0FFH;Establece todas las líneas del puerto como salida (usando la palabra de control PPI)

MOV M,A;Escribir en el registro de control (P1M)

;Definir la dirección del puerto de E/S:

MOV A,#10H; Dirección base para 8255 PPI (8255-5)

MOV M,A;Almacenar la dirección base en la ubicación de la memoria

;Lazo principal para el control del motor paso a paso:

LOOP:;Etiqueta para representar el inicio del bucle principal.

;Paso 1:Gire el motor en el sentido de las agujas del reloj (dirección =0)

MVI A,0;Establecer la dirección en el sentido de las agujas del reloj

MOV C,A;Copiar dirección al registro C

;Generar secuencia de señales de control para la rotación del motor.

MVI A,#0B;Palabra de control para configurar las líneas del puerto B P1.1, P1.2, P1.3 como salidas

MOV M,A;Escribir en el registro de control del puerto B

MVI A,#9BH;Palabra de control para girar el motor en el sentido de las agujas del reloj (P1.1=1, P1.2=0, P1.3=1)

MOV M,A;Escribir en el registro de datos del puerto B

;Retraso para ralentizar la rotación del motor:

DELAY:;Subrutina de retardo para controlar la velocidad de rotación del motor.

DCR B; Disminuye el valor del retardo en el registro B

JZ ENDD; Si el valor del retraso llega a cero, el retraso se completa

MOV A,B; Copiar el valor de retardo del registro B al registro A

JMP DELAY; vuelve al bucle DELAY hasta que se complete el retraso

ENDD:;Fin de la subrutina de retardo

;Paso 2:Gire el motor en sentido antihorario (dirección =1)

MVI A,1;Establecer dirección antihoraria

MOV C,A;Copiar dirección al registro C

;Generar secuencia de señales de control para la rotación del motor.

MVI A,#0B;Palabra de control para configurar las líneas del puerto B P1.1, P1.2, P1.3 como salidas

MOV M,A;Escribir en el registro de control del puerto B

MVI A,#6EH;Palabra de control para girar el motor en sentido antihorario (P1.1=0, P1.2=1, P1.3=1)

MOV M,A;Escribir en el registro de datos del puerto B

;Retraso para ralentizar la rotación del motor:

DELAY:;Retraso de subrutina

DCR B

JZ FINAL

MOVIMIENTO A, B

RETRASO JMP

FINALIZAR:

;Repita el bucle principal para girar continuamente el motor.

BUCLE JMP

```

Este programa utiliza el 8255 PPI para controlar la dirección y velocidad de rotación del motor paso a paso. Al configurar y borrar los bits apropiados en el registro de datos del puerto B del 8255, el programa genera las señales de control necesarias para la rotación en sentido horario o antihorario. La subrutina de retardo garantiza que se controle la velocidad de rotación del motor.

Lenguajes De Programación
Cómo agregar notas al pie y notas al final con Microsoft Office 2002
¿Qué significa para analizar datos
Lógica booleana le permite
¿Qué es un sistema de codificación?
Cómo compilar un archivo SWF en FlashDevelop
Redacción y Diseño de Video Juegos
Cómo encontrar algoritmos genéticos mínimos
Cómo cambiar un Codebase
Conocimiento de la computadora © http://www.ordenador.online