You are on page 1of 9

Curso de microcontroladores PIC.

Gua # 1

Gua #1 Introduccin a los microcontroladores PIC.


Introduccin general.
Un microcontrolador se trata de un sistema computacional completo e independiente en un solo chip o circuito integrado, el cual cuenta con su propio CPU (Unidad de procesamiento central), memoria y dispositivos peri !ricos, permitiendo la construcci"n de dispositivos #inteligentes$ %ue toman decisiones por si mimos y son capaces de llevar a ca&o unciones comple'as sin la intervenci"n de un usuario. (os microcontroladores se usan ampliamente en la electr"nica de consumo, y actualmente se encuentran en casi toda clase de dispositivos como tel! onos celulares, c)maras otogr) icas y de vdeo, televisores, hornos de microonda, lavadoras, accesorios de computadoras como impresoras, scanners, mouse, monitores, teclados, etc. *u impacto es tal, %ue en un autom"vil promedio e+iste al menos una docena de ellos controlando toda clase de unciones, desde la marcha del motor, renos, cam&ios de velocidades, alarmas, etc. y se estima %ue en un hogar promedio e+isten m)s de dos docenas de ellos controlando toda clase de enseres, electrodom!sticos, herramientas y 'uguetes. Ca&e aclarar %ue e+iste una di erencia importante de concepto entre un microprocesador (CPU) y un microcontrolador (,CU)- la misma radica en %ue todo microcontrolador al&erga dentro de s a un CPU, ya %ue un CPU por s mismo es incapa. de operar si no se le dota de memoria y dispositivos peri !ricos para operar adecuadamente. Por lo regular, un CPU independiente es mucho m)s potente %ue un microcontrolador en t!rminos de velocidad y capacidad de memoria, ya %ue su construcci"n normalmente est) orientada a o&tener el m)+imo rendimiento. Un microcontrolador en cam&io suele tener menos prestaciones en t!rminos de velocidad y memoria, esto es para reducir su tama/o y a&aratar su costo, ya %ue su intenci"n primordial es integrarse dentro de los dispositivos %ue go&ierna y dotarlos de inteligencia utili.ando un mnimo de recursos. 0s pues, es com1n tener velocidades tan &a'as como 2345. (incluso menos) y tan altas como 166,h. en un microcontrolador, mientras %ue se puede tener tan poca memoria como una docena de &ytes hasta unos 71348 en los modelos m)s potentes. Por peri !ricos se entiende todos a%uellos componentes %ue acompa/an al CPU y la memoria (sistema principal), los cuales son indispensa&les para %ue un sistema opere adecuadamente, ya %ue permiten al sistema principal interactuar con el mundo e+terior. Un e'emplo muy &)sico de peri !rico son los puertos de entradas y salidas (I9:), por medio de los cuales un microcontrolador puede reci&ir o transmitir se/ales digitales al mundo e+terior.

Microcontroladores PIC.
Un PIC es un microcontrolador, sus siglas signi ican Peripheral Inter ace Controller (Controlador de inter ases peri !ricas). 5an sido dise/ados, producidos y comerciali.ados por la empresa ,icrochip desde hace m)s de 36 a/os. ,icrochip proporciona de manera gratuita el so t;are de desarrollo y la documentaci"n de los mismos desde su sitio ;e&- ;;;.microchip.com. Por lo regular se utili.a el so t;are de desarrollo %ue distri&uye el a&ricante (,P(08) para la tarea de programaci"n de los PIC, sin em&argo este recurso es limitado y en cierta manera complicado, ya %ue 1nicamente se puede hacer la programaci"n en lengua'e ensam&lador (a menos %ue se ad%uieran las

Curso de microcontroladores PIC.

Gua # 1

