Estructura de un programa en C para PIC.
|
|
- Salvador Nieto Ortiz
- hace 6 años
- Vistas:
Transcripción
1 Estructura de un programa en C para PIC. El lenguaje C está organizado en funciones, haciendo una mala comparación podemos decir que las funciones se parecen a las subrutinas del ensamblador, la comparación no es del todo justa puesto que las funciones son mas poderosas que las subrutinas pero vale para entender que una función es un trozo de código que hace algo específico. De la mano de las funciones nace la programación modular, la idea será crear módulos (funciones) que resuelvan tareas puntuales, por ejemplo medir temperura, pesaje, comunicaciones y cualquier actividad que el micro tenga que realizar. Al tener los módulos resueltos y funcionando podemos exportarlos a distintos programas (clásico copiar y pegar). Podemos incluso crear un archivo que contenga todos los módulos de uso común y agregarlo al proyecto cuando sea necesario usar alguna de estas funciones. Todo programa en C es en si mismo una función, la función main(), punto de entrada al programa, código inicia en esa función y solo puede existir una función main() en todo el proyecto. El nombre de la función es main, nombre obligado que se debe respetar, luego de la función viene los paréntesis de apertura y cierre (todas la funciones los llevan), dentro de estos paréntesis se escriben los argumentos de la función, los argumentos son los elementos que la función necesita para hacer su trabajo, puede suceder que la función no requiera de argumentos para realizar el trabajo, cuando este es el caso dentro de los paréntesis se escribe la palabra void. Antes del nombre de la función se escribe el tipo de retorno que la función devolverá. Imaginemos que escribimos una función que sume dos enteros y devuelva el resultado de esta suma, la sintaxis seria como sigue int Suma(int a,int b), en este caso la función se llama Suma que devolverá un entero prducto de la suma de dos enteros a y b. int Suma(int a, int b){ return a + b; Si la función no devuelve nada se escribe la palabra void antes del nombre de la función, las llaves se encargar de marcar los límites de la función, donde inicia y donde termina. Veamos un ejemplo simple de un programa que cambia el estado de un LED colocado en uno de sus pines. La primera línea del programa asocia o vincula la palabra led con el GP2 que corresponde al pin 5. Cada vez que en nuestro programa se haga referencia a led se actúa sobre el pin 5, si led = 1 LED
2 encendido, led = 0 LED apagado. Luego la función principal o función main que no necesita argumentos y no tiene valor de retorno, es la primer función y no hay otra parte del programa que reciba dos por lo que su valor de retorno es void. Hay compiladores que requieren que la función main retorne un entero, este valor devuelto es en realidad información para el sistema operivo para indicar que el llamado a la función a sido exitoso. El siguiente ejemplo ha sido escrito para el microcontrolador PIC12F683 controlando un LED colocado en el pin 5. (No olvide colocar una resistencia entre el LED y el microcontrolador). led GP2_bit; Asocia la palabra led al pin 5 void main(void) { TRISIO.B2 = 0; OSCCON = 0b ; ADCON0 = 0; ANSEL = 0; CMCON0 = 7; while (1){ led =!led; Delay_ms(1000); Oscilador interno en 8MHz Canales analógicos apagados Todos los pines son digitales Comparadores apagados Invierte estado del pin 5 En este punto solo nos interesa ver el aspecto general del programa y solo nos detenemos en tres líneas. while(1){ led =!led; Delay_ms(1000); Invierte estado del pin 5 While() es una función, tiene ( ), es en realidad una función de C y dicho en lenguaje no técnico se podría describir su funcionamiento de la siguiente forma. Mientras el argumento sea verdadero (lo es siempre puesto que hemos puesto un 1 permanente), ejecutar lo que esté dentro de las {. Led es el pin 5 y la línea led =!led dice que el estado del pin será igual a la negación del estado anterior, lo que marca la negación es el símbolo! antes de la palabra led. La línea Delay_ms(1000) dice que debe esperar 1000mS (un segundo) antes de volver a repetir el bucle while(). Si quisiera esperas del orden de microsegundos la sintaxis sería Delay_us(1000). No olvide que las funciones se delimitan con { y las líneas de programa se terminan con ; (salvo excepciones). ANSI-C es sensible a la diferencia entre minúsculas y mayúsculas, por ejemplo diferencia entre mayúsculas y minúsculas, si declara una variable como do y la referencia como Do, el compilador entiende que son variables diferentes. MikroC por defecto no sigue esta norma de programación para C, sin embargo se la puede habilitar desde su configuración. No haga costumbre de mezclar mayúsculas y minúsculas, no es una práctica prolija.
3 Circuito propuesto para el ejemplo Para el manejo de la pantalla necesitamos contar con el respectivo driver que Mikroc agrega a su biblioteca solo tenemos que marcarlo y todas las funciones del LCD estarán disponibles para su uso. Para ver como trabajar con el LCD proponemos un ejemplo simple, leer la temperura de un sensor analógico LM35 conectado al pin 2 (RA0) configurado como analógico. Para usar el conversor analógico necesitamos el driver que maneja el hardware. Este driver también se encuentra en la biblioteca de Mikroc basta con marcar el casillero correspondiente. El driver tiene muchas funciones para el manejo del LCD, colocando el cursor sobre el signo + se obtiene la lista de funciones y su funcionamiento explicado. El driver necesita que en nuestro programa se declaren los pines que serán usados por la pantalla, para que todo funcione correctamente lo primero que encontramos es la declaración de estos pines. /*************************************************************************** ** Descripción : Mide la temperura con un sensor LM35 y muestra los dos ** en una pantalla LCD 16x2 ** Target : PIC18F4620 de 40 pines ** Compiler : MikroC para PIC v7.1 ** XTAL : 20MHZ ***************************************************************************/ ******* Pines usados por la pantalla LCD ****** LCD_RS LATE1_bit;
4 Los argumentos se encuentran entre paréntesis, existen dos tipos de paso de argumentos, por valor y por referencia. Los utilizados en la función anterior son del tipo por valor, pues no alteran directamente el contenido de la variable, sino que se realiza una copia de la variable sin alterar el contenido. El cuerpo realiza la labor específica de la función, en este caso, calcula el voltaje. Inicialmente se declara una variable temporal voltaje, las variables declaradas internamente en la función, solo existen dentro de ella, cuando la función cumple su cometido (regresando a la función principal) la variable voltaje desaparecerá del sistema. Este concepto sobre funciones y variables es muy importante porque una variable declarada como global sera accesible desde cualquier parte del programa sin embargo variables locales a las funciones solo con accedidas dentro de la función, las variables locales existen solo cuando son invocadas en la función, las variables globales están siempre en memoria disponibles en cualquier momento y por cualquier parte del programa. En el encabezado de la función se especifica la variable que va a retornar, volviendo a la función volt(), esta retorna un tipo entero. Si observamos más a fondo el cuerpo de la función, la primera línea de la izquierda nos describe que variable va a ser retornada en el caso que tuviera retorno, una función que no retorna valor y no recibe argumentos sería: void Nombre_Función(void); Esta variable (voltaje) también fue declarada tipo entero, sino el compilador dará advertencias parciales sobre la variable a retornar. No necesariamente tuviésemos que haber escrito la función con una variable temporal de cálculo, la misma acción pudo haberse escrito de la siguiente manera: int volt(unsigned char R, char I) { return (R*I); La función tiene el mismo fin o propósito que la original y dará el mismo resultado. La función debe ser llamada especificando el mismo tipo de variable como argumentos a utilizar. Observe esta parte del código: unsigned char a; char b; int resultado; a = 2; b = 5; resultado = volt(a,b); /* Utilizando variables */ resultado = volt(9,-1); /* Utilizando constantes */
5 2 TOSC. 4 TOSC. 8 TOSC. 16 TOSC. 32 TOSC. 64 TOSC. Oscilador interno RC Para el TAD las opciones posibles son: 20 x TAD. 16 x TAD. 12 x TAD. 8 x TAD. 6 x TAD. 4 x TAD. 2 x TAD. 0 x TAD. Para las conversiones A/D correctas, el reloj de conversión A/D (TAD) debe ser tan corto como sea posible pero mayor que un mínimo TAD (para más información véase dasheet del PIC utilizado) por ejemplo para la serie 16F en 1.6us y para la serie 18F en 0.7us. Salir fuera de los rangos operivos puede terminar en un daño permanente del conversor. Recordar: Tosc Periodo del circuito de oscilación (en nuestro caso el cristal). Tacqt Significa Periodo de Adquisición, es el tiempo necesario para que el circuito sample/hold guarde la muestra antes de ser convertida, es decir el tiempo que el condensador de mustreo se cargue con el voltaje a convertir. Esto se hace para evitar errores en la conversion. Tad Significa Periodo de conversión analógo digital, es el tiempo en que el ADC realiza la conversión de cada bit. Algunos ejemplos de selección del Tad. Si uso 96MHz/2=48MHz Tad=64*Tosc=64/Fosc=64/48MHz=1.3333us Utilizo 96MHz/4=24MHz porque Tad=32*Tosc=32/Fosc=32/24MHz=1.3333us Utilizo 96MHz/6=16MHz porque Tad=16*Tosc=16/Fosc=16/16MHz=1us Pero el tiempo de cada ciclo aumenta lo que disminuye el tiempo total de conversión Si uso un cristal de 20MHz, Tad=16*Tosc=16/Fosc=16/20MHz=800ns Si uso el oscilador interno a 8MHz, Tad=8*Tosc=8/Fosc=8/8MHz=1us. Para utilizar el módulo de conversión analógica-digital Mikroc proporciona una librería que contiene todas las funciones necesarias para la configuración e implementación del mismo.
6 *************** Función para void Mostrar_Conversor(void){ PORTB=Digito[unidad]; PORTD.RD2 = 1; delay_ms(tiempo); PORTD.RD2 = 0; PORTB=Digito[decena]; PORTD.RD1 = 1; delay_ms(tiempo); PORTD.RD1 = 0; PORTB=Digito[centena]; PORTD.RD0 = 1; delay_ms(tiempo); PORTD.RD0 = 0; mostrar los dos del conversor **************** Escribe la unidad en el puerto B Pone el pin 21 Espera 5mS Pone a 0 el pin 21 Escribe la decena en el puerto B Pone a 1 el pin 20 Espera 5mS Pone a 0 el pin 20 Escribe la centena en el puerto B Pone a 1 el pin 19 Espera 5mS Pone a 0 el pin 19 Circuito propuesto para la aplicación. En el ejemplo anterior se muestra el uso del conversor analógico, el ejemplo lee el canal 0 (pin 2) de un microcontrolador PIC18F4620 y muestra el resultado de la medición en tres dígitos en formo hexadecimal mostrando números que van desde 000 a 3FFF correspondiendo al número mas alto que puede generar el conversor de 10 bits. Capítulo II Memoria EEPROM interna del PIC. La EEPROM es una mriz de memoria permanente, separada de la RAM de dos y de la FLASH, se utiliza para almacenar variables que se desean conservar cuando el controlador se desconecte o quede sin energía. No está mapeada directamente dentro de los registros o en la memoria de programa, sino que se tra indirectamente a través de registros especiales. La EEPROM se puede leer y escribir durante la ejecución del programa. Curo registros se utilizan para leer y para escribir los dos en la EEPROM. EECON1 EECON2 EEDATA
7 do{ do= I2C_Read(1); if(do!=0) Lcd_Chr_CP(do); while (do!= 0x00); do= I2C_Read(0); I2C_Stop(); Lee un do y responde con ACK. Envía el carácter al LCD. Lee el último do (NULO) y responde con NO ACK. Envía una señal de STOP. while(1); RTC DS1307 (Real Time Clock). Siguiendo con los dispositivos I2C el DS1307 de Dallas Semiconductor (Maxim) es una solución muy interesante cuando necesitamos trabajar con eventos que requieren puntualidad y exactitud a lo largo del tiempo. Este pequeño circuito integrado es uno de los más populares relojes RTC del mercado por su sencillez de uso y por su confiabilidad a largo plazo. Preparado para ofrecer la hora hasta el año 2100 con ajuste de años bisiestos. /* ***************************************************************************** ** Descripción : Control de un DS1307 & LCD 16x2 ** Target : 40PIN PIC18F4620 ** Compilador : MikroC para PIC v 7.1 ** XTAL : 20MHZ ** Autor : Firtec -
8 Resultados obtenidos al ejecutar el código de ejemplo para el sensor DS18B20. En ocasiones puede ser necesario necesitar leer el código ROM de los sensores. En el ejemplo siguiente vemos la forma de leer este código y mostrarlo en un LCD. Este número de 64 bits puede ser útil para realizar una red de sensores e interrogarlos por su número ROM, podemos incluso mapear la red de sensores de acuerdo a su número ID y ante un fallo poder rápidamente determinar cual sensor no responde. La lista de los ID en la red se podría guardar en una tabla y direccionarlos secuencialmente de acuerdo a los valores de esa tabla. El siguiente es un ejemplo de como leer el ID de estos sensores. /**************************************************************************** ** Descripción : Lectura del código ROM de sensores DS18x20 ** Target : 40PIN PIC18F4620 ** Compiler : MikroC para PIC v 7.1 ** XTAL : 20MHZ ** NOTA : Verificado con sensor DS18x20 conectado en el pin RA4. ( No olvidar el resistor de 4,7K en el pin 1-Wire) *****************************************************************************/ LCD module connections LCD_RS LATE1_bit; LCD_EN LATE2_bit; LCD_D4 LATD4_bit; LCD_D5 LATD5_bit; LCD_D6 LATD6_bit; LCD_D7 LATD7_bit; LCD_RS_Direction LCD_EN_Direction LCD_D4_Direction LCD_D5_Direction LCD_D6_Direction LCD_D7_Direction TRISE1_bit; TRISE2_bit; TRISD4_bit; TRISD5_bit; TRISD6_bit; TRISD7_bit; unsigned temp; char sernum; char sernum_hex[8]; unsigned char i; unsigned char tmp; void main() { CMCON =7; ADCON1 = 0x0D; Pines digitales TRISA.B4 = 1; Configure RA4 como entrada (Pin 1-Wire) Lcd_Init(); Lcd_Cmd(_LCD_CLEAR);
9 Observando el diagrama eléctrico surge un pequeño problema, y muy importante! Las tarjetas SD funcionan a un voltaje comprendido entre 2,7V y 3,3V máximo. Por lo que no podemos conectar la tarjeta directamente al controlador trabajando este a 5V, ya que los pines digitales funcionan a 5V y vamos a dañar la SD. A partir de aquí hay varias opciones, podemos utilizar un microcontrolador PIC de 3V, o un divisor de tensión con resistencias, o utilizar circuitos integrados como el 74HC4050 que regula el voltaje a 3.3V, o bien, comprar un shield que integra toda la electrónica para el manejo de la memoria. En la imagen anterior se aprecia el resultado de la ejecución del ejemplo propuesto para FAT. Capítulo IV Ethernet con Mikroc PIC. No es el objetivo de este capitulo trar en profundidad temas relacionados con redes TCP/IP ni trar en profundidad los protocolos de redes. Como usted verá a lo largo de estos textos el protocolo TCP/IP acoplado a microcontroladores es bastante transparente al usuario no teniendo que lidiar con engorrosas configuraciones de red o escribir código para el propio protocolo, ya todo está resuelto a nivel de red y solo nos concentramos en la tarea que nuestro micro debe hacer sobre la red ya sea transmitir o recibir información, controlar eventos o procesos, etc. Mikroc tiene en su biblioteca los driver necesarios para llevar a cabo el trabajo que proponemos, solo basta con marcar el casillero SPI_Ethernet.
10 Tenemos una página embebida en el microcontrolador con el siguiente formo. El programa actualiza de manera automática #include "Lib_1Wire_DS18s20.h" void Mesure() { Reading_Temperure_DS18s20(); Delay_ms(250); char uart_rd; char buffer[32]; SPI_Ethernet_Rst RC0_bit; SPI_Ethernet_CS RC1_bit; SPI_Ethernet_Rst_Direction TRISC0_bit; SPI_Ethernet_CS_Direction TRISC1_bit; #define SPI_Ethernet_HALFDUPLEX #define SPI_Ethernet_FULLDUPLEX 0 1 /* * definition of user functions called by the ehternet library. * these functions are used for tcp and udp handling. * we do not need them in this example, but, nevertheless they must be defined, * as described in mikroc help. * */
Teclado Matricial. Ing. Diego Chacón
Teclado Matricial Ing. Diego Chacón Teclado 4x4 y PIC16f877A Uno de los periféricos bastante util que usamos en algunos proyectos con microcontroladores es teclado matricial. Normalmente los encontramos
Más detallesPráctica 6. Control de LCD 16x2 con PIC 16F84A.
Práctica 6 Control de LCD 16x2 con PIC 16F84A. Eduardo V. Abad Descripción de las características y funcionamiento del LCD 44780 Las pantallas de cristal líquido (LCD) se han popularizado mucho en los
Más detallesCAPÍTULO 3. Las principales funciones del microcontrolador son: adquirir por medio del A/D y también, mostrar mensajes de pesos y voltaje en el LCD.
CAPÍTULO 3 3. DISEÑO DEL SOFTWARE. La programación del PIC se realizó en lenguaje C, usando el compilador mikroc PRO for PIC. Este compilador se utilizó, ya que tiene una versión demo muy buena, además
Más detallesCONVERTIDOR ANÁLOGICO-DIGITAL (ADC)
Aplicar los conocimientos básicos de electrónica de manera teórica (lenguaje ANSI-C) y práctica (montaje de circuitos). Conocer las funciones que gobiernan las entradas y salidas del microcontrolador PIC18F47J53.
Más detallesMicroprocesadores. Introducción al Lenguaje C - Parte IV. Prof. Luis Araujo. Universidad de Los Andes
Introducción al Lenguaje C - Parte IV Universidad de Los Andes Funciones Las funciones son porciones de código que devuelven un valor y permiten descomponer el programa en módulos que se llaman entre ellos
Más detallesTUTORIAL II parte A. Observemos el diagrama de pines del microcontrolador 16F877A:
1 TUTORIAL II parte A OBJETIVOS Conocer el manejo de puertos del microcontrolador 16F877A, registros TRIS y PORT. Familiarizarse con las principales instrucciones del lenguaje y la estructura de un programa
Más detallesCOMUNICACIÓN I2C (Bus de circuito inter-integrado)
Aplicar los conocimientos básicos de electrónica de manera teórica (lenguaje ANSI-C) y práctica (montaje de circuitos). Conocer las funciones que gobiernan las entradas y salidas del microcontrolador PIC18F47J53.
Más detallesSe recomienda consultar el siguiente enlace y el datasheet del PIC18F2550.
Se recomienda consultar el siguiente enlace y el datasheet del PIC18F2550. http://picfernalia.blogspot.com.es/2012/07/conversor-adc.html ADCON0: - ADON: Habilita el módulo convertidor A/D. - GO/DONE: Con
Más detallesEL módulo conversor A/D. (c) Domingo Llorente
EL módulo conversor A/D (c) Domingo Llorente 2010 1 Características del conversor A/D Ocho entradas de señal analógica. (5 para el 16F876x) Resolución de la conversión de 10 bits. (0-1024) Distintas fuentes
Más detallesPROFESOR: Práctica 9. Convertidor Analógico-Digital
INSTITUTO POLITÉCNICO NACIONAL Centro de Estudios Científicos y Tecnológicos Nº 1 Gonzalo Vázquez Vela Academia de Sistemas Digitales Prácticas de Micro Electrónica Programable NOMBRE DEL ALUMNO: Apellido
Más detallesDEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA CARRERA DE INGENIERÍA ELECTRÓNICA E INSTRUMENTACIÓN
DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA CARRERA DE INGENIERÍA ELECTRÓNICA E INSTRUMENTACIÓN PROYECTO DE TITULACIÓN PREVIO A LA OBTENCIÓN DEL TÍTULO DE INGENIERO EN ELECTRÓNICA E INSTRUMENTACIÓN CHICAISA
Más detallesControl de LCD y sensor de temperatura
Control de LCD y sensor de temperatura Componentes Protoboard Arduino UNO Sensor de temperatura LM35 Potenciómetro (resistencia variable) Resistencia de 220 Ω Pantalla LCD 16 x 2 20 cables jumpers Montaje
Más detallesMedidas de Distancia mediante Rayos Infrarrojos
Medidas de Distancia mediante Rayos Infrarrojos Con un nuevo módulo sensor de proximidad. La casa Sharp ha fabricado un nuevo sensor, en la forma del módulo GP2D02 que, con la ayuda de un microcontrolador,
Más detallesConversores Análogo-Digital
Conversores Análogo-Digital mc PIC Preparado por : jhuircan Depto. Ingeniería Eléctrica Universidad de La Frontera Proceso de Conversión Código Correspondiente a la muestra j S(t) S(k) 0010..0011 ADC t
Más detallesConstruir un sensor de temperatura corporal.
4.4 Transductor de temperatura 4.4.1 Objetivo Construir un sensor de temperatura corporal. 4.4.2 Preinforme 4.4.2.1 Diseñe un sistema de sensado de temperatura, básico empleando un transductor adecuado
Más detallesLa siguiente función configura el puerto como entrada y realiza su lectura: input_x( )
Laboratorio 2: Puertos de Entrada y Salida. 2.1 Objetivo. Familiarizarse con los Puertos de Entrada y Salida mediante la implementación práctica del ejemplo LED y Botones y el ejemplo Pantalla LCD. 2.2
Más detallesMICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI
MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI DEFINICIÓN Es un microcontrolador de Microchip Technology fabricado en tecnología CMOS, completamente estático es decir si el reloj se detiene los datos
Más detallesGuía de Microcontroladores
Guía de Introducción Este documento tiene como objetivo de para comenzar con el desarrollo de programas para microcontroladores. Por motivos prácticos se utilizan líneas microcontroladores PIC de 8 bits
Más detallesÍndice General de Temas
Mikroc Pro para PIC Índice General de Temas Capítulo I...4 Los PIC's y un poco de su historia...4 Como funciona un Microcontrolador PIC...5 Arquitectura de los PIC's...7 Entorno de trabajo MikroC...8 Instalador
Más detallesSegundo Parcial Programación en Mikro C PIC16F877
Segundo Parcial Programación en Mikro C para microcontroladores PIC PIC16F877 Operadores a nivel de bits Operador operacion & AND; compara pares de bits y regresa 1 si ambos son 1 s, de otra manera regresa
Más detallesProgramación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C
Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales
Más detallesCURSO: MICROCONTROLADORES UNIDAD 4: COMUNICACIÓN SERIE- ARDUINO PROFESOR: JORGE ANTONIO POLANÍA
CURSO: MICROCONTROLADORES UNIDAD 4: COMUNICACIÓN SERIE- ARDUINO PROFESOR: JORGE ANTONIO POLANÍA Un receptor asíncrono / transmisor universal (UART) es un bloque de circuitería responsable de implementar
Más detallesSensores inalámbricos de bajo
Sensores inalámbricos de bajo consumo. Parte 1. El sistema de telemetría con microcontroladores PIC Autor: Marc Ralita Álvarez Director proyecto: Francesc Sánchez Robert Sensores inalámbricos de bajo consumo
Más detallesINSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata
Ing. Guillermo Murcia Ing. Jorge Luis Strack gjmurcia@fi.mdp.edu.ar jlstrack@fi.mdp.edu.ar Lecto-grabadora de SDcard - Se comunica con Arduino a través del protocolo de comunicación SPI. - Se comanda a
Más detallesPIC16F88. Características
Osciladores PIC16F88. Características Osciladores a cristal: LP, XT y HS hasta 20Mhz Oscilador externo hasta 20Mhz Oscilador interno: 31Khz 8Mhz Periféricos Módulo PWM/CCP CCP (captura/comparación) ->
Más detallesProyecto Final: Controlador de Acuarios
Universidad Nacional de Rosario Facultad de Ciencias Exactas, Ingeniería y Agrimensura Escuela de Ingeniería Electrónica Informática Electrónica Proyecto Final: Controlador de Acuarios Cristian Martinez
Más detallesTEMA 20 EL CONVERSOR A/D
TEMA 20 EL CONVERSOR A/D Introducción Al Conversor Analógico/Digital Los microcontroladores PIC de la familia 16F78x, poseen un conversor A/D de 10 bits de resolución, y con 5 entradas para los dispositivos
Más detallesClase 3: Sensores I. Conviértete en un Joven Inventor PENTA UC
Clase 3: Conviértete en un Joven Inventor PENTA UC 2014-1 Contenidos Introducción: Qué son los sensores? Mundo analógico y mundo digital. Análogo y digital en Arduino. ADC Ejemplo Botones El potenciómetro
Más detallesEl circuito integrado ADC1230, fabricado
ADC12130 Conversor A/D serial de 12 bits GUILLERMO RAMOS RAMOS gramos@telesat.com.co Los conversores A/D seriales se caracterizan por su tamaño reducido y bajo costo. El circuito integrado que describimos
Más detallesNelson David Muñoz Politécnico CJIC TUTORIAL DISPLAYS
1 TUTORIAL DISPLAYS OBJETIVOS Familiarizarse con el manejo de displays de 7 segmentos por medio de microcontroladores. Crear y manipular variables y vectores de constantes. Realizar la implementación física
Más detallesCapítulo 1. Introducción a los PIC de 8 bits
Capítulo 1. Introducción a los PIC de 8 bits 1.1 Memorias y Registros Entre los componentes básicos de un microcontrolador podemos definir el contador, sus registros, la memoria, el watchdog timer, el
Más detallesCAPÍTULO 2. ARQUITECTURA Y COMPONENTES.
CAPÍTULO 2. ARQUITECTURA Y COMPONENTES. 2.1. ARQUITECTURA DEL SISTEMA. Vamos a proporcionar en este apartado una visión general de la arquitectura del sistema, para que así el lector pueda obtener una
Más detallesAprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS
Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS Los compiladores de lenguaje C hoy son ampliamente utilizados para la creación de programas con microcontroladores PIC. El compilador
Más detallesRESEÑA DE LENGUAJE C
RESEÑA DE LENGUAJE C VARIABLES La función main. Es el punto de entrada al programa. void main(void) Aquí escribo mi programa Tipos de datos. Char. El char es una variable de 1 byte. Almacena números enteros.
Más detallesDiseño de Microcontroladores
Departamento de Electrónica Diseño de Microcontroladores Alumnos: De la Goublaye de Ménorval, Eric Gómez, Rodrigo Pinto, Orlando Salas, Felipe 30/03/04 1. Índice 1. Índice...2 2. Introducción...3 3. Puertas
Más detallesLas 7 claves de Arduino UNO
Las 7 claves de Arduino UNO La mejor placa para iniciarse en este mundo es el Arduino UNO. Aunque podríamos empezar con cualquier otra, prácticamente todas tienen las mismas funcionalidades básicas, Arduino
Más detallesIntroducción a la Programación de Microcontroladores con Tecnologías Libres: Trabajo Final
Introducción a la Programación de Microcontroladores con Tecnologías Libres: Trabajo Final Integrantes: Alan Matkorski Alejandro Sobko Proyecto Desarrollamos un circuito que en conjunto con una aplicación
Más detallesMICROCONTROLADORES. 1. El PIC 16F84A es un microcontrolador de: a) 16 bits b) 8 bits c) 4 bits d) 32 bits e) 64 bits
1. El PIC 16F84A es un microcontrolador de: a) 16 bits b) 8 bits c) 4 bits d) 32 bits e) 64 bits MICROCONTROLADORES 2. La memoria de programa del PIC 16F84A es de tipo: a) ROM b) OTP c) RAM d) EPROM e)
Más detallesC2. Explica que es una MACRO en lenguaje C y para que se emplean. (0.5 puntos).
UNIVERSIDAD DE HUELVA ÁREA DE SISTEMAS 16-JUN-2008 ESCUELA POLITÉCNICA SUPERIOR PROCESADORES DE PROPÓSITO GENERAL TIEMPO: 2 5 Horas Nota: El examen resuelto puede tener algún error que se haya deslizado.
Más detallesAR 1 T. Tutorial 1. Introducción a Arduino Controlando un LED.
1 T Tutorial 1. Introducción a Arduino Controlando un LED. Objetivo general. Conocer los conceptos básicos de Arduino para aplicarlos, encender y apagar un LED como primera práctica. Qué es Arduino? Arduino
Más detallesConceptos básicos de Arduino:
Conceptos básicos de Arduino: Cosas básicas de C: Siempre que se acabe de escribir una línea, y esta no acabe en }, hay que poner punto y coma (;) 1. Variables: 2. Cómo declarar una variable: a. Se pueden
Más detallesClase 2: Programación
Clase 2: Conviértete en un Joven Inventor PENTA UC TAV 2014 Contenidos Qué es un micro-controlador? Configuración IDE Arduino Qué es programar? Ejemplo Tipos de datos Funciones útiles Contenidos Qué es
Más detallesTEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:
Más detallesCapitulo 2. Programación Modular
Capitulo 2. Programación Modular Consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable. Se presenta históricamente como una evolución de la programación
Más detallesabril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples
Desarrollo de aplicaciones en Java Generación de código fuente Compilación Ejecución Elementos de aplicaciones simples EII147-01-02 Introducción a las tecnologías de información Escuela de Ingeniería Industrial
Más detallesExamen 22 de Febrero 2006
Problema 1 Examen 22 de Febrero 2006 La dirección de marketing de una conocida empresa de desodorantes ha decidido entregar un regalo con cada desodorante en spray. Para ello ha sido encargada la construcción
Más detallesDisplay 7 segmentos. Ing. Diego Chacón, Mdhd.
Display 7 segmentos Ing. Diego Chacón, Mdhd. El displays segmentos, es un componente que se utiliza para la representación de números en muchos dispositivos electrónicos. Cada vez es más frecuente encontrar
Más detallesTEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.
Tema 2. TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL. PARTE : VARIABLES, OPERADORES Y CONSTANTES.. INTRODUCCIÓN AL LENGUAJE C 2. PROGRAMAS BÁSICOS EN LENGUAJE C 3. DATOS EN LENGUAJE C
Más detallesMÓDULO COMPARADOR Y REFERENCIA DE TENSIÓN PARA LA COMPARACIÓN
MÓDULO COMPARADOR Y REFERENCIA DE TENSIÓN PARA LA COMPARACIÓN - + Fernando Nuño García 1 Estos dos módulos existen en la versión de los PIC16F87xA pero NO en la versión PIC16F87x PIC16F877 PIC16F877A 2
Más detallesFUNCIONES. Identificador valido. Tipo-Funcion Identificador_de_la_funcion (Tipo par1,tipo par2 )
FUNCIONES Las funciones son el medio básico de que se vale C para construir programas. Un Programa es, básicamente, una colección de funciones entre las que se incluye una especial llamada main(), la función
Más detallesEspecificación IEEE-754, para representar valores decimales en punto flotante de simple precisión.
Especificación IEEE-754, para representar valores decimales en punto flotante de simple precisión. Ing. Cosme Rafael Marcano Gamero, MSc, DEA. cosmemarcano@gmail.com En este escrito se explica la especificación
Más detallesAprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS
Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS Por Andrés Raúl Bruno Saravia Entrega Nº 4. Se dice que el lenguaje C es un lenguaje de nivel medio. La razón de esta indicación está
Más detallesTutorial 6: Qué es una función? y como utilizarla
Tutorial 6: Qué es una función? y como utilizarla AR 6 T Objetivo En la siguiente lección desarrollaremos el tema de las funciones en Arduino, para poder aplicarlo en las practicas siguientes ya que será
Más detalles1-Introducción. KIT ARM- Ténicas Digitales II - Ing. Ruben M. Lozano /9
1-Introducción -Este apunte pretende ser una guía para aquellos alumnos que se inician en la programación de microntroladores con arquitectura ARM, utilizando como plataforma de hardware el kit de desarrollo
Más detallesINTRODUCCIÓN AL USO DE MIKRO C PRO FOR PIC
INTRODUCCIÓN AL USO DE MIKRO C PRO FOR PIC Desarrollado por Mikroelectonika, es un compilador completamente compatible con el estándar ANSI C, desarrollado para trabajar con microcontroladores de 8 bits
Más detallesEn la figura 1 puede verse el circuito eléctrico de nuestra primera aplicación.
Mundo e-basic 001 En este primer ejemplo, se realizará un programa en lenguaje BASIC que nos dará una idea del potencial de los módulos e-basic para realizar diversas tareas controlando en forma muy sencilla
Más detalles26 de Octubre del 2013
Hernánz Hernánz OMIJAL 26 Octubre l 2013 Contenidos Hernánz 1 2 3 4 ++ 5 6 7 Hernánz Concepto Un concepto es una ia, algo abstracto. No existe en la naturaleza. Palabras Herramientas que utilizamos para
Más detalles4.2 Servicio de exploración de E/S
4.2 Servicio de exploración de E/S Acerca de esta sección En esta sección se presentan algunas funciones, características y opciones de configuración del servicio de exploración de E/S. Contenido de esta
Más detallesGESTION DE UN LCD USANDO CCS COMPILER (PICC)
GESTION DE UN LCD USANDO CCS COMPILER (PICC) La mayoría de displays de cristal líquido se usan con controlador del tipo HD44780, con un número de líneas variable y una cantidad de caracteres también variable,
Más detallesCURSO BÁSICO MICROCONTROLADORES PIC
CURSO BÁSICO MICROCONTROLADORES PIC CONFIGURACIÓN BÁSICA FUSIBLES Los fusibles son palabras de configuración que definen las condiciones de funcionamiento del microcontrolador. Algunos fusibles importantes
Más detallesLaboratorio 8. Uso de Conversor Análogo Digital Digital Análogo en microcontrolador MSP430.
Laboratorio 8. Uso de Conversor Análogo Digital Digital Análogo en microcontrolador MSP430. Objetivos. Estudiar y comprender los principios básicos de conversión análogo digital. Estudiar y comprender
Más detallesCuatro registros se utilizan para leer y para escribir los datos en la EEPROM.
MODULO II Memoria EEPROM interna del PIC. La EEPROM es una matriz de memoria permanente, separada de la RAM de datos y de la FLASH, se utiliza para almacenar variables que se desean conservar cuando el
Más detallesCOMUNICACIÓN I2C PROTOTIPO BRAZO ROBÓTICO BM001
COMUNICACIÓN I2C PROTOTIPO BRAZO ROBÓTICO BM001 Autor: Oscar Eduardo Herrera Zuleta Estudiante de Ingeniería Electrónica. Corporación Universitaria Autónoma del Cauca. Revisado y Corregido Por: Ing. Francisco
Más detallesPIC 18F45XX EL TIMER 0
PIC 18F45XX EL TIMER 0 1. Hardware asociado 2. Características Se puede configurar como temporizador o contador de 8/16 bits. Se puede leer o escribir en él a través del registro TMR0. Dispone de un preescaler
Más detallesAPUNTES DE CATEDRA: SISTEMAS DE NUMERACION - REPRESENTACION INTERNA DE NUMEROS Y CARACTERES
Cátedra de COMPUTACION Carreras: Licenciatura en Matemática Profesorado en Matemática Profesora: Mgr. María del Carmen Varaldo APUNTES DE CATEDRA: SISTEMAS DE NUMERACION - REPRESENTACION INTERNA DE NUMEROS
Más detallesGuía #2 Acceso a registros y uso de puertos.
Curso de microcontroladores PIC. Guía # 2 1 Guía #2 Acceso a registros y uso de puertos. Distribución de la memoria. Todo microcontrolador cuenta con periféricos para comunicarse con el mundo exterior,
Más detallesÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES
ÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES 1.1 Introducción 1.2 Fundamentos de los procesadores digitales secuenciales 1.2.1 Introducción 1.2.2 Arquitectura interna 1.2.2.1 Procesadores digitales
Más detallesClase 6: Sensores II. Conviértete en un Joven Inventor PENTA UC
Clase 6: Conviértete en un Joven Inventor PENTA UC 2014-1 Repaso Sensores Preguntas de repaso 1. Qué son los sensores? 2. Cómo nos entregan la información? 3. Cómo podemos manejar esa información con Arduino?
Más detallesLos 7 elementos básicos de la programación de PIC en C
Estructura básica de un programa en Lenguaje C Todos los programas (código fuente) de microcontroladores PIC en C tienen una estructura básica, a partir de la cual se desarrolla cualquier aplicación del
Más detallesMICROCONTROLADORES EJERCICIOS PARA PRACTICAR USANDO TEMPORIZADORES
MICROCONTROLADORES EJERCICIOS PARA PRACTICAR USANDO TEMPORIZADORES 1. Se desea enviar por el pin PB.0 un pulso negativo de 244µs cuando se reciba un flanco de bajada por el pin INT0. Escribe un programa
Más detallesElementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Más detallesInformática Ingeniería en Electrónica y Automática Industrial
Informática Ingeniería en Electrónica y Automática Industrial Entrada y salida estándar V1.3 Autores Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato:
Más detallesRegistros SFR vistos hasta ahora: Microcontroladores PIC
Registros SFR vistos hasta ahora: Microcontroladores PIC Microcontroladores PIC: Timer Características del Timer TMR0: Cumple básicamente la función de contador de eventos (o divisor de frecuencia). El
Más detallesRECURSOS FUNDAMENTALES
RECURSOS FUNDAMENTALES Los recursos que se considerarán son : Temporizadores Puertos de E/S La Palabra de Configuración EEPROM de datos 1 TEMPORIZADORES Una labor habitual en los programas de control suele
Más detallesEmpieza con // y termina con la siguiente línea de código. Son ignorados por el programa y no ocupan espacio en memoria.
/* */ Los bloques de comentarios o comentarios multilíneas son áreas de texto ignoradas por el programa y se usan para describir códigos o comentarios que ayudan a otras personas a entender parte del programa.
Más detallesMICROCONTROLADORES PIC BÁSICO (PIC 16F84A / 16F627)
MICROCONTROLADORES PIC BÁSICO (PIC 16F84A / 16F627) TEMARIO Objetivo: El estudiante comprenderá la evolución de los microcontroladores y microprocesadores así como sus diferencias, desarrollara su habilidad
Más detallesMicrocontroladores ( C)
Microcontroladores ( C) Bibliografia: Hoja de datos del PIC 16F84 y 16F628 (www.microchip.com) Microcontroladores PIC: la clave del diseño (biblioteca) Microcontroladores PIC: diseño práctico de aplicaciones
Más detallesPráctica 5. Comunicación serie y entradas analógicas
Práctica 5 Comunicación serie y entradas analógicas Práctica 5 Comunicación serie y entradas analógicas. Objetivos El objetivo de esta sesión es que el alumno aprenda a programar la EUART interna del PIC,
Más detallesManipulación directa de puertos. Usando los puertos digitales.
Manipulación directa de puertos. Usando los puertos digitales. (Segunda traducción al castellano de los artículos escritos aqui: http://hekilledmywire.wordpress.com/2011/02/23/) Hola amigos lectores, hoy
Más detallesQUÉ ES EL OPEN SOURCE?
TALLER ARDUINO QUÉ ES EL OPEN SOURCE? Ventajas del open source : Idea Compartir Desarrollo del proyecto - Desarrollo acelerado de proyectos. - Feedback internacional y cooperación comunitaria. - Desarrollo
Más detallesPráctica 1 Conversión Analógica Digital
Práctica 1 Conversión Analógica Digital Universidad de San Carlos de Guatemala, Facultad de Ingeniería, Escuela de Mecánica Eléctrica, Laboratorio de Electrónica 4, Primer Semestre 2017 OBJETIVOS Comprender
Más detallesTEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero
TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando
Más detallesLaboratorio de Diseño de Robots Móviles Practica No. 2 Sistema mínimo del microcontrolador PIC16F877
Laboratorio de Diseño de Robots Móviles Practica No. 2 Sistema mínimo del microcontrolador PIC16F877 Objetivo: Conocer la estructura y características de la tarjeta con un microcontrolador PIC que se dispone
Más detallesElección de un microcontrolador
Elección de un microcontrolador Decisión multivariable. No hay un óptimo evidente Factores: Herramientas de desarrollo Base de conocimientos Precio y disponibilidad Familia versátil y en desarrollo Cantidad
Más detallesInformática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.
Departamento de Práctica Nº 9: Rango y precisión de representación de números en el ordenador. Uso de punteros Objetivos de la práctica: - Entender la representación de números (enteros y reales) en el
Más detallesCursosindustriales. Curso de C / C++ Por Deimos_hack
MÓDULO 1. ESTRUCTURAS Y FUNCIONES. En los capítulos anteriores has visto como los arrays permiten almacenar diferentes datos, pero todos del mismo tipo de dato. En la práctica esto no compensa debido a
Más detallesMétodos que devuelven valor Dado el siguiente triángulo rectángulo:
Métodos que devuelven valor Dado el siguiente triángulo rectángulo: hipotenusa altura base Para dibujar este triángulo necesitamos los siguientes datos: base y altura La base y la altura, se utilizarán
Más detallesRMS1-RM Manual del usuario
R4 www.exemys.com 1 Los Productos están en permanente evolución para satisfacer las necesidades de nuestros clientes. Por esta razón, las especificaciones y capacidades están sujetas a cambios sin previo
Más detallesTERMÓMETRO DIGITAL DS1624
TERMÓMETRO DIGITAL DS1624 Centro CFP/ES COMUNICACIÓN I2C 1 CARACTERÍSTICAS DEL DS1624 El DS1624 tiene una resolución de 13 bits. Como la mayoría, sigue midiendo temperaturas en el rango de 55 C a +125
Más detallesIntroducción a C++ y Code::Blocks
Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete
Más detallesEjercicios Tema 6. Funciones
Ejercicios Tema 6. Funciones 1. Programa que calcule el cuadrado de todos los números comprendidos entre dos dados. Usar una función a la que se le pasa como parámetro un valor y retorna su cuadrado. 2.
Más detallesLenguaje de Programación: C++ ARCHIVOS I/O
UG C++ Lenguaje de Programación: C++ ARCHIVOS I/O Universidad de Guanajuato Octubre 2010 Como abrir un archivo Antes de poder escribir datos en un archivo, debemos abrirlo, esto significa que debemos decirle
Más detallesVentajas del BUS I2C
BUS I2C: IMPLEMENTACIÓN PRÁCTICA CON MICROCONTROLADORES PIC TC74: Termómetro digital 1 Ventajas del BUS I2C Definido inicialmente a mediados de los 80 para trabajar a 100kbit/s y en 1995 se definió un
Más detallesARDUINO El proyecto Arduino: Recordando - Pines de entrada - Pines de salida - Microcontrolador - Conexión USB - IDE de arduino
ARDUINO El proyecto Arduino: Recordando - Pines de entrada - Pines de salida - Microcontrolador - Conexión USB - IDE de arduino Escuchas y respuestas con dos valores: pinmode modos del pin - (OUTPUT, INPUT);
Más detalles2. Programación en Arduino
2. Programación en Arduino Tallerine Android/LED Instituto de Ingenería Eléctrica 13 de marzo de 2017 IIE (TallerIne) Programación 13 de marzo de 2017 1 / 27 Repaso Conocimos al Arduino Vimos nociones
Más detallesDependiendo del dispositivo usado, se tienen hasta 5 puertos de entrada/salida disponibles: PORTA PORTB PORTC PORTD PORTE
25 3 ENTRADA / SALIDA Dependiendo del dispositivo usado, se tienen hasta 5 puertos de entrada/salida disponibles: PORTA PORTB PORTC PORTD PORTE Cada uno de estos puertos es de 8 bits, sin embargo no todos
Más detallesUSB232. Hoja de datos
- 1 - USB232 Hoja de datos 9600, 19200, 38400, 57600, 115200 bps Interfaz USB serie RS232 Integración de tecnología USB Para sistemas con comunicación serie RS232 - 2 - USB232 Interfaz USB serie RS232
Más detallesLaboratorio de Arquitectura de Redes. Entrada y salida estándar
Laboratorio de Arquitectura de Redes Entrada y salida estándar Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato: scanf() El buffer de teclado Entrada
Más detallesTipos de datos y Operadores Básicos
Módulo I: Conceptos Básicos Tema 1. Qué es un ordenador? Tema 2. Cómo se representan los datos en un ordenador? Tema 3. Qué es un lenguaje de programación? Tema 4. Cómo se hace un programa informático?
Más detallesFundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)
Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,
Más detalles