Micro Control Ad Or

download Micro Control Ad Or

of 41

Transcript of Micro Control Ad Or

Introduccin a los MicrocontroladoresQue es un microcontrolador?Los microcontroladores hicieron su aparicin a principio de los 80 y se trata de un circuito integrado programable que contiene toda la estructura (arquitectura) de una microcomputadora. Es decir que, dentro de un microcontrolador podemos encontrar: Una CPU (Unidad Central de Proceso) Memoria RAM Memoria ROM Memoria EEPROM (Memoria de lectura y escritura no voltil, es decir, que no se pierden los datos cuando el circuito es desconectado) Puertos de Entrada/Salida (Pines de E/S) Incluso en muchos modelos de microcontroladores incorporan distintos mdulos perifricos, como pueden ser; conversores analgico/digital (A/D), mdulos PWM (control por ancho de pulso), mdulos de comunicaciones seriales o en paralelo, y ms. Todo esto lo podemos encontrar dentro del mismo circuito integrado. Cada vez existen ms productos que incorporan microcontroladores con el fin de aumentar sustancialmente sus prestaciones, reducir su tamao y costo, mejorar su confiabilidad y disminuir el consumo de energa.

Los microcontroladores PICLos microcontroladores denominados PIC corresponden exclusivamente a la marca Microchip. PIC significa "Peripheral Interface Controller" y fue desarrollado por Microchip a principio de los 80. Existe una gran cantidad de modelos de microcontroladores cuyas caractersticas y prestaciones varan de un modelo a otro. De esta manera los desarrolladores pueden seleccionar el modelo que mejor se ajuste a sus necesidades.

Estructura de un microcontroladorBsicamente, un microcontrolador est compuesto por los siguientes componentes: Procesador o CPU (del ingls Central Prossesing Unit o Unidad Central de Proceso). Memoria para el programa tipo ROM. Memoria RAM para contener los datos. Lneas de E/S para comunicarse con el exterior. Diversos mdulos para el control de perifricos (temporizadores, Puertas Serie y Paralelo, CAD: Conversores Analgico/Digital, CDA: Conversores Digital/Analgico, etc.).

El procesador o CPU

Es el elemento ms importante del microcontrolador y determina sus principales caractersticas, tanto a nivel hardware como software. La CPU (Central Processing Unit o Unidad Central de Proceso) se encarga la decodificacin y ejecucin del programa. Actualmente, existen 3 tipos de arquitectura de procesadores: CISC (Computadores de Juego de Instrucciones Complejo): Disponen de ms de 80 instrucciones en su repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecucin. Una ventaja de los procesadores CISC es que ofrecen instrucciones complejas que actan como macros. RISC (Computadores de Juego de Instrucciones Reducido): En estos procesadores el repertorio de instrucciones es muy reducido y las instrucciones son simples y generalmente se ejecutan en un ciclo. La ventaja de estos es que la sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador. SISC (Computadores de Juego de Instrucciones Especfico): En los microcontroladores destinados a aplicaciones muy concretas, el juego de instrucciones, adems de ser reducido, es "especfico", o sea, las instrucciones se adaptan a las necesidades de la aplicacin prevista.

Memoria ROMLa memoria ROM es una memoria no voltil, es decir, que no se pierden los datos al desconectar el equipo y se destina a contener el programa de instrucciones que gobierna la aplicacin. Los microcontroladores disponen de capacidades de ROM comprendidas entre 512 bytes y 8 k bytes. Existen distintos tipos de memorias ROM, la cual determinar la aplicacin del microcontrolador. ROM con mscara: Es una memoria no voltil de slo lectura cuyo contenido se graba durante la fabricacin del chip. El elevado costo del diseo de la mscara slo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades. OTP: El microcontrolador contiene una memoria no voltil de slo lectura "programable una sola vez" por el usuario. OTP (One Time Programmable). Es el usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde una PC. La versin OTP es recomendable cuando es muy corto el ciclo de diseo del producto, o bien, en la construccin de prototipos y series muy pequeas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptacin mediante fusibles para proteger el cdigo contenido. EPROM: Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabacin se realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cpsulas son de material cermico y son ms caros que los microcontroladores con memoria OTP que estn hechos con material plstico. EEPROM: Se trata de memorias de slo lectura, las cuales se puede escribir y borrar elctricamente. EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programacin como el borrado, se realizan elctricamente desde el propio grabador y bajo el control programado de un PC. Es muy cmoda y rpida la operacin de grabado y la de borrado. No disponen de ventana de cristal en la superficie. Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan "grabadores en circuito" que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo. El nmero de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es recomendable una reprogramacin continua. Son muy idneos para la enseanza y la Ingeniera de diseo. Se va extendiendo en los fabricantes la tendencia de incluir una pequea zona de memoria EEPROM en los circuitos programables para guardar y modificar cmodamente una serie de parmetros que adecuan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta. FLASH: Se trata de una memoria no voltil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es ms pequea. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es ms rpida y de mayor densidad que la EEPROM. La alternativa FLASH est recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no voltil. Es ms veloz y tolera ms ciclos de escritura y borrado.

Memoria RAMLa memoria RAM es una memoria voltil, es decir, que se pierden los datos al desconectar el equipo, y se destina a guardar las variables y los datos. Los microcontroladores disponen de capacidades de RAM

comprendidas entre 20 y 512 bytes.

Registros y BitsUn registro es una posicin de memoria en la cual se puede almacenar un dato. Es decir que la memoria esta dividida en pequeas partes llamadas Registros. Dentro de la memoria, cada registro se identifica mediante un nmero, el cual se denomina Direccin de memoria y generalmente est expresado en formato Hexadecimal. El primer registro de una memoria corresponde a la direccin 00H. Dado que identificar a cada registro mediante un nmero hexadecimal puede resultar muy complejo a la hora de disear el programa, existe la posibilidad de asignar un nombre a una direccin de registro. En general, este nombre est directamente relacionado con la funcin que cada registro cumple dentro del sistema. Los registros no solo son utilizados por el programador (usuario) para almacenar los datos que la aplicacin debe procesar, sino que, adems, sirven para controlar todo el funcionamiento del microcontrolador en su conjunto. Esta funcin, la cumple un conjunto de registros que ya vienen Predefinidos desde la fbrica. Es decir, que el fabricante asigna las funciones de configuracin y control del microcontrolador en un grupo de registros y el usuario no puede modificar la funcin que cumple cada uno de stos. Cada Registro est dividido en 8 partes a los cuales se los denomina Bits. Entonces podemos decir que un Registro esta formado por un conjunto de 8 bits. El Bit es la menor unidad de informacin que un sistema digital puede procesar y solo puede contener los valores lgicos 0 y 1. La palabra BIT proviene de la contraccin de las palabras Binary Digit. Los sistemas digitales representan la informacin en forma de bits porque sus circuitos slo pueden tener 2 estados: encendido o apagado. En general podemos decir que: 1 = Encendido = Verdadero = SI = +5V 0 = Apagado = Falso = NO = 0V Cada Bit se identifica por la posicin que ocupa dentro del registro, siendo el primer Bit el nmero 0, que es el que se encuentra en el extremo derecho del registro.

