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

Upload: andresteve07

Post on 06-Oct-2015

236 views

Category:

Documents


0 download

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

  • 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