You are on page 1of 2

Electrónica Digital lll

Problema Nº 1
Indique las diferencias entre el microprocesador Z80 y el PIC 16F873.

Problema Nº 2
Formas de direccionamiento de los PIC, para las posiciones de RAM. ¿Qué sucede con las instrucciones CALL
y GOTO?

Problema Nº 3
¿Qué hace el siguiente programa?

MOVLW 15H
MOVWF FSR

LAZO CLRF INDF

INCF FSR , f
BTFSS LAZO
NOP

Problema Nº 4
¿Qué formas de direccionamiento tiene la familia de microcontroladores PICs? Explique cada una y de un
ejemplo.

Problema Nº 5
Efectué el diagrama de bloques de un procesador PIC, explicando cada uno de ellos.

Problema Nº 6
¿Cómo se realiza una tabla de cambio de código, usando las instrucciones de la arquitectura PIC? (explicar).
Por ejemplo una conversión de

10H convertirlo en 23H (ASCII # )


11H convertirlo en 2AH (ASCII * )
12H convertirlo en 26H (ASCII & )
13H convertirlo en 24H (ASCII $ )

Problema Nº 7
Redactar una rutina en lenguaje ensamblador (con los correspondientes comentarios) que realice la suma de dos
números de 16 bits cada uno (NumA y NumB) y el resultado en NumB.
NumA ocupa los registros 20H y 21H y NumB los registros 22H y 23H. Siendo los menos significativos los
registros 21H y 23H respectivamente.

Problema Nº 8
Redactar una rutina en lenguaje ensamblador (con los correspondientes comentarios) que a los números
decimales codificados ASCII almacenados en la zona de registros desde 30H hasta 4FH los guarde en BCD en
la zona 50H a 5FH (dos números es cada registro).

Problema Nº 9
Redactar una rutina en lenguaje ensamblador (con los correspondientes comentarios) que lea todos los números
decimales (de cero a nueve) almacenados en la zona de registros desde 64H hasta 7EH.
A los valores encontrados multiplicados por 7 (usando una tabla) y volver a guardar el resultado, también en
decimal, en el mismo registro.
Ejemplo: registro nnH contiene 09H (00001001B)
Luego de ejecutar el programa contendrá
registros nnH contiene 63H (01100011B)
Problema Nº 10
Realizar un programa que permita determinar cuantos dígitos binarios iguales a cero hay en la zona de registros
0x0A a 0x13 ambos inclusive. El resultado colocarlo en el registro W.

Problema Nº 11
Realizar un programa que lea los números decimales (de 0 a 9) almacenados en los registros ubicados en 10H a
1FH. A los valores encontrados multiplicarlos por 9 (usando una tabla) y volver a guardar el resultado, también
en decimal, en el mismo registro.
Ejemplo:
Registro nnH contiene 07H (00000111B)
Luego de ejecutar el programa
Registro nnH contiene 63H (01100011B)

Problema Nº 12
Realice una subrutina, con los comentarios correspondientes, que al número almacenado en el registro 22H lo
convierta a decimal guardando el resultado en decimal “empaquetado” en 32H y 33H (menos significativos).

Problema Nº 14
Redactar una rutina que ordene de menor a mayor los números almacenados en la zona de registros desde 30H
a 5FH por el método de “múltiples pasadas” (se leen todos los números y se encuentra cual es en l menor y se
lo retira y así sucesivamente.

Problema Nº 15
Redactar una rutina que ordena de menor a mayor los números almacenados en la zona de registros desde 30H
a 5FH por el método de la “burbuja”.

Problema Nº 16
El registro 06H tiene conectado 8 leds. El Led (conectado al bit 0) se enciende y paga 8 veces en un tiempo de
10 segundos, luego el led 2 (conectado al bit 1) se enciende y apaga 8 veces en 9 segundos, luego el led 3 se
enciende y paga 8 veces en 8 segundos. Y así sucesivamente hasta que el led 8 se encienda y pague 8 veces 3
segundos solamente. (Precisión solicitada mejor que 10%)

Problema Nº 17
Realice una diagrama lógico (usando compuesrtas AND y OR) del sistema de interrupciones de un
microcontrolador PIC de la gama media.

Problema Nº 18
Realice la subrutina de Interrupciones con los comentarios correspondientes, para atender al Timer 0, los pines
del Puerto B (RB4 a RB7) y el RB0. El Timer 0 debe contar 200 antes de una nueva interrupción, si es del
Puerto B (RB4 a RB7) se debe sumar registros 20H y 21H colocando el resultado en 22H y si es de RB0 sumar
todos los registros de la zona 24H a 2DH colocando el resultado en 2EH y 2FH (menos significativo).

Problema Nº 19
Generar un sonido en el pin RA0, variable en frecuencia de acuerdo a: 1000Hz durante 1 segundo, 900Hz
durante 1 segundos, 800Hz durante 1 segundos, 799Hz durante 1segundo, 600Hz durante 1 segundo.
La temporización se hace utilizando el Timer 0 y el clock del PIC es 4MHz.
Realizar el programa y la rutina de interrupción, con los comentarios correspondientes.

You might also like