Taller de electrónica

Ordinograma. Programación Mnemónica. Retardo. Organigrama

  • Enviado por: Alfonso Fernandez
  • Idioma: castellano
  • País: España España
  • 5 páginas
publicidad

  • 1- Obtener el ordinograma, comentarios y hacer el ensayo para varios valores de operandos; de los siguientes programas.

a) CLC b) NOP c) LDA # 03

SED SED AND # 0F

LDA # 03 LDA # 12 STA 32

ADC # 09 STA 1A BRK

STA 0F LDA # 07

BRK STA 1B

LDA 1A

CLC

ADC 1B

STA 1C

BRK

  • 2- Poner a 1 el bit de mas peso de la posición primera de la pagina cero, sin alterar el resto de los bits y depositar el resultado en la posición 1B de la misma pagina.

  • 3- Obtener el ordinograma y concluir lo que hace el siguiente programa en mnemónico.

  • NOP

  • LDA 40

    CMP 41

    BCS 02

    LDA 41

    STA 42

    BRK

    • 4- Realizar un programa de control de tiempo o retardo, consistente en decrementar 99 veces el registro X de forma que por cada decremento de este el registro Y lo hace 99 veces. Además esta temporizaron se repetirá el nº de lista veces, usando la posición de memoria 100 + nº de lista.

    • Dibujar ordinograma, ensayar y medir el tiempo tanto en el ensamblador como en el sistema de desarrollo.

    • 5- Escribir el programa para el siguiente ordinograma, y experimentarlo en el sistema de desarrollo, sobre la placa de E/S.

    CONFG.

    PB SALIDA

    ENCENDER

    LED

    TEMPORIZACION

    APAGAR

    LED

    TEMPORIZAR

    SOLUCION DE LOS EJERCICIOS

    1º - Ejercicio:

  • CLC

  • SED

    LDA #03

    ADC #09

    STA 0F

    BRK

    • Primero pone el flag “C” del registro de estado a cero.

    • Segundo pone el a uno el flag “D” del registro de estado.

    • Luego carga en el acumulador “A” el dato 03.

    • A continuación hace una realiza una suma entre; el contenido del acumulador más él

    dato 09 y más el carry, el resultado se guarda en el acumulador.

    • Ya acabando se guarda el contenido del acumulador en la posición de memoria 0F

    de la pagina cero.

    • Por ultimo finaliza el programa.

  • NOP

  • SED

    LDA #12

    STA 1A

    LDA #07

    STA 1B

    LDA 1A

    CLC

    ADC 1B

    STA 1C

    BRK

    • La primera instrucción no opera, es una perdida de 2 microsegundos.

    • Después pone a uno el flag “D” del registro de estado.

    • Cargamos en el acumulador el dato 12 en decimal.

    • El contenido de acumulador pasa a gravarse en la posición 1A de la pagina cero, que

    este caso el contenido es doce.

    • Cargamos en el acumulador el dato 07 en decimal.

    • Y se carga el contenido del acumulador a la posición 1B de la pagina cero.

    • Cargamos otra vez en el acumulador el contenido de la posición 1A de la pagina

    cero.

    • Pone a cero el flag “C” del registro de estado; es decir pone a cero el carry.

    • Realiza una suma entre el contenido del acumulador mas el contenido de la posicion

    1B de la pagina cero y más el carry, y el resultado lo guarda en el acumulador.

    • Grava el contenido del acumulador en la posición 1C de la pagina cero, que en este

    caso el resultado de la suma.

    • Finaliza el programa.

  • LDA 31

  • AND #0F

    STA 32

    BRK

    • Primero carga en el acumulador el contenido de la posición 31 de la pagina cero.

    • Luego realiza una multiplicación lógica entre el contenido del acumulador, que en

    este caso es el contenido de la posición 31 y el dato 0f.

    • Posteriormente gravamos el contenido del acumulador, que es el resultado de la

    multiplicación en la posición 32 de la pagina cero.

    • Por ultimo finaliza el programa.

    2º - Ejercicio:

    LDA 01

    ORA #$80

    STA 1B

    BRK

    3º - Ejercicio:

    NOP

    LDA 40

    CMP 41

    BCS 02

    LDA 41

    STA 42

    BRK

    Este programa inicialmente tiene una orden que no opera, es decir que no hace nada se pone para perder 2 microsegundos de tiempo. Pero lo que realmente hace este programa es comparar el contenido de las posiciones de memoria 40 y 41, ambas de la pagina cero; Y si el contenido de la posición 40 es mayor o igual que el de la posición 41, entonces grava el contenido del acumulador, que en este caso es el contenido de la posición 40, lo grava a la posición 42, y finaliza el programa. Pero si el contenido de la posición 40 es menor que el de la posición 41, entonces grava en el acumulador el contenido de la posición 41 y lo pasa a la posición 42, y luego finaliza.

    4º - Ejercicio:

    LDA # 00

    STA 0103

    lazo 3 LDX # 99

    lazo 2 LDY # 99

    lazo 1 DEY

    CPY # 00

    BNE lazo 1

    DEX

    CPX # 00

    BNE lazo 2

    INC 0103

    LDA 0103

    CMP # 03

    BNE lazo 3

    BRK

    5º - Ejercicio:

    LDA #$ FF

    STA A002

    LDY #$ FF

    STY A000 LDX #$ FF

    JSR lazo 1 DEY

    LDA # 00 CPX # 00

    STA A000 BNE lazo 1

    JSR RTS

    JMP diec. 1