introducción programación

9
PRINCIPIOS BASICOS PARA EL MANEJO DE PUERTOS PIC16F877 Ing. Eduardo Pasochoa

Upload: washito-marcelo

Post on 09-Nov-2015

214 views

Category:

Documents


2 download

DESCRIPTION

pic 877a

TRANSCRIPT

  • PRINCIPIOS BASICOS PARA

    EL MANEJO DE PUERTOS

    PIC16F877Ing. Eduardo Pasochoa

  • DIRECTIVAS DE PROCESADO:

    #device PIC16F877 //Definir el fichero para PIC16F877

    #fuses XT, NOWDT, PUT, NOBROWNOUT /*Definir fusibles, palabras de configuracin para programar el PIC*/

    #use delay (clock=4M) //Cristal Reloj 4MHz

    FICHEROS:

    .HEX Fichero estndar para programacin del PIC

    .COF Fichero binario en cdigo mquina

  • GESTION DE PUERTOS A TRAVES DE LA

    RAM

    Se definen los registros PORTx y TRISx como bytes y se sitan en posicin correspondiente a la RAM

    #BYTE TRISA = 0x85

    #BYTE PORTA = 0X05

    #BYTE TRISB = 0x86

    #BYTE PORTB = 0X06

    #BYTE TRISC = 0x87

    #BYTE PORTC = 0X07

    #BYTE TRISD = 0x88

    #BYTE PORTD = 0X08

    #BYTE TRISE = 0x89

    #BYTE PORTE = 0X09

  • Una vez configurados los puertos, se pueden configurar como entradas o salidas: 1 Salidas 0 Entradas

    TRISB = 0xFF; //8 terminales como salidas

    TRISC = 0x00 //8 terminales como entradas

    TRISD = 0x0F //4 bits menos significativos como salidas

    Escritura en los puertos:

    PORTB = 0x0A; //Dato de salida es 00001010

    Lectura de puertos:

    valor = PORTB //Asigna el dato del puerto B a la variable valor

  • Tambin se pueden trabajar con funciones de manejo bit a bit de los puertos:

    bit_clear (PORTB, 2); //Borra el bit 2 (RB2)

    bit_set (PORTB, 3); //Pone en 1 el bit 3 (RB3)

    bit_test (PORTA, 0); //Obtiene el valor del bit 0 (RA0)

  • GESTIN DE PUERTOS A TRAVS DE LAS

    DIRECTIVAS

    Las directivas son funciones predeterminadas para trabajar con los puertos.

    Funciones predefinidas en la directiva #use fast_io(X):

    Es necesario utilizar funciones TRIS para activas las I/O:

    #use fast_io(B) //usar funciones rpidas para el puerto B

    port_b_pullups(TRUE); //Habilita las resistencias de pull-up del portb

    set_tris_B(0xFF); //Configura el puerto B como entradas o salidas

    output_B(0xFF); //Saca por el puerto B el valor FF

    output_low(PIN_B1); //Poner en cero RB1

    output_high(PIN_B2); //Poner en uno RB2

    Valor=input_B(); //Lee el valor del puerto B y lo guarda en Valor

  • Funciones predefinidas en la directiva #use standard_io(X):

    Con esta directiva, las funciones realizan un doble comando (1) programa automticamente el TRIS como I/O y (2) enva o recibe el dato de

    acuerdo al comando.

    #use standard_io(X) //Usar funciones standard para el puerto B

    port_b_pullups(TRUE); //Activa las resistencias de pull-up de B

    output_B(0xFF); //Saca por el puerto B el valor FF

    output_low(PIN_B1); //Poner en cero RB1

    output_high(PIN_B2); //Poner en uno RB2

    Valor=input_B(); //Lee el valor del puerto B y lo guarda en Valor

  • EJERCICIO DE LABORATORIO No.1

    Arme el circuito de la figura en Proteus

    Condiciones: El LED D2 se enciende mientras SW1 est abierto.

  • 1. Elabore el programa de control en PIC C Compiler mediante gestin de puertos a travs de la RAM y simule en Proteus 8.1

    2. Elabore el programa de control en PIC C Compiler mediante gestin de puertos a travs de directivas #use fast_io(X) y simule en Proteus 8.1

    3. Elabore el programa de control en PIC C Compiler mediante gestin de puertos a travs de directivas #use standard_io(X) y simule en Proteus 8.1

    4. Arme el circuito en el protoboard y programe el micro. Demuestre el funcionamiento.

    Conclusiones

    Recomendaciones

    Bibliografa