"¿De qué serviría hablar de aquello? Nadie me creería". Napoleón Bonaparte.

viernes, 26 de abril de 2013

Nociones básicas de Microcontroladores: Sistema mínimo para el PIC16F84A (Parte 2 de 2).

Esta es la continuación de la entrada anterior, en esta entrada se mostrará el proceso para crear un archivo con extensión *.C en el compilador de la empresa CCS, algunas instrucciones básicas, así como la compilación de las mismas y su posterior programación en el PIC16F84A.

Primero, el programa a implementar será el encender/apagar cada segundo un LED, colocado en el pin RA0 del microcontrolador. Para ello tenemos el siguiente diagrama de flujo:


Clic en la imagen para expandir.



El código del programa se muestra a continuación:

//////////////////////////////
//PROGRAMA QUE HACE PARPADEAR/
//UN LED CONECTADO EN RA0   //
//////////////////////////////
//AUTOR: ALFA               //
//PAÍS:  MEXICO             //
//BLOG:  galfama.blogspot.mx//
//FECHA: 13/04/2013         //
//////////////////////////////

//SE DECLARA EL PIC A UTILIZAR.
#INCLUDE <16F84A.H>
//SE DECLARA EL CRISTAL A UTILIZAR.
#USE DELAY(CLOCK=4000000) //4MHz
//SE DECLARAN LOS FUSIBLES DEL PIC.
/*
XT = OSCILADOR DE CRISTAL DE CUARZO.
NOWDT = NO SE UTILIZARÁ 
        EL WATCH DOG TIMER.
PUT = SE USARÁ EL POWER UP TIMER.
NOPROTECT = NO SE PROTEGERÁ EL
           CÓDIGO CONTRA LECTURA.
*/
#FUSES XT,NOWDT,PUT,NOPROTECT

//SE DECLARAN LAS VARIABLES,
//PARA ESTE CASO NO HAY VARIABLES.

