electrónica y redes de comunicación SISTEMAS MICROPROCESADOS
I.
TEMA COMUNICACIÓN SERIAL
II.
OBJETIVOS GENERAL Diseñar y armar un circuito utilizando un microprocesador ATMEGA 164 ayudándonos del proceso y análisis aprendido en la materia de Sistemas Microprocesados, el cual conste de un sistema de ingreso de empleados.
ESPECIFICOS
Realizar la programación en CODEVICION AVR del circuito que queremos obtener para realizar el control de ingreso de los empleados a una empresa.
Determinar si la teoría satisface a la práctica mediante la conexión de los elementos electrónicos que se utilizaran para el funcionamiento del circuito.
Comprobar con la construcción del circuito, la funcionalidad de cable serial USB/DB9.
Comprobar con la práctica como se graba un microprocesador.
Utilizar algún programa de simulación de circuitos para comprobar de una manera más detallada el funcionamiento del circuito.
Aprender un poco más de la materia, de una forma más didáctica a través de la realización de prácticas en las cuales podamos comprender la parte teórica de una mejor manera.
Comprender y analizar cada una de las conexiones que se realizan, tanto entre el Max 232 y el microprocesador.
Verificar que los resultados que obtenemos en la simulación del circuito sean los mismos que en la práctica.
III.
Examinar el circuito y obtener las conclusiones.
MARCO TEÓRICO
MICROPESACOR ATMEGA 164 El ATmega164P/324P/644P es un microcontrolador CMOS de 8 bits de bajo consumo basado en la arquitectura RISC mejorada. Sus instrucciones se ejecutan en un ciclo de máquina, el ATmega164P / 324P / 644P consigue transferencia de información alrededor de 1 MIPS por MHz admitido por el sistema, permitiendo al diseñador del sistema optimizar el consumo de energía versus la velocidad de procesamiento. CONFIGURACIÓN DE PINES
MAX 232 El MAX232 es un IC, primero creado por Maxim Integrated Products , que convierte las señales a partir de un RS-232 puerto serie a señales adecuadas para su uso en TTL circuitos lógicos digitales compatibles. El MAX232 es un doble controlador / receptor y normalmente convierte las señales RTS RX, TX, CTS y.
CABLE SERIAL USB/DB9 Descripción general: se describe el procedimiento para la conexión de un cable de interconexión entre un conector USB y otro DB9. Esta interfaz se usa en los casos en los cuales la PC (en particular las LAPTOPS) no cuente con salida DB9-RS232. El driver de la interfaz crea un puerto virtual COM, generalmente COM3 ó COM4 y puede ser usado por cualquier programa de comunicaciones, como Hyperterminal, que es un software estándar en todos los sistemas WINDOWS.
IV.
DIAGRAMA DE FLUJO INICIO
char dat; ingreso codigo del trabajador int i; variable utilizada en el ciclo ciclos for y while
Activar programa
Activo
Imprimir interruptor apagado
no
Encender led 3 si Ingresar codigo trabajador
correcto
Imprimir Error no Encender led de error
SI
Imprimir nombre del trabajador
Encender led de correcto
V.
DESARROLLO
FIN
CÓDOGO DEL PROGRAMA EN AVR while (1) {
char dat; int i;
//definición de variables //definición de variables
scanf("%c", &dat); // recuperación del dato if(PINA==1) //Activación del programa { switch (dat) { case'A': //Ingreso el código e imprime el nombre del trabajador PORTB.1=1; // se enciende un led como señal de salida printf ("\rTRABAJADOR1"); // imprime el nombre del trabajador putchar ('A'); // pone el dato for(i=0;i<5;i++) // ciclo para que el led titile un cierto número de veces { PORTB= 0b00000001; // titila el led e indica que están ingresando un codigo delay_ms(100); PORTB=0x00; delay_ms(100); PORTB= 0b00000000; } break;
case'B': // la misma secuencia q en el caso A PORTB.1=1; printf ("\rTRABAJADOR2"); putchar ('B'); for(i=0;i<5;i++) { PORTB= 0b00000001; delay_ms(100); PORTB=0x00; delay_ms(100); PORTB= 0b00000000; } break;
case 'C': // la misma secuencia q en el caso A PORTB.1=1; printf ("\rTRABAJADOR3"); putchar ('C'); for(i=0;i<5;i++) { PORTB= 0b00000001; delay_ms(100); PORTB=0x00; delay_ms(100); PORTB= 0b00000000; } break;
case 'D': // la misma secuencia q en el caso A PORTB.1=1; printf ("\rTRABAJADOR4"); putchar ('D'); for(i=0;i<5;i++) { PORTB= 0b00000001; delay_ms(100); PORTB=0x00; delay_ms(100); PORTB= 0b00000000; } break; case 'E': // la misma secuencia q en el caso A PORTB.1=1; printf ("\rTRABAJADOR5"); putchar ('E'); for(i=0;i<5;i++) { PORTB= 0b00000001; delay_ms(100); PORTB=0x00; delay_ms(100); PORTB= 0b00000000;
} break; default: // cuando el dato es cualquier otro diferente printf ("\rERROR"); // imprime mensaje de error for(i=0;i<5;i++) { PORTB= 0b00000010; ingresando un codigo delay_ms(100); PORTB=0x00; delay_ms(100); PORTB= 0b00000000 ; } } }
// titila el led e indica que estan
Else // caso contrario si el PORTA==0 { printf ("\rINTERRUCTUR APAGADO"); for(i=0;i<5;i++) { PORTB= 0b00000100; ingresando un codigo delay_ms(100); PORTB=0x00; delay_ms(100); PORTB= 0b00000000 ; } } }
VI.
DIAGRAMAS CIRCUITALES
// titila el led e indica que estan
VII.
RESULTADOS
VIII.
CONCLUSIONES
Se logró construir un circuito de manera que se pueda hacer una comunicación serial.
Luego de los análisis respectivos se logró concluir que la teoría aprendida en clases satisface de una manera muy correcta el análisis de la práctica.
Se pudo entender el funcionamiento del MAX 232 .
Gracias al programa PROTEUS se pudo comprobar el buen funcionamiento del circuito.
Se logró identificar la configuración de pines del microprocesador ATMEGA 164 para la transmisión y recepción de datos.
IX.
RECOMENDACIONES Siempre realizar el programa utilizando la menor cantidad de líneas de código para que tenga una compilación mas rápida.
Se recomienda que siempre al diseñar el circuito lógico se debe realizar un análisis muy minucioso para que no exista fallos en el funcionamiento del mismo.
Es recomendable usar una fuente de alimentación de 5 voltios debido a que las compuertas lógicas trabajan a esta tensión.
Polarizar correctamente cada uno de los elementos del circuito. Antes de empezar la práctica verificar cada uno de los elementos electrónicos.
Verificar la correcta conexión entre los pines del MAX 232, hacia los pines del microprocesador.