herramientas de programaci"n para lengua'es de alto nivel por un costo) lo cual re%uiere un me'or conocimiento del uncionamiento del dispositivo y consume tiempo de&ido a %ue los programas son m)s grandes y complicados de dise/ar. 0s pues, en este curso se toma el en o%ue de desarrollo a alto nivel en lengua'e C, utili.ando herramientas de so t;are li&re %ue permiten ela&orar programas tanto sencillos como de mediana y gran escala con mucha e ectividad y en mucho menos tiempo %ue si se utili.ara lengua'e ensam&lador. (a suite de programas a utili.ar consisten en *istema operativo- U&untu (inu+. <ntorno de desarrollo- Pi=la&. Compilador de C para microcontroladores PIC- *>CC. <nsam&lador para microcontroladores PIC- gputils.

Hardware bsico.
>ado %ue un microcontrolador PIC es un sistema &astante completo construido en un solo chip, re%uiere de muy pocos componentes e+ternos para su correcta operaci"n. (a siguiente igura muestra un diagrama tpico de lo %ue se conoce como #sistema mnimo$ para el microcontrolador a estudiar durante este curso- el PIC1?@ABB0. Como se puede apreciar en la igura, lo menos %ue se necesita para %ue el PIC opere correctamente son 2 cosas1. (a uente de suministro- Cue de&e ser de 7D con E9F 6.7D de tolerancia. 3. <l oscilador- compuesto por un cristal resonador y 3 capacitores. 2. <l circuito de reset, %ue de&e ser al menos una cone+i"n directa a E7D o &ien un &ot"n con una resistencia de pullFup.

@igura 1 G *istema mnimo del PIC1?@ABB0.

0dicionalmente a los re%uerimientos anteriores, es necesario contar con un dispositivo %ue permita descargar los programas desde una PC hacia a la memoria interna del PIC, para %ue el mismo pueda e'ecutarlos una ve. se le proporciona energa el!ctrica. <sta clase de dispositivo es conocido como #Programador$ (tam&i!n se le conoce de manera colo%uial como #%uemador$), y e+isten varias alternativas y dise/os, variando desde los m)s simples usados para puerto serie, pasando por los moderadamente comple'os %ue usan puerto paralelo, hasta los m)s completos y complicados con inter a. U*8. Para prop"sitos del curso estaremos utili.ando una tar'eta entrenadora, la cual ya cuenta con los componentes mencionados anteriormente as como el hard;are del programador, lo cual ahorrar) tiempo y permitir) en ocarse m)s en la programaci"n %ue en el armado de circuitos.

Curso de microcontroladores PIC.

Gua # 1

@igura 3 F Har'eta entrenadora CPFPICABB D1.6 I1. <l entrenador cuenta con un conector %ue e+pone la mayora de los pines del microcontrolador, asimismo, cuenta con pines de suministro %ue provienen del regulador integrado, de manera %ue &astar) con conectar directamente todos los peri !ricos a dicho conector para utili.arlos sin la necesidad de una segunda uente de suministro. Ca&e aclarar %ue la tar'eta cuenta con el sistema mnimo anteriormente mencionado mas algunos otros componentes opcionales. >e manera %ue si el estudiante necesita pro&ar los proyectos de manera independiente, puede conseguir los materiales para implementar el sistema mnimo y a partir de ah conectar los peri !ricos %ue necesita.

El entorno de desarrollo Piklab.