Al igual que los registros, se puede asignar un nombre a cada Bit para facilitar su identificacin. En un registro se puede almacenar una combinacin 8 ceros y unos. Esto nos da una cantidad de 2^8 combinaciones, es decir, 256 posibles combinaciones de ceros y unos. Esto significa que un registro puede procesar valores entre 0 y 255. Esta caracterstica de procesar nmeros (Dgitos) es lo que da el nombre a la Electrnica Digital. La electrnica digital procesa nmeros formados por combinaciones de ceros y unos. Cualquier seal analgica debe ser digitalizada, es decir, convertida a nmeros, para poder ser procesada en un sistema digital.

Podemos decir que el conjunto de ceros y unos almacenados en un registro se trata de un nmero entre 0 y 255, expresado en sistema Binario, esto es, en base 2. Para interpretar dicho nmero debemos realizar el clculo de conversin de base para poder expresarlo en sistema decimal. El siguiente ejemplo muestra el desarrollo de un clculo de conversin de base de sistema binario (base 2) a sistema decimal (base 10):

Se llama Peso Binario al valor que representa un Bit segn la posicin que ocupa dentro del registro. El Bit que est ubicado ms hacia la derecha del registro, es el Bit menos significativo (LSB, Least Significant Bit) y tiene un peso de 2^0=1. El Bit del extremo izquierdo del registro es el Bit ms significativo (MSB, Most Significant Bit) y tiene un peso de 2^7=128. Los pesos binarios crecen de derecha a izquierda en potencias de 2.

Una manera de simplificar el clculo de conversin de binario a decimal, es, directamente sumar los valores de los pesos binarios de los bits cuyo valor sea 1.

El sistema hexadecimal es un sistema en base 16 y consta de 16 dgitos diferentes que son: del 0 al 9 y luego de la letra A a la F, es decir, 10 dgitos numricos y seis caracteres alfabticos. El sistema hexadecimal se usa como forma simplificada de representacin de nmeros binarios y debido a que 16 es una potencia de 2 (2^4=16), resulta muy sencilla la conversin de los nmeros del sistema binario al hexadecimal y viceversa. Mediante el sistema hexadecimal podemos representar un valor numrico de 8 bits utilizando slo 2 dgitos. De sta manera estamos dividiendo el registro de 8 bits en 2 partes de 4 bits cada una llamada Nibble. Al nibble correspondiente a los 4 bits menos significativos, se lo denomina Nibble Bajo y al nibble correspondiente a los 4 bits ms significativos se lo denomina Nibble Alto.

El sistema hexadecimal es utilizado para identificar las direcciones de registros de las memorias en

sistemas digitales porque permite representar el valor de un Nibble con slo 1 digito, ya que:

Esto permite representar nmeros grandes utilizando unos pocos dgitos. Por ejemplo:

En la programacin de microcontroladores, es habitual utilizar los 3 sistemas de numeracin (Binario, Decimal y Hexadecimal) dependiendo del proceso que necesitemos realizar. Por eso es fundamental tener claros estos conceptos.

Mdulos Temporizadores Internos (TMRs)Un temporizador interno (TMR) es un mdulo de hardware incluido en el mismo microcontrolador el cual est especialmente diseado para incrementar automticamente el valor de un registro asociado al TMR cada vez que el mdulo TMR recibe un pulso. A este pulso se lo llama seal de reloj.

El mdulo TMR siempre incrementa el valor del registro asociado, nunca decrementa dicho valor.Algunos microcontroladores pueden incluir ms de un mdulo TMR y la seal de reloj de cada uno de stos puede ser de origen interno o externo. Si el origen de la seal de reloj est configurado como externo, el mdulo temporizador puede ser utilizado como un contador de eventos externos, incrementando el TMR con cada pulso recibido mediante el pin correspondiente. Si el origen de la seal de reloj es interno, el TMR incrementa con cada ciclo del oscilador. Esto permite utilizar el temporizador como contador de ciclos de programa, donde, un ciclo corresponde al tiempo de ejecucin de una instruccin, lo cual se puede calcular con la siguiente frmula: ( 1 / ( Frec. Osc. / 4) ) Donde Frec. Osc. es la frecuencia del oscilador utilizado. Dado que la velocidad de ejecucin del microcontrolador corresponde a de la velocidad del cristal utilizado, cada ciclo de programa se ejecuta en un tiempo determinado segn el cristal que estemos utilizando. Por ejemplo; con un cristal de 4Mhz la velocidad real de procesamiento del microcontrolador es de 1Mhz. Aplicando la siguiente frmula: 1 / (4.000.000 / 4) 1 / 1.000.000 0.000001 = 1 uS (microsegundo) Esto significa que cada ciclo de programa se ejecuta a 1/1.000.000 (1 uS) y dado que cada incremento del TMR corresponde a un ciclo de programa, si contamos los incrementos de un TMR, indirectamente podremos calcular el tiempo transcurrido. El incremento del TMR se realiza de manera automtica y de forma paralela a la ejecucin del resto del programa. Esto significa que el programa no debe controlar el incremento del TMR, lo cual s debe realizarse en las temporizaciones por bucles, en las cuales el microcontrolador se queda esperando a que transcurra un tiempo, y no pueden ejecutarse otras tareas mientras no finalice la temporizacin. Entonces el TMR puede ser utilizado como temporizador mientras el microcontrolador ejecuta otros procesos. Por ejemplo: si diseamos un programa que encienda y apague un led cada 1 segundo, el microcontrolador enciende el led y luego puede ocuparse de esperar a que transcurran los ciclos correspondientes a 1 segundo, luego apaga el led y continua esperando. Pero si el microcontrolador debe realizar alguna otra tarea adems de temporizar, por ejemplo, mostrar

valores en dgitos de 7 segmentos, el micro no puede quedarse temporizando por bucles ya que mientras se encuentre temporizando no podr realizar el proceso de muestreo de los datos en los displays, y como resultado tendremos que los displays se apagan mientras el microcontrolador se encuentra temporizando. En este caso, se utiliza un TMR para realizar la temporizacin mientras el microcontrolador se ocupa de mostrar los datos en los displays. En general los microcontroladores cuentan con una interrupcin por desbordamiento del TRM, es decir que, el microcontrolador se interrumpe cuando el TMR0 pasa de 255 (B11111111) a 0 (B00000000) en los temporizadores de 8 bits y cuando pasa de 65535 (B11111111_111111) a 0 (B00000000_00000000) en los temporizadores de 16 bits. Dado que 256 uS es un tiempo relativamente corto (para un TMR de 8 bits a 4 Mhz.), existe la posibilidad de preescalar el TMR0 para que el registro asociado al TMR se incremente cada 2, 4, 8, o ms ciclos. De esta manera, estamos multiplicando la cantidad de ciclos que deben ejecutarse para realizar un incremento del TMR. Al prescalador tambin se lo denomina predivisor. Por ejemplo, con un predivisor de 8, cada incremento del TMR se realiza cada 8 ciclos de programa y el desbordamiento del TMR se realizara cada 2048 ciclos (255 incrementos * 8 ciclos). As podemos realizar interrupciones con periodos de tiempo mayores.

