Вы находитесь на странице: 1из 22

http://picserianos.blogspot.

com/search/label/Grabador%20de%20pics

UTILIZACION DEL DISPLAY LCD EN PROTON IDE


Una de las mejores formas de presentar informacin es sin lugar a dudas la pantalla o display LCD, este dispositivo que se presenta en varios formatos es ideal al momento de utilizar un microcontrolador pic, aparte de la funcionalidad el display LCD le da un toque de elegancia y versatilidad a nuestros proyectos.

Display LCD 2x16 En PROTON IDE es muy simple crear un programa para manejar este dispositivo, con unas cuantas instrucciones tendremos lista la programacin para enviar informacin al display lcd, entre los diversos formatos de estas pantallas se destaca el uso muy frecuente de los display con formato 16X2, esto quiere decir que este tipo de display LCD puede mostrar 16 caracteres por cada lnea, lo cual nos da un total de 32 caracteres disponibles y que hacen parte del cdigo ASCII, veamos a continuacin un ejemplo de cmo configurar un programa para display lcd en PROTON IDE.

Programa de prueba para el Display LCD Se deben definir las lneas de control RS (RSPIN) y EN (ENPIN), tambin definir que tipo de interfase se utilizara de 4 o de 8 bits, las lneas de caracteres del display LCD que en este caso son dos, tambin son populares los display de 4 lneas y de mas caracteres, y por ultimo definir que tipo de display LCD se utilizara 0 para display de caracteres y 1 para display LCD grafico. Para mostrar el texto en el display lcd, lo primero que se debe hacer es inicializar la pantalla con el comando CLS, despus para imprimir el mensaje se utiliza el comando PRINT AT, definiendo tambin la lnea y posicin en donde queremos mostrar el mensaje. Por ejemplo si queremos que el mensaje aparezca en la primera lnea y desde el primer carcter, entonces debemos utilizar esta lnea de programacin PRINT AT 1,1,AQU EL MENSAJE, para la segunda lnea y primer carcter entonces utilizaremos PRINT AT 2,1,AQU EL MENSAJE recuerde utilizar las comillas para incluir el texto. En el programa de ejemplo utilizamos el pic 16f877a y un display LCD 2x16 para mostrar el mensaje PRUEBA DE LCD EN PROTON IDE, este permanece 500 ms y luego desaparece por otros 500 ms, luego el programa queda mostrando el mensaje en un bucle infinito el cual se ha llamado LAZO. Aqu el circuito para el programa de ejemplo.

Circuito para prueba del Display LCD. Por ultimo un videoclip del programa de prueba del Display LCD. 0 comentarios Enviar por correo electrnico Escribe un blog Compartir con Twitter Compartir con Facebook Compartir con Google Buzz Etiquetas: Proton ide 10

mircoles 17 de noviembre de 2010


CONVERSOR ANALOGO A DIGITAL EN PROTON IDE
Con los conocimientos adquiridos hasta el momento, podemos empezar a conocer caractersticas mas avanzadas de los pics como lo es el conversor Digital a Anlogo o simplemente conversor A/D. Esta excelente caracterstica nos permite medir variables del mundo real, como la temperatura, velocidad, humedad, peso, distancia, corriente, voltaje etc, simplemente utilizando un censor indicado segn sea el caso, por su parte el microcontrolador pic leer esta informacin y la mostrara a travs de un medio visual como los display lcd, display de leds o tambin por medio de un dispositivo sonoro como un parlante o buzzer. Obviamente necesitaremos crear un programa para el microcontrolador pic para que reconozca la entrada del conversor Anlogo a Digital y nos muestre la informacin de los datos recolectados, en PROTON IDE es bastante fcil configurar el conversor Anlogo a Digital solo necesitamos seguir estos simples pasos. Configuracin del conversor Anlogo a Digital en PROTON IDE.

