Sunteți pe pagina 1din 6

1

Scientia et Technica Año XVI, No 08, Mes 04 de Año 19. Universidad Tecnológica de Pereira

Assembly and programming practice in a


PIC16F84A (Abril 2019)
Práctica de montaje y programación en un PIC16F84
Laura Juliana Pupo Gutierrez, José Neftalí Torres Muñoz
mail authors: laju2910@utp.edu.co, talinito@utp.edu.co.

Abstract—The objective of this document is to carry out the Además, con el programa de simulación de Proteus se
programming of a PIC16F84 using the Microchip PICkit 3 puede verificar que las acciones escritas en el código sean
microcontroller burner with the PICkit 3 v3.10 software, in realizadas correctamente por el PIC16F84 antes de ser
addition to this, using the "PIC C compiler CCS" which will be
implementadas de manera física, de esta forma se puede evitar
used to program and compile a program which is responsible for
turning on 8 LEDs and another one, which is going to make a estar programando el microcontrolador, ya que en algunos
sequentially of ON/OFF with this LEDs, and through the Proteus casos habría que estar conectado y desconectado el PIC, y al
simulation software its correct functioning will be checked before hacer esto reiteradas veces puede crear una fatiga en los pines
making a replica of the circuit on a breadboard. del microcontrolador haciendo que estas se quiebren.
Index Terms— Simulation, assembly, PIC16F84, LEDs,
Ya en el montaje se comprobará que el comportamiento de
PICkit, PIC C compiler, program, compile, Proteus.
la simulación sea igual que en la vida real.

Resumen—El objetivo de este documento es realizar la II.METODOLOGÍA


programación de un PIC16F84 usando el quemador de
microcontroladores Microchip PICkit 3 junto al software PICkit
3 v3.10, además de usar el programa PIC C compiler CCS el cual 1. MATERIALES
se va a usar para programar y compilar un programa el cual se Los materiales que se usaron
encarga de encender 8 LEDs y otro el cual se va a encargar de
encender y apagar estos LEDs de forma secuencial, y mediante el 2. PROGRAMACIÓN
software de simulación de Proteus se comprobará su correcto Como se mencionó anteriormente, el programa que se va a
funcionamiento antes de realizar una réplica del circuito en una utilizar para compilar las instrucciones que el PIC16F84
protoboard. realice es el PIC C Compiler, también conocido como CCS,
Palabras claves— Simulación, montaje, PIC16F84, LEDs, con la ayuda de este se realizarán dos códigos de programa
PICkit, PIC C compiler, programar, compilar, Proteus. que tienen como objetivo encender 8 LEDs, el primero es
mandar una señal de 5 voltios por el puerto B del
I. INTRODUCCIÓN microcontrolador para que estos LEDs queden encendidos
indefinidamente, y el segundo código es para crear una

P RIMERAMENTE se hablará de que es un microcontrolador,


secuencia de encendido y apagado de estos mismos.

Para programar un microcontrolador en lenguaje C se usan


este es un circuito integrado el cual contiene un
microprocesador, memoria y puertos de entrada y salida (E/S, ciertos comandos, estos comandos al ser compilados por el
o en inglés “I/O”), este circuito integrado se programa para CCS y por consiguiente ser enviados por medio del quemador
que pueda realizar una o varias tareas específicas y para ello se PICkit 3 al microcontrolador este ejecutará las tareas
pueden usar diversos tipos de software para realizarlo, el que secuencialmente colocadas por el programador.
se usará en este caso será el PIC C compiler, el cual usa A. Encendiendo 8 LEDs
lenguaje C. El código realizado para encender 8 LEDs se presentará en
la siguiente figura.
Gracias a que el software de programación usa un “lenguaje
de alto nivel”, es decir, al programar el PIC estamos usando un
lenguaje similar al que se usa al hablar con otra persona, por
esta razón, se facilita la programación de un PIC, ya que las
instrucciones que se crearon pueden ser recordadas fácilmente
al programarse, este programa traduce lo que se escribe a una
configuración hexadecimal, la cual es la que trabaja el PIC de
forma interna.
Fig 1. Programa para encender 8 LEDs.
2
Scientia et Technica Año XVI, No 08, Mes 04 de Año 19. Universidad Tecnológica de Pereira

