“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?

2016/5/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
CFG Tipo de archivo
Cómo acceder a elementos de una matriz bidimensional
¿Qué formato es Silverlight
¿Qué es la recursividad en Programación
Cómo localizar DBIx
Cómo utilizar el diamante forma en el diagrama de flujo
Cómo configurar IIS 6
Cómo localizar un carácter de una cadena
Conocimiento de la computadora © http://www.ordenador.online