Despus de tener el resultado de la conversin guardada en un registro, en este caso lo hemos llamado VAR1, deberemos hacerle algn ajuste por medio de operaciones matemticas para poder tener un valor que se ajuste a la realidad y poder mostrarlo por ejemplo en un display LCD o display de LED. Los valores mostrados en el ejemplo son los mas comnmente utilizados para la conversin anlogo a digital en los microcontroladores pic, pero se puede cambiar dependiendo de las necesidades del proyecto electrnico, tambin dependen del pic utilizado y del censor conectado en la entrada anlogo a digital del microcontrolador pic. Consideraciones Importantes: Los microcontroladores pic utilizan para su alimentacin 5v dc, con los cuales realiza todas sus operaciones de lgica digital, en el caso del conversor anlogo a digital se requiere de un voltaje de referencia para poder realizar la conversin, este voltaje puede ser interno o externo y se configura haciendo uso del registro de trabajo llamado ADCON1, esto es importante pues si utilizamos el voltaje de referencia interno sabemos que la entrada anlogo a digital no soportara mas de esos 5 v dc, por lo tanto las seales de entrada no deben superar mas de los 5 v dc de lo contrario ese puerto de entrada o el microcontrolador podra daarse permanentemente. En el prximo articulo veremos la forma de manejar un display lcd en PROTON IDE, y as poder realizar un ejemplo practico de cmo utilizar el conversor anlogo a digital y luego mostrar el resultado en el display lcd.

INTRODUCCION Los microcontroladores pic se han hecho muy populares en los ltimos aos, casi todo amante a la electrnica en algn momento de su vida intentara programar un dispositivo de este tipo, los microcontroladores pic los podemos encontrar en diversos equipos electrnicos como lavadoras, hornos microondas, televisores, equipos de audio, maquinaria industrial, vehculos etc. Debido a esta situacin e decidido aportar mis conocimientos en estos dispositivos, los cuales poco a poco los iremos publicando en este blog, veremos como programar los microcontroladores pic, utilizando bsicamente dos lenguajes de programacin uno de ellos es el lenguaje ensamblador y el otro ser el Basic Proton IDE. Me parece que lo mas correcto es comenzar con un poco de historia acerca de estos dispositivos electrnicos, para entender de la mejor manera el porque de su funcionamiento, despus empezaremos describiendo toda su estructura bsica, al igual que veremos las caractersticas tcnicas y obviamente como crear los programas.

PIC 16F84A ALGO DE HISTORIA Los microcontroladores no son un tema nuevo, ya llevan alrededor de tres dcadas en el mercado, prcticamente se puede decir que son una evolucin del microprocesador, este antecesor del microcontrolador solo contaba con una CPU en su interior pero las dems secciones como memoria, puertos, conversores A/D, D/A etc se hacan con otros circuitos integrados perifricos a el, en cambio el microcontrolador reuni todas estas secciones en un solo chip llevando a crear innumerables aplicaciones, pues debido a su reducido tamao y su alta velocidad de operacin se gano un lugar en el diseo de los circuitos modernos. Pronto el mercado se inundo con estos dispositivos, su bajo costo y gran desempeo atrae a expertos y aficionados, los cuales en poco tiempo logran crear nuevos proyectos e incluso muchos de ellos han formado microempresas en donde se fabrican equipos electrnicos que funcionan en base a un microcontrolador o varios de ellos.

DIVERSIDAD DE MICROCONTROLADORES Los microcontroladores son fabricados por diversas compaas en el mundo, con lo cual varia su tecnologa, funcionalidad, rendimiento y tambin la forma como se programan, entre los mas famosos figuran los fabricados por MICROCHIP, MOTORTOLA, INTEL, AMD entre otras, en este blog estudiaremos los microcontroladores PIC fabricados por MICROCHIP. Los microcontroladores PIC de MICROCHIP gozan de gran popularidad por su bajo costo, gran desempeo y adems se puede encontrar mucha informacin tcnica y de desarrollo, al igual que el software para programarlos, entre los microcontroladores PIC se encuentran varias gamas de ellos pasando desde la mas baja hasta pics de gama alta segn su funcionalidad y efectividad, entre los mas populares se encuentran el microcontrolador PIC 16F84A, tambin podemos encontrar algunos otros que son de gran aceptacin como el 12C508A, 16F628A,16F876A, 16F877a,18F2550 entre otros. METAS Espero poder transmitir de la mejor manera mis conocimientos en este tema tan interesante, al igual que deseo que todos los visitantes al blog aprendan a programar estos dispositivos y saquen el mximo provecho de todas las cualidades de este magnifico dispositivo electrnico.