Como se puede apreciar en la Figura 1, el comando para


usar el puerto como entrada o salida es “tris”, y el
direccionamiento para el puerto B es 0x86, si se fuese a
utilizar el puerto A este debería ser cambiado por 0x85, el
valor de “0” indica que los puertos actuarán como salida,
mientras que con el valor de “1” estos serán de entrada, este
puede ser seleccionado para cada pin del puerto.

Por otro lado, para conocer el valor de entrada o indicar un


valor de salida para el puerto B se usará la dirección 0x06,
mientras que para el puerto A este debe ser 0x05.

B. Encendido y apagado secuencial de 8 LEDs


En este programa que se realizará seguidamente, se usarán
los mismos comandos mencionados en el anterior programa,
en adición habrán dos comandos nuevos, uno de ellos será
aplicar un retardo para que se pueda apreciar el encendido y
apagado de cada LED, si este no es aplicado en el programa
no se podría apreciar el efecto de los LEDs, debido a que el
microcontrolador al usar un reloj de 4MHz, cada instrucción
del programa se ejecuta a una velocidad de 250 nanosegundos,
es decir, cada 250 ns va a prender un LED, cuando brillen los
8 LEDs habrán transcurrido 2 µs y al apagarse igualmente,
esta velocidad es imperceptible para el ojo humano.

Otro comando o instrucción que se usará en este programa


facilitará el uso de los pines del puerto.

Fig 2. Encendido y apagado secuencial de 8 LEDs.

El comando para realizar los retardos que se mencionó


anteriormente es el “delay_ms”, con esta instrucción se puede
generar un aplazamiento para la siguiente linea de instrucción
en milisegundos.

Por otro lado, para seleccionar un pin del puerto B del


microcontrolador, se usa para el caso del pin B0 el siguiente
comando: “#bit rb0=0x06.0”, donde el rb0 puede ser
cambiado a gusto del programador.

3. SIMULACIÓN
Para realizar las simulaciones de los programas anteriores
se usó el software de Proteus, el cual proporcionará un
ejemplo de como se comportará el PIC16F84 en el uso real.
3
Scientia et Technica Año XVI, No 08, Mes 04 de Año 19. Universidad Tecnológica de Pereira

Para ambos casos se usa la misma configuración de LEDs, En la simulación no es necesario añadir un cristal, dado que
lo único que cambiará son las instrucciones que el dentro de las opciones del PIC16F84 se encuentra el oscilador
microcontrolador ejecutará en el momento de ser programado. que se usará en el montaje, esto se realiza para tener el
conocimiento de como se debería montar el cristal con el
microcontrolador en la protoboard o en una baquelita.

4. MONTAJE
A continuación, se explicará cómo fue realizado el montaje
de los circuitos anteriores y también conocer como se usa un
quemador en un microcontrolador, debido a que este cuenta
con unos pines especiales para poder programarlo.

Se usó el software de EAGLE para diseñar el circuito donde


irá implementado el PIC16F84A, esto se hizo para facilitar la
programación y conexión de los puertos con la protoboard,
Fig 3. Configuración de LEDs. con esto se puede evitar en gran medida que el
microcontrolador pueda dañarse por un cortocircuito o por una
C. Encendiendo 8 LEDs conexión mal realizada entre el quemador y el
Para el encendido de los LEDs, se obtuvo el siguiente microcontrolador, o también puede impedirse que un pin del
resultado de la simulación. PIC se quiebre al ser sacado o puesto reiteradas veces.