Herramientas de DiseoEn la elaboracin de proyectos electrnicos con microcontroladores PIC, resulta muy importante considerar una serie de herramientas, las cuales vamos a describir a continuacin: Software: para la programacin en Lenguaje Basic, contamos con una gran variedad de posibilidades en el mercado, y entre las cuales hemos elegido el Protn con compilador Basic.

VirtualBreadboard simulador de micro y perifricos. ICPROG programador del microcontrolador. Con estas herramientas estaremos realizando la programacin en cada uno de los proyectos . Plaqueta de entrenamiento : es una herramienta indispensable con la cual podemos grabar el cdigo generado por el compilador Basic para poner en funcionamiento cada uno de los proyectos propuestos. La placa est adaptada para programar el microcontrolador inserto en ella.

Placa de leds

Placa de llaves

Placa de pulsadores

Placa de reles

Placa de displays

Placa de Motores Paso a Paso Proporcionan al alumno conexiones sin soldaduras, con lo cual se hace ms prctico el desarrollo de los proyectos electrnicos propuestos. Multmetro digital: este instrumento de medicin ser muy til durante la elaboracin de los circuitos propuestos.

Fuente de Alimentacion regulada con salida de voltaje variable.

Programacin de Microcontroladores 16F877A con placa de MECATRNICAArchivos necesarios para realizar todo el trabajo:

PROGRAMA PROTNProtonIDE2.0.0.7 installer_Compiler3.5.0.6_Full.rarProton Compiler Setup para Windows XP - Versin 3.5.0.6 (solo es el SETUP):

http://www.compile-it.com/pdsbeta/PDS/Proton%20Compiler%20Setup%203.5.0.6%20%20XP.exeWindows 7 compiler Setup (solo es el SETUP):

http://www.compile-it.com/pdsbeta/PDS/Proton%20Compiler%20Setup%203.5.0.6%20%20Win7.exeMicrochip MPLABtm IDE:

http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_IDE_v8_56.zip MPLAB User GuideUsted debe realizar: Descargue e instale MPLAB IDE con HI-TECH incluido (se le solicita confirmacin durante la instalacin). Descargue ProtonIDE v2.0.0.7 installer _ Compiler V3.5.0.6 con los archivos Parche. Instale el IDE y reemplace ProtonIDE.exe original con la versin provista en la carpeta ProtonIDE y prplus.exe original con la versin provista en la carpeta llamada PDS. Abra el IDE, ir al men View y click en compile and program options Click en Find Manually y seleccione la carpeta del compilador llamada PDS Ahora est el compilador con su editor funcionando.

VirtualBreadboard(recordar que es un ejecutable)Sistemas operativos compatibles. VBB3 es una aplicacin para Windows desarrollada con Visual Studio 2005 y debe funcionar bien en una PC corriendo Windows XP moderno y Vista o Windows 7. Instrucciones de instalacin La aplicacin utiliza VirtualBreadboard Xenocode para entregar un EXE independiente nica que slo tiene que descargarlo y pegarlo en su escritorio o lugar preferido. Sin embargo, VirtualBreadboard tiene las siguientes dependencias que necesitan ser instalados en su equipo. Estos deben de ser instalados en su ordenador y slo es necesario instalar la primera vez que instale VBB. Descargar e instalar primero: DirectX - Click here para descarga desde Microsoft (si ya tiene una versin superior no se instalar). .Net 2.0 Redistributable. Click here para descarga desde Microsoft (si ya tiene una versin superior no se instalar). J# 2.0 Redistributable. Click here para descarga desde Microsoft

DESCARGA virtualbreadboard.exe

ICPROGIC-Prog Software 1.06B Multi-Lingual IC-Prog NT/2000 driver Helpfile in Spanish languageDescargar todo, cree una carpeta en C:\icprog\ y copie todos los archivos all. El icprog.exe, icprog.sys y el de la ayuda con extensin .chm. EL driver icprog.sys es para tener un buen funcionamiento bajo los Sistemas Operativo Windows NT/2000/XP y superiores. El Win98 no lo requiere. Cree un acceso directo al escritorio del archivo icprog.exe. Ejectelo desde ah y proceda:

Al ejecutar el ICProg por primera vez nos aparecer una ventana que dice: This is the first time you start ICProg. Please configure your hardware first! o lo que es lo mismo, Esta es la primera vez que se inicia ICProg. Por favor, configure su hardware primero!

Al pulsar OK aparecer otra ventana llamada Hardware settings donde pondremos usar el JDM Programmer (viene por defecto). En Ports vamos a usar el puerto Com1 el que corresponda a nuestra mquina. Una vez elegido el tipo de programador como JDM y seleccionado el puerto serie adecuado, es importante no olvidarse de elegir el tipo de interfaz como WINDOWS API (para Windows NT, 2000 XP), y en cuanto al tiempo de retardo, si hubiese problemas se pueden probar tiempos ms largos. En ordenadores rpidos quizs se puedan poner tiempos de retardo ms pequeos, lo que nos dara una velocidad de grabacin ms rpida.

Debemos poner el tilde en WINDOWS API (como lo indica la flecha en rojo) y se desmarca Direct I/O (en caso de usar Windows 95, 98 ME) en forma automtica. En I/O delay deslizamos a 1 3 (hacia la izq. en la figura). Todo lo dems dejamos como est. Pulsamos OK. Saldr una ventana que dice: Privileged instruction o lo que es lo mismo Instruccin privilegiada. Pulse Aceptar.

Enseguida veremos otra ventana en la cual no nos queda ms remedio que pulsar Aceptar.

Arriba, en la barra de herramientas pulse Setting --> Options.

Aparece la ventana Options donde debemos seleccionar la pestaa Languaje para seleccionar nuestra lengua o idioma preferido o el mejor que entendamos. En nuestro caso elegimos Spanish o espaol y pulsamos OK.

Puede reiniciarse como no el programa, si solicita reinicio, aceptar. En la barra de herramientas arriba, ya todo en espaol, pulsa Ajustes>Opciones donde aparecer la ventana Opciones. Pulsa la pestaa Miscelnea. Un vez dentro de la pestaa Miscelnea, activa la casilla Habilitar Driver NT/2000/XP. Colocar tilde donde indica la flecha.

Inmediatamente aparecer una ventana Confirm. Pulsar Yes para actualizar el Driver, mientras debe reiniciarse el IC-Prog.

Una vez finalizado, por fin ya no tendremos problemas con el ICProg.

Vista de la ventana por primera vez.

Pulsar Ajustes>Dispositivo>MicrochipPIC>Mas>Mas>PIC16F877A y con ello ya hemos seleccionado este microcontrolador.

La extensin .hex (formato Intel hexadecimal de 8 bits). Cargamos cualquier archivo .hex pulsando Archivo>Abrir archivo o pulsando Control + O o simplemente el icono de la carpeta amarilla que muestra en la imagen.

Se abre la ventana Abrir y elegimos cualquier archivo .hex que deseemos. Cuando finalice pulsa el botn Abrir.

Se observar la siguiente imagen si fue correcta la operacin. En este ejemplo se seleccion un PIC 16F84A, usted tendr alguna variante al seleccionar otro micro. Lo importante es verificar que se carg el

cdigo a grabar.

Lneas de programa ya cargados Lneas vacas