<ste se trata de un entorno de desarrollo integrado (I><), orientado espec icamente a la tarea de programaci"n de microcontroladores PIC. Pi=la&, es un proyecto de so t;are li&re %ue desciende a su ve. de Pi=dev (un programa similar), pero %ue agrega un gran n1mero de unciones y caractersticas. Pr)cticamente viene a ser un reempla.o de ,P(08 para el entorno (inu+, ya %ue no s"lo a&arca las unciones de edici"n y compilaci"n de c"digo, sino %ue tam&i!n provee unciones para descargar los programas al microcontrolador de orma directa. <ntre las caractersticas con %ue cuenta Pi=la& se tienen Inter a. de m1ltiples documentos (,>I) con gestor de proyectos. *oporte para m1ltiples lengua'es de programaci"n- C9CEE, 8asic, ensam&lador. (Cada lengua'e necesita un programa %ue de&e ser instalado por separado).

Curso de microcontroladores PIC.

Gua # 1

*oporte para varios tipos de programadores. >ocumentaci"n de caractersticas generales para cada PIC, as como distri&uci"n de pines, mapas de memoria y registros.

@igura 2 G 0pariencia del entorno de desarrollo Pi=la&.

Compilador de C para dispositivos pequeos !"CC.


*>CC (*mall >evice C Compiler) es una iniciativa de so t;are li&re %ue persigue implementar un compilador de c"digo a&ierto para toda clase de microcontroladores, incluidos entre ellos los PIC1?. 0dicionalmente, *>CC tiene soporte para microcontroladores como la serie A671 de Intel, la serie A6>*2K6 de ,a+im, la serie LA6 de Lilog , la serie ?A5C6A de ,otorola y la serie PIC1A de ,icrochip. (a tarea de un compilador es la de trans ormar el c"digo uente %ue el usuario introduce usando un lengua'e de alto nivel (en este caso lengua'e C) a un lengua'e de menor nivel conocido como ensam&lador (assem&ler), el cual descri&e de manera e+plcita las operaciones %ue el CPU de&e reali.ar para llevar a ca&o el programa descrito. <l compilador *>CC, al igual %ue otras herramientas de su misma naturale.a, se trata de una aplicaci"n de consola. <sto %uiere decir %ue no cuenta con una inter a. gr) ica para su uso y %ue es necesario introducir los comandos para su operaci"n mediante una terminal de &ash en (inu+. 0 ortunadamente, el entorno Pi=la& ya hace esto por el usuario, de manera %ue se vuelve completamente innecesario introducir dichos comandos y &astar) con hacer un clic en la &arra de herramientas o &ien seleccionar una opci"n de men1 para llevar a ca&o la tarea de compilaci"n.

Ensamblador para microcontroladores PIC: gputils.


*i &ien un compilador traduce el c"digo uente a instrucciones de CPU en lengua'e ensam&lador, un

Curso de microcontroladores PIC.

Gua # 1

