PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88...

9
13/10/2014 PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANT… http://www.puntoflotante.net/progbasica.htm 1/9 tutorial: programación básica en lenguaje ensamblador para los sistemas 16F84/F628/F88, controlando leds, microswitches y un relevador. En este tutorial, se proporciona información básica de programación, así como ejemplos sencillos para controlar los dispositivos básicos de los sistemas embebidos (embedded systems), como son los leds, los microswitches, y los relevadores. Los ejemplos se acompañan los diagramas electrónicos y programas escritos en lenguaje ensamblador . Los ejercicios están desarrollados para los sistemas EDUPIC y Sistema EB88 , los cuales cuentan con 8 leds, 4 microswitches y un relevador, controlados por los microcontroladores 16F84/F628/F88 de Microchip, pero pueden ser fácilmente modificados para adaptarse a cualquier otro sistema. En la siguiente figura se muestra un diagrama general de control de los dispositivos señalados. NOTA IMPORTANTE: Los microswitches SW1...SW4, en la posición "ON" (contactos cerrados) generan un voltaje bajo, es decir, un 0 lógico y en la posición "OFF" (contactos abiertos) generan un voltaje alto, es decir un 1 lógico. Vea los diagramas electrónicos de los microswitches más abajo en este tutorial.

Transcript of PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88...

13/10/2014 PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANThttp://www.puntoflotante.net/progbasica.htm 1/9

tutorial: programacin bsica en lenguaje ensamblador para lossistemas 16F84/F628/F88, controlando leds, microswitches y unrelevador. En este tutorial, se proporciona informacin bsica de programacin, as como ejemplos sencillos para controlar los dispositivos bsicos de lossistemas embebidos (embedded systems), como son los leds, los microswitches, y los relevadores. Los ejemplos se acompaan los diagramaselectrnicos y programas escritos en lenguaje ensamblador .Los ejercicios estn desarrollados para los sistemas EDUPIC y Sistema EB88, los cuales cuentan con 8 leds, 4 microswitches y un relevador,controlados por los microcontroladores 16F84/F628/F88 de Microchip, pero pueden ser fcilmente modificados para adaptarse a cualquier otrosistema. En la siguiente figura se muestra un diagrama general de control de los dispositivos sealados.NOTA IMPORTANTE: Los microswitches SW1...SW4, en la posicin "ON" (contactos cerrados) generan un voltaje bajo, es decir, un 0lgico y en la posicin "OFF" (contactos abiertos) generan un voltaje alto, es decir un 1 lgico. Vea los diagramas electrnicos de losmicroswitches ms abajo en este tutorial.13/10/2014 PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANThttp://www.puntoflotante.net/progbasica.htm 2/913/10/2014 PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANThttp://www.puntoflotante.net/progbasica.htm 3/9 ASIGNACION DE PINES EN LOS MICROCONTROLADORESLos microcontroladores mencionados tienen la siguiente asignacin de pines en sus circuitos. Observe que en el 16F84 la funcin de los pineses nica, mientras el 16F628 tiene asignadas varias posibles funciones en cada pin de sus puertos A y B. El 16F88, que es la versin msreciente, asigna, adicionalmente a las funciones del 16F628, 7 canales de conversin A/D, y varias seales para el puerto sncrono SSP. 13/10/2014 PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANThttp://www.puntoflotante.net/progbasica.htm 4/9