Fig 4. Simulación de LEDs encendidos Fig 6. Esquema de conexiones PIC16F84


Se pudo observar que el código implementado para prender Para realizar la baquelita del circuito, primeramente, se
los LEDs funcionó satisfactoriamente.
debe diseñar un esquema de conexiones para que después el
software pueda realizar las rutas de conexiones del dispositivo.
D.Encendido y apagado secuencial de 8 LEDs
Debido a que es muy difícil apreciar lo que sucede en la Teniendo las conexiones realizadas como se puede ver en la
simulación en este caso, para fines ilustrativos se toma una Figura 6, se procede a enrutar las conexiones.
captura de pantalla cuando están encendidos 5 de los 8 LEDs,
como se muestra a continuación.

Fig 7. Diseño enrutado del PIC16F84.

Fig 5. Simulación de secuencia de encendido y apagado. Después de acomodar todos los componentes del circuito
impreso, el programa procede a buscar las mejores rutas para
4
Scientia et Technica Año XVI, No 08, Mes 04 de Año 19. Universidad Tecnológica de Pereira

conectar debidamente cada componente.

Al terminar la búsqueda de la mejor ruta, el programa


selecciona la ruta mejor optimizada, por consiguiente, se
imprime el circuito en blanco y negro, además de usar un
papel especial para que este se adhiera fácilmente al cobre de
la baquelita, usando el método del planchado, pero solo se
imprimen las conexiones azules y los orificios verdes que se
observan en la Figura 7, estos dos elementos son tambien
conocidos como el “Bottom” o la parte inferior del circuito, el
cual contiene todas las conexiones necesarias para realizar el
montaje, las otras partes del circuito se imprimen en el mismo
tipo de papel y estas se colocarían arriba de la baquelita, es Fig 9. Diagrama de conexión PICkit 3 con PIC16F84.
decir, donde no se encuentra el cobre, esto se efectúa para que
la tarjeta quede mejor estéticamente. Con la ayuda de este diagrama ya se conoce como se debe
conectar el quemador PICkit con el PIC, seguidamente, se
Posteriormente, cuando se realiza todo el proceso de ejecuta el programa PICkit 3 v3.01, cuando este programa
quemado de la tarjeta usando ácido nitrico, peróxido de termine de ejecutarse, se espera a que el computador detecte el
hidrogeno y agua, se procede a soldar los componentes en su quemador y también que este detecte el microcontrolador,
respectivo lugar y se obtiene el siguiente resultado. cuando estos están debidamente conectados, el programa
indicará que ya se puede leer, escribir, verificar o borrar lo que
se encuentre en el microcontrolador.

Después de esto, se podrán cargar los codigos que se


realizaron anteriormente, para escribirlo en el PIC se importa
el archivo con terminación “.hex” y cuando este cargue, se
selecciona la opción “Write”, la cual comenzará a escribir el
programa en el PIC; el software indicará cuando se termine de
realizar la acción para que el microcontrolador pueda ser
desconectado del quemador.

F. Encendiendo 8 LEDs
El montaje realizado de los LEDs es sencillo, pues este se
conecta en serie con una resistencia y seguidamente a la tierra,
no existe un orden para que estos dos componentes sean
conectados, si hay que tener en cuenta es la polaridad del
Fig 8. Circuito impreso. LED, porque si este es conectado de manera inversa se puede
dañar el LED.
El diseño varía el circuito impreso debido a que a este se le
tuvieron que realizar algunas correciones de conexión, por A continuación, se mostrará cómo es la polaridad del LED
ende, en la Figura 7 ya cuenta con las correciones que se le en dos perspectivas y su respectiva simbología.
realizaron a la tarjeta de la Figura 8.

Ahora se procederá a explicar el montaje de los 8 LEDs en


la protoboard y la programación del PIC16F84 mediante el
quemador PICkit 3.

E. Programación del PIC16F84


