Problema: escriba un programa para generar una onda cuadrada continua. Use el bit D 0 para generar la onda cuadrada. La forma de onda requerida es:
Explicación:
el patrón alternativo de 0/1 bits se puede proporcionar cargando el acumulador con AAH(10101010) y girando el patrón una vez a través de cada bucle. El bit D 0 del puerto de salida se usa para probar los 0 y 1 lógicos. Por lo tanto, todos los demás bits se pueden enmascarar haciendo AND en el acumulador con 01H.
Ejemplo –
Accumulator : 1 0 1 0 1 0 1 0 And with 01H : 0 0 0 0 0 0 0 1 Output : 0 0 0 0 0 0 0 0 So output => 0 After RLC : Accumulator : 0 1 0 1 0 1 0 1 And with 01H : 0 0 0 0 0 0 0 1 Output : 0 0 0 0 0 0 0 1 So output => 1
Programa –
Dirección | Etiqueta | Mnemotécnica | Comentarios |
---|---|---|---|
2000H | MVI D, AAH | Cargar patrón de bits AAH | |
2002H | GIRAR | MOV A, D | Cargar patrón de bits en A |
2003H | RLC | Cambiar datos a AAH a 55H y viceversa | |
2004H | MOV D, A | Guarda un | |
2005H | AÑO 01H | Bits de máscara D 7 a D 1 | |
2007H | SALIDA 1 | Salida del bit D 0 | |
2009H | GIRAR JMP | Saltar a ROTATE para cambiar el nivel lógico |
Descripción del programa –
- El registro D está cargado con AAH(10101010).
- El patrón de bits se mueve al acumulador.
- El patrón de bits se gira a la izquierda y se guarda de nuevo en el registro D. Este guardado es necesario ya que el acumulador se usa de nuevo en el programa.
- Enmascare todos los bits excepto el bit 0.
- Salida A en el puerto 1.