//SE DECLARA LA FUNCIÓN PRINCIPAL.
VOID MAIN (VOID)
{
//SE DECLARA TODO EL PUERTO A Y B
//COMO SALIDA.
SET_TRIS_A(0B00000);
SET_TRIS_B(0B00000000);
//SE HACE UN BUCLE INFINITO //PARA QUE EL PROGRAMA SE //REPITA. WHILE(TRUE) { //SE ENCIENDE EL LED OUTPUT_HIGH(PIN_A0); //HAY UN RETARDO DE 1 SEG. DELAY_MS(1000); //SE APAGA EL LED. OUTPUT_LOW(PIN_A0); //HAY OTRO RETARDO DE 1 SEG. DELAY_MS(1000); } }

Y por último, dejo un video donde se explica todo el proceso para grabar el código en el PIC16F84A.


 Muchas gracias por leer esta nueva entrada.
 ALF

jueves, 18 de abril de 2013

Nociones básicas de Microcontroladores: Sistema mínimo para el PIC16F84A (Parte 1 de 2).

A lo largo del aprendizaje de la electrónica, hemos escuchado alguna vez la palabra microcontrolador. Éstos pequeños circuitos integrados están incorporados en módems, no break, termómetros digitales, etc., y han venido a revolucionar el mundo de la electrónica. Ya que a ellos podemos conectar sensores de temperatura, presión, relevadores, actuadores, motores, etc.

Existen varios fabricantes de microcontroladores: Atmel, Texas Instruments, Freescale, Microchip, por citar algunos de ellos. Éste último es fabricante de los famosos PIC.

En esta entrada, he decidido utilizar el PIC16F84A de Microchip, por su facilidad para conseguirlo en las tiendas de componentes electrónicos, además por su precio, considero está al alcance de nuestro bolsillo.

Bien, el PIC16F84A posee las siguientes características:

 Parámetro Descripción
Tipo de Memoria de ProgramaFlash
Memoria de Programa (KB)1.75
Velocidad del CPU (MIPS)5
Memoria RAM (Bytes)68
Memoria EEPROM (Bytes)64
Temporizadores1 de 8-bit
Rango de Temperatura (°C)-40 a 85
Voltaje de Operación (V)2 a 6(típico 5V)
Número de pines18

El diagrama de bloques interno del PIC, se muestra a continuación (traducido al español):

Clic sobre la imagen para expandir.

Como se observa en el diagrama, el PIC16F84A contiene un pequeño microprocesador:

Clic en la imagen para expandir.

Ya que un PIC está considerado como una pequeña computadora con puertos de E/S, memoria RAM, ROM, etc. Básicamente la diferencia entre un microcontrolador y un microprocesador es:

Microcontrolador: Se utiliza para construir sistemas electrónicos que funcionan en "tiempo real".
Microprocesador: Se utiliza para procesar una enorme cantidad de datos.

Para utilizar por primera vez el PIC16F84A, se construirá un circuito denominado "sistema mínimo", con el cual se implementará un primer programa desarrollado en el compilador C, de la empresa CCS. A continuación se muestra el diagrama del sistema mínimo a implementar y la lista de materiales del mismo:

- 1 C.I. PIC16F84A.
- 1 Diodo 1N4148.
- 2 Capacitores cerámicos de 22 pF.
- 1 resistor de 10KOhms 1/2 W.
- 1 resistor de 220 Ohms 1/2 W.
- 1 Cristal de cuarzo de 4MHz.
- 1 LED color rojo (o de cualquier otro color).
- 1 Push-Button Normalmente Abierto (NA).
- 5 pines tipo espadines
- Cable
Clic en la imagen para expandir.

La mayoría de las instrucciones del microcontrolador se ejecutan en un ciclo de máquina, este ciclo está dado por el cristal de cuarzo de 4 MHz, y un divisor de frecuencia entre 4 que posee el PIC, esto quiere decir que las instrucciones en el microcontrolador estarán dadas por la fórmula:


Es por eso que, si utilizamos un cristal de 4MHz, la frecuencia real de operación será de 1MHz, por lo que cada instrucción en lenguaje ensamblador (ASM), le demorará 1 microsegundo en ser ejecutada. Aunque utilizaremos lenguaje C, para programar el microcontrolador, también el compilador CCS, nos da la opción de mezclar C y ASM.

Nota: El PIC16F84A-04 trabaja con una frecuencia máxima de 4 MHz, el PIC16F84A-20 funciona con una frecuencia máxima de 20 MHz.

Los capacitores de 22 pF, se utilizan para dar estabilidad a la frecuencia del cristal de cuarzo.

El PIC posee un pin de reset, dicho pin "resetea" el programa que se está ejecutando en el microcontrolador, para ello se ha colocado un push-button normalmente abierto en este pin, con una resistencia de 10 KOhms, denonimada resistencia pull-up.

Por otra parte, en el circuito, se ha colocado una serie de pines denominados Puerto ICSP (In Circuit Serial Programming), éstos pines nos permitirán en circuitos posteriores, programar el PIC16F84A sin la necesidad de retirarlo de la tablilla de experimentación o circuito impreso. El diodo 1N4148, ayuda para que, al programar por los pines ICSP el microcontrolador, no se energice todo el circuito y dañemos nuestro programador (cuando se conectan pantallas LCD, relevadores, sensores, actuadores, etc.).

A continuación se muestra el circuito construido en una tablilla de experimentación o protoboard:

Clic en la imagen para expandir.

Ahora, después de construir el circuito, para programar el PIC, se utilizará un "quemador" o programador de PIC's. En México se puede adquirir en Mercado Libre, el MASTER-PROG, que se muestra a continuación.
Clic en la imagen para expandir.

En la segunda parte de esta entrada del blog, se explicarán los pasos para programar el PIC, y se cargará en el circuito de prueba un programa de ejemplo, usando el compilador C CCS y el MASTER-PROG.

¡Muchas gracias por leer esta nueva entrada!

ALF

Resistencias o resistores (Conceptos básicos)

  H an pasado casi 4 años desde que publiqué la última entrada en este blog (diciembre 2014); cuando comencé con este blog en el 2011, lo h...