introducción programación
DESCRIPTION
pic 877aTRANSCRIPT
-
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