Está en la página 1de 270
CompnaporC ees ~~. PAE eg UPL Ay.) MicroconTroLapores PIC TE fiat air iii We lel i i k ‘tied g gy 2 Ly | ial il (res==a] id ig Compitapor C CCS Y SimuLapor PROTEUS PARA Microcontrotapores PIC Eduardo Garcia Breijo &y Alfaomega EX marcombo ediciones léenicas Datos catalogréficos Garcia, Eduardo ‘Compilador C CCS y simulador PROTEUS para Microcontroladores PIC Primera Edicién Alfaomega Grupo Editor, S.A. de C.V., México ISBN: 978-970-15-1397-2 Formato: 17x 23cm Péginas: 276 Compilador C CCS y simulador PROTEUS para Mierocontroladores PIC Eduardo Garcia Breijo ISBN: 978-84-267- 1495-4, edicién original publicada por MARCOMBO, S.A., Barcelona, Espafia Derechos reservados © MARCOMBO, S.A. Primera edicién: Alfaomega Grupo Editor, México, junio de 2008. © 2008 Alfaomega Grupo Editor, S.A. d Pitégoras 1139, Col. Del Valle, 03100, México D.F. Miembro de la Cémara Nacional de la Industria Editorial Mexicana Registro No. 2317 Pag. Web: http:/www.alfaomega.comamx E-mail: libreriapitagoras @alfaomega.com.mx ISBN: 978-970-15-1397-2 Derechos reservados: Esia obra es propiedad intelectual de su autor y los derechos de publicacién en lengua espafiola han sido legalmente transferidos al editor. Prohibia su reproduccién parcial 0 total por cualquier medio sin permiso por escrito del propietario de los derechos del copyright. Nota importante: La informacién contenida en esta obra tiene un fin exclusivamente didéctico y, por lo tanto, no esté previsto su aprovechamiento a nivel profesional o industrial. Las indicaciones técnicas y programas incluidos, han sido elaborados con gran cuidado por el autor y reproduciddos bajo estrictas normas de control. ALFAOMEGA GRUPO EDITOR, S.A. de C.Y. no seri jurfdicamente responsable Or: ertores u omisiones; daiios y perjuicios que se pudieran atrbuir al uso de la informacién comprendida en este libro y en el CD-ROM adjunto, ni por la utlizacién indebida que pudiera darsele Exdicién autorizada para venta en México y todo el continente americano. Impreso en México. Printed in Mexico. Empresas del grupo: México: Alfuomeva Grupo Esitor, S.A. de C.Y. — Pitdgoras 1139, Col. Del Valle, México, DF ~C.P. 03100. Tel: (52-5) 5089-7740 — Fax: (52-55) 5575-2420 / 2490. Sin costo: 0-800-020-4396 E-mail: libreriapitagoras@alfaomega.com.mx ‘Colombia: Alfaomega Colombiana S.A. ~ Carrera 15 No. 64 A 29 ~ PBX (57-1)2100122 Fax: (57-1) 6068648 — E-mail: scliente@alfaomega.com.co Chile: Atfaomega Grupo Editor, 8.A.— General del Canto 370-Providencia, Santiago, Chile ‘Tel: (56-2) 235-4248 = Fax; (56-2) 235-5786 — E-mail: agechile@alfaomega.cl ‘Argentina: Alfaomega Grupo Faitor Argentino, S.A. ~ Paraguay 1307 P.B. “11”. Capital Federal, Buenos Aires, CP. 1057 ~ Tel.: (54-11) 4811-7183 / 8352, E-mail: info@aifeomegaeditor.com.ar Indice analitico 1. ISIS de PROTEUS VSM 1.1 Introduccién. 1.2 Captura electronica: entorno grafico ISI 1.3 Depuracién de los sistemas basados en PICmicro. 2. Compilador CCS C 2.1 Introduccién 2.2 Esteuctura de un programa 2.3 Tipos de datos. 2.4 Las constantes.. 2.5 Variables 2.6 Operadores 2.6.1 Asignaciéa... 2.6.2 Aritméticos 2.6.3 Relacionales . ; 2.6.4 Légicos... 28 2.6.5 De bits... 28 2.6.6 Punteros. 2.7 Funcion 2.8 Declaraciones de control 2.8.4 WHILE / DO-WHILE 2.8.5 Owros.. 2.9 Comentarios. 2.10 Directivas y funciones (Preprocessor commands y built-in functions) 2.11 Librerias, drivers y Sempion. . : 242 Enmweno de tebsjo de CCS C Compile (2.12.1 Introducciés 2.12.2 Entorno de trabajo. 3, La gestion de los puertos 3.1 Introduccién.. 3.2 Gestion de puertos en C. 3.2.1 A través de la RAM. 3.3.1 LCD. 3.3.2 LCD gritico, 3.3.3 Teelado (keypad . 4, Las interrupciones y los temporizadores... 4.1 Introduccion 4.2 Interrupciones. 4.2.1 Inteerupciones en 4.3 TIMER, 4.3.1 TIMERO en ens 4.4 TIMERI y TIMER2..... 4.4.1 TIMERI y TIMER2 en C 5. Convertidor Analdgico — Digital. 5.1 Introduceién. 5,2 Médulo Convertidor (gama media) 5.2.1 Registros FSR. cst 5,2.2 Proceso de conversion 5.2.3 Efecto del modo SLEEP y RESET en el médulo AD. 5.3 Médulo AD en C oe <7 6. Médulo CCP - Comparador, Captura y PWM .. 6.1 Introduceién: 6.2 Modo Captura 6.3 Modo Comparacién... 6.4 Modo PWM 6.5 Médulo CCP en C 7. Transmisién serie.. 7.1 Introduecién: 7.2. El médulo USART/SC 7.2: Introduccion. 7.2.2 El médulo USART en C 7.2.3 La norma RS232. : 7.3 Puerto serie sincrono (SSP). 7.3.1 Intesfaz Inter-Circuitos (2C) 8. Gama Alta — PICI8 8.1 Introduccién... 8.2 Organizacién de la memoria.. 8.2.1 Arquitectura HARDVARD... 8.2.2 Memoria de Programa... 8.2.3 Contador de Programa .. 8.2.4 Memoria de Configuracién 8.2.5 Pila 8.2.6 Memoria de Datos. 8.2.7 Memoria EEPROM... 82.8 Modos de Direccionamiento 8.2.9 Interrupcion: 8.2.9.1 Registros de salvaguarda 8.2.10 Registro W’... 8.2.11 Osciladot. 8.2.12 Unidades Funcionales.. 8.2.12.1 Puertos de entrada/salida 8.2.12.2 Temporizadores.. 82.123 Convertidor Analégico-Digital... 82124 Canal de Comanicacin Serie (EUSART). &2.12.5 Modulo Master SSP (MSSP). 8.2.12.6 Modulo de Compracién/Captura/PWM. co 8.2.12.7 Modulo Comparado: 8.2.12.8 Modulo de referencia... ! 8.2.12,.9 Modulo detector de Alto/Bajo Voltaje... 9. RTOS - Real Time Operating set 9.1 Introduccién. 9.2 RTOS en C 10. USB - Universal Serial Bus 10.1 Introduccién... 1am 10.1.1 Migracin de RS232 a USB . 10.1.1.1 USB CDC (Communication Device Class) 10.2 USB con ISIS y CCS C 10.2.1 USB en ISIS 10.2.2 USB en CCS C vil Introduccion El estudio de los microcontroladores PIC no consiste sélo en dominar su arquitec- tura interna o el cédigo maquina sino también en conocer programas auxiliares que facilitan el disefio de los sistemas donde intervienen. Entre los muchos programas para el desarrollo de sistemas con PICmicro® desta- can, por su potencia, el PROTEUS VSM de ©Labcenter Electrénics y el compilador C de ©Custom Computer Services Incorporated (CCS). El programa PROTEUS VSM es una herramienta para la verificaci6n via software que permite comprobar, practicamente en cualquier disefio, la eficacia del progra- ma desarrollado. Su combinacién de simulacin de eédigo de programacién y si- mulacin mixta SPICE permite verificaciones analdgico-digitales de sistemas basa- dos en microcontroladores. Su potencia de trabajo es magnifica. Por otra parte, tenemos el compilador C de CCS, ya que después de conocer y “do- minar’ el lenguaje ensamblador es muy util aprender a programar con un lenguaje de alto nivel como el C. El compilador CCS C permite desarrollar programas en C enfocado a PIC con las ventajas que supone tener un lenguaje desarrollado espe- cificamente para un microcontrolador concreto. Su facilidad de uso, su cuidado entorno de trabajo y la posibilidad de compilar en las tres familias de gamas baja, media y alta, le confieren una versatilidad y potencia muy elevadas. Al escribir este libro se plantean muchas dudas, sobre todo a la hora de concretar el temario. Escribir profusamente sobre los PIC o sobre el PROTEUS 0 sobre el CCS C supone, casi seguro, escribir un libro para cada uno de estos temas. Por ello, el planteamiento ha sido diferente, desarrollar los conocimientos basicos necesarios para manejar cada programa, apoyarlo con el mayor nimero de ejercicios y dejar al lector la posterior ampliacién de conocimientos. Asi lo he decido en base a la experiencia que me da estar impartiendo clases sobre PIC en la carrera de Ingenie- ros Técnicos Industriales, especialidad de Electronica Industrial, de la Universidad Politécnica de Valencia. Con estas premisas espero que el libro sirva a lector para aumentar sus conocimien- tos sobre el PIC o para iniciarlos en el caso de los que desconozcan este mundo. 1. ISIS de PROTEUS VSM ISIS de PROTEUS VSM 1.1 Introduccion El entorno de disefio electrénico PROTEUS VSM de LABCENTER ELECTRONICS (wzow labeenter.co.uk) ofrece la posibilidad de simular cédigo microcontrolador de alto y bajo nivel y, simulténeamente, con la simulacién en modo mixto de SPICE. Esto permite el disefio tanto a nivel hardware como software y realizar la simula- cién en un mismo y tinico entorno, Para ello, se suministran tres potentes subentor- nos como son el [SIS para el disefio grafico, VSM (Virtual System Modelling) para la simulacién y el ARES para el disefto de placas (figura 1). The VSM Advantage Con las horramiantas tradieionales de alsefo, el desarrotio del software y la comprabacion det sistema no puede resiizarse hasta que se desarrole un prototvo real, esto puede supaner semarias de relr3s0. ‘Ademas, si sa localiza elgin error en ef disefio hardware, la Totalidad del proceso debe repetise. SS BS) Ftc are mods —_— Usendo Proteus VSM, e! desarrollo dl software puede comenzar tan pronto como el esquemético es Aioujado y fa combinacién de software y hardware puede ser testeada antes del mantar el prottipo. Figura 1. Entorno de trabajo PROTEUS (fuente: Labcenter Electronics} Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC 1.2 Captura electronica: entorno grafico ISIS ISIS es un potente programa de disefio electrénico que permite realizar esquemas que pueden ser simulados en el entorno VSM o pasados a un circuito impreso ya en el entorno ARES. Posee una muy buena coleccién de librerias de modelos tanto para dibujar, simular © para las placas. Ademas, permite la creacién de nuevos componentes, su mode- lizaci6n para su simulacién e, incluso, la posibilidad de solicitar al fabricante (Lab- center Electronics) que cree un nuevo modelo. Sin entrar profundamente en como utilizar dicho programa (requeriria un libro sélo para ello), a continuacién se explican las bases para dibujar cualquitr circuito electrénico. El programa ISIS posee un entorno de trabajo (figura 2) formado por distintas barras de herramientas y la ventana de trabajo. Varios de estos mentis también se pueden utilizar con la ayuda del botdn derecho del ratén. Al pulsarlo en cualquier parte del entorno de trabajo aparece un menti contex- tual donde se pueden ir obteniendo los distintos submentis de trabajo (figura3). 1. ISIS de PROTEUS VSM Figura 3. Submenis de trabajo del botén derecho del ratén Para dibujar, lo primero es colocar los distintos componentes en la hoja de trabajo. Para ello, se selecciona el modo componentes (figura 4) y, acto seguido, realizar una pulsacién sobre el botén P de la ventana de componentes y librerias (figura 5). [Pp anes ieee Taal Figura 4. Modo componentes Figura 5. Boton “pick” Tras activar el botén P se abre la ventana para la edicién de componentes (figura 6) donde se puede buscar el componente adecuado y comprobar sus caracteristicas. Al localizar el componente adecuado se realiza una doble pulsacién en él, de tal forma que aparezca en la ventana de componentes y librerias (figura 7). Se pue- de realizar esta accién tantas veces como componentes se quieran incorporar al esquema. Una vez finalizado el proceso se puede cerrar la ventana de edicién de componentes. Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC Permite localizar por tipo, clase y fabricante Permite localizar componentes por nombre Lista de dispositivos disponibles y sus caracteristicas ‘Simbolo de esquema y modelo Encapsulado para placa Poquofio oditor de las caracteristicas de un componente (situar el ratén sobre él) Figura 6. Ventana para la edicion de componentes Figura 7. Los componentes ahadidos Para situar un componente en el esquema tan sélo debemos seleccionarlo de la lista, Al hacerlo se puede comprobar su orientacién (tal como se representara en el esquema) en la ventana de edicién (figura 8). Si deseamos modificar la rotacién 0 la reflexidn del componente podemos acceder a ello a través de la barra de herra- mientas correspondiente (figura 9). Hacigndolo de esta forma, “todos” los componentes de la lista tendran la misma orientacién (si se desea orientar un tinico componente deberemos hacerlo una vez ya situado en el esquema). 1. ISIS de PROTEUS VSM > + © a & is cor «+t Figura 8. Seleccion y orlentacion iawra 9. Barra de rotacionyy refiexién del componente Ahora solo falta realizar una pulsacién sobre la ventana de trabajo y se colocard el componente. El cursor del ratén se convierte en un lépiz blanco (figura 10). Se pueden colocar varios componentes del mismo tipo simplemente realizando varias pulsaciones, Para terminar de colocar un componente se debe seleccionar otro com- ponente de la lista o pasar a otro modo de trabajo. Lipic banc Figura 10. Cursor en el modo de colocacién Es importante activar la herramienta de referencia automatica (Real Time Annota- tion). De esta forma, los componentes tendran una referencia distinta y de forma consecutiva; en los circuitos integrados con varios componentes encapsulados tam- bién se referenciarén segiin dicho encapsulado (U1A, UIB, etc.). Esta herramienta se activa o desactiva desde la opcién de menti TOOLS > Real Time Annotation. Una vez situados los componentes en el rea de trabajo se pueden mover, al pasar por encima del componente el cursor se convierte en una mano (figura 11) y al rea~ lizar una pulsacién, el cursor se transforma en una mano con una cruz, indicando que se puede mover el componente (quedan seleccionados al ponerse en rojo) y se puede arrastrar (atencién: si se vuelve a realizar otra pulsacién del botén izquierdo se editan las caracteristicas del componente). Tambign se puede cambiar su orienta- cién utilizando los comands de rotacién y reflexidn a través de una pulsacion del botén derecho del rat6n (figura 12) y se pueden eliminar con dos pulsaciones con el botén derecho sobre ellos (0 con el botén derecho y el comando Delete Objet). OD slain del composes Ng, Mover componente debe ara en Figura 11. El cursor en modo de seleccién y mover Compilador C CCS y Simulador PROTEUS para Microcontroladores PIC ; Figura 12, Menu contextual de un componente activado por el botén derecho del ratén Todas estas acciones se pueden realizar individualmente o de forma colectiva, es decir, se pueden agrupar varios componentes a través de pulsaciones consecutivas sobre ellos (manteniendo la tecla pulsada) o dibujando una ventana con el botén izquierdo y arrastrandola sobre los mismos (figura 14). iS _bbbbht ee uo Haddad EESG: ReRERER lw Figura ‘Una vez seleccionado el conjunto de componentes (se marcan todos en rojo) debe mos utilizar la herramienta de grupo (figura 15), que también aparece tras pulsar el botén derecho. Con esta herramienta se pueden copiar, mover, rotar o eliminar los componentes seleccionados. . Los componentes en el area de trabajo 1. ISIS de PROTEUS VSM 9 Ree ao eo Ow + saaan >> ae aber acat Gaps s08 fe TELE ir le | : Figura 14, Seleccién de varios componentes Figura 15. La herramienta de grupo Para unir los componentes con cables hay que situarse en los extremos de los termi- nales, el cursor se convierte en un lapiz, verde (figura 16). Ahora se pueden ejecutar dos acciones o ir marcando el camino hasta el destino con distintas pulsaciones (figura 17) 0 realizar, directamente, una pulsacién en el destino y dejar que [SIS realice el camino. Para ello, debe estar activada la herramienta TOOLS > Wire Autorouter. Figura 16. inicio Figura 17. Circuito “a mano” Compilador € CCS y Simulador PROTEUS para Microcontroladores PIC Las uniones entre cables se pueden realizar de forma automatica. Para ello, mien- tras se traza un camino debemos realizar una pulsacién sobre el cable objeto de la unién eléctrica (figura 18). También se pueden realizar de forma manual mediante el modo de unién (figura 19); en este modo tan sélo hay que ir haciendo pulsacio- nes sobre los puntos donde deseamos realizar la union. Figura 18. Unién eléctricaentrecables ‘Figura 19. Modo de union Se puede modificar el trazado de los cables. Para ello, se realiza una pulsacién so- bre el cable, en ese instante el cursor se convierte en una doble flecha (figura 20) y se puede arrastrar el ratén para modificar el cable. t Doble flecha: mover cables Figura 20. Mover los cables ‘También se pueden utilizar buses para las uniones multicable. Los buses permiten conectar varios terminales entre si utilizando un tinico elemento (figura 21); en este caso, el cursor se convierte en un lapiz azul (figura 22). Pero para distinguir los distintos cables que forman parte del bus y distribuirlos en Ia entrada y en la salida se deben etiquetar mediante labels. En el caso de los cables se indicard una etiqueta unica LCDO, LCD1, etc., y al bus una etiqueta conjunta segiin el formato LCD[0..3] que indique el nombre y la cantidad de cables que lo forman. Figura 21. Cableado por bus 1. 1SIS de PROTEUS VSM Figura 22. Cursor en modo de trazado de bus El etiquetado también permite unir cables virtualmente. Para ello, tan s6lo es nece- sario que los dos cables se Hamen igual aunque no estén conectados entre si. Para etiquetar cables 0 buses se utiliza el modo label (figura 23). Al activar este modo y realizar una pulsacién sobre un cable 0 bus se abre una ventana donde podemos in- troducir la etiqueta, ademds de seleccionar posicién, orientacién y estilo (figura 24) Figura 23. Modo label Figura 24. Ventana de edicién de etiquetas Otro modo de unién virtual es a través de terminales. Al activar el modo terminal (figura 25) se pueden seleccionar distintos tipos de terminales, entre ellos el utiliza- do por defecto (defauif). Al utilizar este terminal en varios componentes y darle el mismo nombre en todos ellos se consigue una unién eléctrica. Figura 25. Modo terminal

También podría gustarte