En esta ventana tambin podemos seleccionar cualquier dispositivo pulsando la flecha de abajo, sean de la marca que sea y modelo. En Configuracin puedes ver las configuraciones en del dispositivo. > Muestran el estado del Wacht dog (WDT), el Power on Reset, (PWRT) y la proteccin de cdigo (CP). > Podemos ver el ID si lo tuviera, el Checksum (chequeo que se genera de todo el fichero de datos) y la palabra de configuracin en un caso 3FF1h 3FEEh. Se muestra adems informacin del tipo de oscilador usado por el microcontrolador en cuestin (RC, XT, HS).

16F84A

16F8XXX

Nosotros debemos dejar TODOS los casilleros VACIOS y el CP OFF para el 16F877A.

Teniendo los datos cargados, el grabador conectado al PC ya podemos programar el PIC que hayamos seleccionado. Hay 3 mtodos de dar la orden a programar el PIC. Pulsando el icono,

pulsando Comando>Programar todo directamente pulsando desde el teclado F5. Muestra una ventana de confirmacin en el cual debemos aceptar para la grabacin del PIC.

Se muestra el proceso de grabacin, verificacin y si ha tenido xito o no.

Si todo ha ido bien, te aparecer el mensaje de xito en la grabacin o la confirmacin de verificacin.

ICProg tiene errores y el ms famoso es el tpico que al verificar aparece un mensaje en la primera posicin

de la memoria 0000h. En la imagen siguiente te resultar conocido el error ms famoso del ICProg desde hace ya aos.

Este error se puede producir por varias causas y entre ellas es la comunicacin con el PC y el grabador. Mala conexin del cable del puerto serie, mala colocacin del PIC en su zcalo, mal configurado el puerto serie con el que comunicamos el PIC y el PC e incluso el PIC puede ser defectuoso. Al grabar el PIC, no debemos tener el CP o cdigo de proteccin activado porque al verificar intentar comprobar los datos guardados y aparece error tpico porque no los puede leer desde el 0000h.

Fijarse bien y comprobar que el CP no lo tenemos activado. Comprobar que el PIC est bien introducido en el zcalo. > Comprobar que el cable del puerto serie estn bien conectado tanto en el ordenador y el grabador. > Asegurarse que hemos elegido el puerto COM adecuado y el JDM Programmer. > Comprobar que estamos usando el PIC correcto y no otro dispositivo. Desactiva la casilla Verificar tras programacin. > As no verificar y te dar el famoso error 0000h cuando tengas el CP activado. Si lo hubieras hecho en forma involuntaria.

Si leemos el PIC pulsando Leer

con cdigo protegido CP, slo obtendremos lectura de ceros.

Uno de los xitos del ICProg, a parte de grabar muchos dispositivos, es que es compatible con muchos grabadores diferentes con puerto paralelo, puerto serie y USB. GRABADORES EN IC-PROG JDM Programmer Conquest Programmer TAFE Programmer TAIT Serial Programmer Fun-Card Programmer TAIT Parallel Programmer ProPic2 Programmer SCHAER Programmer STK200 Programmer AN589 Programmer WILLEPRO Programmer Fluffy Programmer DL2TM Programmer EL Cheapo Programmer ER1400 Programmer En la ventana principal podemos ver las funciones principales, iconos de los comandos directamente para grabar, leer, verificar, etc, de los dispositivos.

Otro tema a tener en cuenta es la configuracin de nuestro puerto serie. Debe quedar como lo muestra la imagen.

Accedemos a l desde Panel de Control \ Sistema \ Administrador de Dispositivos \ Puertos propiedades. La imagen de abajo nos muestra el detalle de pines de un DB9.

Conector DB9 HEMBRA

Este es el detalle de conexiones dentro de la carcaza del DB9 hembra para lograr el cable de descarga/grabacin.

PROGRAMACION DE LOS MICROSLos distintos modelos de microcontroladores se agrupan por familia. Una familia puede estar formada por un conjunto de modelos cuyas caractersticas y prestaciones son bastante similares. Cuando compramos un microcontrolador, la memoria del mismo se encuentra vaca y para que funcione es necesario que sea programado, es decir que, el desarrollador debe escribir un programa que contenga todos los procesos que el microcontrolador debe ejecutar. Este programa optimo se escribe en un lenguaje llamado Assembler (ensamblador) cuya principal

caracterstica es su alta complejidad ya que se trata de un lenguaje de bajo nivel, es decir, que se encuentra ms cercano al lenguaje de la mquina que del lenguaje humano. Por esto, slo los tcnicos altamente capacitados estn en condiciones de realizar desarrollos electrnicos que incluyan microcontroladores. Incluso a estos especialistas les implica un gran esfuerzo intelectual y mucho tiempo de desarrollo. En la actualidad existen otras variantes en lenguajes de programacin, los cuales se encuentran en la categora de medio a alto nivel. Como mencionamos anteriormente, el microcontrolador tiene una memoria de programa, donde grabamos las instrucciones necesarias para que el micro realice el trabajo que necesitamos. Cuando compramos un microcontrolador, la memoria de programa viene vaca. Para que un microcontrolador funcione es necesario programarlo. Los lenguajes de programacin se clasifican segn el Nivel de programacin en: Lenguaje de Alto Nivel: permite que los algoritmos se expresen en un nivel y estilo de escritura fcilmente legible y comprensible por el hombre.

Lenguaje de Bajo Nivel: el usuario se acerca un poco ms al lenguaje de maquina. Permiten un acceso ms amplio al control fsico de la maquina (hardware). Lenguaje Ensamblador: Podramos considerarlo el lenguaje de ms bajo nivel. El usuario escribe cdigo en el mismo idioma del procesador. Se tiene control total del sistema. Es necesario un conocimiento de la arquitectura mecnica del procesador para realizar una programacin efectiva. El lenguaje de programacin es muy especifico para cada modelo de procesador, incluso puede variar de un modelo a otro de procesador dentro de un mismo fabricante. En la figura siguiente se observa la diferencia en complejidad de lneas de programa respecto al anterior para efectuar la misma rutina.

Podemos decir que los lenguajes de alto Nivel se asemejan ms al lenguaje humano y que los lenguajes de bajo Nivel se asemejan ms al lenguaje de mquina y en el lenguaje ensamblador el usuario debe programar en el propio idioma del procesador.

El microcontrolador slo entiende de nmeros, es decir que, el cdigo Assembler (texto) no puede ser procesado directamente por el microcontrolador. Para poder grabar el programa en el micro, primero debemos convertir el texto del cdigo Assembler a nmeros, en general, en formato hexadecimal. A este proceso se le llama Compilacin. Una vez desarrollado el cdigo Assembler , el mismo debe ser compilado. Esto se realiza con un software compilador el cual se puede obtener de manera gratuita desde la pgina Web del fabricante del microcontrolador.

El archivo compilado tiene una extensin .hexPor ltimo, despus de compilado, el programa est listo para ser grabado al microcontrolador. Esto realiza mediante una placa programadora. A sta placa programadora, comnmente se la llama programador. Existen distintos tipos de programadores los cuales pueden ser para conectar a la PC mediante el puerto Serie (COM) o Paralelo (LPT), USB. Cada programador trabaja en conjunto con un software, mediante el cual se realiza el proceso de lectura y escritura de los microcontroladores. A continuacin se presenta un resumen del proceso de desarrollo del cdigo y grabacin de un microcontrolador: 1) Escribir el cdigo fuente. Se genera un archivo con extensin ASM. 2) Compilar el cdigo Assembler. Se genera un archivo con extensin HEX. 3) Grabar (transferir) el programa desde la PC al microcontrolador mediante un programador. De estos 3 pasos, el primero insume el 98 % de tiempo y esfuerzo.

