lunes, 10 de marzo de 2014

MANEJO DE PUERTOS MICROCONTROLADOR ATMEGA164PA CON CODEVISION Y PROTEUS PARTE 2

WE UNIT TALENT, THEY CREATE FUTURE
Una vez entendido como configurar es necesario llevarlo al programa para poder observar su funcionamiento, usamos CODEVISION 2.5, en nuestro canal de Youtube encontrarás el archivo, como instalarlo y ciertas ayudas para un mejor manejo del mismo.

Les voy a dejar unos  programas aquí para que uds lo puedan compilar  y puedan observar en nuestro canal un pequeño video tutorial. Espero les guste no dejen de comentar y suscribirse.

/***********************************************************************************************************/



#include <mega164.h>   // libreria del microcontrolador

#include <delay.h>      // libreria de retardos o tiempos



void main(void)

{
// Declare your local variables here

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

PORTA=0x00; // activar pull ups
DDRA=0xFF;   // configurar puertos como entrada/salida
while (1) // repita indefinidamente
      {
       //utilizar todo el puerto
       PORTA=0xF0;                          //enciende 4 bits más significativos
       delay_ms(300);                        //retardo de encendido
       PORTA=0X00;                        //apago todo el puerto
       delay_ms(300);                      //retardo de apagado
       PORTA=0x0F;                       //enciende 4 bits menos significativos
       delay_ms(300);                     //retardo de encendido
       PORTA=0X00;                     //apago todo el puerto
       delay_ms(300);                    //retardo de apagado
        PORTA=0xFF;                   //prendo todo el puerto
       delay_ms(300);                  //retardo de encendido
       PORTA=0X00;                  //apago todo el puerto
       delay_ms(300);                //retardo de apagado
      }
}
/***********************************************************************************************************/
Lo que realiza este programa es un juego sencillo de luces, para entender como configurar todo el puerto como salida.





/***********************************************************************************************************/



#include <mega164.h> // libreria del microcontrolador

#include <delay.h>  // libreria de retardos



// Declare your global variables here

int i; //variable global
void main(void)
{


// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
//puerto como salida
PORTA=0x00;// activar pull up
DDRA=0xFF; //configurar puerto entrada/salida

 //puerto b como entrada
PORTB=0x00;
DDRB=0x00;
while (1)
      {  
    
      switch (PINB) { //escaneo del puerto configurado como entrada
    case 1:
    PORTA=0B00000001;                             // enciende PIN PA0
    break;
    case 2:
    PORTA=0B00000010;                           // enciende PIN PA1
    break;
    case 3:  
    PORTA=0B00000100;                           // enciende PIN PA2
    break;
    case 4:       
    PORTA=0B00001000;                           // enciende PIN PA3
    break;
    case 5:       
    PORTA=0B00010000;                            // enciende PIN PA4
    break;
    case 6:       
    PORTA=0B00100000;                           // enciende PIN PA5
    break;
    case 7:       
    PORTA=0B01000000;                          // enciende PIN PA6
    break;
    case 8:       
    PORTA=0B10000000;                          // enciende PIN PA7
    break;
    }; 

      }
}
/***********************************************************************************************************/

Lo que hacemos en este programa es recibir datos desde el PORTB configurado como entrada, la palabra PINB nos determina que vamos  a recibir datos de todo el puerto, posteriormente lo que realizamos es hacer un escaneo del puerto con el ciclo switch, lo que hacemos es recibir un dato en hexadecimal desde el puerto y en cada caso lo transformamos a decimal.

A continuación les comparto los enlaces para que revisen nuestros videos tutoriales:
 CONFIGURACIÓN DE PUERTOS COMO SALIDA ATMEGA164PA





No lo olvides, APRENDE, PRACTICA, DESARROLLA!!!!!!!

No hay comentarios:

Publicar un comentario