Está en la página 1de 3

Prof: Ing.

Ender Pereira (Msc)


Unidad I: Programacin Bsica

Importante: En todos los problemas debe de realizar el diagrama circuital con el
microcontrolador indicado y programa.




1.- Utilizando un PIC16F877 realice un Juego de Luces de 8 leds, donde por medio de un
Pulsador de Inicio el Juego se coloque en funcionamiento. El Juego se comportara de la
siguiente manera:
Los leds inicialmente se encendern solo uno a la vez en secuencia, de izquierda a
derecha y de derecha a izquierda; Este proceso lo realizara 5 veces, donde al terminar
pasara a la siguiente secuencia que se comportara de la siguiente manera:
El secuenciador ser de 8 leds donde encendern uno por uno, y al estar todos
encendidos se apagaran; Este Proceso se realizara 4 veces. Luego todo este proceso se
realizara nuevamente.
Nota: Utilice las instrucciones RLF y RRF

2.- Utilizando un PIC16F877 realice un Contador de 4 en 4 que cuando llegue a 40 realice
el encendido de una alarma por medio del Pin RA4, luego de ello se debe realizar el
contador de 4 en 4 de forma descendente y al terminar se debe realizar todo el proceso
nuevamente.

3.- Utilizando un PIC16F877 realice la captacin de dos nmeros de 4 bits, los cuales
ambos son suministrados por el Puerto D. Estos nmeros deben de ser comparados para
lo siguiente:
Si A=B encender una alarma. (Por RE0)
Si A>B realizar la suma de estos nmeros para luego realizar un contador desde este
valor hasta su desbordamiento. (Mostrar por el Puerto C)
Si A<B realizar el complemento a 1 del numero B. (Mostrar por el Puerto C)
El numero A son los 4 bits menos significativos del Puerto D y el numero B son los 4 bits
mas significativos del Puerto D.

4.- Utilizando un PIC16F87, realice un contador binario de 5 a 55 por medio de leds.

5.- Utilizando un PIC16F877 realice un secuenciador de 8 leds de izquierda a derecha y
de derecha a izquierda por el Puerto C. Se deben ir encendiendo los leds de 2 en 2 en
forma secuencial. (Mientras dos leds estn encendidos todos los dems estn apagados).
El secuenciador a la izquierda se realiza por medio de la activacin de un suiche colocado
en RB0 en activo bajo y El secuenciador a la derecha se realiza por la activacin de un
suiche colocado en RB1 en activo bajo.






6.- Se tienen 2 nmeros de 6 bits que sern introducidos por el Puerto B (digA) y Puerto C
(digB) del microcontrolador, donde se tendrn que comparar ambos nmeros para realizar
los siguientes procesos:

- Si digA = digB se realiza un contador desde 10 hasta que se rebose mostrado por el
Puerto B, de 5 en 5.

- Si digA < digB se realizara el encendido de 1 led de uno en uno hasta lograr que todos
los led estn encendidos. Hay que tomar en cuenta que los leds estan colocados en el
Puerto A y se debe empezar con el menos significativo.

- En cualquier otra condicin se debe evaluar nuevamente las dos anteriores.

7.- Se tienen 2 suiches que de acuerdo a las combinaciones de estos se realizaran uno de
los siguientes procesos:

- Si el SW1 = 1 y SW2 =0 se realiza la intermitencia de 8 leds 10 veces.

- Si el SW1=0 y el SW2=1 encender 8 leds de 2 en 2 de adentro hacia fuera y de afuera
hacia adentro. Este proceso se debe ejecutar 5 veces.

- Si el SW1=0 y el SW2=0 el valor actual del puerto debe mantenerse.

- Si el SW1=1 y el SW2=1 se realizara un contador de 6 en 6 hasta 36