Utilizando un microcontroladorIntroduccin:La tarea ms. bsica que podemos hacer con un microprocesador es sustituir a un circuito combinacioual o secuencia!. Podemos encender una luz para cierta combinacin de entradas, conectar un bomba cuando el nivel de un depsito sea menor de cierto umbral y pararla cuando supere otro umbral, activar una alarma cuando se active algn sensor y la alarma est armada, etc. Para poder hacer estas cosas, el microprocesador necesitar tener entradas y salidas digitales, igual que las de cualquier puerta lgica. El microprocesador PIC16F877 tiene 33 patillas que pueden ser. a voluntad nuestra, entradas o salidas, de forma que podemos hacer, por ejemplo. 10 funciones con 15 entradas. De todos modos, el tiempo de respuesta de esas funciones es mucho mayor que el de las funciones realizadas con puertas lgicas, aunque en la mayora de los casos ese tiempo no es demasiado importante; que la alarma suene 1 niilisegundo despus de abrir la puerta no parece grave. Ahora bien, estas entradas y salida i digitales tienen niveles TTL, por lo que su tensin de entrada y salida tendr que estar comprendida entre O y 5. Necesitaremos unos circuitos que harn de interface entre estos niveles TTL y los niveles con los que estemos trabajando. 220 VAC. 24 VDC o cualquier otra tensin.

Alimentacin

El microcontrolador es un dispositivo electrnico activo, por lo tanto debemos aplicarle un voltaje de alimentacin para que funcione. Como vemos en el diagrama el pinout del micro tenemos pines indicados como VSS (-) y VDD (+) que son los pines de alimetacion.

La mayora de microcontroladores debe operar con la tensin lgica estndar de 5V. Algunos microcontroladores puede operar a valores tan bajos como 2,7 V y algunos tolerarn 6 V sin ningn problema. Se debe comprobar los datos de los fabricantes sobre los lmites permitidos de la tensin de alimentacin. Un circuito regulador de voltaje se utiliza generalmente para obtener la tensin de alimentacin necesaria cuando el dispositivo debe ser operado de un adaptador de corriente o bateras. Por ejemplo, un regulador de 5 V se requiere si el microcontrolador va a ser operado con 5 V con una batera de 9 V.

>9 VoltsVDD

PICVSS

ResetUna entrada de reset se utiliza para restablecer un microcontrolador. Restablecimiento pone el microcontrolador en un estado conocido de tal manera que la ejecucin del programa comienza en la direccin 0 de la memoria del programa. Una accin reset externo se consigue normalmente mediante la conexin de un interruptor situado a la entrada de reset de tal manera que el microcontrolador se puede restablecer cuando el interruptor est presionado.

Oscilador Externo:Es necesario para que nuestro PIC pueda funcionar, puede ser conectado de cuatro maneras diferentes. En la siguiente tabla encontraras los diagramas necesarios para su conexin y una breve descripcin de cada uno. Cristales. Oscilador compuesto por un cristal y dos condensadores.

OSCILADOR RC :Esto es para aplicaciones que no necesiten precisin. RC oscilador.

En algunos microcontroladores PIC (por ejemplo, PIC12C672 y PIC16F628) se han incorporado en los circuitos el oscilador y no se requiere ningn componente de temporizador externo. El oscilador incorporado normalmente est configurado para operar de 4 MHz y se selecciona durante la programacin del dispositivo.

Lneas de Entrada/Salida (E/S), (Puertos)ENTRADAS PROCESO SALIDAS

LDR PARLANTE

TERMISTOR

LLAVE

LAMPARA

MICROSWITCH

LED

BUZZER STRAIN GAUGE

MOTOR CC POTENCIOMETRO MOTOR PAP

SOLENOIDE

Los microcontroladores cuentan con una serie de pines destinados a entrada y salida de datos o seales digitales. A estos pines se les denomina Puerto. Como mencionamos anteriormente, todo el funcionamiento del microcontrolador est controlado a travs de los registros. Los puertos no son la excepcin, tambin estn controlados por los registros. Por esto, un puerto no puede estar formado por ms de 8 pines; 1 Pin por cada Bit de un registro. Un puerto si puede estar formado por menos de 8 pines. Un microcontrolador puede contener varios puertos dependiendo del modelo. Entradas/salidas digitales eii el PIC16F8XX Vamos a ver los puertos de que dispone este microcontrolador. PORTA PORTB PORTC PORTD PORTE 6 pines que pueden ser de entradas y salidas. RA0 a RA5 8 pines RB0 a RB7 8 pines RC0 a RC7 8 pines RD0 a RD7 3 pines RE0 a RE2

En resumen tenemos 33 pines de entrada y salida. Cada una de ellas puede ser entrada o salida independientemente de las otras, aunque algunas tienen alguna peculiaridad. La principal precaucin que hay que tener a la hora de usar estos pines es que RA4 como salida, es en colector abierto. Adems de los puertos I/O digitales, ei microprocesador dispone de entradas analgicas, puertos de comunicacin serie, contadores. ... los cuales utilizan algunas de las 33 patillas que tienen doble o triple

funcin. Por ejemplo, el pin RA0 puede pasar a ser una entrada analgica pasndose a llamar AN0 . En el esquema de los pines del micro podemos ver las dos o tres funciones de cada una. A cada puerto se lo identifica con una letra. Por ejemplo; Puerto A, Puerto B, etc. Para poder utilizar un puerto, primero el mismo debe ser configurado. Cada pin de un puerto puede ser configurado como entrada o salida independientemente del resto de los pines del mismo puerto. Los puertos en un microcontrolador PIC son bidireccionales. As, cada pin de un puerto se puede utilizar como entrada o un pin de salida. El registro de control de direccin de puerto configura los pines del puerto como entradas o salidas. Este registro se denomina registro TRIS y cada puerto tiene un registro TRIS con su nombre escrito a continuacin. Por ejemplo, TRISA es el registro de control de direccin de los PORTA. Del mismo modo, es el TRISB de PORTB y as sucesivamente. El establecimiento de un bit en el registro TRIS hace en el puerto correspondiente de entrada a un pin. Eliminacin de un bit en el registro TRIS hace en el puerto correspondiente al pin una salida. Por ejemplo, para hacer que los bits 0 y 1 de entrada y la salida otros bits, en PORTB tenemos que cargar el registro TRISB con el patrn de bits: TRISB = %00000011 TRISB = 0 TRISB = 1

NOTA: si se decide utilizar algn pin del puerto A en algunos micros stos son anlogos y se podra observar un comportamiento errtico. Para solucionar esto agregar al principio del programa la lnea cmcon=7, esto desactiva comparadores y los convierte en digitales. ADCON1=7 para los que posean conversores A/D. Otro inconveniente en algunos micros es el puerto A.5, que suele ser de solo entrada. Si el puerto A.4 es de colector abierto necesita conectarse a 5V como ilustra la figura siguiente. SIEMPRE consultar la hoja de datos del microcontrolador a utilizar para despejar dudas sobre configuraciones e inconvenientes al conexionado.

