Gestion de Puertos en C a Traves de la Ram – Tutorial

Gestion de Puertos en C a Traves de la Ram – Tutorial

En este Articulo veremos el manejo y gestion de Puertos en C a traves de la Ram, los microcontroladores tienen terminales de entrada y salida que se encuentran divididas en puertos llamadas de forma alfabeticamente A,B,C,D, etc. cada puerto puede tener hasta 8 terminales de entrada/salida, todo el puerto puede ser considerado como entrada o salida, pero tambien cada terminal de un puerto puede ser manejada de forma individual para manipularlo como entrada o salida. En el lenguaje de programacion C se pueden manejar los puertos de 2 formas:

  • Gestion de puertos en c A Traves de la RAM
  • Gestion de puertos en c A Traves de las directivas del compilador

Nosotros nos Centraremos en la primera, realizaremos la gestion de puertos en c a traves de la Ram, para lo cual necesitaremos crear variables de apoyo y situarlas en una posicion especifica de la ram. Comenzemos…

Requerimientos:

Desarrollo

La habilitacion como entrada o salida de un puerto o terminal se realiza mediante el registro TRISx (TRISA,TRISB,TRISC,etc) y la gestion del bus de datos se realiza mediante el registro PORTx(PORTA,PORTB,PORTC,etc). Cabe aclarar que para establecer un puerto o terminal como entrada o salida utilizando el registros TRISx:

  • Establecemos 0 para Salida de datos
  • Establecemos 1 para Entrada de datos

Ahora veremos a que posicion de memoria ram debe apuntar cada variable:

  • TRISx

TRISA = 85
TRISB = 86
TRISC = 87
TRISD = 88
TRISE = 89


Suscríbete!

Suscríbete a nuestra lista de correo y recíbe los últimos contenidos directamente en tu bandeja de correo electrónico, puedes elegir únicamente de que categoria del blog quieres recibir contenido.

Suscríbeme

  • PORTx

PORTA = 05
PORTB = 06
PORTC = 07
PORTD = 08
PORTE = 09

 gestion de puertos en c a traves de la ram 2

Los registros TRISx y PORTx se definen como byte y se definen en la posicion correspondiente de memoria, ejemplo:


#BYTE TRISA = 0x85
#BYTE PORTA = 0X05

Una vez definidas estas variables podemos ahora controlar y configurar estos puertos y terminales:


TRISA = 0xFF // en binario seria 11111111 esto es establecer las 8 terminales de entrada para el puerto A
TRISB = 0x00 // en binario seria 00000000 esto es establecer las 8 terminales de salida para el puerto B
TRISC = 0x0F // en binario seria 00001111 esto es establecer 4 terminales de salida y 4 de entrada en el puerto C
  • Escritura / Lectura en Puertos

PORTC = 0x0A; // manda 00001010 por el puerto C
valor = PORTA; // asigna el valor del puerto A a la variable valor

Ahora, para trabajar los terminales de un puerto de forma individual existen algunas funciones:


bit_clear(var,terminal); // Establece a 0 el terminal especificado de la variable especificada
bit_set(var,terminal); // Establece a 1 el terminal especificado de la variable especificada
bit_test(var,terminal); // Muestra el terminal especifico de la variable
swap(var); // intercambia los 4 bits de mayor peso por los 4 bits de menor peso 11110000 -> 00001111

Ejemplos:


bit_clear(PORTB,3); // mandamos un 0 a el terminal 3 del puerto B
bit_set(TRISA,7); // Establecemos con un 1 al terminal 7 de TRISA lo que lo configura entrada
bit_test(PORTA,0); // obtenemos el valor del pin 0 del puerto A
swap(PORTC); // intercambia los 4 bits de mayor peso por los de menor peso del puerto C
  • Extra

Se puede crear tambien una variable para trabajar con terminales directamente:
#BIT nombre = posicion.bit
Ejemplo:


#BIT RB4 = 0x06.4 //Recordando que puerto b es 0x06 solo agregamos . y el terminal que queremos asignar

Ahora podemos trabajar con ese terminal de manera mas facil:


RB4 = 0;

Visto – Gestion de Puertos en C a Traves de la Ram – Tutorial

Clic para valorar esta información
[Total: 0 Promedio: 0]