8085 programa para contador hexadecimal

Escriba un programa para contar continuamente en hexadecimal desde FFH hasta 00H en un sistema con frecuencia de reloj de 0,5 microsegundos. Utilice el registro C para configurar un retraso de 1 ms entre cada conteo y mostrar la salida en uno de los puertos de salida.

Análisis del problema:

  1. El contador hexadecimal se configura cargando un registro con el número inicial y decrementándolo hasta llegar a cero y luego decrementándolo nuevamente para producir -1, que es el complemento a dos de FFH. Por lo tanto, el registro llega nuevamente a FFH.
  2. El retardo de tiempo de 1 ms se configura mediante el procedimiento que se muestra en el diagrama de flujo
    time delay
    : el registro se carga con el número apropiado de modo que la ejecución del ciclo anterior produzca un retardo de tiempo de 1 ms.

Programa:

Dirección Etiqueta Mnemotécnica
2000H MVI B, FFH
2002H SIGUIENTE DCR B
2003H MVI C, CUENTA
2005H DEMORA DCR C
2006H RETARDO JNZ
2009H MOV A, B
200AH SALIDA#
200CH JMP SIGUIENTE

El registro C es el registro de retardo de tiempo que se carga con un valor COUNT para producir un retardo de tiempo de 1 ms.
Para encontrar el valor de COUNT hacemos-

TD = TL + TO
where- TD = Time Delay
TL = Time delay inside loop
TO = Time delay outside loop

El bucle de retardo incluye dos instrucciones: DCR C (4 estados T) y JNZ (10 estados T),
por lo que T L = 14*Período de reloj*CONTAR
=> 14*(0,5*10 -6 )*CONTAR
=> (7 *10 -6 )*CONTAR

El retraso fuera del bucle incluye
: DCR B: 4T
MVI C, COUNT: 7T
MOV A, B: 4T
OUTPORT: 10T
JMP: 10T
Total: 35T

T O = 35*Período de reloj => 17,5 microsegundos

Entonces, 1 ms = (17.5+ 7 * COUNT) microsegundo

Por lo tanto, CONTAR=(140) 10

Publicación traducida automáticamente

Artículo escrito por aastha98 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *