Gestion de Puertos

12
Gestión de puertos

Transcript of Gestion de Puertos

Page 1: Gestion de Puertos

Gestión de puertos

Page 2: Gestion de Puertos

ESTADOS DIGITALES

Page 3: Gestion de Puertos

Gestión de puertos

Cada puerto del pic tiene hasta 8 o menos terminales los cuales se comportan como una entrada/salida.Según las características del pic,cada puerto puede tener asignado un bloque funcional : convertidor AD, Usart,I2C,etc

Considerando a los puertos como entrada/salida los puertos se caracterizan por ser indepentiendes , ya que se puede programar cada terminal para que se comporte como entrada o salida digital

Page 4: Gestion de Puertos

Estructura básica de un programa #include<16f877.h> //Pic a usar #fuses xt,nowdt, noprotect //configuración de fusibles #use delay(clock=4M) //Cristal de cuarzo de 4Mhz #byte port=oxo6 //Posición en ram del puerto b Void main(){ //Función principal Set_tris_b(o); //configuración de puertos While(true){ // bucle infinito //instrucciones } }

Page 5: Gestion de Puertos
Page 6: Gestion de Puertos

Instrucciones para configurar pines como entrada/salida

1.-Primero debemos iniciar la posición de la RAM del puerto a utilizar,(esta instrucción va en las directivas del procesamiento)Sintaxis: #BYTE PORTx=zDonde : x=letra del puerto z=posición en RAM en hex,dec,etcEjemplo: #BYTE PORTB=6Puerto B en la posición 6 (en decimal) de la RAM o 0X06(hexadecimal)

Page 7: Gestion de Puertos

2.-Dentro de la función principal(main(){}) configuramos los pines del pic para que se comporte como entrada o salida, ya sea de forma independiente o todo el puerto.Sintaxis: SET_TRIS_x(0by);Donde: x=letras del puerto y=configuración de pines 1=entrada 0=salidaEjemplo: SET_TRIS_B(0b00001111):Configuro desde RB0-RB3 como entrada y RB4-RB7 como salida SET_TRIS_B(0); //todo el puerto como salida SET_TRIS_B(1); // todo el puerto como entrada

Page 8: Gestion de Puertos

Instrucciones para hacer pausas o retardos en el programa

Para retardos en milisegundos: Delay_ms(x); //espera x ms

Para retardo en microsegundos Delay_us(x); //espera x en us

Page 9: Gestion de Puertos

G. DE PUERTOS A TRAVÉS DE LA RAM

Se definen los registros PORTx y TRISx como bytes usando #BYTE.#BYTE variable = constante

Ejemplo:

#BYTE TRISA = 0X85#BYTE PORTA = 0X05

Comandos de asignación para controlar puertos: 0xFF, 0X00, 0X0F.Ejemplo:TRISA = 0X00;TRISB = 0XFF;TRISC= 0X0F;

Page 10: Gestion de Puertos

ESCRITURA DE PUERTOS:PORTA = 0X0A;

LECTURA DE PUERTOS:valor = PORTA;

MANEJO DE SENTENCIAS:TRISB=0X0C;if(PORTB & 0x0F){

PORTB = 0x0A;}

Page 11: Gestion de Puertos

FUNCIONES PARA TRABAJAR DE BIT A BIT:bit_clear(var,bit);bit_set(var,bit);bit_test(var,bit);Ejemplo:bit_test(PORTA,2);

FUNCION PARA DECLARAR UN BIT CON UN NOMBRE:#BIT NOMBRE = POSICION.BITEjemplo:#BIT RB3 = 0X06.3;

Page 12: Gestion de Puertos