microcontrolador (y en 1ltima instancia, su CPU), es incapa. de comprenderlo directamente. <sto es, por%ue los microcontroladores, al ser m)%uinas digitales, necesitan %ue sus programas se encuentren en un lengua'e &inario (el ensam&lador es un lengua'e &asado en te+to). Hal lengua'e &inario se conoce como #c"digo de m)%uina$ y es lo %ue termina por ser introducido a la memoria del microcontrolador para su e'ecuci"n. 0s pues, la tarea del ensam&lador es la de convertir la salida del compilador (en ensam&lador) a c"digo de m)%uina, de tal manera %ue pueda ser descargado en la memoria del PIC para %ue el programa reali.ado sea llevado a ca&o dentro del mismo. Una ve. m)s, el ensam&lador gpasm (parte de gputils) es una aplicaci"n de consola %ue tam&i!n de&e ser invocada desde una terminal de &ash. Pero al igual %ue *>CC es llamado autom)ticamente, tam&i!n gpasm es invocado de manera autom)tica por Pi=la&, de manera %ue cuando se compila un programa, lo %ue ocurre es %ue primero se compila con *>CC y luego se ensam&la con gpasm. Por lo regular la salida de c"digo de m)%uina para PIC se guarda en un archivo con e+tensi"n .he+, el cual pasa a ormar parte de los archivos &inarios generados como producto de la compilaci"n de los proyectos. Cuando se usa Pi=la& para el desarrollo de aplicaciones con PIC, este archivo es generalmente ignorado ya %ue es usado autom)ticamente cuando se descargan los programas al microcontrolador. *in em&argo, cuando se usan programas separados para la descarga de programas a los microcontroladores (como por e'emplo MinPicA66 para Mindo;s), el c"digo de m)%uina es usualmente trasladado al mismo mediante dicho archivo.

Curso de microcontroladores PIC.

Gua # 1

Prctica #1 Programa Hola mundo.


<n el mundo de las computadoras se tiene el concepto del programa #hola mundo$, en el cual se imprime dicha rase en pantalla para demostrar el uncionamiento &)sico de un lengua'e de programaci"n. <n el mundo de los microcontroladores sin em&argo, normalmente no se cuenta con una pantalla %ue sea capa. de desplegar te+to de manera integrada al dispositivo, por lo cual el concepto de #hola mundo$ se traslada a algo muchsimo m)s simple- <l parpadeo de una lu. o (<>.

Procedimiento.
1. Proceda a armar el circuito %ue se le presenta en la siguiente igura, si posee dudas acerca de c"mo interpretar el diagrama, no dude en consultar con su docente. <n cuanto termine de armar el circuito, noti i%ue a su docente para %ue lo revise antes de encenderlo.

@igura J G >iagrama de circuito a implementar. 3. 0rran%ue su PC con el sistema operativo U&untu (inu+ e inicie el entorno de desarrollo Pi=la&. <l mismo generalmente se u&ica dentro del men1 de aplicaciones en la categora #Programaci"n$. 2. Cree un nuevo proyecto en Pi=la& accediendo al men1 ProyectoFNOuevo proyecto... 0parecer) una ventana donde de&e introducir los datos generales del mismo. Colo%ue como nom&re #5olaPmundo$ (usando un gui"n &a'o en ve. de un espacio), u&i%ue su proyecto en el directorio 9home9usuario9<scritorio95olaP,undo (Usando un gui"n &a'o tam&i!n). Como es muy pro&a&le %ue el directorio #5olaP,undo$ no e+ista, ser) necesario crearlo. (uego eli'a el dispositivo seg1n su entrenador (0lgunos cuentan con un PIC1?@ABB mientras %ue otros cuentan con el PIC1?@ABB0), eli'a a continuaci"n el compilador #*mall >evice C Compiler$ (*>CC) y inalmente eli'a como programador el #Programador >irecto$. @inalmente presione el &ot"n #*iguiente$. O:H0- *i se crean proyectos o nom&res de archivo %ue contienen espacios, o si se usan rutas cuyos nom&res contienen espacios, e+iste una alta posi&ilidad de %ue se generen errores. <sto es en s una limitaci"n del so t;are. J. <n el siguiente cuadro eli'a la opci"n #Crear plantilla de archivo uente$ y presione el &ot"n #@inali.ar$. 0 continuaci"n se crear) de manera autom)tica un es%ueleto de programa %ue

Curso de microcontroladores PIC.

Gua # 1

puede se puede editar a conveniencia para las necesidades propias, sin em&argo en esta ocasi"n utili.aremos un programa distinto y ser) necesario &orrar su contenido. 7. Introdu.ca el siguiente programa en la ventana de edici"n de Pi=la&//Cabecera de procesador que indica cual PIC se utiliza y que ademas permite //usar todos sus registros #include <pic16f877 !" //#ota$ %gregar letra % si se trata del PIC16&877% //'its de configuraci(n del microcontrolador typedef unsigned int )ord* )ord at +,-++7 C.#&I/ 0 1231.4C 5 16731.&& 5 1P68391.# 5 1'.79#1.&& 5 1:;P1.# 5 1CP71.&& 5 168319#%':91.&& 5 179'</1.&& 5 1CP1.&&* //7eclaracion pre=ia de la funcion de retardo =oid 8etardo>?* //&uncion principal$ %qui es donde comienza el programa 4u funcion es //inicializar todos los perifericos al principio y luego procede a e@ecutar una //rutina repetiti=a =oid main>? A //9tapa de inicializacion 38I4'+ 0 +* //Coloca el bit + del puerto ' >8'+? como salida //9tapa de e@ecucion for >**? A //'ucle infinito B 3odo lo que =a adentro se repite siempre 8'+ 0 1* //9n=ia un 1 logico para encender el :97 8etardo>?* //9l :97 permanece encendido un momento bre=e 8'+ 0 +* //9n=ia un + logico para apagar el :97 8etardo>?* //9l :97 permanece apagado otro momento bre=e C C //&uncion de retardo$ 4u traba@o consiste en retardar la e@ecucion del programa //por medio de contar una secuencia de numeros larga =oid 8etardo>? A int Conteo* //;ariable que lle=a la cuenta de numeros //'ucle que cuenta una serie larga de numeros for >Conteo 0 +* Conteo < 1++++* ConteoDD? A //%qui no se !ace nada C

(istado 1 G Programa #5ola ,undo$ reali.ado en lengua'e C. ?. Una ve. introdu.ca el programa, seleccione men1 ConstruirFNConstruir proyecto, o &ien presione la tecla @A. Con esto dar) inicio al proceso de compilaci"n, %ue convierte el c"digo uente del programa a c"digo de ma%uina mediante *>CC y gpasm. <n caso %ue todo salga &ien, de&era leer el mensa'e QQQ R+ito QQQ con letras a.ules en la ventana de tra.a de compilaci"n. >e no ser as, consulte con su docente para %ue le ayude a corregir los errores %ue se pudieran suscitar. B. 0 continuaci"n proceda a con igurar el programador para %ue pueda ser utili.ado, accediendo al men1 *ettingsFNCon igure programmers... (uego eli'a de la lista de la i.%uierda el

Curso de microcontroladores PIC.

Gua # 1

#Programador directo$ y seleccione el puerto paralelo 9dev9parport6 en la eti%ueta de #*elecci"n de puerto$. <n el momento en %ue lo haga, de&era aparecer el mensa'e #Cone+i"n- Correcta$ 'unto al nom&re del puerto. (uego en la eti%ueta #<spec ico$ seleccione el programador #<HH (o; Dpp$ de la lista desplega&le. Ootar) %ue la mayora de opciones est)n desactivadas, ya %ue ueron elegidas autom)ticamente. Presione el &ot"n #0pply$ seguido del &ot"n #:4$ para guardar los cam&ios en la con iguraci"n. O:H0- *i aparece un mensa'e de error al seleccionar el puerto, es pro&a&lemente de&ido a %ue no se han esta&lecido los permisos del mismo. *olicite a su docente %ue agregue el usuario al grupo #lp$ para solventar el pro&lema. A. Conecte el programador al puerto paralelo de su computadora y al entrenador. Utilice el conector amarillo en el entrenador as como el conector rotulado #<HFP*PI$ en el programador para conectar la cincha de datos. Utilice la siguiente igura como gua-

@igura 7 G Cone+i"n del programador al entrenador. K. Una ve. conecte el programador, conecte tam&i!n la cincha de los puertos y la uente de poder. Ooti i%ue a su docente %ue tiene todo listo para %ue le revise. O: <OCI<O>0 el circuito todava, hasta %ue su docente se lo indi%ue. 16. Proceda a descargar el programa al microcontrolador. Para ello, *eleccione el men1 ProgramadorFNProgramar o &ien presione el &ot"n #Programar$ en la &arra de herramientas. >icho &ot"n es el %ue aparece ilustrado como un circuito integrado al %ue apunta una lecha amarilla. Iecuerde %ue para poder descargar programas al microcontrolador del entrenador, el mismo de&e estar encendido. *i todo se ha hecho correctamente, de&er) ver el mensa'e #Programaci"n e+itosa$ con letras a.ules en la ventana de tra.a de programaci"n.

Curso de microcontroladores PIC.

Gua # 1

11. Una ve. descargado el programa, desconecte el programador del entrenador por medio de retirar la cincha del conector amarillo (*e recomienda apagar la uente durante este proceso). 0hora el microcontrolador e'ecutar) el programa descargado siempre %ue se mantenga encendido. Oote tam&i!n %ue el programa se ha almacenado de manera de initiva en el microcontrolador y el mismo no se &orrar) aun%ue apague el circuito. *in em&argo, siempre es posi&le &orrar el programa del entrenador mediante el so t;are o &ien reempla.arlo por un programa nuevo repitiendo los pasos anteriores. 13. Corro&ore el correcto uncionamiento veri icando %ue el (<> parpadee. *i su (<> no parpadea como es de esperar, consulte con su docente para %ue le ayude a veri icar el pro&lema.

You might also like