LOS REGISTROS ESPECIALES:Para aprender programacin bsica y el manejo de los puertos de entrada/salida, usaremos en los programas de prueba solamente los 9 registrosespeciales mostrados en la tabla de abajo, que son comunes a los 3 microcontroladores antes mencionados. De esos 9, los 7 marcados con colorazul aguamarina son los ms utilizados en aplicaciones simples.El direccionamiento de los registros est organizado por bancos grupos de registros: el 16F84 cuenta con 2 bancos y un total de 15 registrosespeciales; el 16F628 contiene 4 bancos y 34 registros especiales; el 16F88 contiene 4 bancos y 50 registros especiales. Algunos de losregistros pueden ser accesados desde varios bancos.En todos los programas, es indispensable incluir los archivos p16f628.inc p16f88.inc en donde se establecen las equivalencias entre losnombres de los registros y bits y sus direcciones.BANCO 0 DIRECCION BANCO 1 DIRECCIONTMRO 01H OPTION 81HPCL 02H PCL 82HSTATUS 03H STATUS 83H13/10/2014 PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANThttp://www.puntoflotante.net/progbasica.htm 5/9FSR 04H FSR 84HPORTA 05H TRISA 85HPORTB 06H TRISB 86HPUERTOS DIGITALESLos sistemas 16F84/F628/F88 cuentan con dos puertos digitales, el puerto A, con 5 bits disponibles (RA0...RA4) y el puerto B con 8 bitsdisponibles (RB0...RB7). Ambos puertos son bidireccionales, sto es, pueden programarse como entradas o como salidas, de acuerdo a unosregistros de direccin de datos, llamados TRISA, en el caso del puerto A y TRISB para el puerto B. Para programar un bit como entrada, sedebe escribir un "1" y para programarlo como salida, un "0" en los bits correspondientes de estos registros.EJEMPLO DE PROGRAMACION DEL REGISTRO TRISA: EL BIT RA0 DEL PUERTO 'A' QUEDA PROGRAMADO COMO SALIDA,Y LOS BITS RA1...RA4 QUEDAN PROGRAMADOS COMO ENTRADAS. 0 0 0 1 1 1 1 0 (RA0)La asignacin de cada uno de los bits de los puertos A y B, se muestra en la siguiente tabla. En los sistemas EDUPIC y EVOLUPIC, seconectan RA1...RA4, (programados como entradas) a 4 microswitches y RB0...RB7 (programados como salidas) para activar 8 LEDS, ascomo un relevador conectado al pin RA0 (programado como salida). PUERTO A PUERTO BRA0 ACTIVA/DESACTIVA EL RELEVADOR RB0 ACTIVA LED B0RA1 LEE EL MICROSWTICH SW1 RB1 ACTIVA LED B1RA2 LEE EL MICROSWITCH SW2 RB2 ACTIVA LED B2RA3 LEE EL MICROSWITCH SW3 RB3 ACTIVA LED B3RA4 LEE EL MICROSWITCH SW4 RB4 ACTIVA LED B4RB5 ACTIVA LED B5RB6 ACTIVA LED B6RB7 ACTIVA LED B7 13/10/2014 PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANThttp://www.puntoflotante.net/progbasica.htm 6/9EL REGISTRO STATUSEl registro llamado STATUS, se encuentra en la direccin 03H y contiene varias banderas de importancia para el manejo de los programas enel 16F84/F628/F88.IRP RP1 RP0 TO PD Z DC C Bit 7 Bit 0- los bits 0, 1 y 2 son el CARRY, HALF CARRY Y ZERO, y son banderas que se activan, con un valor igual a 1, cuando el resultadode una operacin o instruccin genera un carry, un half carry o un valor igual a cero respectivamente.- El bit 3 se llama POWER DOWN y su valor es de 1 despus de una instruccin CLRWDT (CLEAR WATCH DOG TIMER) biendespus de encender el sistema (POWER UP). El valor es de 0 despus de ejecutar la instruccin SLEEP.- El bit 4,se llama TIMER OUT tendr un valor de 1 despus de POWER UP, CLRWDT SLEEP y tendr un valor de 0 si elWDT (WATCH DOG TIMER) activa su seal de alarma.- Los bits 5 y 6 RP0, RP1 seleccionan el banco de memoria que habr de accesarse. Si RP0 =0, RP1=0 se selecciona el banco 0. SiRP0=1, RP1=0, banco 1; RP0=0, RP1=1, banco 2; RP0=1, RP1=1, banco 3.- El bit IRP se usa para direccionamiento indirecto, junto con el registro FSR, para seleccionar el banco de registros en donde seencuentra la memoria de datos que se quiere accesar. Si IRP=0, se seleccionan los bancos 0 y 1; si IRP=1,se seleccionan los bancos 2 y3 Plantillas para programar en lenguaje ensamblador los sistemas EDUPIC y EVOLUPIC 16F626/F88. Use estas plantillas para desarrollar suspropios programas.PLANTILLAF628.asm. Para programar con 16F628PLANTILLAF88TINY.asm Para EVOLUPIC Bootloader 16F88. Archivo nico.PLANTILLAF88TINY2.asm, KEY.incPara EVOLUPIC Bootloader 16F88. Idntica funcin que elarchivo anterior, pero utilizando un archivo auxiliar (KEY.inc) DIAGRAMAS ELECTRONICOS DE CONEXIONES A LEDS Y MICROSWITCHES:13/10/2014 PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANThttp://www.puntoflotante.net/progbasica.htm 7/9Una vez inicializados los puertos de la forma mostrada, puede escribirse en los LEDS o leer el estado de los microswitches, considerando losdiagramaselectrnicosquesemuestranenseguida.ElobjetivodelosLEDSylosmicroswitchesesdaralusuariolaposibilidadderealizaremulaciones de sensores digitales y salidas para la activacin de actuadores. DIAGRAMA ELECTRONICO DE LA CONEXION AL RELEVADOR Mediante el manejo del bit RA0 del puerto A, el procesador 16F84/F628/F88 puede activar un relevador. Los datos nominales de esterelevadorson:unpolountiro,activacincon9voltsDCycontactosde127VCA@10Amperes.Esterelevadorpuedeserusadocomo actuador para activar dispositivos externos como focos, vlvulas, solenoides, motores, etc. 13/10/2014 PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANThttp://www.puntoflotante.net/progbasica.htm 8/9 EJEMPLOS SIMPLES DE PROGRAMACION:De la tabla de abajo, elija el programa que desee bajar. Recuerde que los leds, microswitches y relevador deben de estar conectados siguiendolosdiagramaselectrnicosmostrados(quesonlosusadosporEDUPICyEVOLUPIC).PuedeensamblarestosarchivosconelsoftwareMPLAB IDE cargar directamente el ejecutable .hex en los sistemas EDUPIC 16F84/F628/F88, mediante la aplicacin WINPIC TINY (enelcasodelEVOLUPICBootloader 16F88).Porfavorsigaelinstructivodelmanualdelsistema.Uselasplantillasresaltadasencolorazulaguamarina, para desarrollar sus nuevos programas: EDUPIC 16F84EDUPIC 16F628 EVOLUPIC 16F628Sistema EB88 DESCRIPCION Y LINKplantillaF628.asm plantillaF88TINY.asm Plantillas para 16F628/F88. Archivo nicoplantillaF88TINY2.asm Plantilla para EVOLUPIC Boot. 16F88, con archivo auxiliar KEY.incKEY.inc Archivo auxiliar para usarse con la plantilla anteriorcontador.asm contadorF628.asm contadorF88TINY.asm Contador binario en los ledscontador.hex contadorF628.hex contadorF88TINY.hex13/10/2014 PROGRAMACION BASICA PARA CONTROLAR LEDS MICROSWITCHES Y RELEVADOR PIC TARJETA DE DESARROLLO EB88 PROYECTOS CON MICROCONTROLADORES PIC PUNTO FLOTANThttp://www.puntoflotante.net/progbasica.htm 9/9demof84.asm demof628.asm demof88TINY.asm Corrimiento en los ledsdemof84.hex demof628.hex demof88TINY.hexmicrosw.asm microswF628.asm microswF88TINY.asm Manejo de leds, microswitches y relevadormicrosw.hex microswF628.hex microswF88TINY.hexLEDSMICROTINY.asm Manejo de claves en microswitches y accin LEDSLEDSMICROTINY.hexLEDSCORRIMIE2.asm LEDSCORR2TINY.asm Uso del simulador en MPLAB para el manejo de leds y microswitchesLEDSCORRIMIE2.hex LEDSCORR2TINY2.hex