Desarrollo Ejercicios Prácticos nro.2

3
 E LECTR ´ ONICA  D IGITAL  I I FCEFyN Univer sida Nacional de C ´ ordoba P R ´ ACTICO  2 Esteban Andr ´ es Morales 1 de abril de 2014 PROBLEMA 2. 1 Escribir un programa que sume dos valores guarda- dos en 21H y 22H con resultado en 23H y 24H. 1  nro1  equ  21h; 2  nro2  equ  22h; 3  ;------------------- 4  MAIN: 5  movf  nro1,w; 6  addwf  nro1,w; 7  movwf  23h; 8  movwf  24h; 9  goto  FIN; 10  ;------------------- 11  FIN: 12  sleep; PROBLEMA 2. 2 Escribir un programa que resuelva la ecuaci ´ on: (A + B) – C (posiciones 21H, 21H y 22H). 1  nroA  equ  21h; 2  nroB  equ  22h; 3  nroC  equ  23h; 4  ;------------------- 5  MAIN: 6  movf  nroA,w; 7  addwf  nroB,w; 8  subwf  nroC,w; 9  goto  FIN; 10  ;------------------- 11  FIN: 12  sleep; P ROBLEMA 2. 3 Escribir un programa que sume dos n ´ umeros de 16 bits A (20H 21H) y B (22H y 23H) y el resultado colocarlo en A. 1

description

Desarrollo de los ejercicios de la segunda guía de trabajos prácticos de la cátedra de Electrónica Digital II que se dicta en la FCEFyN

Transcript of Desarrollo Ejercicios Prácticos nro.2

  • ELECTRONICA DIGITAL IIFCEFyN

    Universida Nacional de Cordoba

    PRACTICO 2

    Esteban Andres Morales

    1 de abril de 2014

    PROBLEMA 2.1

    Escribir un programa que sume dos valores guarda-dos en 21H y 22H con resultado en 23H y 24H.

    1 nro1 equ 21h;2 nro2 equ 22h;3 ;-------------------4 MAIN:5 movf nro1,w;6 addwf nro1,w;7 movwf 23h;8 movwf 24h;9 goto FIN;10 ;-------------------11 FIN:12 sleep;

    PROBLEMA 2.2

    Escribir un programa que resuelva la ecuacion: (A +B) C (posiciones 21H, 21H y 22H).

    1 nroA equ 21h;2 nroB equ 22h;3 nroC equ 23h;4 ;-------------------5 MAIN:6 movf nroA,w;7 addwf nroB,w;8 subwf nroC,w;9 goto FIN;10 ;-------------------11 FIN:12 sleep;

    PROBLEMA 2.3

    Escribir un programa que sume dos numeros de 16bits A (20H 21H) y B (22H y 23H) y el resultadocolocarlo en A.

    1

  • 1 nroA_Alto equ 20h;2 nroA_Bajo equ 21h;3 nroB_Alto equ 22h;4 nroB_Bajo equ 23h;5 ;-------------------6 MAIN:7 movf nroA_Bajo,0;8 addwf nroB_Bajo,0;9 movwf nroA_Bajo;10 btfss STATUS, 6;11 incf nroA_Alto, 1;12 movf nroA_Alto, 0;13 addwf nroB_Alto, 0;14 movwf nroA_Alto;15 goto FIN;16 ;-------------------17 FIN:18 sleep;

    PROBLEMA 2.4

    Escribir un programa que su ejecucion demore unmilisegundo (Cristal de 4MHz).

    1 cont equ 20h;2 ;-------------------3 MAIN:4 MILI_SEG:5 movlw 250d;6 movwf cont;7 CICLO:8 nop;9 decfsz cont,1;10 goto CICLO;11 goto FIN;12 ;-------------------13 FIN:14 sleep;

    PROBLEMA 2.5

    Escribir un programa que su ejecucion demore unmilisegundo (Cristal de 4MHz).

    1 cont1 equ 20h;2 cont2 equ 21h;3 cont3 equ 22h;4 ;-------------------5 MAIN:6 movlw 4d;7 movwf cont3;8 CICLO3:9 call 250_MILI;10 decfsz cont3,1;11 goto CICLO3;12 goto FIN;13 ;-------------------14 250_MILI:15 movlw 250d;16 movwf cont2;17 CICLO2:18 call MILI_SEG;19 decfsz cont2,1;20 goto CICLO2;21 return22 ;-------------------23 MILI_SEG:24 movlw 250d;25 movwf cont1;26 CICLO1:27 nop;28 decfsz cont1,1;29 goto CICLO1;30 return31 ;-------------------32 FIN:33 sleep;

    PROBLEMA 2.6

    Escribir un programa que compare dos numeros Ay B. Si son iguales, el resultado debe ser 0. Si A B,el resultado debe ser la diferencia A - B, y si A Bel resultado debe ser la suma A + B. (A en posicion30D, B en 31D y R en 32D).

    2

  • 1 nroA equ 30d;2 nroB equ 31d;3 res equ 32d;4 ;-------------------5 MAIN:6 movf nroB,0;7 subwf nroA,0;8 btfsc STATUS, 7;zero en 1?9 movlw 0h;10 btfsc STATUS, 6;sign en 1?11 call SUMA;12 movwf res;13 goto FIN;14 ;-------------------15 SUMA:16 movf nroB,0;17 addwf nroA,0;18 return;19 ;-------------------20 FIN:21 sleep;

    PROBLEMA 2.7

    Escribir un programa para almacenar el valor 33Den 15 posiciones contiguas de la memoria de datos,empezando en la direccion 0x30.

    1 cont equ 30d;2 puntero equ 1h;3 ;-------------------4 MAIN:5 movlw 15d;6 movwf cont;7 movlw 0x30;8 movwf puntero;9 movlw 33d;10 CICLO;11 movwf puntero;12 incf puntero;13 decfsz cont,1;14 goto CICLO;15 goto FIN;16 ;-------------------17 FIN:18 sleep;

    PROBLEMA 2.8

    Escribir un programa que convierta un numero de 8bits, escrito en ASCII, en su equivalente en BCD.Num en 0x20.

    1 num equ 0x20;2 ;-------------------3 MAIN:4 movlw 48d;5 subwf num,0;6 goto FIN;7 ;-------------------8 FIN:9 sleep;

    PROBLEMA 2.9

    Idem anterior, pero de la zona Nums (de 20H a 30Hinclusive).

    1 cont equ 31h;2 ;-------------------3 MAIN:4 movlw 20h;5 movwf FSR;6 movlw 10d;7 movwf cont;8 CICLO:9 movlw 48d;10 subwf FSR,0;11 incf FSR;12 decfsz cont,1;13 goto CICLO;14 goto FIN;15 ;-------------------16 FIN:17 sleep;

    PROBLEMA 2.10

    Escribir un programa que convierta un numero de 4bits escrito en binario natural en su equivalente encodigo Gray. (NumB 32D y NumG 33D)

    1 num_bin equ 32d;2 num_gray equ 33d;3 ;-------------------4 MAIN:5 rrf num_bin,0;6 xorwf num_bin,0;7 movwf num_gray;8 goto FIN;9 ;-------------------10 FIN:11 sleep;

    3