NOTA: los puertos drenan un total de 200mA cada uno, es decir 25 mA cada pin. En modo salida pueden soportar cada uno de sus puertos 200mA, es decir 25 mA cada pin.

Drenando 25 mA MX

Conversor de analgico a digitalUn conversor analgico-digital (A / D) se utiliza para convertir una seal analgica, como el voltaje a un formato digital para que pueda ser leda por un microcontrolador. Algunos microcontroladores tienen incorporado los conversores A / D. Tambin es posible conectar un conversor A / D para cualquier tipo de microcontrolador. Conversores A / D son por lo general 8-bits, con 256 niveles de cuantificacin. Algunos microcontroladores tienen incorporados de 10-bits los conversores A / D con 1024 niveles de cuantificacin. Conversores A / D suelen generar interrupciones cuando la conversin se completa, de modo que el programa de usuario puede leer los datos convertidos rpidamente. Conversores A / D son muy tiles en aplicaciones de control y vigilancia ya que la mayora de sensores (por ejemplo, sensor de temperatura, sensor de presin, sensor de fuerza, etc) producen tensiones de salida analgica.

Comunicacin.Comunicacin serie (tambin llamado comunicacin RS232) permite a un microcontrolador que se conecta a otro microcontrolador o un PC mediante un cable serie. Algunos microcontroladores han incorporado en el hardware denominado USART (Universal Synchronous-Asynchronous receptor-transmisor) para implementar una interfaz de comunicacin serie. La velocidad de transmisin y el formato de datos por lo general pueden ser seleccionados por el programa de usuario. Si alguna serie de E / S de hardware no se proporciona, es fcil desarrollar software para implementar la comunicacin de datos en serie usando cualquier pin I / O del microcontrolador. Algunos microcontroladores incorporan SPI (Serial Peripheral Interface) o I2C (Integrated Inter Connect) interfaces de buses de hardware. Estas permiten a un microcontrolador interactuar con otros dispositivos compatibles con facilidad.

Comparador analgicoComparadores analgicos se utilizan cuando se requiere comparar dos voltajes analgicos. Estos circuitos se aplican en la mayora de los microcontroladores PIC de gama alta, no son comunes en otros microcontroladores.

Algunas configuraciones para observar.Estado Lgico de un pin I/O: Una manera muy sencilla de ver el estado lgico de un pin configurado como salida en cualquiera de los puertos de microcontrolador es a travs del uso de LEDs, como se observa en los circuitos. En el primer circuito, el LED se iluminar solo cuando el estado lgico del pin de salida del puerto sea igual a 1, es decir, 5 voltios.

En el segundo circuito, el LED se iluminar solo cuando el estado lgico de la salida del puerto sea igual a 0, es decir, 0 voltios.

Calculo de la resistenciaVoltaje de salida del PIC, si es alimentado con 5V = 5V Corriente que requerira un led para su encendido normal= 15mA Que resistor es necesario? V=RxI R=V/I R = 5V / 0,015 A

R = 333,33 ohm >> 330 ohm

Lectura de un estado lgico en un pin I/OEl microcontrolador tambin nos permite capturar datos o seales externas para luego ser procesadas y convertidas en respuestas que pueden definir una accin especfica en nuestros circuitos de prueba. Un ejemplo comn podra ser el uso de un pulsador para hacer destellar un led cada vez que ste sea presionado. Si deseamos introducir un nivel lgico bajo (0V), o alto (5V), a una de las entradas de un microcontrolador a travs de un pulsador, podramos considerar los siguientes circuitos , los cuales nos proporcionan dos formas diferentes de hacerlo:

El primer circuito en la figura mantiene un nivel lgico alto (5V) mientras el interruptor o el pulsador permanece abierto. Al presionar el pulsador o cambiar el interruptor , el nivel lgico en el pin I/O del puerto pasa a ser bajo (0V).

El segundo circuito de la figura mantiene un nivel lgico bajo (0V) mientras el interruptor o el pulsador permanece abierto. Al presionar el pulsador o cambiar el interruptor, el nivel lgico en el pin I/O del puerto pasa a ser alto (5V).

El Opto-acoplador:

El opto-acoplador es un componente muy til cuando se requiere acoplar circuitos electrnicos digitales con etapas de manejo de potencia o con otros circuitos. Este componente en una de sus versiones, se compone bsicamente de un diodo LED el cual se encarga de iluminar un fototransistor, para que ste conduzca corriente a travs del colector.

En la configuracin de la figura, cuando en el pin I/O (J1) aplicamos un 1 lgico (5V), el LED del optoacoplador enciende y el fototransistor conduce la corriente a tierra; por lo tanto, en la salida tendremos un 0 lgico (0V). Si apagamos el LED, el transistor no conduce, de tal manera que en la salida tendremos un 1 lgico (5V). Una configuracin muy comn para el control de dispositivos de potencia como motores elctricos, luces incandescentes, electrovlvulas, etc., El circuito siguiente se basa en la configuracin y que se ha incluido un rel a travs del cual circular la corriente necesaria entre sus contactos, para hacer funcionar cualquiera de estos dispositivos de potencia.

.

Otros circuitos usados con microcontrolador

Entrada desde otro IC,el transistor acta como switch inversor

Entrada analgica desde un potencimetro

5VENTRADA ANALOGICA

0VMotor paso a paso

CONFIGURACION BASICA DE UN MICRO

Estructura de un programa.Componentes y operadores en PROTON Estructura de un programa: Para que nuestros programas tengan una apariencia ordenada y se facilite la Comprensin del mismo ante otros programadores que deseen realizar mejoras a ste, es necesario

establecer una estructura que nos permita identificar fcilmente cada una de las partes que lo componen.

A D B CSe puede observar la estructura bsica de un programa hecho en PROTON, y en la cual hemos identificado cuatro secciones que son importantes para lograr un programa bien estructurado. Seccin A: Corresponde al encabezado del programa, en el cual se debe considerar informacin bsica del mismo, como el nombre, la identificacin de autor, Copyright, fecha de elaboracin o fecha de los ltimos cambios realizados, versin del programa que se est realizando, e incluso una breve descripcin acerca del objetivo del programa y su aplicacin en un determinado circuito electrnico. Es importante resaltar que cada lnea del encabezado debe empezar con una comilla simple, en forma de comentario. Seccin B: Esta seccin empieza en la columna cero del editor de texto de PROTON, y en ella se pueden declarar las definiciones (concepto que estudiaremos mas adelante) y las etiquetas de cada una de las subrutinas que sern programadas. Las etiquetas identifican puntos especficos o subrutinas dentro de un programa. Son definidas por el programador y deben tener al final de cada una de ellas el smbolo de dos puntos, que definen el final de la misma. Seccin C: Estar destinada para las instrucciones de programa y la misma est separada de la columna cero del editor de texto por una tabulacin, es decir, cuando el cursor se encuentra en la columna cero, presionamos una vez la tecla TAB, y de esta manera establecemos un espacio mnimo, siempre igual o superior entre la seccin B y C. Seccin D: Esta destinada para realizar comentarios acerca de la funcin que estar cumpliendo una instruccin especfica en nuestro programa. Cada comentario debe empezar siempre con un apostrofe simple como se muestra a continuacin: Hacer PORTD (LEDs) todas salidas Cuando un comentario es demasiado extenso, podemos continuar el mismo en la siguiente lnea, siempre que la frase comience con su respectivo apostrofe.

