Vous êtes sur la page 1sur 3

Ejercicios de programación para PIC

Resuelva los siguientes ejercicios pensados para su implementación con el PIC “16F84”,
realizando en cada uno de ellos las siguientes consignas:

a) El circuito esquemático completo necesario para la puesta en funcionamiento del


programa.
b) El Diagrama de Flujo correspondiente (elaborado con el Microsoft Visio u otro
equivalente).
c) El código de programa factible de ser probado en el Sim84 o el MPLab.

Ejercicios:

1) Defina a las Puertas A como entradas y a las B como salidas.

2) Defina a los primeros cuatro bits de cada Puerta como entradas y a las puertas RA4 y RB4
a RB7 como salidas.

3) Ídem punto “1”, y luego muestre los valores de las entradas por las salidas
respectivamente según corresponda.

4) Ídem punto “1”, y luego sume 02 a la entrada y guarde el resultado en la posición de


memoria 0C.

5) Ídem punto “4”, y luego muestre el resultado en la salida.

6) Ídem punto “2”, y además sume las entradas RA a las RB y guarde el resultado en la
posición de memoria 0C.

7) Ídem “2”, y luego realice las siguientes operaciones lógicas entre dos entradas y
muéstrelas en alguna de las salidas:
Compuerta OR
Compuerta AND
Compuerta XOR
Compuerta NOT

8) Controlar el encendido y apagado de 5 leds mediante 5 pulsadores. Además agregar un


pulsador que encienda todos los leds y otro que los apague.

9) Realizar el programa de control para manejo de Teclado 3 columnas y 4 filas y presente la


información en un display de 7 segmentos manejado por un decodificador de BCD a 7
segmentos externo .

10) Crear un programa que permita manejar un Portón corredizo. Requisitos: El portón es
abierto y cerrado mediante pulsadores PA y PC ( apertura y cierre). Normalmente el portón se
abre y cierra por completo, disponiendo de dos fines de carrera FA y FC. Una lámpara
intermitente indica portón en desplazamiento. Un pulsador de parada PP puede detener el
portón en cualquier momento.

11) Realizar el programa para un Conversor paralelo-serie. Señales: bit 0 del puertoA es
Enable y permanece en alto durante el envío de 8 bits. Bit1 del puertoA es un clock generado
en la mitad del tiempo de pulso. Cada pulso se envía por bit2 del puertoA y dura 2 mseg. El
puerto B captura la entrada paralelo de datos.

12) Crear un programa que muestre una secuencia de encendido y apagado de las salidas del
pic puertoB. Tiempo de encendido y apagado entre leds 80 Segundos aprox.
13) Realizar un cronómetro que cuente hasta 99,99 segundos. Dicho crono cuenta con un
pulso de start y otro de stop. Cuando se presiona el Stop el valor debe permanecer hasta que
se presione Start y se resetee el cronómetro. El circuito debe utilizar 4 display de 7 segmentos
cátodo común con un conversor BCD a 7 segmentos externo.

14) Realizar el programa para un Secuenciador de 8 canales (utilizar las funciones de tablas).

15) Realizar el programa para un Contador de pulsos decimales.

16) a) Realizar el programa para un Timer 100ms.


b) Realizar el programa para un Timer 150ms.

17) Realizar el programa para un Timer 5 seg.

18) Realizar el programa para un Tacómetro (Contador de pulsos por segundo).

19) Realizar el programa para un Frecuencímetro.

20) Realizar el programa de control para un Semáforo. Se deben controlar - rojo (R1) -
amarillo(A1) – verde (V1) - de mano1 y otro grupo de mano2 (R2) (A2) (V2). Tiene indicación
de peatón con “hombrecito caminando” (HC) en blanco y “hombre parado” (HP) con luz
naranja. Se deben seleccionar dos secuencias : de 80 y de 110 seg. Tiempo de verde 60%
tiempo de rojo40% tiempo de amarillo 10 % . Se debe poder aumentar con + el tiempo de
verde de una mano en 5seg y automáticamente descontarse de la otra mano el mismo tiempo
de rojo. 3 seg antes de cambiar peatón debe empezar a tititlar con 0,5seg ON y 0,5seg OFF.
22) Ejercicio control de motores paso a paso.

Realice un circuito esquemático conectando un Pic con un motor paso a paso unipolar de
cuatro bobinas usando cuatro salidas (puerto A). También conecte ocho switch en ocho
entradas del pic (Puerto B)
Realice un programa que en función de los parámetros que ingresan a través del conjunto de
ocho switch, realice el control del motor paso a paso, considerando la siguiente tabla:

SW1 0 Gira en un sentido horario 1 Gira en sentido antihorario


SW2 0 Paso completo 1 Medio paso
SW3 0 Stop 1 Gira n pasos
SW4 Estos switch indican la cantidad “n” de pasos que debe girar el motor, desde 0 a 32
SW5
SW6
SW7
SW8

23) Realizar un programa que reciba datos por RA2:RA0 EQUIVALENTES a 8 niveles de
demora. Con este dato se debe refrescar una variable auxiliar (en una posición de memoria
disponible al usuario ) , la cual resulta encargada de fijar el tiempo entre pasos de un motor
paso a paso cuyo drive (ULN2803) se conecta en RB4:RB7. Además en RA3 y RA4 deben
establecer el arranque o apagado del motor y el sentido de giro respectivamente.
24) Realizar un programa que reciba datos por RA2:RA0 EQUIVALENTES a 8 niveles de
demora. Con este dato se debe refrescar una variable auxiliar (en una posición de memoria
disponible al usuario ) , la cual resulta encargada de fijar el ciclo de actividad de un PWM
aplicado a un motor de DC drive (medio L298) se conecta en RB4 y RB5. Además en RA3 y
RA4 deben establecer el arranque o apagado del motor y el sentido de giro respectivamente.
Setear una frecuencia de 100hz para el ciclo del PWM.

25) Realizar un programa que reciba datos por RA2:RA0 para fijar la velocidad de un motor DC
mediante PWM. En RA4/TOCKI se ingresan los pulsos generados por un encoder ( que toma
una lectura de 16 pulsos por cada vuelta girada en el eje del motor. La mínima velocidad es
cero y la máxima es 128 revoluciones por segundo.