lunes, 10 de marzo de 2014

MANEJO DE PUERTOS MICROCONTROLADOR ATMEGA164PA CON CODEVISION Y PROTEUS PARTE 1

WE UNIT TALENT, THEY CREATE THE FUTURE
        El manejo de puertos de un microcontrolador es el tema de inicio para poder desarrollar un proyecto , es necesario recordar un poco sobre numeración hexadecimal y binario para configurar los registros. 
         Los registros son los espacios de memoria de un microcontrolador donde se configura el uso de un determinado periférico, generalmente se habla de  1 lógico para habilitar y 0 lógico para inhabilitar.
       En el caso de este micro y los AVR los registros para configurar  son PORTX y DDRX donde la X determina la letra del puerto a usar (PORTA, PORTB, PORTC, PORTD).

En el caso especial del registro DDRX, al poner en 1 cualquier ubicación de registro lo configuraremos como salida en esa determinada ubicación, es decir que el microcontrolador enviará estados lógicos por este pin (1 o 0) y si lo configuramos con 0 lógico en un pin determinado este pin estará configurado como entrada, es decir que recibirá estados lógicos  del exterior.

Características de los puertos:
vSe agrupan en puertos de 8 bits de longitud.
vPermiten leer datos del exterior.
vPermiten escribir datos desde el interior del microcontrolador.
vTrabajan con dispositivos de entrada como pulsadores, fotoceldas, teclados matriciales, etc..,  y dispositivos de salida como leds, LCDs, o cual sea el requerimiento del programador.
Distribución de puertos ATEMGA164PA

CONFIGURACIÓN DETERMINADA EN UN PUERTO
PX7
PX6
PX5
PX4
PX3
PX2
PX1
PX0
CONFIGURACIÓN DEL REGISTRO DDRX SALIDA
1
1
1
1
1
1
1
1
CONFIGURACIÓN DEL REGISTRO DDRX ENTRADA
0
0
0
0
0
0
0
0

El registro DDRX determina si configuramos al puerto como entrada o salida, el registro es de 8 bits por tal motivo tenemos que configurar a todo el registro, no importa cómo se distribuya la configuración para determina un pin como entrada o salida, cabe recalcar que los pines vienen numerados desde el 0 al 7 y donde el registro el bit menos significativo es el de la derecha. Veamos un ejemplo

PUERTO A:
  1. Determinar todo el puerto como salida.
DDRA=0XFF; // configuración de todo el puerto como salida en hexadecimal
DDRA=0B11111111; // configuración de todo el puerto como salida en binario.

    2.  Determinar como salida los 4 bits menos significativos y como entrada los 4 bits más significativos

DDRA=0X0F; // configuración de 4 primeros bits como salida, es decir que los pines del puerto A numerados desde el 0 al 3 podrán enviar datos, los demás del 4 al 7 recibirán datos.
DDRA=0B00001111; // configuración del puerto 4 primeros bits como salida.

   3. Determinar solo el pin PA6 como salida.
DDRA=0X20;
DDRA=0B00100000;


El registro PORTX se utliza específicamente para habilitar o inhabilitar las resistencias pull up que se encuentran en cada pin  un puerto. Esto nos permite utilizar esta configuración interna y no armarla fuera, asi podemos recibir estados lógicos si el registro DDRX está configurado como entrada, y si está configurado como salida nos ayudará a poner en alto a nuestro pin (1 lógico) donde lo deseamos por ejemplo podemos encender un led.















No hay comentarios:

Publicar un comentario