INTRODUCCION A PROTON IDE


Este software de desarrollo para la programacin de pics esta basado en el lenguaje BASIC, y es realmente sorprendente ya que en comparacin con el lenguaje ensamblador, el PROTON IDE es bastante resumido en su secuencia de programacin, se podra decir que acta como un interprete entre el pic y la persona que programa, esta manera de programar tambin se conoce como lenguaje de alto nivel, pues el esfuerzo en el desarrollo de los programas para el pic se reduce dramticamente en comparacin con el lenguaje ensamblador.

Este software de desarrollo fue creado por la compaa Mecanique con sede en el Reino Unido, desafortunadamente no es gratuito pero vale la pena adquirirlo ya que es un software de grandes prestaciones con una interfaz muy amigable y con algunos subprogramas que nos ayudaran mucho en la programacin de pics, adems tiene conexin directa con PROTEUS para tener la posibilidad de simular al instante el programa que estemos creando en el momento. Se puede descargar una versin de prueba desde la pagina del autor, http://www.mecanique.co.uk

Por ultimo dejamos una captura de pantalla del programa PROTON IDE,

Proton IDE

ESTRUCTURA DE UN MICROCONTROLADOR PIC


LECCION 1

Un microcontrolador esta formado bsicamente por una memoria flash, memoria eeprom, memoria RAM, una CPU, y puertos bidireccionales, aunque esto difiere segn el tipo de microcontrolador que estemos utilizando, veamos las caractersticas de cada seccin.

MEMORIA FLASH: Esta seccin del pic es la encargada de guardar el programa o la serie de comandos que le hemos programado, esta memoria es de gran velocidad en comparacin con versiones anteriores de pics, los cuales tenan memoria eprom y para poder borrarlos se tenia que utilizar una lmpara de rayos UV (ultravioleta), este proceso era bastante lento y retrazaba la realizacin de los proyectos. Luego surgi la memoria del tipo eeprom, pero esta cuenta con la gran ventaja de que los microcontroladores se pueden borrar elctricamente, proceso que solo tarda unos cuantos segundos y permite acelerar el proceso de programacin, y obviamente la memoria flash tambin es borrable por este mtodo.

MEMORIA EEPROM: En esta memoria se guardan los datos que queramos preservar aun cuando el microcontrolador pic este sin fuente de alimentacin, es muy til en proyectos en los que necesitemos guardar un dato y poder recupralo despus para hacer alguna operacin con el, la capacidad depende del tipo de microcontrolador pic utilizado, algunos pic de gama baja no cuentan con esta caracterstica.

MEMORIA RAM: Es la encargada de memorizar un dato pero solo cuando el microcontrolador pic esta alimentado, una vez retirada la alimentacin el dato se perder, esta memoria es utilizada frecuentemente durante la ejecucin del programa que reside en el pic, su capacidad tambin depende del tipo de microcontrolador utilizado, y esta presente en todos los microcontroladores pues es una parte vital para la ejecucin del programa.

LA CPU: Esta es la seccin inteligente del microcontrolador pic, pues en ella se hace la interpretacin del programa y adems se ejecutan las operaciones matemticas, es la seccin mas compleja del pic y corre a travs de los impulsos generados por el oscilador, el cual puede ser interno o externo, fijado por un cristal de cuarzo o una red RC (resistencia y condensador).

