Você está na página 1de 9

PRINCIPIOS BASICOS PARA

EL MANEJO DE PUERTOS
PIC16F877
Ing. Eduardo Pasochoa

DIRECTIVAS DE PROCESADO:
#device PIC16F877

//Definir el fichero para PIC16F877

#fuses XT, NOWDT, PUT, NOBROWNOUT


configuracin para programar el PIC*/
#use delay (clock=4M)

/*Definir fusibles, palabras de

//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

Você também pode gostar