Los comentarios ayudan al diseador a identificar cada lnea de programa o cada una de las funciones de cada subrutina, garantizando as una buena documentacin en cada uno de los programas que realizamos.

Subrutinas: Una subrutina se presenta como un algoritmo separado del algoritmo principal, y estar destinado a resolver una tarea especfica. Las subrutinas pueden ser referidas cada vez que sea necesario, llamando a la etiqueta que corresponde a sta, la cual debe ir siempre al inicio de la misma.

REGISTROSEl siguiente paso importante para tener claro como debemos empezar a programar es conocer la tabla de registros. Esta tabla est dividida en dos partes llamadas BANCOS. Nos debemos interesar momentneamente en: PORTA, PORTB, PORTC, PORTD , PORTE, TRISA, TRISB, TRISC, TRIS D y TRISE. Para que nuestro PIC pueda trabajar debemos configurar sus puertos como entrada o como salida segn sea el caso, si le asignamos un CERO(0) a un pin ste ser SALIDA y si asignamos un UNO (1) ste ser ENTRADA.

Esta asignacin de pines se hace programando los registros TRIS.

TRIS es el registro donde se almacenan los bits que asignan un pin como entrada o salida del/los PUERTOS .

Ejemplo: para el puerto A (PORTA) .

Recordemos que el puerto A slo tiene 5 pines, por lo tanto un ejemplo de esto sera:

Si TRISA (puerto A) es igual a 30 (11110) entonces esto se leera,

TRISA RA0 RA1 RA2 RA3 RA4

ASIGNACIN 0 1 1 1 1

ESTADO SALIDA ENTRADA ENTRADA ENTRADA ENTRADA

El bit menos significativo se asigna desde RA0. En BASIC este paso se realiza de la siguiente manera: TRISA = %11110 (% para expresar la configuracin en Binario), :

TRISA = $1E ($ para expresar la configuracin en Hexadecimal) .

TRISB, es un registro de 8 bits en el cual se configuran los pines del puerto B. Si TRISB (puerto B) es igual a 32 (00110010), entonces esto se leera,

0 RB7

0 RB6

1 RB5

1 RB4

0 RB3

0 RB2

1 RB1

0 RB0

TRISA RA0 RA1 RA2 RA3 RA4 RA5 RA6 RA7

ASIGNACIN 0 1 0 0 1 1 0 0

ESTADO SALIDA ENTRADA SALIDA SALIDA ENTRADA ENTRADA SALIDA SALIDA

El bit menos significativo se asigna desde RB0. En BASIC este paso se realiza de la siguiente manera: TRISB= %00110010 (% para expresar la configuracin en Binario), :

TRISB = $32 ($ para expresar la configuracin en Hexadecimal).

Variables Las variables son temporales donde se almacenan los datos en un programa . Ellos son creados usando la palabra clave DIM. Dado que el espacio de memoria RAM en PICmicros es algo limitado en cuanto a tamao, elegir el tamao variable para una tarea especfica es importante. Las variables pueden ser bits, bytes o palabras. El espacio para cada variable es asignado automticamente a la micro del controlador de memoria RAM. El formato para la creacin de una variable es la siguiente:

DIM etiqueta as tamao

Etiqueta es cualquier identificador, (con exclusin de palabras clave). El tamao es BIT, BYTE o WORD. Algunos ejemplos de la creacin de variables son los siguientes: DIM Contador as BIT DIM Reloj as BYTE DIM Demora as WORD 'Crear una nica variable de bits (0 -1). `Crear una variable de 8 bits (0 - 255). 'Crear una variable de 16 bits (0 - 65.535).

El nmero de variables disponibles depende de la cantidad de RAM en un dispositivo y el tamao de las variables dentro del programa bsico. Generalmente el editor del programa se reserva 26 ubicaciones de memoria RAM para su propio uso. Tambin puede crear ms variables temporales para su utilizacin en el clculo de complejas ecuaciones. Hay ciertas palabras reservadas que no pueden utilizarse como nombres de variables, stas son las

variables del sistema utilizado por el compilador. Constantes Las constantes pueden ser creadas de la misma manera que las variables. Puede ser ms informativo para utilizar un nombre en lugar de un nmero constante. Una vez que una constante se declara, no se puede cambiar ms adelante, de ah el nombre constante. DIM Label as expresin constante DIM RATON as 1 DIM TECLADO as RATON * 400

SYMBOLSYMBOL proporciona otro mtodo para asignar variables y constantes. SYMBOL no puede utilizarse para crear una variable.

SYMBOL LED = A SYMBOL Metro = 1 SYMBOL Centimetro = 100 SYMBOL Milimetro = 1000

'A fue previamente creado utilizando DIM

De esta manera usted puede mantener su programa de fcil lectura y si por alguna razn, un cambio de constante se produce ms tarde, slo tienes que hacer un cambio en el programa para cambiar todos los valores. Otra buena uso de la constante es cuando se tienen valores que se basan en otros valores. SYMBOL Metro = 1 SYMBOL Centimetro = Meter / 100 SYMBOL Millimetr0 = Centimetre / 10 SYMBOL Motor = PORTA.0 SYMBOL Relay = PORTB.0 SYMBOL Sensor = PORTA.0 SYMBOL LED = PORTA.1 SYMBOL RC0 = PORTC.0

Representaciones numricas Se usan tres diferentes representaciones nmero: BINARIA : es el prefijo %. es decir, %0101 HEXADECIMAL es el prefijo de PESOS. es decir, $ 0A DECIMAL valores no necesitan prefijo.

PORTA = %01010101 PORTA = 85 PORTA = $55

String ( CADENAS) Se permite proporcionar capacidades de manejo de cadenas, pero se puede utilizar con algunos comandos. Una cadena contiene uno o ms caracteres y est delimitado por comillas dobles.

PRINT "Hola Mundo"

'Cadena de salida

OPERADORES MATEMTICOS El Compilador realiza todas las operaciones matemticas en su totalidad de acuerdo a un orden jerrquico. Lo que significa que hay preferencia a los operadores. Por ejemplo, la multiplicacin y la divisin se realizan antes de suma y resta. Para garantizar las operaciones se llevan a cabo en el orden correcto uso de parntesis para agrupar las operaciones: A = ((B - C) * (D + E)) / F Todas las operaciones matemticas se realizan con 16 bits de precisin. Los operadores soportados son: -+ Suma -- Resta * Multiplicacin / Divisin OPERADORES LGICOS Funcin Y Funcin OR Funcin XOR

ESTRUCTURA DE UN PROGRAMA El programa tiene la siguiente estructura : Encabezado .. .. Zona de Comandos .. .. Subrutinas . . En el encabezado debemos definir algunos parmetros de trabajo. DEVICE 16F877A DECLARE XTAL 4 TRISB = %00000000 TRISA = %11111111 SYMBOL LED = PORTB.0

