Un programa en C consiste en una o más funciones. Toda función debe declararse con el modificador "int" y el nombre de la función, y debe contener instrucciones entre llaves {}. El punto de entrada principal es la función main().
Tutorial comunicación bluetooth con módulos rn42 y rn41_by_ editronikxUniversidad mariana
Este documento describe la configuración y uso de los módulos Bluetooth RN42 y RN41 de Roving Networks. Estos módulos pequeños y de bajo consumo permiten la comunicación Bluetooth entre dispositivos electrónicos. El documento explica cómo conectar los módulos, configurar sus parámetros como el nombre, velocidad de transmisión y código PIN utilizando comandos AT, y provee ejemplos de circuitos y aplicaciones que usan estos módulos Bluetooth.
Este documento proporciona una guía sobre el compilador C18 de Microchip. Explica los tipos de datos soportados, incluyendo enteros y de punto flotante, así como las clases de almacenamiento y calificadores. También cubre temas como secciones de memoria, interrupciones, ensamblador en línea y divergencias respecto al estándar ISO.
Esta presentación presenta una visión general de las herramientas de Microchip que son necesarias para trabajar con el estándar IEEE 802.15.4 de comunicaciones inalámbricas
Este documento proporciona una guía sobre el compilador Microchip C18. Explica los tipos de datos soportados, incluyendo enteros, de punto flotante y cadenas. También cubre temas como clases de almacenamiento, secciones de memoria, interrupciones y extensiones del lenguaje como ensamblador en línea. El documento es una referencia útil para aprender sobre las capacidades y características específicas del compilador C18 de Microchip.
Este documento presenta un tutorial básico sobre el uso del compilador MPLAB C18 de Microchip para desarrollar programas en C para microcontroladores PIC. Explica conceptos como la instalación del entorno de programación, la creación de proyectos, el uso de operadores, estructuras de control y variables. También incluye cuatro ejemplos prácticos de código para el control de LEDs, displays y funciones.
Este documento describe cómo configurar e implementar un programa "Hola Mundo" básico en MPLAB y el compilador C18 para un PIC18F2550. Explica cómo configurar MPLAB e incluir las librerías y palabras de configuración adecuadas, y luego proporciona un código de ejemplo que enciende y apaga los LEDs en un bucle infinito para demostrar el funcionamiento básico.
Presentacion WSN MiWi Protocolo Congreso Cita 2015gmeneses23
El documento describe un estudio para reducir el consumo de energía en nodos sensores inalámbricos usando el protocolo MiWi. Se realizaron modificaciones a nivel de hardware y firmware y se midió el consumo. Los resultados mostraron que intervenciones tanto en hardware como en firmware pueden mejorar la eficiencia energética. Sin embargo, mejoras de hardware con componentes caros pueden no ser viables económicamente para redes grandes. El estudio concluye que es necesario un enfoque combinado de hardware y firmware para lograr bajos consumos en aplicaciones de
Tutorial comunicación bluetooth con módulos rn42 y rn41_by_ editronikxUniversidad mariana
Este documento describe la configuración y uso de los módulos Bluetooth RN42 y RN41 de Roving Networks. Estos módulos pequeños y de bajo consumo permiten la comunicación Bluetooth entre dispositivos electrónicos. El documento explica cómo conectar los módulos, configurar sus parámetros como el nombre, velocidad de transmisión y código PIN utilizando comandos AT, y provee ejemplos de circuitos y aplicaciones que usan estos módulos Bluetooth.
Este documento proporciona una guía sobre el compilador C18 de Microchip. Explica los tipos de datos soportados, incluyendo enteros y de punto flotante, así como las clases de almacenamiento y calificadores. También cubre temas como secciones de memoria, interrupciones, ensamblador en línea y divergencias respecto al estándar ISO.
Esta presentación presenta una visión general de las herramientas de Microchip que son necesarias para trabajar con el estándar IEEE 802.15.4 de comunicaciones inalámbricas
Este documento proporciona una guía sobre el compilador Microchip C18. Explica los tipos de datos soportados, incluyendo enteros, de punto flotante y cadenas. También cubre temas como clases de almacenamiento, secciones de memoria, interrupciones y extensiones del lenguaje como ensamblador en línea. El documento es una referencia útil para aprender sobre las capacidades y características específicas del compilador C18 de Microchip.
Este documento presenta un tutorial básico sobre el uso del compilador MPLAB C18 de Microchip para desarrollar programas en C para microcontroladores PIC. Explica conceptos como la instalación del entorno de programación, la creación de proyectos, el uso de operadores, estructuras de control y variables. También incluye cuatro ejemplos prácticos de código para el control de LEDs, displays y funciones.
Este documento describe cómo configurar e implementar un programa "Hola Mundo" básico en MPLAB y el compilador C18 para un PIC18F2550. Explica cómo configurar MPLAB e incluir las librerías y palabras de configuración adecuadas, y luego proporciona un código de ejemplo que enciende y apaga los LEDs en un bucle infinito para demostrar el funcionamiento básico.
Presentacion WSN MiWi Protocolo Congreso Cita 2015gmeneses23
El documento describe un estudio para reducir el consumo de energía en nodos sensores inalámbricos usando el protocolo MiWi. Se realizaron modificaciones a nivel de hardware y firmware y se midió el consumo. Los resultados mostraron que intervenciones tanto en hardware como en firmware pueden mejorar la eficiencia energética. Sin embargo, mejoras de hardware con componentes caros pueden no ser viables económicamente para redes grandes. El estudio concluye que es necesario un enfoque combinado de hardware y firmware para lograr bajos consumos en aplicaciones de
Elena Rocher Consultoría de estrategia y proyectos singulares para organizaci...Elena Rocher Vicedo
Este documento describe los servicios de una consultora de estrategia y proyectos singulares. La consultora se especializa en el desarrollo de estrategias territoriales, políticas públicas, sistemas de innovación, proyectos de cooperación y apoyo a la gestión pública. Algunos de sus servicios incluyen el diseño de planes estratégicos, estudios de análisis, seminarios y soluciones personalizadas. La consultora ha trabajado con diversas ciudades y organizaciones de España en proyectos como planes sectoriales, estrategias de emple
Electricidad y Espiritualidad por GP. Joimer MolinaAquarius en línea
Este documento describe los principios de la circulación de energía a través de un circuito eléctrico utilizando la metáfora de la conexión, circulación y transformación. Explica que la energía fluye de una fuente a través de elementos de conexión hasta un receptor, donde se transforma a otro tipo de energía. También señala que para lograr una transformación eficiente se debe minimizar la resistencia y las pérdidas en el sistema.
Extract Associated Designers is an architecture and design firm that has been operating for 10 years with offices in 4 cities across 3 continents. They have worked on over 200 projects for more than 100 clients in 15 countries, involving investments of over 50 million euros. Their services include architecture, interior design, corporate design, and fit outs. They have expertise in various building types including residential, hotels, offices, hospitals, and retail.
Este documento presenta la exposición "La Caja Dorada: variación sobre la pinacoteca municipal de Carmona" que se llevará a cabo en la Casa de la Provincia de Sevilla del 15 de mayo al 10 de junio de 2007. La exposición mostrará una selección de 23 obras de la pinacoteca de Carmona con el objetivo de dar a conocer la historia y cultura de esta ciudad milenaria a través de su arte. Las obras exhibidas abarcan desde el siglo XIX hasta la actualidad e incluyen diferentes estilos como el imp
En este documento, recogemos brevemente, las diferentes actividades y actos en los que hemos participado durante 2.012, con el objetivo de estar más cerca de nuestros clientes, socios y colaboradores.
Este documento describe la evolución de los diferentes tipos de computadoras, desde las primeras supercomputadoras introducidas en los años 1960 hasta las computadoras personales modernas. Explica que las supercomputadoras son poderosos sistemas unidos para aumentar su potencia, las mainframes son usadas por grandes organizaciones, las minicomputadoras tienen un rendimiento entre las mainframes y las microcomputadoras, y que las computadoras personales satisfacen las necesidades de un usuario promedio.
Este documento presenta información sobre el comercio internacional. Explica las teorías de ventaja absoluta y ventaja comparativa, y analiza el proteccionismo y el librecambio. También incluye gráficos sobre la balanza comercial de Colombia y un esquema sobre los efectos del libre comercio en el país.
El documento describe diferentes tipos de estructuras organizacionales. La funcional organiza a las personas por sus habilidades, mientras que la funcional-lineal agrupa al personal calificado en equipos para lograr objetivos compartidos. También presenta un ejemplo de organigrama de una empresa con tres departamentos principales (Producción, Recursos Humanos y uno proyectado de Comercialización) que reportan a la Gerencia General.
Aviation training institute in delhi, Air hostess training institute, delhinettopperssupport
Flyzone Aviation was founded in 1996 to provide training and placement services for the service industry. Over the years, it has expanded its training programs and successfully placed professionals in roles across various companies. Its vision is to bridge the gap between academia and corporate sectors by delivering high-quality training programs. It offers various diploma and certification courses related to aviation, hospitality, retail, and more. Flyzone aims to make students job and industry ready. It has partnerships with leading schools and companies in the industries.
Este documento describe seis zonas eléctricas clave que deben revisarse para evaluar la salud de un motor: la calidad de la alimentación, el circuito de potencia, el aislamiento, el estator, el rotor y el entrehierro. Analiza cada una de estas zonas y explica cómo afectan la condición del motor y cómo deben diagnosticarse problemas potenciales en cada una para determinar con precisión el estado del motor.
Este artículo discute el concepto de "fósiles vivientes", especies que se consideran supervivientes de grupos que fueron más abundantes en el pasado. Se presentan varios ejemplos de especies que fueron conocidas primero a través de fósiles antes de ser descubiertas como especies vivas, como el celacanto y la Metasequoia. Sin embargo, el autor argumenta que el término también se aplica a especies como el gingko y el tuátara, que son los únicos representantes sobrevivientes de grupos que florecieron en el pasado
O documento fornece dados quali-quantitativos do mexilhão-dourado Limnoperna fortunei recém-introduzido no sul do Brasil, incluindo sua densidade populacional máxima de 27.275 indivíduos/m2 um ano e meio após o primeiro registro e 62.100 indivíduos/m2 dois anos depois. Também descreve danos causados à fauna nativa e primeiros casos de macrofouling em tubulações no sul do país.
El documento describe los microcontroladores PIC y sus aplicaciones. Los PIC son circuitos integrados programables que pueden modificar su comportamiento según instrucciones. Se utilizan comúnmente para controlar pantallas LCD, teclados, memorias EEPROM, temperatura, robots, motores y más. Existen diferentes familias de PIC con variaciones en memoria, entradas/salidas y funcionalidad. Los PIC con memoria Flash son más flexibles para programación. Se requieren conocimientos básicos de electrónica y programación para trabajar con PIC.
Este documento describe los microcontroladores PIC, que son circuitos integrados programables ampliamente utilizados en proyectos de ingeniería. Explica que un microcontrolador consta de bloques funcionales como memoria RAM, memoria ROM y una unidad lógica. Luego detalla dos tipos populares de microcontroladores PIC, el PIC16F628A y el PIC16F877A, y menciona softwares como PicBasic Pro que facilitan la programación de estos dispositivos. Finalmente, resalta la importancia educativa de los microcontroladores PIC en
Este documento presenta información sobre un curso de microprocesadores dictado por el profesor Marco Aurelio Porro Chulli. El curso se enfoca en los microcontroladores PIC fabricados por Microchip Technology. Estos dispositivos combinan un microprocesador, memoria y interfaces en un solo chip y ofrecen una plataforma de bajo costo para el desarrollo de sistemas electrónicos controlados por software. El documento también brinda detalles sobre las características y periféricos de los PIC, así como instrucciones básicas de ensamblador
C:\Documents And Settings\Earias\Escritorio\Pic 32\Iniciacion A La Programaci...ezequiel
Este documento presenta una introducción a la programación de los microcontroladores PIC32 de Microchip. Describe el hardware y software necesarios, incluyendo placas de desarrollo, programadores y el entorno de desarrollo MPLAB. Luego, muestra un ejemplo paso a paso de cómo crear un proyecto en MPLAB para encender y apagar luces secuencialmente en la placa de desarrollo Starter Kit utilizando operadores matemáticos en C. Finalmente, explica brevemente las características del hardware del PIC32 como puertos E/S
Este documento introduce los conceptos básicos de los microcontroladores. Explica que los microcontroladores son circuitos integrados que integran funciones como memoria, temporizadores y comunicación que antes requerían circuitos externos separados. También describe algunas características clave de los microcontroladores PIC de Microchip como su arquitectura Harvard y RISC, que mejoran su rendimiento. Finalmente, presenta aspectos generales de la arquitectura interna de los microcontroladores, incluyendo sus componentes principales como la CPU, memoria y periféricos.
Este documento describe los microcontroladores PIC fabricados por Microchip. Los PIC son microcontroladores RISC originalmente desarrollados por General Instrument en 1975 para mejorar el rendimiento de E/S de la CPU CP16000. Hoy en día, los PIC vienen con varios periféricos integrados y memoria de programa de 512 a 32.000 palabras. El documento también describe aplicaciones comunes de los PIC como control de pantallas LCD, teclados, memorias EEPROM y dispositivos de audio, así como los tres principales lenguajes de programación para PIC: BASIC,
Elena Rocher Consultoría de estrategia y proyectos singulares para organizaci...Elena Rocher Vicedo
Este documento describe los servicios de una consultora de estrategia y proyectos singulares. La consultora se especializa en el desarrollo de estrategias territoriales, políticas públicas, sistemas de innovación, proyectos de cooperación y apoyo a la gestión pública. Algunos de sus servicios incluyen el diseño de planes estratégicos, estudios de análisis, seminarios y soluciones personalizadas. La consultora ha trabajado con diversas ciudades y organizaciones de España en proyectos como planes sectoriales, estrategias de emple
Electricidad y Espiritualidad por GP. Joimer MolinaAquarius en línea
Este documento describe los principios de la circulación de energía a través de un circuito eléctrico utilizando la metáfora de la conexión, circulación y transformación. Explica que la energía fluye de una fuente a través de elementos de conexión hasta un receptor, donde se transforma a otro tipo de energía. También señala que para lograr una transformación eficiente se debe minimizar la resistencia y las pérdidas en el sistema.
Extract Associated Designers is an architecture and design firm that has been operating for 10 years with offices in 4 cities across 3 continents. They have worked on over 200 projects for more than 100 clients in 15 countries, involving investments of over 50 million euros. Their services include architecture, interior design, corporate design, and fit outs. They have expertise in various building types including residential, hotels, offices, hospitals, and retail.
Este documento presenta la exposición "La Caja Dorada: variación sobre la pinacoteca municipal de Carmona" que se llevará a cabo en la Casa de la Provincia de Sevilla del 15 de mayo al 10 de junio de 2007. La exposición mostrará una selección de 23 obras de la pinacoteca de Carmona con el objetivo de dar a conocer la historia y cultura de esta ciudad milenaria a través de su arte. Las obras exhibidas abarcan desde el siglo XIX hasta la actualidad e incluyen diferentes estilos como el imp
En este documento, recogemos brevemente, las diferentes actividades y actos en los que hemos participado durante 2.012, con el objetivo de estar más cerca de nuestros clientes, socios y colaboradores.
Este documento describe la evolución de los diferentes tipos de computadoras, desde las primeras supercomputadoras introducidas en los años 1960 hasta las computadoras personales modernas. Explica que las supercomputadoras son poderosos sistemas unidos para aumentar su potencia, las mainframes son usadas por grandes organizaciones, las minicomputadoras tienen un rendimiento entre las mainframes y las microcomputadoras, y que las computadoras personales satisfacen las necesidades de un usuario promedio.
Este documento presenta información sobre el comercio internacional. Explica las teorías de ventaja absoluta y ventaja comparativa, y analiza el proteccionismo y el librecambio. También incluye gráficos sobre la balanza comercial de Colombia y un esquema sobre los efectos del libre comercio en el país.
El documento describe diferentes tipos de estructuras organizacionales. La funcional organiza a las personas por sus habilidades, mientras que la funcional-lineal agrupa al personal calificado en equipos para lograr objetivos compartidos. También presenta un ejemplo de organigrama de una empresa con tres departamentos principales (Producción, Recursos Humanos y uno proyectado de Comercialización) que reportan a la Gerencia General.
Aviation training institute in delhi, Air hostess training institute, delhinettopperssupport
Flyzone Aviation was founded in 1996 to provide training and placement services for the service industry. Over the years, it has expanded its training programs and successfully placed professionals in roles across various companies. Its vision is to bridge the gap between academia and corporate sectors by delivering high-quality training programs. It offers various diploma and certification courses related to aviation, hospitality, retail, and more. Flyzone aims to make students job and industry ready. It has partnerships with leading schools and companies in the industries.
Este documento describe seis zonas eléctricas clave que deben revisarse para evaluar la salud de un motor: la calidad de la alimentación, el circuito de potencia, el aislamiento, el estator, el rotor y el entrehierro. Analiza cada una de estas zonas y explica cómo afectan la condición del motor y cómo deben diagnosticarse problemas potenciales en cada una para determinar con precisión el estado del motor.
Este artículo discute el concepto de "fósiles vivientes", especies que se consideran supervivientes de grupos que fueron más abundantes en el pasado. Se presentan varios ejemplos de especies que fueron conocidas primero a través de fósiles antes de ser descubiertas como especies vivas, como el celacanto y la Metasequoia. Sin embargo, el autor argumenta que el término también se aplica a especies como el gingko y el tuátara, que son los únicos representantes sobrevivientes de grupos que florecieron en el pasado
O documento fornece dados quali-quantitativos do mexilhão-dourado Limnoperna fortunei recém-introduzido no sul do Brasil, incluindo sua densidade populacional máxima de 27.275 indivíduos/m2 um ano e meio após o primeiro registro e 62.100 indivíduos/m2 dois anos depois. Também descreve danos causados à fauna nativa e primeiros casos de macrofouling em tubulações no sul do país.
El documento describe los microcontroladores PIC y sus aplicaciones. Los PIC son circuitos integrados programables que pueden modificar su comportamiento según instrucciones. Se utilizan comúnmente para controlar pantallas LCD, teclados, memorias EEPROM, temperatura, robots, motores y más. Existen diferentes familias de PIC con variaciones en memoria, entradas/salidas y funcionalidad. Los PIC con memoria Flash son más flexibles para programación. Se requieren conocimientos básicos de electrónica y programación para trabajar con PIC.
Este documento describe los microcontroladores PIC, que son circuitos integrados programables ampliamente utilizados en proyectos de ingeniería. Explica que un microcontrolador consta de bloques funcionales como memoria RAM, memoria ROM y una unidad lógica. Luego detalla dos tipos populares de microcontroladores PIC, el PIC16F628A y el PIC16F877A, y menciona softwares como PicBasic Pro que facilitan la programación de estos dispositivos. Finalmente, resalta la importancia educativa de los microcontroladores PIC en
Este documento presenta información sobre un curso de microprocesadores dictado por el profesor Marco Aurelio Porro Chulli. El curso se enfoca en los microcontroladores PIC fabricados por Microchip Technology. Estos dispositivos combinan un microprocesador, memoria y interfaces en un solo chip y ofrecen una plataforma de bajo costo para el desarrollo de sistemas electrónicos controlados por software. El documento también brinda detalles sobre las características y periféricos de los PIC, así como instrucciones básicas de ensamblador
C:\Documents And Settings\Earias\Escritorio\Pic 32\Iniciacion A La Programaci...ezequiel
Este documento presenta una introducción a la programación de los microcontroladores PIC32 de Microchip. Describe el hardware y software necesarios, incluyendo placas de desarrollo, programadores y el entorno de desarrollo MPLAB. Luego, muestra un ejemplo paso a paso de cómo crear un proyecto en MPLAB para encender y apagar luces secuencialmente en la placa de desarrollo Starter Kit utilizando operadores matemáticos en C. Finalmente, explica brevemente las características del hardware del PIC32 como puertos E/S
Este documento introduce los conceptos básicos de los microcontroladores. Explica que los microcontroladores son circuitos integrados que integran funciones como memoria, temporizadores y comunicación que antes requerían circuitos externos separados. También describe algunas características clave de los microcontroladores PIC de Microchip como su arquitectura Harvard y RISC, que mejoran su rendimiento. Finalmente, presenta aspectos generales de la arquitectura interna de los microcontroladores, incluyendo sus componentes principales como la CPU, memoria y periféricos.
Este documento describe los microcontroladores PIC fabricados por Microchip. Los PIC son microcontroladores RISC originalmente desarrollados por General Instrument en 1975 para mejorar el rendimiento de E/S de la CPU CP16000. Hoy en día, los PIC vienen con varios periféricos integrados y memoria de programa de 512 a 32.000 palabras. El documento también describe aplicaciones comunes de los PIC como control de pantallas LCD, teclados, memorias EEPROM y dispositivos de audio, así como los tres principales lenguajes de programación para PIC: BASIC,
Microcontroladores: Microcontroladores PIC fundamentos y aplicaciones didácticosSANTIAGO PABLO ALBERTO
Este documento trata sobre los fundamentos y aplicaciones de los microcontroladores PIC. Explica el funcionamiento básico de los puertos del PIC16F84A, cómo configurarlos como entrada o salida, y presenta algunos proyectos prácticos para familiarizarse con el manejo de este microcontrolador. El objetivo principal es que el lector comprenda cómo funcionan los microcontroladores PIC y pueda utilizarlos para resolver problemas mediante el desarrollo de aplicaciones prácticas.
Los microcontroladores PIC son circuitos integrados programables capaces de ejecutar órdenes grabadas en su memoria. Están compuestos de bloques funcionales que cumplen tareas específicas e incluyen unidades centrales de procesamiento, memoria y periféricos de entrada/salida. Derivados del PIC1650 originalmente desarrollado por General Instruments, los PIC son microcontroladores RISC fabricados por Microchip Technology Inc.
El documento presenta información sobre la programación de microcontroladores PIC usando el lenguaje C. Se introducen conceptos como el lenguaje C, el compilador Mikro C y la estructura básica de un programa. Se explica que el lenguaje C permite realizar operaciones a nivel de byte y bit de forma portable. Mikro C es un compilador popular para PIC que facilita la programación en C.
Este documento describe las características y partes principales de los microcontroladores PIC, con un enfoque en el microcontrolador PIC16F84A. Explica que un microcontrolador es un computador completo contenido en un solo chip que controla una tarea específica. Luego describe las diferentes familias de microcontroladores PIC, incluidos los PIC12C de 8 pines, PIC16C de 14 a 28 pines, PIC16F de 18 a 68 pines, PIC17C y PIC18F. Finalmente, proporciona detalles sobre las característic
Este documento describe la arquitectura interna de los microcontroladores PIC de Microchip. Explica que los PIC son circuitos integrados programables con memoria limitada y periféricos internos para control de procesos. Describe la diferencia entre microcontroladores y microprocesadores, y presenta el PIC16F84 como ejemplo, detallando sus características de memoria y periféricos. También introduce el entorno de desarrollo MPLAB de Microchip para programar los PIC.
Este documento describe la evolución de los microcontroladores, incluyendo los primeros modelos como el 8048 de Intel y el 68HC05 de Motorola, así como los más populares actualmente como los PIC de Microchip. Explica que un microcontrolador es un chip que integra un microprocesador, memoria y puertos de entrada/salida, y que se programan en lenguaje binario para controlar diversos dispositivos electrónicos.
Este documento presenta una introducción práctica a los microcontroladores PIC de gama media y mejorada. Explica brevemente qué es un microcontrolador y las familias y gamas de los PIC de 8 bits. Recomienda instalar el software necesario para programar los PIC y practicar con programas similares a los presentados para afianzar los conocimientos.
Este documento presenta un curso de programación de microcontroladores PIC que no requiere conocimientos previos. El curso se enfoca en el PIC 16F84, un microcontrolador económico y fácil de usar para principiantes. El curso enseñará a programar PICs usando el software MPlab y un programador ProPic, y cubrirá una variedad de ejemplos y proyectos prácticos.
El documento describe los diferentes tipos de microcontroladores PIC fabricados por Microchip, incluyendo sus características, clasificaciones y aplicaciones. Explica la evolución de los PIC de 8 bits, así como la introducción de los PIC de 16 bits para aplicaciones más exigentes. También cubre los microcontroladores híbridos DSC con capacidades de procesamiento digital de señales.
El documento proporciona una introducción a los microcontroladores. Brevemente describe la historia de los microcontroladores desde 1971 e incluye secciones sobre las características, componentes, aplicaciones y ventajas de los microcontroladores. También cubre temas como la diferencia entre microprocesadores y microcontroladores, y factores a considerar al seleccionar un microcontrolador para un proyecto.
Este documento describe dos prácticas de laboratorio para programar un microcontrolador PIC16F84A utilizando MPLAB y Proteus. La primera práctica simula un decodificador 7447/7448 y la segunda simula contadores 74193 y 74192. El documento incluye diagramas de flujo y esquemáticos para cada práctica y concluye destacando las ventajas de usar PIC, MPLAB y la simulación con Proteus.
El documento describe una sesión introductoria sobre microcontroladores AVR. Explica que los microcontroladores son circuitos integrados que contienen hardware de computadora completo. Luego describe la arquitectura de los microcontroladores AVR fabricados por Atmel, incluida su memoria y periféricos. Finalmente, explica cómo configurar el entorno de programación Atmel Studio y cómo manipular los puertos digitales de entrada y salida en el microcontrolador Atmega8 usando registros internos.
1. El documento describe la importancia de los microcontroladores PIC fabricados por Microchip, los cuales dominan el mercado de microcontroladores de 8 bits.
2. Los microcontroladores PIC se clasifican en tres gamas (base, media y mejorada) dependiendo de sus capacidades y recursos.
3. Los microcontroladores PIC de 16 bits son más potentes que los de 8 bits y están diseñados para aplicaciones más exigentes.
Este documento presenta un diplomado de 180 horas en microcontroladores ofrecido por el Instituto Politécnico Nacional. El objetivo general es proporcionar conocimientos teóricos y prácticos sobre la estructura, programación e implementación de microcontroladores PIC mediante 6 módulos que cubren temas como fundamentos de programación, programación en ensamblador, introducción a microcontroladores, la familia PIC, programación de PICs y comunicación paralela y serial.
Examen de Selectividad. Geografía junio 2024 (Convocatoria Ordinaria). UCLMJuan Martín Martín
Examen de Selectividad de la EvAU de Geografía de junio de 2023 en Castilla La Mancha. UCLM . (Convocatoria ordinaria)
Más información en el Blog de Geografía de Juan Martín Martín
http://blogdegeografiadejuan.blogspot.com/
Este documento presenta un examen de geografía para el Acceso a la universidad (EVAU). Consta de cuatro secciones. La primera sección ofrece tres ejercicios prácticos sobre paisajes, mapas o hábitats. La segunda sección contiene preguntas teóricas sobre unidades de relieve, transporte o demografía. La tercera sección pide definir conceptos geográficos. La cuarta sección implica identificar elementos geográficos en un mapa. El examen evalúa conocimientos fundamentales de geografía.
En la ciudad de Pasto, estamos revolucionando el acceso a microcréditos y la formalización de microempresarios informales con nuestra aplicación CrediAvanza. Nuestro objetivo es empoderar a los emprendedores locales proporcionándoles una plataforma integral que facilite el acceso a servicios financieros y asesoría profesional.
Ofrecemos herramientas y metodologías para que las personas con ideas de negocio desarrollen un prototipo que pueda ser probado en un entorno real.
Cada miembro puede crear su perfil de acuerdo a sus intereses, habilidades y así montar sus proyectos de ideas de negocio, para recibir mentorías .
Business Plan -rAIces - Agro Business Techjohnyamg20
Innovación y transparencia se unen en un nuevo modelo de negocio para transformar la economia popular agraria en una agroindustria. Facilitamos el acceso a recursos crediticios, mejoramos la calidad de los productos y cultivamos un futuro agrícola eficiente y sostenible con tecnología inteligente.
ACERTIJO DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARÍS. Por JAVI...JAVIER SOLIS NOYOLA
El Mtro. JAVIER SOLIS NOYOLA crea y desarrolla el “DESCIFRANDO CÓDIGO DEL CANDADO DE LA TORRE EIFFEL EN PARIS”. Esta actividad de aprendizaje propone el reto de descubrir el la secuencia números para abrir un candado, el cual destaca la percepción geométrica y conceptual. La intención de esta actividad de aprendizaje lúdico es, promover los pensamientos lógico (convergente) y creativo (divergente o lateral), mediante modelos mentales de: atención, memoria, imaginación, percepción (Geométrica y conceptual), perspicacia, inferencia y viso-espacialidad. Didácticamente, ésta actividad de aprendizaje es transversal, y que integra áreas del conocimiento: matemático, Lenguaje, artístico y las neurociencias. Acertijo dedicado a los Juegos Olímpicos de París 2024.
3. LOS AUTORES
Andrés Raúl Bruno Saravia
andres.saravia@mcelectronics.com.ar
Tiene una amplia experiencia docente, se ha desempeñado como Profesor de
Microcomputadoras desde 1992 hasta 1997, Profesor de Automatizaciones y
Electrónica Industrial desde 2002 hasta 2006, y como Profesor con dedicación
exclusiva de Microcontroladores PIC desde el año 2006 al presente. Es Training Partner
de Microchip y dirige el Centro Regional de Entrenamiento Argentina desde el año
2008. Ha escrito diferentes trabajos: Manual de Microcontroladores PIC16F87X,
Manual de Microcontroladores PIC Línea BASE, Programación de Microcontroladores
PIC en Assembler y Manual de PICBASIC para MCU PIC.
Ariel Coria
ariel.coria@mcelectronics.com.ar
Es estudiante avanzado de la carrera de Ingeniería Electrónica en la Universidad de
Buenos Aires con especialidad en sistemas de control. Posee sólidos conocimientos de
programación en C orientado a microcontroladores PIC y sistemas embebidos.
Actualmente está encargado del departamento de soporte de la empresa
mcelectronics, donde ha participado en el desarrollo de herramientas de
entrenamiento.
3
5. INTRODUCCIÓN
Luego de 8 meses de redacción, edición, diseño y corrección estamos orgullosos de
poder presentar nuestro primer libro.
Para realizar esta obra hemos repartido el trabajo entre 2 autores, un docente
certificado por Microchip, el cual posee un reconocido historial en el dictado de
seminarios de entrenamiento, y que esta avocado exclusivamente a los
microcontroladores PIC, y la experiencia de un desarrollador, ampliamente
experimentado en el diseño de aplicaciones embebidas para MCU PIC18F en lenguaje
C18 y que esta certificado también por Microchip.
El texto ha sido dividido en 3 grandes partes. En la primera, hacemos una descripción
profunda del hardware que forma al microcontrolador PIC18, detallando las
características técnicas y funcionamiento de su nuevo núcleo, los nuevos tipos de
osciladores, la utilización de interrupciones y el manejo de la memoria de programa y
de datos. Luego realizamos un detalle pormenorizado de cada uno de sus periféricos
desde los puertos, hasta las unidades de comunicación seriales. Para todo esto hemos
utilizado como modelo el PIC18F4620, el cual, por sus características engloba la mayor
cantidad de periféricos y a un muy bajo costo. De esta forma el lector podrá adquirir el
mismo o aplicar el conocimiento de esta unidad para entender el de otras, ya que la
gran característica de los microcontroladores PIC es que sus periféricos son iguales, lo
mismo que la operación de sus núcleos, solo cambian la cantidad de periféricos que
integran, o memoria de programa y datos, entre los diversos modelos que existen.
En la segunda parte, y luego del gran detalle del hardware, introduciremos al lector en
el conocimiento del lenguaje de programación C, aplicado al campo de los
microcontroladores PIC. Este capítulo es esencial para aprender las reglas
fundamentales que rigen a este lenguaje de programación. De forma clara y sintética
le explicamos lo que usted necesita saber para poder entender y programar en
lenguaje C.
En la tercera parte aplicamos los conocimientos adquiridos durante todo el libro de
forma práctica y amena. Iniciamos con una descripción rápida de las características del
compilador C18 y de las librerías que Microchip ha desarrollado para facilitarle al
programador el desarrollo de aplicaciones. Luego describimos una serie de ejemplos
que han sido desarrollados sobre placas de entrenamiento, haciendo una
5
6. descripción detallada del algoritmo y la especificación del hardware, incluyendo los
circuitos y el listado de programas con descripciones línea a línea de cada instrucción.
Hemos elegido ejemplos que parten desde lo más sencillo como encender un LED
hasta lo más complejo como realizar un sistema de adquisición de datos con control
por LCD y USB. Los ejemplos crecen gradualmente en su nivel de complejidad,
manteniendo en todos los casos una profunda descripción de los mismos.
Esperamos que este libro cumpla con los principios a partir de los cuales se gestó:
enseñar a programar PIC18F en lenguaje C de forma clara y sencilla.
Por favor no dude en hacernos llegar sus comentarios a info@mcelectronics.com.ar
El equipo de mcelectronics
PROGRAMAS NECESARIOS A LO LARGO DE LA OBRA
Para poder compilar los programas propuestos necesita el entorno de desarrollo MPLAB y el compilador C18
de Microchip. Ambos se pueden obtener en forma gratuita desde la web del libro:
www.mcelectronics.com.ar/techtrain
6
7. A John Magrane, James Baldwin y Stu Chandler de Microchip Technology.
A los alumnos que a lo largo de estos años contribuyeron con sus invaluables aportes.
A nuestras familias y amigos por el apoyo incondicional.
7
9. SUMARIO
EL MICROCONTROLADOR PIC18F4620
FUNCIONES DEL OSCILADOR
CONTROL DE ENERGIA
CIRCUITO DE RESET
ORGANIZACIÓN DEL LA MEMORIA
MEMORIA DE DATOS EEPROM
MEMORIA FLASH DE PROGRAMA
MULTIPLICADOR POR HARDWARE
PUERTOS DE ENTRADA-SALIDA
INTERRUPCIONES
MODULO TIMER0
MODULO TIMER1
MODULO TIMER2
MODULO TIMER3
MODULOS CAPTURA/COMPARACION/PWM (CCP)
MODULO MEJORADO (ECCP)
MODULO PUERTO SERIE SINCRONICO MAESTRO
EUSART
CONVERSOR ANALOGICO DIGITAL
MODULO COMPARADOR
MODULO COMPARADOR DE LA TENSIÓN DE REFERENCIA
PROGRAMACION EN LENGUAJE C
EL COMPILADOR C18
GUIA VISUAL MPLAB
PRACTICAS EN C
11
15
29
43
51
73
79
90
91
105
119
125
135
141
147
159
177
211
235
249
259
265
293
313
329
Incluye prácticas básicas y avanzadas para realizar con la placa MCE Starter KIT Student
Advanced. Puede encontrar el código fuente completo y programas adiconales en:
www.mcelectronics.com.ar/techtrain
usuario: su dirección de email*
clave: 20062010
* Para registrarse, por favor remita su dirección de email junto con nombre y apellido a:
info@mcelectronics.com.ar
9
11. 1. EL MICROCONTROLADOR
PIC18F4620
HISTORIA Y EVOLUCIÓN DE LOS PIC18
Hacia finales del siglo XX (1999) Microchip se encamina a transformarse en el Lider
indiscutible de los microcontroladores de 8 Bits. El PIC16F84 revolucionó el campo de
los microcontroladores y la familia PIC16F87X potenció la evolución de los sistemas de
control embebido. Pero el gran salto final lo produce la compañía al responder a una
necesidad de mercado, los PIC18. Esta familia, resultado de la convergencia de las
tecnologías usadas en las familias PIC16 y PIC17, provocó la segunda revolución
tecnológica iniciada con el PIC16F84.
Dentro de la familia PIC18 contamos con microcontroladores específicos para
conectividad USB y Ethernet, así como con micros de propósito general como el
PIC18F4620 en el cual centraremos nuestro estudio.
El PIC18F4620 se encuentra dentro de una serie de PICs con características similares
conformada por estos 4 dispositivos:
PIC18F2525
PIC18F2620
PIC18F4525
PIC18F4620
Esta serie es una remake del camino evolutivo de la primera familia de PIC18C
fabricada y presentada al mercado por Microchip en Junio de 1999. La serie original
estuvo formada por 4 dispositivos básicos:
PIC18C242
PIC18C252
PIC18C442
PIC18C452
Los cuales rápidamente fueron transformados a versiones FLASH en 2002 pasando a
llamase PIC18FXX2 (PIC18F242/252/442/452).
En Septiembre del año 2004 Microchip presenta al mercado su nueva renovación de la
familia originaria, los PIC18F2420/2520/4420/4520, y en Junio de ese año se anuncia
también la inserción al mercado de los PIC18F2525/2620/4525/4620.
11
12. 1.0 CARACTERÍSTICAS GENERALES:
La primera familia PIC18 introdujo grandes reformas al núcleo PIC para satisfacer las
demandas de mercado. La primera fue la memoria de programa la cual en PIC16 se
encontraba segmentada en una estructura de página de 2048 [2K] posiciones cada
una. Esta familia solo podía llegar a direccionar hasta 8096 [8K] posiciones de memoria
de programa pero de forma indirecta auxiliada por un registro denominado PCLATH. La
estructura provocaba una cierta complejidad en el manejo de programas de más de 2K
a lo cual Microchip tomo nota y por ello al diseñar PIC18 lo modificó.
En algunos dispositivos podemos trabajar no solo con memoria de programa interna
sino también con memoria de programa externa. PIC18 incorpora por tanto un
Contador de Programa en la cual se pueden direccionar hasta 1024K [1M] en forma
lineal, sin una estructura paginada, es decir más de un millón de instrucciones. Además
la arquitectura se diseño pensando en programar los dispositivos con lenguajes de
alto nivel como C, por lo cual expandió la memoria de datos hasta 4Kbytes y la diseñó
de forma tal de poderla trabajar tanto en modo banqueado como en modo lineal
(esto último a través de los registros internos FSR). Las reformas le dan capacidad al
usuario para controlar el STACK del Contador de Programa en las subrutinas.
Además se amplió el set de instrucciones de 35 que había en la familia PIC16 a las 74
que podemos encontrar ahora en PIC18. Estas nuevas instrucciones facilitan las
operaciones lógicas al incorporar muchos más saltos condicionales y la posibilidad de
realizar multiplicaciones por hardware.
A nivel periféricos la potencia fue máxima, se introdujeron hasta 5 Timers, 2 UARTS, 2
SPI, 2 I2C, la memoria EEPROM de datos tiene una capacidad de 1024 bytes, la
memoria de programa puede almacenar tanto datos como instrucciones, se
introdujeron nuevos periféricos de comunicaciones como puerto USB, CAN y hasta
Ethernet en los dispositivos más grandes que llegan a tener hasta 100 terminales. La
revolución de la familia PIC18, iniciada hace ya 10 años continua empujando la
aparición de nuevos dispositivos, y provoca la generación de nuevas remakes en la
familia PIC16 como los PIC16F88X que incorporan muchas de las características a nivel
periférico de PIC18 y la aparición de los nuevos PIC Línea Media Mejorada como los
PIC161XXX que son una adaptación de PIC18 en los PIC16.
Para programar PIC18, Microchip diseño un compilador en Lenguaje C basado en las
características del Hardware y que fue concebido conjuntamente con la arquitectura
de PIC18. De esta forma se logra una integración entre hardware y software que
permite optimizar los tiempos de procesamiento haciendo posible la utilización del
lenguaje C, incluso en aplicaciones de control automático.
El compilador de C desarrollado por Microchip se llama MCC18 o simplemente C18. El
mismo se caracteriza por ser un compilador ANSI C estricto a tal punto que el
12
13. desarrollador de computadoras que trabaja en C puede realizar un programa sobre
C18 sin mayores conocimientos sobre el hardware de los PIC.
A partir de PIC18 la electrónica evoluciona hacia una nueva era en la tecnología del
control embebido.
1.1 DESCRIPCIÓN DEL PIC18F4620
A continuación comenzaremos a describir las características del PIC18F4620, iremos de
lo general a lo particular. Comenzaremos por hacer una descripción de sus capacidades
en el núcleo del procesador y luego de sus periféricos:
Características generales del Procesador:
•
•
•
•
•
•
•
•
Memoria de Programa: 32K Word para almacenar Instrucciones.
Memoria de Datos: 3968 bytes
Puertos I/O: 36
Canales ADC: 13
Módulos CCP/ECCP: 1/1
Módulos de comunicaciones: SPI, I2C, EUSART
Timers: 1 de 8 bits, 3 de 16 bits
Comparadores integrados: 2
PIN OUT:
Nota: si bien el PIC18F4620 tiene 36 Puertos I/O, el PORT RE3, multiplexado con el
terminal de MCLR, puede operar solo como puerto de entrada.
13
15. 22.
PROGRAMACIÓN EN
LENGUAJE C
EN ESTE CAPITULO
22.0 INTRODUCCIÓN A LA PROGRAMACION EN LENGUAJE C
22.1 ESTRUCTURA BÁSICA DE UN PROGRAMA EN LENGUAJE C
22.2 COMENTARIOS
22.3 REPRESENTACIÓN NUMÉRICA Y ALFANUMÉRICA
22.4 TIPOS DE DATOS
22.5 MODIFICADORES DE TIPOS DE DATOS
22.6 DECLARACIÓN DE VARIABLES
22.7 DECLARACIÓN DE TABLAS (MATRICES)
22.8 MATRICES
22.9 MODIFICADORES DE TIPO DE ACCESO
22.10 FUNCIONES
22.11 VARIABLES
22.12 OPERADORES
22.13 PRECEDENCIA DE DOS OPERADORES
22.14 MODELADOR CAST
22.15 COMANDOS CONDICIONALES
22.16 COMANDO FOR
22.17 COMANDO BREAK O CONTINUE
22.18 GOTO
22.19 ESTRUCTURAS Y UNIONES
22.20 UNIONES
22.21 TYPEDEF
22.22 CREACIÓN DE LIBRERÍAS
15
17. 22 INTRODUCCIÓN A LA PROGRAMACION EN LENGUAJE C
22.1 ESTRUCTURA BÁSICA DE UN PROGRAMA EN LENGUAJE C
Un programa en C consiste en una o varias “Funciones”. Basado en está afirmaciones
debe existir un mecanismo que garantiza que todos los programas inicialicen de una
misma forma, por lo tanto hay una función que debemos llamar main ().
Sintaxis:
main()
{
//primera función a ser ejecutada
// inicío del cuerpo de la función
<comandos>; // otras funciones pueden ser adicionadas
// fin del cuerpo de la función
}
Vale nombrar también que existen algunas reglas básicas que deben ser seguidas en
relación a los conceptos de lenguaje.
Toda función de C debe ser iniciada por una llave ( { ) y cerrada por otra llave ( } ).
Los paréntesis y las llaves son elementos obligatorios de una función.
Todas las instrucciones deben estar dentro de dos llaves.
Las instrucciones en C siempre encerradas por un punto y coma (;).
Vale nombrar también que las llaves sirven para separar un bloque de instrucciones.
22.2 COMENTARIOS
Existen dos maneras de comentar en C. Podemos usar “ // ” que sirve para comentar
una linea o usar “ /* ” y “ */” para comentar un bloque de comentarios.
Ejemplo:
/*
MCElectronics-Fabricante de Herramientas para PIC
Este es un ejemplo de comentario.
*/
Char contador ;
// contador de uso general
En el ejemplo insertamos un comentario usando /* y */ para las lineas.En el segundo
ejemplo usamos para comentar // para comentar la declaración de una variable
contador.
IDENTIFICADORES
Un identificador es una palabra usada para declarar una constante o una variable.
Algunas reglas para los identificadores:
Un identificador no puede tener símbolos gráficos, con excepción de un (_).
No puede tener acentuación gráfica( acento grave, acento agudo, tilde etc).
Un identificador no puede iniciar nunca con un número.
No puede ser una palabra reservada pues ella son sólo uso estricto del compilador.
17
18. PALABRAS RESERVADAS DEL LENGUAJE C
Auto
Default
Flota
Register
Struct
Volatile
break
do
for
return
swich
while
case
double
goto
short
typedef
char
else
if
signed
union
const
enum
int
sizeof
unsigned
continue
extern
long
static
void
Otras palabras pueden ser reservadas, como nombres de directivas especificas de cada
compilador.
22.3 REPRESENTACIÓN NUMÉRICA Y ALFANUMÉRICA
Las constantes pueden ser representadas conforme a los siguientes ejemplos:
TABLA 22.1 – REPRESENTACIÓN NUMÉRICA EN LENGUAJE C
Representación numérica
Decimal
Hexadecimal
Binario
Octal
Caracteres
String
Ejemplo
250
0x55
0b10100011
073
“&”
“teste”
22.4 TIPOS DE DATOS
La siguiente tabla nos muestra los tipos de datos soportado por el compilador C18.
TABLA 22.2 TIPOS DE DATOS EN EL COMPILADOR C18
Tipo
char
int
short
long
float
double
void
18
Tamaño
8
16
16
32
32
64
0
Mínimo
-128
-32768
-32768
-2^31
-3,4 x 10^38
-1,8 x 10^308
Sin valor
Máximo
127
32767
32767
-2^31-1
3,4 x 10^38
1,8 x 10^308
Sin valor
19. 23.
COMPILADOR C18
EN ESTE CAPITULO
23.0 MPLAB C18
23.1 CARACTERÍSTICAS DEL COMPILADOR C18
23.2 ESTRUCTURA DEL DIRECTORIO DEL MPLAB C18
23.3 FUNCIONES ESTÁNDAR DEL LENGUAJE C EN MPLAB C18
19
21. 23.0 MPLAB C18
23.1 CARACTERÍSTICAS DEL COMPILADOR C18
El MPLAB C18 es el compilador de Microchip para sus PIC18 y tiene un lenguaje
bastante similar al lenguaje C convencional, excepto que se le han agregado diversas
adaptaciones para volverlo mas apropiado para el ambiente de programación de los
PIC.
Este compilador se maneja perfectamente dentro del entorno visual del MPLAB y sus
características son:
- Solo se utiliza para los PIC18
- Posee las funciones estándar del lenguaje C
- Permite la inclusión de lenguaje ensamblador
- Soporta interrupciones.
- Esta optimizado para la arquitectura de los PIC18
- Contiene librerías para comunicaciones SPI, I2C, USART y periféricos externos como
LCD inteligentes
- Como utiliza el MPLAB, el entorno de programación es similar al que estuvimos
trabajando en assembler.
- Versión estudiantil gratuita
Todas estas características hacen del compilador MPLAB C18 una herramienta ideal
para los desarrollos que podamos realizar con los PIC18.
23.2 ESTRUCTURA DEL DIRECTORIO DEL MPLAB C18
Al instalar el MPLAB C18 en la PC, este se instala por defecto en el directorio
C:MCC18.
Luego se crean las siguientes carpetas que contienen los archivos necesarios para
utilizar el compilador.
h: Este directorio contiene los archivos de cabecera (header files) de la librería
estándar de C y los archivos con las especificaciones del procesadores PIC de
lib: Contiene las librerías estándar del lenguaje C (clib.lib o clib_e.lib), las propias del
los microcontroladores PIC (p18xxxx.lib o p18xxxx_e.lib donde xxxx especifica el
dispositivo) y los módulos start-up (c018.lib, c018_e.lib, c018i.lib, c018i_e.lib,
c018is.lib, c018iz_e.lib)
lkr: Contiene los archivos que utilizara el enlazador del lenguaje (Linker Script files)
mpasm: contiene los archivos de cabecera que utiliza el ensamblador MPASM para los
dispositivos soportados por el compilador MPLAB C18.
21
22. 23.3 FUNCIONES ESTÁNDAR DEL LENGUAJE C EN MPLAB C18
El compilador MPLAB C18 soporta muchas de las funciones que posee la biblioteca
estándar de ANSI C y podemos incluirlos en nuestro código fuente con la simple
inclusión del archivo de cabecera asociado a esa función. En este capitulo haremos un
repaso de las funciones que mas nos interesa.
23.3.1 FUNCIONES DE LA BIBLIOTECA <ctype.h>
Esta biblioteca contiene funciones útiles para realizar operaciones lógicas con
caracteres.
Isalnum
Function: Isalnum
Prototipo:
unsigned char isalnum( unsigned char ch );
Descripción: retorna un valor distinto de cero si "ch" es una letra minúscula "a-z" o
mayúscula "A-Z", uno de los dígitos decimales "0-9" o cualquier otro carácter
alfabético local.
Archivo: isalnum.c
Ejemplo: control = isalnum(65); // en este caso control sera
cero
// distinto de
Isdigit
Función: Isdigit
Prototipo:
unsigned char isdigit( unsigned char ch );
Descripción: Retorna un valor distinto de cero si "ch" es cualquiera de los dígitos
decimales (0-9).
Archivo: isdigit.c
Ejemplo:
unsigned char Decimal,c = ‘5’;
Decimal = isdigit(c);
22
23. 23.3.2 FUNCIONES DE LA BIBLIOTECA <math.h>
Esta biblioteca contiene funciones para las operaciones matemáticas básicas y muchas
de ellas hacen uso de números en coma flotante.
acos
Función: acos
Prototipo:
float acos (float x);
Descripción: Retorna el arcocoseno en radianes de la variable x, que debe tener un
valor entre -1 y 1. El valor de retorno esta comprendido entre 0 y π.
Archivo: acos.c
Ejemplo:
float radianes,resultado;
resultado = acos(radianes); /*Retorna el arcocoseno de la variable
radianes*/
cos
Función: cos
Prototipo:
float cos (float x);
Descripción: Esta función calcula el coseno de la variable x (en radianes), el valor de
retorno estará comprendido entre -1 y 1.
Archivo: cos.c
Ejemplo:
float coseno;
Coseno = cos(1);
asin
Función: asin
Prototipo:
float asin( float x );
Descripción: Esta función calcula la inversa del seno (arcoseno) del argumento x,
que debe estar entre -1 y +1. El valor devuelto es el arcoseno en radianes, y está entre
-π/2 y π/2.Argumentos fuera del rango puede producir errores de dominio y el
resultado devuelto es NaN
23
25. 25.
PRÁCTICAS Y ESQUEMÁTICOS
EN ESTE CAPITULO
PRÁCTICA 1 LED
PRÁCTICA 2 PARPADEO
PRÁCTICA 3 ROTACIÓN
PRÁCTICA 4 DEBOUNCE
PRÁCTICA 5 CONTADOR DECIMAL
PRÁCTICA 6 CONTADOR DECIMAL DE 2 DIGITOS
PRÁCTICA 7 MENSAJES AL LCD
PRÁCTICA 8 CONTADOR DE 5 DÍGITOS
PRÁCTICA 9 RELÉ TEMPORIZADO
PRÁCTICA 10 PWM
PRÁCTICA 11 LED RGB
PRÁCTICA 12 RELOJ DE TIEMPO REAL
PRÁCTICAS 13 Y 14 SENSOR DIGITAL DE TEMPERATURA CON USB
PRÁCTICA 15 MULTIPLEXADO DE CANALES ANALÓGICOS
PRÁCTICA 16 ESCRITURA EN MEMORIA EEPROM INTERNA
Recuerde que puede descargar el código fuente de estas prácticas registrándose en
www.mcelectronics.com.ar/techtrain
25
27. 25.0 PRACTICAS
En esta segunda parte del libro pretendemos que aplique los conocimientos teóricos
obtenidos hasta ahora en ejercicios prácticos que puedan ser simulados en la placa de
enseñanza MCE Starter KIT Student y MCE Starter KIT Student Advanced. Estos
ejercicios afianzaran sus conocimientos sobre la programación en C18 y aprenderá de
manera simple y efectiva el manejo de periféricos externos como el Display LCD.
PRACTICAS BÁSICAS
PRACTICA 1 - LED
Comenzamos con la serie de ejercicios y en esta primera práctica realizaremos el
ejercicio simple de encender un led. Lo que buscamos con este ejercicio es mostrar
cual será la estructura básica de un programa en C18.
Ejercicio 1: Encender el led 7 de la matriz de Led’s de la placa MCE Starter KIT Student y
Student Advanced con el PIC18LF4620.
Figura 1: Circuito esquemático de la practica 1.
27
28. Solución
/* Bits de Configuracion */
#pragma config OSC = XT
#pragma config WDT = OFF, LVP = OFF, MCLRE = ON
/* Includes */
#include "p18f4620.h"
// Archivo de cabecera
// Este archivo contiene los registros que utilizaremos del micro
/*Programa Principal*/
void main (void)
{
TRISB = 0b01111111;
LATBbits.LATB7 = 1;
while (1)
;
// Configuro bit 7 del Port B como
// salida, los demas son entradas.
// Enciendo Led a traves del bit 7
// del registro LATB.
// Loop infinito
}
Análisis
Antes de comenzar un programa o un proyecto con PIC, debemos tener en claro cuales
van a ser los recursos o periféricos que vamos a utilizar del microcontrolador. Estos
recursos los configuramos a través de los “Bits de Configuración” y podemos definirlos
en el código fuente. Es una buena práctica configurar los recursos de esta manera ya
que nos elimina el tedioso proceso de realizar las configuraciones en el momento de la
grabación.
La directiva que nos permite modificar estos bits que se encuentran en posiciones
especificas de la memoria de programa es #pragma config. Esta directiva posee una
serie de sentencias que nos permite definir, por ejemplo, cual será el oscilador a
utilizar o si queremos deshabilitar el “Perro Guardián” como lo hicimos en el ejemplo.
Observe que con la expresión OSC=XT definimos un oscilador de cristal de baja
frecuencia como el que posee la placa Student Advanced, de 4MHz, con LVP=OFF
deshabilitamos la programación de bajo voltaje, con WDT=OFF apagamos el perro
guardián y con MCLRE=ON habilitamos al pin 1 del microcontrolador como pin de
reset.
28
29. El programa comienza definiendo ademas los registros del procesador con la directiva
#include, esta directiva incorpora el archivo de cabecera o Header p18f4620.h a
nuestro proyecto. Este archivo posee las definiciones de los registros que utiliza el
procesador del PIC. Todos los programas en C deben comenzar con la función main, el
cual lo definimos de la forma
void main (void)
{
//Sentencias del programa principal
}
Dentro de la función main se declaran las sentencias principales, las cuales van a
conformar el cuerpo del programa.
Los prefijos void indican que la función no retornara ningún valor y tampoco tomara
ningún argumento. De esta manera indicamos al compilador que la función principal
(main) realizara un “proceso” que no devolverá ningún valor.
Una vez que definimos la función principal, comenzamos el bloque de instrucciones en
donde inicializamos el registro TRISB indicándole que la única salida del Port B será el
pin 7. La directiva 0b indica al compilador que la constante que se escribirá debe
tomarlo como un dato binario, esta es una manera de cargar un registro directamente
con su valor en binario.
Encendemos el led asignando un 1 a la variable LATBbits.LATB7 que controla los latch
de salida de los puertos y nos quedamos en un loop infinito con la sentencia while (1);
La sintaxis de la sentencia while es
while (expresión) Sentencias
Mientras la expresión sea verdadera, se ejecutara el bloque de sentencias que
conforman el While, pero si la expresión es falsa salimos del ciclo continuando con
nuestro programa.
Para el Compilador C18, si el resultado de la expresión es igual a cero, lo tomara como
false (falso), pero cualquier resultado distinto de cero lo tomara como True
(Verdadero), en nuestro caso la expresión de nuestro código es 1, que siempre será
verdadero, esta es una manera elegante de generar un loop infinito en C.
Con esta práctica pretendemos que aprenda de manera simple cual será la estructura
básica de un programa en C18, en la cual pudimos identificar donde colocar el bloque
de instrucciones principales, los bits de configuración y como incluir el archivo de
cabecera que posee la definición de los registros del microcontrolador.
29
30. PRACTICAS 13 y 14 - SENSOR DIGITAL DE TEMPERATURA
Con lo aprendido hasta ahora en estas prácticas podemos realizar diversos proyectos.
El que mostramos ahora tiene muchas aplicaciones y se trata del sensor digital de
temperatura.
Ejercicio: Crear un programa para sensar la temperatura entregada por el dispositivo
TC1047. Este dispositivo analógico entregara una determinada tensión como la que se
muestra en la grafica. El programa debe mostrar la temperatura en pantalla con un
digito decimal y a la vez enviarla por el puerto serie. En la práctica 14 se debe agregar
conectividad USB.
Figura 13: Grafica de la tensión de salida (Vout) del sensor en función de la
temperatura.
Solución
/* Includes */
#include "p18f4620.h"
#include "delays.h"
#include "xlcd.h"
#include "stdlib.h" //Libreria que contiene la funcion itoa
/* Definiciones */
30
31. #define Vref
1.75
#define Decimales_precision
10
/* Variables */
#pragma udata
unsigned char Conversion;
float Temp;
char Temperatura[3]; // Cadena de String
float Vout;
int Entero;
int Decimas;
/* Prototipos */
void ADC_Init(void);
unsigned char ADC_Convert(void);
void USART_Init(void);
void USART_Trans(char Dato);
/* Programa Princicpal ***/
void main(void)
{
Temp = 0;
Delay1KTCYx(5);
// Inicializo
//Retardo para iniciar el LCD
OpenXLCD( FOUR_BIT & LINES_5X7); //Inicializamos LCD
putrsXLCD(" Temperatura");
// Enviamos mensaje al LCD
// Inicializmos la USART
USART_Init();
// Inicializamos conversor ADC
ADC_Init();
while(1)
{
// comenzamos conviertendo el valor leido en el conversor
// en grados dentro de una variable del tipo float
Conversion = ADC_Convert();
Vout = (float)(Conversion*Vref)/255;
Temp=(float)(Vout - 0.5)/ 0.01;
// Para poder mostrarlo en el LCD se debe pasarlo a ASCII
// Lo que realizamos es una conversion de float a int para
// quedarnos primero con la parte entera
Entero = (int)Temp;
31
32. // Enviamos ese valor al LCD y a la USART
USART_Trans('r');
// Comando de retorno para la USART
WriteCmdXLCD(NEXT_LINE + 4); // Nos posicionamos en el LCD
itoa(Entero,Temperatura);
// Realizo conversion en ASCII
putsXLCD(Temperatura);
USART_Trans(Temperatura[0]);
USART_Trans(Temperatura[1]);
// y lo enviamos al LCD
// y a la USART
// Luego escribimos el punto que separa el entero de las
// decimas
WriteDataXLCD('.');
USART_Trans('.');
// y convertimos las decimas en ASCII
Temp = (Temp - (int)Temp) * Decimales_precision;
Decimas=(int)Temp;
itoa(Decimas,Temperatura);
// Y lo mandamos al LCD y a la USART
putsXLCD(Temperatura);
putrsXLCD(" grados");
USART_Trans(Temperatura[0]);
USART_Trans(Temperatura[1]);
WriteCmdXLCD(CURSOR_OFF & BLINK_OFF); // Apagamos cursor
}
}
void DelayFor18TCY( void )
{
Delay100TCYx(1);
}
void DelayPORXLCD(void)
{
Delay1KTCYx(15);
}
void DelayXLCD(void)
{
Delay1KTCYx(5);
32
// Retardo de 100uSeg
// Delay de 15mS
// ciclos = (TimeDelay * Fosc)/4
// ciclos = (15mS * 4Mhz)/4
// ciclos = 15000
// Delay de 5mS
// ciclos = (TimeDelay * Fosc)/4
// ciclos = (5mS * 4Mhz)/4
33. // ciclos = 5000
}
void ADC_Init(void)
{ // Inicialimos el conversor Analogico-Digital
// Comenzamos configurando cuales van a ser los pines
// analogicos y digitales.
//La siguiente configuracion coloca la referencia en VREF+ (AN3)
//para poder colocar la referencia con el pote a 1,75V
//y configura los 4 primeros canales como analogicos
ADCON1 = 0b00011010;
}
// Justificmaos a izquierda, elegimos un tiempo de adquisicion
// de 20TAD y FOSC/2
ADCON2 = 0b00111000;
// Seleccionamos canal 4(RA5), alli encontramos el sensor
ADCON0 = 0b00010001;
unsigned char ADC_Convert(void)
{ // funcion que comienza la conversion y devuelve el resultado
ADCON0bits.GO_DONE = 1;
// Comienzo la conversion
while (ADCON0bits.GO_DONE == 1); // Espero a que se complete
return ADRESH;
// retorno la parte alta
// del resultado
}
void USART_Init(void)
{ // Procedimiento que inicializa la comunicacion serie
// Inicializamos la comunicacion con una velocidad de 9600 bps
// para ello asignamos un Baud rate de alta velocidad
// y cargamos el registro SPBRG con 25 en decimal
SPBRG = 25;
// Configuramos los pines de salida
TRISCbits.TRISC6 = 1;
TRISCbits.TRISC7 = 1;
// Comenzamos con la configuracion de la transmicion
// modificando el registro de estado de la transmicion TXSTA
TXSTA = 0b00100100;
// Configuramos una comunicacion asincronica de 8 bits
// en alta velocidad
33
34. // Configuramos un generador de baudios de 8 bits
BAUDCONbits.BRG16 = 0;
}
RCSTAbits.SPEN = 1;
// Habilitamos el Port Serial
void USART_Trans(char Dato)
{ // esta funcion envia caracteres por el puerto serie
PIR1bits.TXIF = 0;
// Borramos flag de transmision
TXREG = Dato;
while(TXSTAbits.TRMT = 0);
}
34
// Enviamos dato
// esperamos a que se termine
// la transmicion
36. Análisis
El sensor de temperatura utilizado para esta práctica nos entrega la temperatura en
grados Celsius y por la grafica, sabemos que cuando el sensor entrega 500mV, la
temperatura será de 0º C. Como el sensor se comporta de manera lineal en el rango de
temperatura que va de -40ºC a 125ºC, podemos utilizar una formula lineal para realizar
la conversión de la tensión entregada por el sensor a temperatura en grados Celsius. La
formula que utilizamos es:
Vout(Volts) = 10mV/ºC * Temperatura(ºC) + 500mV
Así que podemos despejar la temperatura medida por el sensor sabiendo cual es su
tensión de salida.
Temperatura(ºC) = (Vout(Volts) – 500mV) / 10mV/ºC
Donde los 10mV/ºC indica la sensibilidad del sensor de temperatura (10mV por cada
grado centígrado que varia la temperatura).
Todas estas cuentas requieren de manejo de variables del tipo punto flotante, que por
suerte al trabajarlo en C se hace muy simple.
La estructura del programa principal se compone de la inicialización de los puertos y
periféricos utilizados, luego entramos en un bucle infinito donde continuamente
estamos leyendo el conversor analógico-digital. Esto permite tomar la tensión de salida
del sensor de temperatura, convertir ese valor binario en temperatura y luego
mostrarlo en el LCD. Además agregamos conectividad por el puerto USB a través del
nuevo MCP2200 de Microchip.
Figura 15: Circuito del MCP2200 que realiza la interfaz entre los mensajes de la
USART del PIC y el puerto USB.
36
37. Una vez que se recibe el dato del conversor, el programa lo convierte a tension
guardándolo en la variable Vout, que la convertimos en float y a partir de esta en
temperatura con la ecuación anterior. De este modo tenemos la temperatura
almacenada en una variable tipo float que es un punto flotante, pero para enviarla al
LCD o al puerto serie debemos convertirlo en ASCII. La conversión de un número
decimal en ASCII es simple si utilizamos la funcion itoa, la cual solo convierte variables
enteras en ASCII, entonces el procdimiento es el siguiente:
1) Se copia el float en una variable int para quedarnos con la parte entera.
2) Convertir el entero en ASCII usando la función itoa y mandarlo al LCD.
3) Añadir un ‘.’ en la pantalla LCD para separar la parte decimal de la entera.
4) Restar al float la parte entera y multiplicar por 10 (o por 100 según la resolución que
se busque) para después convertir la parte fraccionaria y enviarla al LCD.
Esto es un buen truco matematico para mostrar numeros decimales en la pantalla LCD.
Luego tambien cada carácter es enviado al puerto serie.
Las funciones ADC_Init(); y USART_Init(); inicializan los módulos del conversor A/D y la
transmisión serie asincrónica.
El conversor se configura para tener la tensión de referencia de manera externa en
VREF + el cual posee un potenciómetro externo en la placa Student para poder
modificar la tension de referencia.
En nuestro programa colocamos una referencia externa de 1,75 V, así que antes de
programar el micro debemos calibrar la referencia externa con un multímetro sobre el
pin RA3 (VREF +) y asegurarnos que mide 1,75 V. Claro que es posible utilizar como
referencia la tensión Vdd que en la placa Student Advanced es de 3,3 V pero perdemos
resolución.
El modulo USART se configura para tener una transmisión serie asincrónica a una
velocidad de 9600 baudios. El generador de baudios se le asigna un baud rate de alta
velocidad y de 8 bits, el registro SPBRG se carga con 25, para tener la velocidad en
baudios deseada.
Luego la función ADC_Convert(); nos entrega el resultado de la conversión y la función
USART_Trans(); transmite un dato de 8 bits por el puerto serie.
37