PUERTOS BIDIRECCIONALES: Los puertos son los encargados de comunicar al microcontrolador con el mundo que lo rodea, usualmente son bidireccionales excepto en algunos casos, esta condicin se define cuando estamos creando el programa y puede cambiar su condicin segn sea el caso. La cantidad de puertos disponibles depender del microcontrolador utilizado y debe elegirse segn la aplicacin requerida, comnmente se manejan estados digitales de 1 y 0, o tren de pulsos y algunos poseen entradas anlogas para medir variables como la temperatura, velocidad, voltaje, corriente etc.

PRIMEROS PASOS EN LA PROGRAMACION DE PICS


LECCION 2

Para comenzar a programar los microcontroladores pic, necesitaremos de una serie de herramientas de desarrollo, que si bien al comienzo no se entendern muy bien, nos sern necesarias al momento de grabar los primeros microcontroladores y nos permitirn seguir desarrollando nuevos proyectos, las herramientas serian las siguientes,

-Software de desarrollo -Simulador de circuitos -Software para grabar Pics -Grabador de Pics -Microcontroladores

SOFTWARE DE DESARROLLO: Es indispensable para la creacin de nuestros programas, en el se permite escribir el cdigo fuente del pic bsicamente, pero tambin nos brinda otro tipo de opciones como la de compilar el cdigo fuente para poder generar el archivo .hex que es el que finalmente se graba en el microcontrolador. Afortunadamente la compaa MICROCHIP tiene a disposicin de los programadores, un software gratuito llamado MPLAB IDE el cual cuenta con un editor de texto, compilador y un simulador, con este software se puede empezar a crear los primeros programas y se puede descargar gratuitamente desde su sitio web http://www.microchip.com/

SIMULADOR DE CIRCUITOS: Si bien el MPLAB posee entre sus herramientas un simulador, este no es muy practico que digamos por lo que la mejor opcin es tener un simulador de circuitos mas profesional, sin duda que uno de los mas conocidos es el software PROTEUS, este excelente programa permite hacer nuestro circuito con pic y con el cual podemos ver si nuestro programa realmente funciona antes de montar el circuito definitivo, lo pueden descargar desde el sitio del autor www.labcenter.com . El inconveniente es que este software no es gratuito, pero para comenzar pueden descargar la versin de prueba de este programa.

SOFTWARE PARA GRABAR PICS: Cuando ya contamos con el archivo .hex para grabar en el pic, necesitaremos de un software para poder grabar nuestro pic, en lo personal recomiendo dos programas el IC PROG y el WINPIC800, ambos tienen una gran lista de dispositivos a grabar y tambin tienen la opcin de utilizar diferentes tipos de grabadores de pics, estos programas son gratuitos y los pueden descargar desde la pagina del autor http://www.ic-prog.com/ http://www.winpic800.com/.

GRABADOR DE PICS: Para poder grabar el microcontrolador pic necesitaremos de este aparato, existe gran variedad de grabadores los cuales se pueden conectar al computador a travs de los puertos serie, paralelo o USB. Para comenzar a grabar los primeros microcontroladores pic, nos bastara con tener un grabador de pics del tipo JDM, este tiene la gran ventaja de ser econmico y puede grabar una gran cantidad de dispositivos, adems su construccin es fcil pues este tipo de grabador de pics cuenta con pocos componentes electrnicos.

ESTRUCTURA DE UN PROGRAMA PARA PIC


LECCION 3

Antes de comenzar a comprender lo que hace cada instruccin o comando en el microcontrolador pic, se debe aprender cual es la estructura de un programa, nos referimos a como se organiza la secuencia en el programa del pic, esto no solo se hace para que el programa funcione, tambin para que el programa se vea organizado, la organizacin es muy importante pues se comprende mejor el programa y nos facilitara las cosas por si en algn momento queremos modificarlo.

Para entender mejor como esta organizado un programa, veamos la siguiente figura,

Estructura de un programa en ensamblador