DEVICESintaxis: Descripcin: Operadores: DEVICE nmero de dispositivos Informar al compilador que PICmicro dispositivo est siendo utilizado. el nmero de dispositivos pueden ser casi cualquier 14-bit bsico dispositivo.

Ejemplo:

DEVICE 16F877A

'Producir el cdigo de un dispositivo PIC 16F877A

Notas: DEVICE debera ser el primer comando en el programa.

DECLARESintaxis: DECLARE Directiva que modifica el codigo

Descripcin: LCD y

Ajustar algunos aspectos del cdigo producido, es decir, la frecuencia de cristal, pantalla puerto pines, serie baudios etc

SYMBOLSintaxis: Descripcin: Operadores: SYMBOL (=) Valor Asignar un alias a un registro, variable, o valor constante Nombre puede ser cualquier identificador vlido.

El valor puede ser cualquier variable previamente declarada, sistema de registro, o una combinacin . Al crear un programa que puede ser beneficioso utilizar identificadores de determinados valores que no cambian: Otro uso del smbolo de mando es para asignar Port.Bit constantes: LED = SYMBOL PORTA.0

Notas: SYMBOL no puede crear nuevas variables, es simplemente un identificador alias a una variable previamente asignada, o se asigna una constante a un identificador.

HIGH (o SET)Sintaxis: Descripcin: Operadores: ser Ejemplo: HIGH (o SET) variable o Variable.Bit Pone una variable o bit en un estado alto. Variable puede ser cualquier variable o registro, como un puerto, Variable.Bit puede cualquier variable o combinacin, es decir, PortA.1 SYMBOL LED = PORTB.4 HIGH LED SET PORTB.3

Notas: No hay diferencia entre los comandos SET y HIGHR1PIC PIN 330R

D1LED

El diagrama anterior muestra la conexin de un LED para cualquiera de las patas de un PIC. Una resistencia se debe utilizar en serie con el LED para limitar la corriente a la misma.

DELAYMSSintaxis: Descripcin: hasta Operadores: DELAYMS longitud Demora la ejecucin de longitud x milisegundos (ms). Las demoras pueden ser 65535ms (65.535 segundos) de largo. Longitud puede ser una constante, variable, o expresin. DELAYMS 100 'retardo de 100ms

LOW (o CLEAR)Sintaxis: Descripcin: LOW (o CLEAR) variable o Variable.Bit Pone una variable en un estado bajo o un 0 .

Operadores: decir,

Variable puede ser cualquier variable o registro, como un puerto o Variable.Bit , es PortA.1

Notas: No hay diferencia entre los comandos LOW y CLEAR .

GOTOSintaxis: Descripcin: GOTO etiqueta Ir a una determinada etiqueta y continuar la ejecucin desde all.

Operadores: Etiqueta est definida por el usuario. La etiqueta est colocada al comienzo de una lnea que debe tener el ' : ' inmediatamente despus de ella. Ejemplo: Si var = 3 THEN GOTO ABAJO ( cdigo aqu ejecutado slo si Var 3 ) ABAJO: (continuar la ejecucin de cdigo) En este ejemplo, si VAR = 3 entonces el programa se salta todo el cdigo debajo de l hasta que llegue la etiqueta ABAJO cuando la ejecucin del programa contina con normalidad.

IF THEN SI ENTONCES Sintaxis: IF THEN Instruccin Comparacin: (Instruccin)

Descripcin: Se evala la comparacin y, si se ajustan a los criterios, ejecuta expresin. Si la comparacin no se cumple la instruccin se ignora. Cuando todas las instrucciones estn en la misma lnea que el IF-THEN declaracin, todas las instrucciones en la lnea que se llevan a cabo si la condicin se cumple. Operadores: Comparacin se compone de variables, nmeros y elementos de comparacin.

La instruccin es la declaracin que debe ejecutarse la comparacin cumplir los criterios SI

GOSUBSintaxis: GOSUB etiqueta RETURN

Descripcin: GOSUB el programa salta a una determinada etiqueta y contina la ejecucin desde all. Una vez que el programa encuentra una sentencia RETURN vuelve al GOSUB que llam y sigue la ejecucin de ese punto. Operadores: Label es una etiqueta definida por el usuario colocada al comienzo de una lnea que debe tener ' : ' inmediatamente despus de ella. Notas: PICBASIC PLUS permite cualquier cantidad de GOSUBs en un programa, pero los PIC de arquitectura de 14 bits slo permite 8 GOSUBs a ser anidados. El compilador slo utiliza un mximo de 4 niveles para que la biblioteca de subrutinas, por lo tanto, no utilizar ms de 4 GOSUBs dentro de subrutinas. Una subrutina siempre debe terminar con un comando RETURN.

DATA .READRESTORESintaxis: Descripcin: Operadores: Ejemplo: leer variable leer el siguiente valor de una tabla de datos y el lugar en variable Variable: es una variable definida por el usuario DIM I DATA 5, 8, 12 RESTORE READ I READ I RESTORE

"Ahora voy a contener el valor 5 "Ahora voy a contener el valor 8

La primera READ I toma el primer VALOR de los datos de la tabla y la tabla de incrementos de puntero. De conformidad con el orden READ Por lo tanto, tiene el segundo VALOR de los datos. Los intentos de leer pasado el final del cuadro dar lugar a errores e indeterminacin de los resultados.

SLEEPSintaxis : Descripcin: SLEEP { largo } Coloca al PIC en modo bajo consumo en aproximadamente n segundos. Lo apaga pero mantiene los pines en el ltimo estado antes de apagarse. Largo es una variable opcional o constante (1-65535) que especifica la duracin de la duracin del estado de reposo en segundos.

Operadores:

Ejemplo: SYMBOL LED = PORTA.0 Again: HIGH LED DELAYMS 1000 LOW LED SLEEP 60 GOTO Again

FOR NEXT [STEP]

Sintaxis:

FOR Variable = comienzo de cuenta TO fin de cuenta [STEP {valor de pasos}] . NEXT o una serie de

Descripcin: El LOOP FORNEXT es usado para ejecutar una declaracin declaraciones predeterminadas varias veces. Operadores: del

Variable: Esta se usa en el cuerpo del programa y cambia su valor de acuerdo a la ejecucin comando. Comienzo de Cuenta este es el nmero de comienzo del loop. Fin de cuenta este es el nmero con el que finalizar el loop.

Valor de pasos esta es una constante opcional, valor que incrementar o decrementar el loop. Si no lo colocamos asumir el valor 1. Ejemplo : FOR Y = 1 TO 255 PORTB=Y DELAYMS 1000 NEXT Y STEP 2

INPUTSintxis : Descripcin : Operador : Ejemplo : Notas : INPUT Port . Pin Asigna el pin especificado como entrada Port.Pin puede ser un Port.Pin, constante o declaracin. INPUT PortA.0 Recuerde que : setea el PUERTO B como entrada hace que el pin 0 del Puerto A sea una entrada

TRISB = %11111111

OUTPUTSintaxis: OUTPUT Port or Port.Pin Asigna el pin especificado como salida Port.Pin puede ser un Port.Pin, constante o declaracin. OUTPUT PortA.0 Recuerde que : setea el PUERTO B como salida hace que el pin 0 del Puerto A sea una salida

Descripcin : Operador : Ejemplo : Notas :

TRISB = %00000000