tuto micros

Download Tuto Micros

Post on 02-Dec-2015

5 views

Category:

Documents

1 download

Embed Size (px)

DESCRIPTION

tutorial de micro hola

TRANSCRIPT

  • Taller de Introduccin a la Programacin y Simulacin de Microcontroladores

    PROYECTO FINANCIADO POR FONDO CONFIA

    Bienvenidos al mundo PIC.

    Una de las cosas que ms fascinan en la electrnica, es programar un

    microcontrolador, independiente de las marcas comerciales, tanto AVR como Microchip (entre los ms conocidos).

    En este tutorial, haremos una introduccin bsica a la programacin de un

    microcontrolador de la Microchip, dentro de los cuales se usar uno de los ms comunes (PIC16F877a). La programacin de estos ejemplos, se realizara con el programa PIC C

    COMPILER o tambin conocido como CCS, el cual trabaja con las bases del lenguaje C.

    Adems usaremos el Programador PICkit 2, el cual ser utilizado en todos los ejemplos

    vistos, acompaado del simulador PROTEUS.

    Para un buen desarrollo de este tutorial, se recomienda tener conocimientos bsicos

    en lenguaje de programacin C, dado que habr funciones que no correspondern al tutorial en si.

  • Taller de Introduccin a la Programacin y Simulacin de Microcontroladores

    PROYECTO FINANCIADO POR FONDO CONFIA

    Programador PICkit 2.

    El programador PICkit 2 esta compuesto por las siguientes partes.

    PICkit 2

    1. Leds: Indican el estado del programador. 2. Botn de programacin: Utilizado como atajo al momento de programar un

    dispositivo. Funciona si la opcin Write on PICkit Button esta habilitado. 3. Conexin para cordn. 4. Puerto USB para conexin con el computador. 5. Marcador del primer Pin (MCLR). 6. Conector de programacin.

    La conexin con el microcontrolador se realiza segn el siguiente esquema.

    Conector PICkit 2

    1. Master Clear Reset (MCLR). 2. Vdd. (Voltaje +) 3. Vss. (Tierra) 4. PGD. (Data) 5. PGC. (Clock) 6. Pin Auxiliar.

    Una caracterstica importante de este programador es que permite alimentar nuestros

    proyectos con un consumo mximo limitado por la capacidad del puerto USB, es decir,

    100mA por puerto.

  • Taller de Introduccin a la Programacin y Simulacin de Microcontroladores

    PROYECTO FINANCIADO POR FONDO CONFIA

    Caractersticas del Software PICkit 2 Programmer

    El software utilizado es el PICkit 2 Programmer. La captura de pantalla es mostrada a

    continuacin.

    Pasos para programar un microcontrolador

    1. Comprobar que en la Ventana de Estado aparezca el dispositivo encontrado. Adems en la seccin Dispositivo debe aparecer el microcontrolador utilizado. En

    caso de existir un error, se debe verificar la conexin e ir a Tools>Check

    Communications.

    2. Ir a File>Import Hex y cargar el programa correspondiente, previamente compilado.

    3. Click en Write y listo!

    Para alimentar el circuito desde el programador se debe marcar la casilla On.

  • Taller de Introduccin a la Programacin y Simulacin de Microcontroladores

    PROYECTO FINANCIADO POR FONDO CONFIA

    Estructura bsica de un programa en CCS.

    En este tutorial se muestra el modo bsico de utilizacin del compilador CCS. Adems se

    analizar la estructura bsica de los programas en C.

    Utilizacin del PIC Wizard

    La herramienta PIC Wizard es utilizada para realizar de forma automatica el cdigo base

    de nuestros proyectos. Los pasos siguientes describen la generacin bsica del cdigo.

    1. Ir a Project>PIC Wizard.

    2. Guardar el proyecto en una carpeta.

    3. A continuacin aparecera la pantalla que se muestra en la siguiente fotografia.

    4. Elegir las opciones correspondientes al proyecto a realizar. Luego dar click en Ok.

    5. Aparecer el cdigo realizado por PIC Wizard. Se muestra en la siguiente imagen.

  • Taller de Introduccin a la Programacin y Simulacin de Microcontroladores

    PROYECTO FINANCIADO POR FONDO CONFIA

    En la primera lnea del programa se puede apreciar que se hace referencia a un

    archivo externo. De preferencia personal, copio el cdigo contenido en ese archivo para

    poder tener a la vista todos los fuses mientras completo el resto del software. Para quedar

    de la siguiente forma.

  • Taller de Introduccin a la Programacin y Simulacin de Microcontroladores

    PROYECTO FINANCIADO POR FONDO CONFIA

    Finalmente para compilar se da un click en Compile>Compile.

  • Taller de Introduccin a la Programacin y Simulacin de Microcontroladores

    PROYECTO FINANCIADO POR FONDO CONFIA

    Programando mi primer PIC.

    Como bien sabemos, cada componente electrnico de 3 o ms pines, tiene un

    pinout, por los cuales se conectan debidamente. Por ende los microcontroladores no son la

    excepcin. Para trabajarlos debemos saber como conectarlos y para eso debemos buscar el

    datasheet, dado que trabajaremos en este tutorial con 2 microcontroladores, anexare el

    pinout de ambos a continuacin:

  • Taller de Introduccin a la Programacin y Simulacin de Microcontroladores

    PROYECTO FINANCIADO POR FONDO CONFIA

    Conexin bsica de un microcontrolador.

    En esta seccin aprenderemos el manejo bsico de puertos de los

    microcontroladores PIC, utilizando el programador PICkit 2 y el compilador CCS.

    Materiales a utilizar:

    PIC16F877A.

    Cristal 20Mhz.

    Leds.

    Capacitores 22pF.

    Resistores 330. Resistor 1ok. Programador PicKit 2.

    Compilador CCS.

    Existen diversas formas de conectar un microcontrolador PIC16F877A para realizar un

    proyecto bsico. Estas formas son mostradas en la figura que aparece a continuacin.

    En ambas figuras se utiliza un resistor de 10k en el MCLR (Master Clear Reset). Este Pin cumple la funcin de resetear el microcontrolador cuando es llevado a tierra, por ello,

    para el normal funcionamiento del programa se debe mantener conectado mediante un

    resistor a la alimentacin.

    La principal diferencia entre las dos conexiones mostradas anteriormente ocurre en la

    utilizacin del Cristal. La figura izquierda muestra el microcontrolador utilizando un cristal

    externo de 20Mhz, mientras que el de la derecha utiliza un cristal interno de 4Mhz. En estos

    tutoriales utilizaremos la conexin mostrada en la posicin derecha.

  • Taller de Introduccin a la Programacin y Simulacin de Microcontroladores

    PROYECTO FINANCIADO POR FONDO CONFIA

    Ejemplo 1: Prendiendo Leds

    A continuacin conoceremos las distintas formas que posee CCS para el manejo de

    los puertos del microcontrolador. Lo primero que se debe realizar es seleccionar cada pin

    del puerto como entrada o salida. Para esto se utiliza la funcin set_tris_x. A continuacin

    algunos ejemplos.

    //valor 0 representa pin de salida, valor 1 representa pin de entrada.

    set_tris_a(0x00); //Puerto A como salida.

    set_tris_b(0b10010000); //Puerto B, pines B4 y B7 como entrada, el resto

    como salida

    Si el pin es definido como salida, tenemos dos formas de manejar sus estados logicos.

    La primera es manejando el puerto completo manejando cada pin por separado.

    //Opcin 1: Manejando todos los pines del puerto

    //Se define un byte (fuera del main) con la direccin del puerto (Ver

    Datasheet)

    #Byte puerto_b = 0x06 //Direccin del puerto B

    //Luego se aplican valores

    puerto_b = 0b10100100; //Los pines B2,B5 y B7 estn en un estado lgico

    alto (+5V),

    //---------------------------------------------

    //Opcin 2: Manejando todos los pines del puerto, sin definirlo

    output_b(0b10010000); //Los pines B7 y B4 estn en un estado lgico alto

    (+5V),

    //---------------------------------------------

    //Opcin 3: Manejando los pines uno a uno.

    //Utilizando output_high y output_low

    output_high(PIN_A1); //Estado lgico alto (+5V) el pin 1 del puerto A.

    output_low(PIN_C3); //Estado lgico bajo (0V) el pin 3 del puerto C.

    Una de las formas de darle tiempo de funcin al pin, ya sea para mantenerlo en un

    estado logico alto o bajo, se da con la sentencia delay_ms(); delay:us; depende si estas

    trabajando en milisegundos o microsegundos respectivamente.

    //Un tiempo puede servir para una o ms funciones

    output_high(pin_b4); //Estado lgico alto (+5V) el pin 4 del puerto B.

    delay_ms(400); //Tiempo de trabajo 400 milisegundos.

    output_low(pin_b4); //Estado lgico bajo (0V) el pin 4 del puerto B.

    output_high(pin_b5): //Estado lgico alto (+5V) el pin 5 del puerto B.

    delay_us(2000); //Tiempo de trabajo 2000 microsegundos.

  • Taller de Introduccin a la Programacin y Simulacin de Microcontroladores

    PROYECTO FINANCIADO POR FONDO CONFIA

    Con todo lo anterior listo, estamos en condiciones de hacer parpadear distintos leds,

    para ellos se utilizar el diagrama de conexin mostrado en la figura siguiente.

    Ahora el programa a utilizar har que cada 500 milisegundos cambie el Led que

    prende, pueden modificarlo y comprobar los ejemplos vistos anteriormente.

  • Taller de Introduccin a la Programacin y Simulacin de Microcontroladores

    PROYECTO FINANCIADO POR FONDO CONFIA

    Ejemplo 2: Programando pantalla LCD

    En el siguiente ejemplo, manejaremos una pantalla LCD de 16x2, la cual ser

    conectada a el PIC16F877A, por el puerto D, si se desea usar un PIC16F628A, se

    recomienda usar el puerto B y modificar la librera.

    El pinout de la pantalla LCD, es el siguiente:

    1. VSS: Tierra

    2. VDD: Voltaje (+3.3 a +5V)

    3. VEE: Ajustador de contraste

    4. RS: Selector de Registro (Register Select). RS=0: Comando, RS=1: Data

    5. RW: Lector/Escritor (Read/Write). R/W=0: Escribe, R/W=1: L