ENCABEZADO DEL PROGRAMA: Esta parte en realidad no es necesaria para el funcionamiento del programa, pero nos ayudara a mantenerlo organizado, pues se puede describir de que se trata el

programa, en que fecha fue creado, quien es el autor del mismo y cual es la versin actual del programa, para una mejor comprensin veamos un ejemplo,

;******************************************************* ;PROGRAMA: Led intermitente ;VERSION: 1.0 ;FECHA: 4/10/2010 ;AUTOR: (nuestro nombre) ;*******************************************************

El punto y coma se utiliza para que el microcontrolador pic no interprete como un comando lo que estamos escribiendo, pues si no se colocara al momento de la compilacin nos puede marcar un error, los asteriscos se utilizan como adorno o para separar las diferentes secciones del programa, pero podemos utilizar otro tipo de smbolo que nos guste.

TIPO DE PROCESADOR: Aqu se coloca que tipo de microcontrolador vamos a utilizar, veamos un ejemplo.

LIST P=16F628a

Con el comando LIST P= definimos que tipo de microcontrolador pic vamos a utilizar.

CONFIGURACION: En esta parte se define los parmetros con los cuales ser grabado el microcontrolador pic, tales como que tipo de oscilador se utilizara, si se activa la proteccin del cdigo, si se utilizara el reset al momento del encendido etc. Para declarar estos parmetros se utiliza el comando CONFIG, veamos un ejemplo.

__config _XT_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF & _BOREN_OFF & _MCLRE_OFF & _LVP_OFF

La palabra de configuracin del microcontrolador pic se puede omitir, pero al momento de grabarlo debemos sealar la configuracin manualmente en el software de grabacin.

ORGANIZACION DE LA MEMORIA: En esta seccin se le da una ubicacin a las distintas variables y registros utilizadas en el microcontrolador pic, como se menciono anteriormente la memoria y su organizacin depende del tipo de microcontrolador que se este utilizando en el proyecto, veamos un ejemplo.

STATUS PORTA PORTB EEDATA EEADR

equ equ equ equ equ

03h 05h 06h 9ah 9bh

;registro de estados ;el puerto A esta en la direccin 05 de la RAM ;el puerto B esta en la direccin 06 de la RAM ;registro de datos de la memoria EEPROM ;registro de direcciones de la memoria EEPROM

RESET: Este comando sirve para indicarle al pic, que debe ubicar su puntero en la primera posicin del programa, de no ocurrir esta situacin el pic puede entrar en un bucle infinito, con lo cual no funcionara o lo har de manera errtica. Ejemplo,

ORG

0X00

Como se puede ver en el ejemplo, para hacer el reset el microcontrolador pic se utiliza el comando ORG.

CONFIGURACION DE LOS PUERTOS: Para configurar los puertos el pic, se utiliza el comando TRIS, pero como este ya es un comando obsoleto, definido as por MICROCHIP, entonces la mejor manera es utilizar la siguiente secuencia.

MOVLW MOVWF MOVLW MOVWF

B'11000000' PORTB B'10110000' PORTA

Para definir un puerto como entrada se utiliza el numero 1, para definirlo como puerto de salida se utiliza el numero 0, el orden de la numeracin de los puertos se lee de derecha a izquierda, as que el primer bit empezando desde la derecha corresponde a la primera salida de ese puerto.

RUTINAS Y SUBRUTINAS DEL PROGRAMA: En esta seccin es donde escribimos la parte mas relevante del programa, la cual esta formada por rutinas y subrutinas, y es la seccin en donde el microcontrolador pasara mas tiempo ejecutando los diferentes comandos o instrucciones, el ejemplo lo veremos mas adelante cuando hagamos el primer programa para el microcontrolador pic.

FIN DEL PROGRAMA: Para finalizar el programa se utiliza el comando END, con esto se le indica al compilador que el programa a llegado a su fin y que inicie un nuevo ciclo de lectura del programa.

PRIMER PROGRAMA PARA PIC


