Entradas y Salidas digitales DDR, PORT, PIN con ATMEGA32

publicado en: Sin Categoria | 0

entradas-y-salidas-digitales-ddr-port-pin-con-atmega32-1

 

DESCRIPCIÓN

Los puertos de entradas y salidas digitales del atmega32 se manipulan a través de 3 registros. Primero, el registro DDRx se utiliza para configurar un pin como entrada o salida. Seguido, esta el registro PORTxn que habilita con 5v o deshabilita con 0v. Luego, tenemos el registro PINxn que sirve para leer el estado un pin configurado previamente como entrada. Y por ultimo, el todos los pines de cada puerto se puede habilitar una resistencia PULL-UP. A continuación se describen las características de los PUERTOS IO.

  • 3 Registro independientes para Configurar, Escribir y Leer (DDRx, PORTX y PINX).
  • Selección de resistencia PULL-UP en todos los pines de sus puertos IO.

En las siguientes imágenes se detallaran los registros DDR, PORT, y PIN

entradas-y-salidas-digitales-ddr-port-pin-con-atmega32-5

A continuación se explicará cómo configurar, escribir o leer un Pin de cada Puerto

  • DDRX: Escribiendo en cada bit (“1” lógico = Salida | “0” lógico = Entrada).
  • PORTX: Escribiendo en cada bit la salida tendrá un nivel de Voltaje (1=5v|0=0v).
  • PINX: Este registro es de solo Lectura (5v =”1” lógico | 0v =“0” lógico).

Configuración de un PIN

  • DDRA = 0b11111111; Configura todos los pines del Puerto A como Salida.
  • DDRA = 0b00000000; Configura todos los pines del Puerto A como Entrada.
  • DDRA = 0b00001111; Los pines Altos como Entrada y el resto como Salida.

Escritura de un PIN

  • PORTA = 0b11111111; Todos los pines del Puerto A con una salida de 5v.
  • PORTA = 0b00000000; Todos los pines del Puerto A con una salida de 0v.
  • PORTA = 0b00001111; Los pines Altos a 0v y los pines Bajos a 5v.

Lectura de un PIN

  • Valor = PINA0; El estado lógico del pin PA0 se escribe en
  • Valor = PINA; El estado lógico del todo el Puerto A se escribe en valor.

Para poder Habilitar la resistencia PULL-UP en un pin determinado, es necesario que dicho pin este configurado como entrada y luego escribir “1” lógico en el registro de salida PORTX. Y automáticamente se habilita la resistencia PULL-UP.

Ejemplo de como configurar Entradas y Salidas en los puertos IO

  • DDRA = 0b11111110; Configura el pin PA0 como entrada el resto como Salida.
  • PORTA = 0b00000001; Habilita la resistencia PULL-UP solo para el pin PA0.

EJEMLPO N°1 – PUERTO D COMO SALIDA DIGITAL +

SECUENCIAL DE LUCES

En este ejemplo se configura el PUERTO D como salida digital para conectar leds y poder efectuar un secuencial de luces. A continuación se muestra el circuito de conexión y se describe el código.

entradas-y-salidas-digitales-ddr-port-pin-con-atmega32-6

Código principal MAIN

#define F_CPU	8000000UL
#include 
#include 


int main(void){
	//Configuramos el PORTD como salida digital
	PORTD = 0x00;
	DDRD = 0xFF;
	while (1){
		for(int i = 0; i<8; i++){
			PORTD = (3<

EJEMLPO N°2 - PUERTO D COMO SALIDA DIGITAL

PARA SECUENCIAL + 2 BOTONES PARA EFECTOS

Este nuevo ejemplo se basa en el mismo ejemplo anterior, ya que se utiliza el mismo secuencial de luces, pero ademas se agregaran 2 botones para poder efectuar varios efectos. Los botones estarán conectados en los pin PA0  y PA1, ademas, se habilitará la resistencia pull-up interna para estos pines. A continuación se muestra el circuito de conexión y se describe el código.

entradas-y-salidas-digitales-ddr-port-pin-con-atmega32-7

Código principal MAIN

#define	F_CPU	8000000UL
#include 
#include 

uint8_t efecto = 0;

int main(void){
	//Configura el PORTD como salida digital.
	PORTD = 0x00;
	DDRD = 0xFF;
	DDRA &= ~(1<

Deja una respuesta