Primero se procederá a explicar como se programa el Fig 10. Polaridad de un LED.
microcontrolador, para ello se tomará como referencia el
siguiente diagrama de conexión. También en la siguiente figura se puede apreciar el correcto
montaje de un chip en una protoboard, al igual que como se
realizan las conexiones en una protoboard o placa de pruebas.
5
Scientia et Technica Año XVI, No 08, Mes 04 de Año 19. Universidad Tecnológica de Pereira

Fig 11. Conexiones y montaje en una placa de pruebas.

Ya con esto en mente, se procederá a mostrar los resultados


del montaje, el cual debe quedar de la siguiente forma.

Fig 14. Prueba de encendido y apagado secuencial de LEDs.

III. CONCLUSIONES
En caso de querer ejecutarse el código más de una vez, es
necesario reiniciar el PIC, debido a que el código esta
diseñado para que este funcione una sola vez.

Fig 12. Montaje de LEDs en placa de pruebas. Una parte fundamental a tener en cuenta, son los fusibles ya
que, en este caso si no son usados, las instrucciones del código
El resultado obtenido de la programación del PIC16F84 fue no serán ejecutadas por el microcontrolador, obteniendo como
la esperada, los 8 LEDs se encendieron correctamente. resultado que los LEDs no enciendan.

Con el uso de un PIC se puede simplificar el


funcionamiento de una tarea específica, un ejemplo de ello
sería mandar la orden de encender un bombillo de una casa
usando un micrófono, o un sensor de proximidad.

IV. DISCUSIONES
Es importante tener un previo conocimiento de los
componentes que se van a utilizar en el desarrollo de la
práctica que se realice, pues es en muchas ocasiones hay
complicaciones con las conexiones respectivas debido a falta
de instrucciones importantes.

Es muy recomendable realizar la simulación previa al


montaje, para evitar posibles inconvenientes en el
funcionamiento del microcontrolador.

Fig 13. Prueba de encendido en 8 LEDs. En el caso de los programas que serán usados, se debe tener
un conocimiento básico del lenguaje de programación que se
G.Encendido y apagado secuencial de 8 LEDs va a usar pues dependiendo de la practica a realizar, algunos
cambios deben ser efectuados teniendo en cuenta la
El montaje para realizar la secuencia de encendido y
información de los componentes que se verán afectados por
apagado de los LEDs es igual que la anterior en este caso solo estos cambios, como los puertos.
cambia que hay que quemador el código en el
microcontrolador para que este realice la secuencia Para energizar el microcontrolador, es necesario tener en
mencionada en la programación. cuenta que si consume más de 500mA podría dañarse el
puerto USB del computador, por lo tanto, es recomendable
Al igual que antes, como es difícil apreciar el efecto por que se use un cargador de celular o una fuente de 5V.
medio de una sola imagen, se usará una donde pueda verse
que los LEDs están encendiendo secuencialmente. En caso de querer usar EAGLE para la realización de una
tarjeta, es importante tener en cuenta el grosor de las pistas,
6
Scientia et Technica Año XVI, No 08, Mes 04 de Año 19. Universidad Tecnológica de Pereira

pues si se hace muy delgada, puede que se vea afectada al


pasar por los procesos de planchado y de quemado por el
ácido, así mismo, al ser muy gruesas es probable que sea
innecesario, ya que la tarjeta puede quedar más grande de lo
debido, lo importante es buscar un tamaño adecuado.

REFERENCES
1. Microchip. (2009). PICkit™ 3 Programmer/Debugger
User’s Guide [Online]. Available:
https://www.sparkfun.com/datasheets/Programmers/PICkit_
3_User_Guide_51795A.pdf.
2. Microchip. (2001). PIC16F84A Data Sheet 18-pin
Enhanced FLASH/EEPROM 8-bit Microcontroller
[Online]. Available:
https://ww1.microchip.com/downloads/en/devicedoc/35007
b.pdf

S-ar putea să vă placă și