LECCION 4

Usualmente el primer programa debe ser algo sencillo, lo que se busca inicialmente es dominar el proceso para llevar a cabo una correcta grabacin del microcontrolador pic.

Para esta tarea vamos a utilizar el clsico programa de encender y apagar un LED, el cual nos permitir probar nuestro primer microcontrolador, segn vayamos avanzando haremos programas mas complejos.

Aqu esta el circuito para armarlo!

INSTRUCCIONES BASICAS EN ENSAMBLADOR


El lenguaje ensamblador bsicamente cuenta con 35 instrucciones o comandos, los cuales es de vital importancia aprenderlos en detalle, con el fin de lograr una programacin fluida y que contenga el menor numero de errores o bugs posible.

Instrucciones de Operacin,

ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF

Operaciones orientadas a bits,

BCF BSF BTFSC BTFSS

Operaciones literales y de control,

ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE RETLW RETURN SLEEP SUBLW XORLW

En el primer programa para encender y apagar un led, observamos en la parte principal del programa instrucciones orientadas al manejo de bits, como las instrucciones BSF y BCF, con estas dos instrucciones podemos modificar el estado lgico de un puerto o pin del microcontrolador.

BSF, permite colocar un estado alto (5v) en el puerto del pic. BCF, permite colocar un estado bajo (0v) en el puerto del pic.

Si observaron bien el circuito de prueba del pic, el led esta conectado con una resistencia de 220 ohmios hacia positivo a travs de su nodo, y el ctodo esta conectado al puerto del pic, con esta configuracin el led se enciende cuando recibe un estado bajo desde el pic (0), osea cuando el programa ejecuta la instruccin BCF, y har la operacin contraria cuando el programa ejecute el comando BSF (5v).

LECTURA DE PUERTOS EN ENSAMBLADOR


Para leer un puerto en el lenguaje de programacin llamado ensamblador, bsicamente se pueden utilizar las siguientes 2 instrucciones

BTFSS : Con esta instruccin se verifica si un puerto configurado como entrada, se encuentra en estado alto, si es as entonces la instruccin realiza un salto dejando la instruccin siguiente a esta inoperante durante ese momento, por ejemplo si queremos leer un botn conectado al puerto A el cual esta conectado a tierra con una resistencia de PullUp (empuje) entonces al presionarlo existir un estado alto (5v) en ese pin del microcontrolador, la instruccin detecta este cambio y salta a realizar alguna rutina dentro del programa del microcontrolador Pic, veamos un ejemplo de implementacin con esta instruccin BTFSS.

Boton

btfss goto call

porta,0 boton rutina

BTFSC : Esta otra instruccin opera bsicamente igual a la anterior, pero esta detecta un estado bajo (0v) con el cual har un salto igual al explicado anteriormente, se debe tener en cuenta que en este caso

la resistencia de Pullup deber estar conectada a los 5v del circuito y que el botn proveer un estado bajo al ser presionado.

Boton

btfsc goto call

porta,0 boton rutina

PULLUP: Como mencionamos anteriormente el Puerto de entrada del microcontrolador pic debe estar conectado a travs de una resistencia hacia el positivo o negativo de la fuente de alimentacin con el fin de proveer un estado lgico predeterminado y que el microcontrolador este pendiente de un cambio en ese puerto. En el caso del pic 16f84a y otros mas del fabricante Microchip, existe en el puerto B unas resistencias internas en el chip que se pueden utilizar como pull up, este elemento se puede activar o desactivar desde un registro especial del pic llamado OPTION, el cual veremos mas adelante, por ahora dejamos las dos posibilidades de lectura de un puerto en lo que se refiere al circuito electrnico.

Pull Up hacia positivo,

Pull up hacia negativo,

El valor de la resistencia de pull up usualmente es de entre 2.2k a 10k, valores muy bajos de resistencia hace que se deba presionar con mas fuerza el boton , y valores altos de resistencia hacen que sea mas sensible el boton.