You are on page 1of 46
PROLOGO Los microcontroladores pasan muchas veces desapercibidos, trabajan incansablemente sin que nos demos cuenta las 24 horas del dia, pueden estar hasta en nuestro bolsillo, algunos estén tan cerca como dentro del cuerpo y ottos tan lejos como en el planeta Marte. En la aetualidad existe ‘un promedio de 40 microcontroladores en cada hogar y esta ciffa va en aumento, lo cierto es que cada vez dependemos mas de estas pequefias computadoras que hacen que nuestra vida sea mis ficil, Han pasado mas de 30 afios desde que los primetos microcontroladores hicieron st aparicion, y ningin otro dispositivo ha sido tan versitil, o tiene la misma acogida, todo esto ha ‘motivando a muchos autores a escribir _mas de este circuito integrado que sobre cualquier otro. Desde su inicio han evolucionado mucho, partiendo del microcontrolador 8048 de Intel, si lo ‘comparamos con los modelos actuals veremos que ahora tienen capacidad de hasta un mega de ‘memoria de programa, provesan sefales digitales y manejan todos los periféricos disponibles en la actualidad: serial, paralelo, USB, FC, one wire, X10, ete., ahora imaginemos todo lo que est por venir. Para entender su importancia debemos analizar qué pasaria si dejan de funcionar por un ‘minuto: no habria comunicacidn; centrales telefGnicas, celulares y radios dejarian de funcioner, 1o ‘mismo sucederia con: computadoras, satéites y con ello el comercio maritimo entraria en caos, el trafico agreo estaria en peligro, los aviones no podrian volar sin sus instrumentos de navegacién, el sistema electrénico de los vehiculos fallara, las fabricas paralizarian su produccién, en los hospitales muchos equipos electrénicos quedarian inservibles, en cada hogar dejaria de funcionar los sistemas de seguridad y de incendio, ascensores, y electrodomésticos en general, en definitiva se patalizaria todo el mundo Hlegado a un colapso general Este libro trata especificamente sobre el microcontrolador PIC® de Microchip Technology Inc. ya que es el fabricante que leva cl liderazgo por su bajo costo, facil programacién y la gran disponibilidad de modelos a elegir segtin sca las necesidades. La metodologia de ensefianza seri hacer el proyecto poniéndolo en funcionamiento, para luego dar explicaciones bien detalladas ya que también esté orientada a principiantes, podria parecer muy obvio pero las explicaciones no estin demés, yo mismo he tenido problemas con algunos libros al no poder pasar mas alld del primer ejercicio, aungue el libro decia que era para principiantes, y sin contar que me cansaba leyendo tanta teoria. Por eso no pretendo causar esinterés en el lector con una montafia de feoria, porque para ello existen muchos libros donde se trata mas a fondo sobre la estructura del mierocontrolador, més bien intento entusiasmarles con proyectos de facil aprendizaje y aplicaciones muy titles en su hogar, empresa y por qué no para realizar proyectos importantes de sutomatizacién de fibricas, ya que se incluye circuits de control y manejo de control computarizado con Visual Basic, al final de todos los capitulos se data referencia de paginas web en donde se puede encontrar mas informacién al respecto, Ya que ix este libro fue realizado con el apoyo de practicas reales, encontraran la informacién y los consejos ‘mis importantes que puedo darles en base a las experiencias propias que he adquirido a la hora de montar mis proyectos, este libro es producto de muchos aifos de trabajo. El motivo més grande que me impuls6 a escribir este libro fue cuando un dia mientras realizaba una prictica con los mierocontroladores PIC, mi hijo de S afios me hizo las siguientes preguntas: {Qué es esto?, ,Para qué sirve?, {Cémo funciona?, etc. En ese momento me puse a pensar cémo podria ensefiarle todo lo que sé y con su temprana edad cémo podria entenderlo. Una vez un profesor de la primaria me dijo: “El objetivo del hombre en la vida era, sembrar un érbol tener un hijo y escribir un libro”, el bol significa el trabajo y la contribucién para el futuro del planeta; el hijo significaba la experiencia de ser padres y la eontinuacién de la especie humana; el libro es nuestra experiencia y lo que nosotros aprendemos a lo largo de nuestro ciclo de vida y lo resumimos para nuestros hijos, para que asi puedan continuar con nuestro trabajo y avancen mucho més que nosotros. Algunas reflexiones de mi padre sobre la muerte, también me hicieron pensar en la importancia de dejar mis conocimientos para los que al igual que yo se apasionan con este tema. Adicionalmente para ayudar al lector se incluye en este libro una lémina para transferencia térmica del grabador de PIC’S y un CD con todos los ejercicios, diagramas, hojas de dato y fotografias a color de las placas que a lo largo del Capitulo $ y 7 se van presentando, aqui podrin observar con total claridad cada una de las placas electrOnicas (PCB), asi como tambien podrin observar una secuencia fotogrifica de cémo hacer placas de circuito impreso con el método de transferencia térmica. Para utilizar el CD, tinicamente copie todo el contenida del CD en una sola carpeta de su disco duro. Finalmente quiero expresar mi mas sincero agradecimiento s Microchip por su valiosa ayuda tanto en informacién como en softwares de libre distribucién, a mecanique por su excelente editor de textos que se distribuye gratuitamente por internet, a Bonny Gijzen por su programa I Prog, a microEngineering Labs., a todos mis profesores y amigos que me han ayudado a despejar mis dudas, a mi esposa que me apoyé en la realizacién de este libro, y de manera especial al_ Sr. Ing. Juan Bernardo Tamariz y la sefiorita Julia Leén de Corpoimpex distribuidores exclusivos de Microchip para Ecuador, por facilitarme las hojas de datos que se incluye en el CD, y permitirme utilizar el logo de Microchip en este libro, ademas de softwares, materiales, informacion y facilidades que me han brindado. Quito, Eeuador, Abril del 2008, INTRODUCCION El Capitulo 1 se trata de la descarga ¢ instalacién de los softwares neceserios para la programacién de los microcontroladores PIC, mediante ilustraciones grificas se seguir paso a paso la descarga de cada uno de los programas, todo esto para que el lector no pueda perderse En el Capftulo 2 se da una breve teoria del microcontrolador, especificamente del PICIGF628A, y sus caracteristicas més sobresalientes, ademas se da consejos muy iiiles para el correcto funcionamiento del microcontrolador PIC. En el Capitulo 3 se enseita a configurar y programar en microcode, as{ como también a reconocer los tipos de errores que se pueden dar en la compilacién del programa escrito En el Capitulo 4 se explica por qué escoger el compilador PicBasic Pro 2.47 y su comparacién con el lenguaje acostumbrado cl ensamblador, también formas diferentes de escribir los programas, y cémo grabar un PIC con en el software IC-prog, ademas se ensefia @ reconocer cerrores en la grabacién del PIC y las declaraciones disponibles en el compilador pbp. En el Capitulo 5 se inicia el aprendizaje con ejercicios basicos pero muy necesarios para poder comprender el funcionamiento del microcontrolador PIC. También cabe recalear que es indispensable disponer de un grabador de PIC’S y asi poder realizar cada uno de los 52 proyectos que se encuentran en este capitulo, también es necesario seguir en orden cada uno de los proyectos para poder entender mis adelante, ya que cada vez serén més grandes pero no muy dificiles de entender, en esta edicidn se ha mejorado el proyecto 5.11.3 Termémetro digital con el PICIGF877A utilizando el conversor A/D a 10 bits. FI Capitulo 6 trata de la simulacién y ruteado utilizando el programa PROTEUS, de igual ‘manera se ensefiara paso @ paso como montar un circuito para simular y adicionalmente para su posterior ruteado, terminando con la impresion de pistas y sereen de elementos. En el Capitulo 7 se ensefa a fabricar circuitos impresos, mediante un sencillo método: la transferencia térmica, aqui se indicaré todos los pasos necesarios para la fabricacién del grabador de PIC’S UNIVERSAL PICmicroS, para el cual se entrega conjuntamente con este libro una émina para la transferencia térmica de las pistas y el screen de los elementos, ademis se ensefiaré téenicas de soldaduras y terminaremos con la fabricacién de un chasis para sus proyectos, este le dara una buena presentacién y acabado. xi En este Capitulo se aprenderd a descargar los softwares necesarios para poder editar, compilar ¥y programar los ejercicios pricticos que se incluye en este libro, se seguir paso a paso cémo ‘descargar del internet, Recuerde que hay actualizaciones cada 6 meses por To que se recomienda visitar frecuentemente estas piginas, adicionalmente se incluye algunos de estos softwares libres en CD:\Soft-Free. Este es el primer programa que debe descargar del internet, primero ingrese en la pagina www. mecanique.co,uk y luego realice los siguientes pasos: 1a) Una vez. abierto la pagina web haga un clic en Microcode Studio, como ilustra la siguiente MERE SHH nicer sr eryen ar powaretom a= pec {furmata ho nd poner Serdar oetod tru egemarereaanca ib Gurmn renace pene th tu senal or Teigprrer ee pease ‘hesrsten the new ssn sonal one ross on 132 en ao Pratotyping Boants apie comple ae Tyo ltet caase me cone bv neetreneatng Labs LAR Lah stem Tete arena yay oticenpsPiemeas a ‘Serva Agel cutee et fom Besant te savas Ras reer 1b) Se presentaré una nueva ventana, destice la barra de desplazamiento que esté a la derecha de 1a pantalla hasta encontrar USA hosted by microEngineering Labs literal 1). Buiiusieciatell @ sere [oevetopmont Boards Hecht The snopes stows yt Sueatly hie torus es, Seti + Nore ttrmaton le as Ic) En esta pantalla haga un clic en USA hosted by microEngineering Labs, o cualquiera de los, ‘otros servidores y espere tun momento para pasar al siguiente literal Gms OAM) Pomate derma @ G2 {Gleave you se ura he PicuuncPno game vereay fou wil rotb sie we St gil Microcontroladores PIC Programacién en BASIC ~ 1d) En unos pocos segundos se abriré una nueva ventana, www.microenginceringlabs.com, deslice la barra de desplazamiento hacia abajo hasta encontrar lo que viene en el literal Le). mis reciente que corresponde al mes de abril del 2008, posteriormente podré descargar de la misma manera las iltimas versiones disponibles, Ahora bien proceda dando un clie encima de Download MicroCode Studio 3.0.0.5, Sj ae ial pac nte sla coasts ao, age aapiot tae ad ot i ass cae neo econnncaise nina mtn gg@h Microcontroladores PIC. Programacin an BASIC ~ If) Inmediatamente saldri una pantalla de Descarga de ‘mesinstall.exe, proceda dando un clic en Guardar. rchivo, tendré el nombre de nani ont cis? Tee rein te —— oe ence dat 1g) En instantes sale una nueva ventana similar al siguiente grifico, proceds a guardar cl archivo ejecutable en alguna carpeta que eli, en este caso lo haremos en la carpeta llamada descargas que fue previamente cteada en C:. luego haga un clic en Guardar. - 1 Mierocontroladores PIC 1h) Enseguida se presentard una pantalla de descarga, aqui puede marcar el recuadro de Cerrar el diflogo al terminar la descarga, para que se cierre automticamente al finalizar y emita un sonido, esta descarga puede tardar unos 3 minutos, mientras lo hace puede seguir descargando el, siguiente programa, ° DG Dames Sere eke bas lenwassin senior 2a) Ingrese a la pigina WWIW_IC-prog.com, y haga un clic en el medio del grafico. 2b) Se presentard una ventana similar al sigui nte grifico, Proceda dando un clic en Download, ea xn OG Pome fromm © S an Sesto esc en Programs: PICIOFSIS, 16PS19, 168630, 16F676, PIC IRE, PICISE329, PICISR9620, 1S€242, ISF248, ISP252, SF2S8,, ISPD LSEH8, ISFHSD, 18H4S8, 120408, LOC, TRH, PIC AOFIT7, LOFT, 2416, 21032, 95Cl6, 9081200, C11, $9051, | 89883, 38010, PIC, AVR. S0CS1 ete “This softare paige lls you to program al pes of sea programmable ltegated Cacti vais Wands Seen 2000ME XP Repent Nin 16 ans F processor 2c) En esta pantalla podré descargar 2 archivos simultineamente, el primero es el programa IC- Prog 1.06A, el segundo es cl driver para windows NT/2000yXP quo podria necesitar si dispone de estos sistemas operatives, y opcionalmente puede descargar cl archive de ayuda en espatiol, Helpfie in Spanish Language. Primero descargue IC-Prog 1.06A como se indica en el siguiente literal PRESS cP Sofheae 1.050 Mung 1c-ie Softeme L.05¢ MabiLnga J eic.Peg Stems 1.050 Mabie ; 1Bic-Pg Softee 1.05 Mang gil Microcontroladores PIC Programacién en BASIC ~ 2d) Para poder descargar los 3 archivos simvulténeamente, haga un clic con el bot6n derecho del ‘mouse en IC-Prog Software 1.06A Multi-Lingual, luego haga clic en Abrir en una ventana ‘nueva, se presentari una ventana similar al literal 2c) proceda igualmente como en el literal 1g) y cuando esté en el literal 1h) minimicelo. Vuelva a la pantalla 2c) y proceda a descargar el driver 'NT/2000 y el archivo de ayuda Helpfile Spanish Language. Pon Pw orm oI o~- 0 aie ele a-bas | tp on in \Siomersommervne Tex rain ab (a Gey ee [tPepmena si rane che @ Seeeecioetne tear (ic.Prog DLL 125 danse je c-Bo NT/2000 dive gil Microcontroladores PIC Programacién en BASIC ~ 1.3 DESCARGA DEL COMPILADOR PICBasie Pro. Este es el compilador que nos facilita la programacién de los PIC’S, hasta aqui ya dispone de un programador de PIC el IC-Prog 106A, y un editor de texto el Microcode Studio 3.0.0.5 y solo falta un programa compilador que se encargaré de generar el archivo hexadecimal HEX, necesario para poder grabar en un microcontrolador PIC. Para esto necesita adquirir el programa php 2.47 que cuesta alrededor de 250 USD., también puede descargar la versién demo en la misma pigina www.mecanique.co.uk. haciendo un clic en Compilers, y luego en PICBasic Professional, « continuacién proceda a descargarlo como se aprendié en los casos anteriores. Dy Ne Scntine De nmeenreerscan Lovet paces eee iv ez El archivo que descargaré se lama PBP_demo_instalLexe, este archivo ejecutable contiene en una carpeta (mcs) otro instalador de Microcode Studio versién 2.1.0.7, el cual ya no hace falta porque ya descarg6 anteriormente la iltima version del mismo, esto se explicara mis adelante en Ia instalacin (ver pig. 14). A continuacién se muestra todos los archivos deseargados hasta aqui pesive Edin Yor Fave terandetae Ayuda ® Qe OF Pomen |preme| (He van ont Tavs Fitba oocain Sg wre Pe seat Suet Mein _sreeace 603 B Breese rental exert lath ‘rset 625 Siemon) Bevan ‘SEER Conatanpta nse) etseuce 20> GB axaniscoropan: Ais sie ssyaace 6h Mierocontroladores PIC 1.4 INSTALACION DEL SOFTWARE MicroCode Studio. Para instalar el Entorno de Desarrollo Integrado IDE, se debe ejecutar el archivo mesinstall.exe ‘que termin6 de descargar anteriormente, se abriri una ventana de bienvenida (ver la siguiente fig. izquierda), luego presione Next y en la siguiente ventana (figura derecha), marque I accept the agreement y presione Next. Sree ‘A continucinaparecrd una nueva ventana en donde se muese el lugar donde se va a instar {litchivo, C Archivos de progamuOccaniguciMCS, elimi Urchios de proseame y dje due se nntle on CAMecanique MICS, presione Nex, epee unos sopunos Tinie presione Finish Nr | *eelinancsCas Seah DP) reece msn ) Dy estrone naan Steen ten e SCEETETGEETIS C= or _ eye Completing the Microcode Studio | Seu war ae 8) Microconroladores PIC. regraracin en BASIC 1.5 INSTALACION DEL SOFTWARE PROGRAMADOR IC: rog 1.068. Para instalar este software se necesita descomprimirlo, existen 2 formas de hacerlo, la primera es utilizando el extractor de archivos de WINDOWS, y la segunda es utilizando el extractor de archivos de WINZIP que se ensefaré mis adelante Para descomprimir el archivo con WINDOWS, localice el archivo icprogl06A.zip a través del explorador de Windows y de doble clic, se abriré una nueva ventana mostrando su contenido (ver la siguiente fig, izquierda), luego presione en Extraer todos los archivos y en la siguiente ventana presione Siguiente, ‘CALL, RETURN % RETEIE, RETLW Nivel 1 de a Pile Nivel? de a Pile Nivel @ de a Pil Figura 23.1. Mapa de la memoria de Programa, de las 8196 posiciones, sélo tiene implementado las primeras 2048 posiciones, la direccién 0000h esté Veclor da RESET |oo00n reservada paral vector de reset y la Q004h esté 3 reservada para el vector de interrupcion 8) | VeciordeinTERRUPCION [ob0sh 3 ‘00sh e MEMORIA g DE a PROGRAMA Pictere2ea o7eFh No IMPLEMENTADO | cre, 24, LA MEMORIA DE DATOS, El PICI6F628A, tiene dos tipos de memorias de datos, la RAM estitica 0 SRAM (Random Access Memory) 0 memoria de acceso casual que es un tipo de memoria volitil, es decir sus datos permanecen en la memoria mientras cxista alimentacién cn el dispositive y es de vital importancia porque ahi residen dos tipos de datos, los registros de propésito general (GPR), ex donde se almacenan las variables y los registros especiales (SFR), que son los encargados de llevar el contador de programa, el conteo del Temporizador, el estado de los puertos, la configuracién de las interrupciones, ete. El otro tipo de memoria es una memoria auxiliar no volétil llamada EEPROM, con capacidad de 128 posiciones de 8 bits cada una, Esta memoria puede ser accedida por el usuario mediante programacién, es muy util para almacenar datos que el usuario necesita que se conserven ain sin alimentacién, tal es el caso de la clave de una alarma, esta puede ser modificada, pero no debe perderse por un corte de energia, el fabricante asegura que Ia serie PICI6F6XXA, tiene una retencién de datos en esta memoria mayor a 100 ais, Como este microcontrolador es fabricado con tecnologia CMOS, su consumo de potencia es muy bajo (2 mA a 4 Mhz) y ademas es completamente estitico, lo que significa que si el reloj se detiene los datos de la memoria RAM no se pierden, esto mientras el micro sigue alimentado. La memoria de datos RAM, tiene 512 lineas de 8 bits cada una y esta particionada por 4 bancos; 1 banco 0, banco 1, banco 2 y banco 3, cada uno con 128 bytes, el acceso a cada banco de memoria 10 realiza los bits RPI y RPO del registro STATUS, la mayoria de los bytes son ‘ocupados por los Registros de Funciones Especiales (SER) 0 no estin implementadas. Para el caso del PICI6F628A sélo 224 posiciones de memoria RAM estan disponibles para los Registros de Propésito General (GPR), la distribucién de memoria se muestra en la tabla de la figura 2.4.1 20 - .g@h Microcontroladores PIC. Programacin an BASIC ~ Sena] 00 [Srmmecor] 80 [Drparecae] 100m [Ozmeae my | 180" THRO} on [OPTION] sn [THRO] ton [OPTION | 16m PCL Pot] ean PEL] 10m [Pot —] 8a STATUS] 0s» [STATUS] ssh [TSTATUST] 103m [TSTATUST] 183 FSR] oan FSR ean FSR] 100 [FSR] 104 PORTA] 05h [ ~TRISA] ssn tosh 125 PORTS] 00h [—TRISB—] 86h [PORTE tosh [TRISH] t22h | om | em som em oat oan 108 sesh on ean 109 429 POLACH | oan [PCLATH] aan [POLATH_] toa [PCLATH_] 18An TNTCON | 06» [TINTCON] seh [TINTCON] tosh [INTCON] teen PIRI och | PIE] cn toc tech | 90 | 80> oD» 10% FWRI] en [—PGON—] sch ten toe TwRIA_] oFn | 8 sof t3Rn THCON] 10» son Tike] 1th oh TZCON] 12m PRE san | san jon | | jon | TOPRIL_] 15 Jon | CCPRIA | 16 oo TePHCON | 17 am ROSTA | 1s [—TXSTA_] 98n TRREG] 19h | “SPERG—| oon RCREG | vn [TEEDATA] 94h | Ji [FEEADR | 28m | Jc» [TEECONT—] sc» | Jin [EECONZ GT] 20 | CMCON | 1» [~VRCON] om 16 20n 40» [~aeayes | 1200 80 Bytes Regios Regios PropestoG. | s4F 96 Bytos Propésiio Repatos Genera | Propésito ern 1m tern General | ron Fon 1708 10h= 7 Ton 77h 0h= 72m Fh 7m Banco 0| Banco Banco 2 Banco 3 EF Posiciones no implementadas (1) No es un registro fisico Figura 2.4.1. Mapa de la memoria de DATOS SRAM, los bloques marcados con tramas no son implementados, se leen “0” las localidades marcadas con (1) no son registros fisicos, las localidades 20h a 7Fh, corresponden a los 96 bytes de los regisiros de propésito general GPR, 80 bytes GPR en el banco 1(A0k ~ EFh) y 48 bytes GPR en el banco 2 (120k ~ 14Fh), dando un total de 224 bytes disponibles para el usuario, Para mayor informacién y wtilizacién de los SFR, refigrase al datasheet del PICI6F6XXA que se incluye en el CD de este libro. gt Micracontroladores PIC. Programac nan BASIC 21 2.5. CARACTERISTICAS GENERALES. Hasta aqui se puede resumir las caracteristicas mas relevantes del PICI6F628A, estas son: Velocidad de operacién hasta 20 MHZ, con oscilador extemno, Oscilador intemo RC (resistencia condensador) de 4 MHZ calibrado de fabrica al +1 %. Admite 8 configuraciones de oscilador. 8 niveles de PILA. Procesador con arquitectura HARVARD. Conjunto reducido de instrucciones RISC (35) gama media Instrucciones de un ciclo excepto los saltos (200nS por instruccién a 20 MHZ), Resistencias PULL-UP programables en el puerto B. Pin RAS MCLR programable como reset externo o pin de entrada, Rango de operacién desde 3V. hasta 5.5V. 15 pines de /O y 1 s6lo de entrada (RAS). ‘Temporizador Perro guardién WDT independiente del oscilador Programable con bajo voltaje LPV (SV). Programacién serial en Circuito ICSP por 2 pines: RB6 reloj y RB7 datos, Cédigo de proteccién programable por sectores. ‘Memoria de programa FLASH 2048K. de 100,000 ciclos escritura/borrado. ‘Memoria de datos EEPROM de 1,000,000 ciclos escritura/borrado de 100 afios retencién, 2 cireuitos comparadores andlogos con entradas multiplexadas 43 Timers, Timer 0 a 8 bits, Timer 1 a 16 bits y Timer 2 a8 bits. ‘Médulos CCP, Captura compara 16 bits, y PWM, modulacién de ancho de pulso 10 bits. 10 fuentes de interrupeién, Moédulo de comunicacién serial USARTISCL ‘Capacidad de corriente para encender leds directamente (25 mA 1/0) por cada pin, 2.6, DIAGRAMA DE PINES Y FUNCIONES. Excluyendo los dos pines de alimentacién, todos los 16 pines restantes pueden ser configurados ‘como entradas o salidas, algunos de ellos tienen funciones especiales, ver figura 2.6.2. aAZIANOVRER¢—> eran RAMANSICNE! <—e Ths—eRnoinno RAATOCKICMP2 ¢—> SF Raroscrcuxn RAGMCLRTHY ——e h—e aastoscarcLcour vss = vo ont <— [s—>ra7mios1 awiRxOr ¢—>| SF aeertiososcK Rasiccel¢—> fis—oRearon Figura 2.6.1. Presentacién més popular del PICI6F628A el PDIP y su diagrama de pines. 2 .g@h Microcontroladores PIC. Programacin an BASIC ~ NOMBRE PES BTA RaciaNo Pin Bidreccional /O, entrada comparacor analog. BO Avan Pin bidreccional ]0_ entrada comparador andlogo. BI) excianziver [Pin bidreccional iO_envada comp. andlogo y Votaje da referenda PAB eAsansicwei | Pin O, entrada comp. analogo y salida del comparador analogo 1 BRI) eeaTocKIcuPZ | Pin VO, entrada rel TIMERO y sala del comparadar analogo 2 PAE fessmicinwr [Pin de entrada, on modo MCLR aclva RESET extemo, Bag) Fsi05c2cLKOUT | Pin 10, entrada osclador extemo, salda de / B) ddremere Seas Berane © Sneenaster Bsmt Sr Ht acice ssctasse cok as aenice See Bene a Figura wm ‘Synlax enor 1. Pantalla de error en la compilacién RESON ‘Error de sintaxis, mal eseit, falta o est demés una letra Bad expresion ‘Mala expresiGn, mal esrio, falta 0 esti demas una letra ID pep is not a LABEL. ‘La linea pep no ¢s un nivel, o nombre de linea incorrecto For without matching next ‘Cuando falta un next ‘next without a matching for ‘Cuando fata un FOR gjem Fo x= 110 12 ‘undefined symbol “ports ‘Cuando se pone un Puerto qué n0 dispont el pie "30000 numeric overflow Exceso del valor limite ejem. PAUSE 80000 ad token" 1No se colocé el nimero del pin 1.2.3. Ejem. LOW por, ‘bad variable modifi processor file 12F675 9. ‘Ejem. LOW porth.O_puso la letra (O jen vez del cero (0) Este error sale en compiladores de versiones antiguas, ya que no dpone de este modelo de PIC por ejemplo en el PBP 2.33 ‘undefined symbol “encom” Indica que no existe ese registro en el PIC seleccionado ‘code crossed boundary @800h Es una precaucion que indica que el programa sobrepasa las 2048 lineas de programacién, aunque si compila no es un problema. Figura i Mi 3.3.2. Tabla de los errores més comunes. ferocontroladores PIC. Programacin sn BASIC ~ 31 jf Micracontroladores PIC. Programaciin an BASIC a CAPITULO 4 ‘PROGRAMANDO EN LENGUAJE BASIC 4.1 DIFERENCIA ENTRE EL LENGUAJE BASIC Y EL ENSAMBLADOR Para poder entender la diferencia entre los dos lenguajes de programacién, se debe tener en claro qué es un lenguaje de alto nivel y qué es un lenguaje de bajo nivel, a través del siguiente cuadro podemos ver los niveles de programacién, LENGUAJE HUMANO ae oe ‘Otros lenguajes BSP POHAON | penpusje Ensambledor 3F83_345F ‘Cédigo hexadecimal Lenguaje de bajo nivel | 1010911011110 | Cédigo binario LENGUAJE DE MAQUINA Figura 4.1.1. Cuadro de los niveles de programacién, el lenguaje que més se acerca a los Iumanos es el de mas alto nivel, el lenguaje més préximo al tipo de datos que entiende el ‘microcontrolador es un lenguaje de bajo nivel. Por consiguiente vamos a programar con un lenguaje de alto nivel, el que més entendemos los ‘humans, esta es la gran diferencia entre Ensamblador y BASIC, a continuacién un ejemplo de un programa en Basic para el PICI6F628A que hace parpadear un led con intervalos de | segundo. inigio: ‘nombre de subrutina inci HIGH portb. J enciende el led que esta conectado en el pin 7 PAUSE 1000 + €9pera un segundo LOW portb.1 ‘page el led PAUSE 1000 } espera un segundo. GOTO inicio + eontinia et programa para siempre ‘ajfl Microcontroladores PIC. Programacin an BASIC ~ 33 ‘A continuacién el mismo proyecto para el parpadeo del led pero en lenguaje ensamblador status. portb. trish cont eon eons repitel repite2 repited inicio prog end retardo, list p=16F628A equ 03h ‘equ 06h! equ 86h, equ 20h equ 2th equ 22h ore 0 2010. inicio om 5 movlw B10" movwt cont! movtw D100" ‘movwf cont2 movlw D'110! ‘movwf cont3 nop nop nop nop nop nop decfisz_ cont3 goto. repite3 deefsz. coni2 goto repite2 deefiz cont! goto repitel retlw 0 bsf —— status.5 moviw 00h movwr tris ber status.5 ‘sf portb,1 call retardo bef portb,1 call retardo goto prog jetiquetamos cada posicién de memoria jetiquetamos cada variable segin el lugar que el datasheet }asigne como espacio de memoria RAM ilas siguientes lineas se eseribirdn desde la direccién 5 {1 registro cont contiene el niimero de veces que repite 100 milisegundos {El registro cont? contiene el mimero de veces que repite I milisezundo {Elregistro cont3 contiene ef mimero de veces que repite los 9 microsegundos {de retardo generados {por los 6 cicos de las nstrucciones nop (6us) mds 1 cieto de ta instruceién dectsc Chusg) mis 2 ciclos del salto goto (2usg) {dando en total Ios Suse, siendo esta la base {de tiempo, por fo tanto Tse 9usg*110100%10 |decrementa el ree cont3 y salta sillega a 0 {si Coni3 no es 0 entonces salta a repite3 ‘decrementa el reg cont? y salta si Mega a 0 {si cont2 no es 0 entonces salta a tepite? sdecrementa el reg cont! y salta si lega a 0 {si cont! rio €s 0 entonces sata a tepite {salida de la subrutina eargando w eon 0 sse ubiea en el segundo hanco de la RAM. se carga el registro w con OOh sse programa el puerto B como salidas {se ubica en el primer banco de fa RAM jeoloca en | el pin RBI para encender el led ‘Llama a la subrutina relardo de 1 segundo {Coloca en Oel pin RBI para apagar el Ted [lama a la subrutina retard de T segundo jsaltaa prog para repetr la secuencia ‘Como se puede ver es mucho mas largo y dificil de entender, ademas debe conocer las posiciones de memoria que estin disponibles para este PIC, asi como también la arquitectura del PIC, también se debe hacer célculos muy precisos para generar el retardo de I segundo. 34 .g@h Microcontroladores PIC. Programacin an BASIC ~ ‘También hay que considerar el tiempo que se demora en programar en Assembler con el tiempo que se demora en programar en BASIC, las herramientas que nos facilita el compilador de PicBasic Pro son muy iitiles y de gran ahorro de trabajo, un ejemplo cs la lsmada tclefnica que sélo con una linea de escritura ya nos genera los tonos DTMF esto es: DIMFOUT portb 3, [0,9,6,1,3,6,5,6.4] sgenera tonos telefinicos por el pin RB.3 Si bien en esta instruccién se demora 5 segundos en escribir, en ensamblador necesitara mis © ‘menos 5 horas para escribir las 260 lineas de programa que se calcula que podria tener, ademés el trabajo de consultar la frecuencia que genera cada una de las teclas DIME. En el compilador PicBasic Pro, ya nos facilitan este trabajo, pues los tonos telefénicos estan listos sélo hay que Mamarlos con la declaracién DIMFOUT y especificar por cual pin se va a sacar los tonos tclefénivos, ejemplos como estos hay muchos. La Ginica ventaja de programar en Ensamblador es la optimizacion de espacio en el PIC, si bien es cierto que PicBasic Pro es mis ficil y mis répido, necesita mas espacio que el que ‘ocuparia al programar en Ensamblador, pero esto ya no es un problema si tomamos en cuenta que ccada vez fabrican microcontroladores més baratos y con mis espacio de memoria, 4.2 APRENDIENDO A PROGRAMAR EL PIC16F628A CON MICROCODE. Este es ef objetivo primordial de este libro, ensefiar a programar micros PIC de la forma mis rapida posible, sino ha leido completamente el libro le recomendamos leer el literal 3.2 MANEJO DE MicroCode Studio pagina 28. “Vamos a proponer nuevamente el proyecto que ya hemos visto antes, pero esta vez lo pondremos en funcionamiento, escriba el programa que viene @ continuscién, o abra cl archivo del CD Ejercicios\ led intermitente.pbp y siga los siguientes pasos. NOTA. *.pbp = *.bas Seu /S2es=s 6-9 b-3- 0000 =s@5) Figura 4.2.1. Programa microcode con el archivo led intermitente.bas 0 php I. Recuerde seleccionar el PICI6R628A. 1G@ Microcontroladores PIC. Pragramaciin en BASIC ~ 35 2. Una ver. que esté seguro que el programa esté bien escrito presione ‘© F9, observe on la parte inferior izquierda como cambia el color del eirculo: [remons —Ctevloveenienras est compan tpropamacon hp 247 [essa Ctevloamarto mins gene igo Asenery Hex [Dracsresnm a Ctl plo tary 0s elma quences ey PC Caso contrario si el programa esta mal escrito o existen errores en su desarrollo: [Beeeetaereras ——cireuto ojo después de compiling indica ero en la compilacin, sulo plomo ready, mientras esté escribiendo el programa. 43. GRABANDO EL PIC CON EL IC-Prog 1.064. Si todo esté bien y dice success: 59 words used., presione “AY ~ o F10,espere a que compile huevamente y se abra el IC-Prog 1.06A, si es la primera ver que ejecta este programa no olvide revisar el Capftalo 1 pigina 14. A continuacién la pantalla de IC-Prog 1.06A. eho cn Bf Aster Conacher fr le dot 8¥Seel Tm GN 6 F ‘foyer earl Dae RRO Figura 4.3.1. Presentacién de la pantalla de IC-Prog 1.064. 3, Seleccione el PIC que se va a grabar, noten que el cédigo de programa estd sélo 3FFF 3FFF esto quiere decir que esté vacfo, no hay ningin programa a grabarse, 4, Abra Archivo y busque led intermitente.HEX, ponga Abrir e inmediatamente vera que el cédigo ha cambiado por algunos nimeros, este es el programa que el PIC entiende, la presentacién sera similar a la siguiente pantalla: 36 .g@h Microcontroladores PIC. Programacin an BASIC ~

You might also like