8.- Se desea tomar un numero introducido por el Puerto B y uno Introducido por el Puerto
C para realizar lo siguiente: Realizar una operacin NAND con ambos registros para luego
realizar el intercambio de cuartetos en el resultado, donde al culminar este procedimiento
se comparara el valor resultante (Llamado resultado) de la siguiente manera:
Si resultado es menor a Puerto B, se debe realizar un contador ascendente-descendente
de 0 a 128 que realizara su funcin cada vez que se presione un pulsador colocado en
RE0 para hacer un incremento o un pulsador colocado en RE1 para hacer un decremento.
Cada vez que se presione el pulsador correspondiente se incrementara o decrementara
solo un valor segn sea el caso. Cabe destacar que en su valor mnimo al ser
decrementado tomara su mximo valor, y en su valor mximo al ser incrementado tomara
su mnimo valor. Muestreos por el Puerto D.
Si resultado es mayor o igual al Puerto B se realizara la multiplicacin de este resultado
por 4. Muestreos por el Puerto D.
En cualquier otro caso se debe de volver a verificar las situaciones anteriores
9.- Introduzca un nmero por el Puerto A y otro por el Puerto B, de 6 bits
Realice una operacin lgica NOR entre los 2 nmeros introducidos, guarde el resultado
en un registro GPR y colquelo en la posicin 32h.
Con el registro almacenado debe de realizar las siguientes comparaciones:
Si GPR = 25
Realizar un contador impar de dos (2) en dos (2) hasta 22 binario por el Puerto C.
Si GPR >25
Decremente un contador desde este valor hasta 1. Si el resultado de la NOR es menor a 2
smele 5.
Si GPR < 25
Smele al registro 25, saque el complemento a 2 al resultado y colquelo por el Puerto C.

10.- Introduzca un nmero por el Puerto E, cuando este nmero sea igual a 7 realizar las
siguientes operaciones.
Tome un numero que este en el Puerto A, colquelo en un registro GPR, e inicie a partir
de este valor un contador hasta que se rebose tomando en cuenta lo siguiente:
Si el contador es < 200, realice una NOR entre el Puerto B y el Puerto A, y al resultado
squele una NAND, mostrando esto por el Puerto C
Si el contador es <= 255 y > 0 realice un contador decreciente de 2 en 2 desde 30 hasta
0, mostrado por el puerto C.

Si el contador se rebosa, realice un secuenciador de 8 bits de izquierda a derecha y
derecha a izquierda, donde en cada secuencia solo existan 2 leds encendidos.
11.- Utilizando un PIC16F877 realice el siguiente proceso: Se desea comparar dos
nmeros que entran por el puerto D y segn sea el caso realizar uno de los tres procesos
que se citan a continuacin: dig1 (menos significativo) y dig2 (mas significativo) (15 pts)
Si dig1 = dig2, realizar un secuenciador por el Puerto B, hacia la izquierda, donde se vean
encendidos solo 2 leds, sin repetir ninguno de estos. En el momento de que se enciendan
los dos ltimos leds se deben encender todos y luego apagarse. Este proceso debe
realizarse 20 veces.
Si dig1 > dig2, se debe realizar un contador de 20 hasta que se rebose de 5 en 5, por el
Puerto B.
Si dig1 < dig2, se debe realizar un secuenciador por el Puerto B hacia la derecha de 7
bits, tomando en cuenta que cada led que se encienda debe permanecer encendido.
Cuando todos estn encendidos debe realizar el complemento a 1 del valor del Puerto B.
12.- Utilizando un PIC16F877 realice el siguiente proceso: Se desea comparar dos
nmeros uno que entra por el Puerto A (Dig 1) y otro que entra por el puerto B (Dig 2) y
segn sea el caso realizar uno de los tres procesos que se citan a continuacin: dig1 (mas
significativo) y dig2 (menos significativo) (15 pts)
Si dig2 = dig1, sumar dos nmeros de 4 bits introducidos por el puerto C, para luego
incrementar desde el valor resultante hasta que se rebose. Mostrar por el Puerto D
Si dig2 > dig1, se debe realizar un contador desde 5 de 10 en 10 hasta 200. En el
momento que el contador sea menor a 100 debe encenderse un led en RE0 y otro en RE1
y cuando sea menor estos leds deben estar apagados. Mostrar por el Puerto D.
Si dig2 < dig1, se debe realizar un secuenciador por el Puerto D hacia la derecha de 5
bits, tomando en cuenta que cada led que se encienda debe permanecer encendido.
Cuando todos estn encendidos debe realizar una XNOR entre el Puerto D y el Puerto B,
para luego limpiar el Puerto D. Este proceso debe ser realizado 100 veces.

También podría gustarte