Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Ingeniería Mecánica y Eléctrica UA Interfaces Periféricas y Programables I SEGUNDO DEPARTAMENTAL PRÁCTICA 6A “SUMADOR DE DOS CANTIDADES DE 4 Y 5 BITS” PROFESOR: VALDÉS MARTÍNEZ RAMÓN EQUIPO 7 CHÁVEZ CANTORIANO JORGE LUIS ESQUIVEL GONZÁLEZ CÉSAR ANTAR LARA TUFIÑO ERANDI ALELI GRUPO: 7RM1 FECHA DE ENTREGA: 17 – OCTUBRE – 2018 OBJETIVO Desarrollar una aplicación que nos permita la lectura de dos datos, uno de 4 bits y otro de 5 bits y así mismo haga la suma de ambos datos mostrándonos a la salida con leds el resultado de la suma realizada. MARCO TEÓRICO ¿Cómo hacer y simular un programa en MPLAB? 1.- Abrimos MPLAB y damos clic en Project y posteriormente New: 2.- Le asignamos un nombre al proyecto y seleccionamos la carpeta en donde se va a guardar: 3.- Ahora seleccionamos en la barra principal la opción que dice File y después New: 4.- En la ventana que se abre escribimos nuestro código: 5.- Posteriormente debemos de simularlo, así que en la barra principal seleccionamos DebuggerSelect Tool MPLABSIM: 6.- Luego en Debugger nuevamente seleccionamos STIMULUS, en la ventana que aparece seleccionamos los puertos que utilizamos, y en Action nos aparecen las siguientes opciones: · Set High: Establecer alto · Set Low: Establecer bajo · Toggle: Intercambia en cada pulso, primero uno alto y después uno bajo · Pulse High: Pulso alto · Pulse Low: Pulso bajo En nuestra práctica seleccionaremos Toggle debido a su característica, entonces la ventana nos queda de esta forma: 7.- Después damos clic en View Watch, en la ventana que aparece seleccionamos PORTB en la parte superior y lo agregamos, podemos observar cómo se encuentra en hexadecimal y binario: 8.- Habiendo ya configurando lo anterior corremos nuestra simulación dando clic en el símbolo de “play” que se encuentra en la barra de herramientas, damos estímulos y finalmente verificamos el circuito con las combinaciones de las entradas: ¿Cómo realizar un programa en AVR Studio? 1. Abrimos el programa Atmel Studio. Después daremos clic en “File”, luego en “New” y por último en “Project…”: 2. Después se abrirá una ventana en la cual, pondremos un nombre y de desearlo, podemos decir la dirección en la que será guardado ese nuevo proyecto. También dejaremos la opción que nos da por default: 3. Ya que le dimos “ok”, a continuación nos dirigirá a la siguiente ventana, en la cual seleccionaremos el AVR que utilizaremos, que para este semestre es el ATmega328P, podemos buscarlo entre toda la gama de opciones que tiene el programa o en la parte superior derecha podemos poner el nombre del que deseamos y automáticamente comienza a buscar el que cumpla con la descripción: 4. Después de seleccionar el AVR, nos manda a la pantalla de programación, que mediante un lenguaje C y un sistema numérico hexadecimal, crearemos los programas para nuestro AVR: 5. Ahora mediante el uso de las instrucciones en C, creamos un programa en el cual declararemos que de un puerto B, sus 3 primeros pin serán entrada y el 4° será salida y para evitar algún corto, los pines que no ocuparemos, se ponen como entradas: 6. Una vez terminado el programa, procedemos a compilarlo (símbolo encerrado en rojo), es decir, pasarlo de un lenguaje ensamblador a uno máquina, o viceversa, de esta forma comprobamos que nuestro programa no tenga errores, ya que el programa los detecta y nos lo marca, de no tener ni un error, nos aparece en la barra de comentarios que tenemos una estructura correcta: DESARROLLO ENUNCIADO DE LA APLICACIÓN: Diseñar una aplicación que simule a un sumador de 2 datos. Considerando las líneas de entrada: Dato A Dato B RB4 RB3 RB2 RB1 RB0 RC3 RC2 RC1 RC0 A4 A3 A2 A1 A0 B3 B2 B1 B0 DESARROLLO PARA PIC EN MPLAB ALGORITMO 1.- Limpiar cada uno de los puertos. 2.- Configurar entradas y salidas y declarar que sean digitales. 3.- Declarar las nuevas variables a utilizar. 4.- Leer y guardar lo del registro B en W y posteriormente lo de W a nuestra primera variable creada. 5.- Leer y guardar lo del registro C en W y posteriormente lo de W a nuestra segunda variable creada. 6.- Usar la operación lógica en ambas variables para cerciorarnos que no haya alguna interferencia. 7.- Sumar ambas variables mediante la instrucción ADDWF recordando que debemos utilizar como intermediario el registro de trabajo. 8.- Asignarle al puerto D el resultado de la suma de ambas variables. 9.- Regresar al paso 4. INSTRUCCIONES · ADDWF f, d: Suma lo de W y f, si d es 0 el resultado es almacenado en W y si d es 1 el resultado es almacenado devuelta en el registro f. Los bits afectados en el STATUS son: C, DC, Z. DIAGRAMA DE FLUJO CÓDIGO SIMULACIÓN EN PROTEUS ARMADO EN PROTOBOARD DESARROLLO PARA AVR EN AVR STUDIO ALGORITMO 1.- Definir o crear tres variables 2.- Configurar puertos de entrada y salida, al igual que las entradas analógicas o digitales. 3.- Mover de puerto B a nuestra primera variable. 4.- Mover de puerto C a nuestra segunda variable. 5.- Sumar ambas variables y almacenar el resultado en una tercera variable. 6.- Enviar el resultado de la suma almacenado en la tercera variable a nuestro puerto D 7.- Regresar al punto 3. INSTRUCCIONES · INT Denota un tipo entero que almacena valores según el tamaño y el intervalo especificado en la tabla de instrucciones. · DDRX Define como entradas o salidas los bits del puerto seleccionado, esto se puede hacer mediante denotación en sistema hexadecimal o binaria. DIAGRAMA DE FLUJO CÓDIGO SIMULACIÓN EN PROTEUS ARMADO EN PROTOBOARD CONCLUSIONES: Chávez Cantoriano Jorge Luis Está práctica no estuvo tan complicada, ya que solo era sumar dos cantidades y arrojarla en un puerto de salida donde el resultado lo veríamos en leds que se encenderían según fuera el bit que les correspondieran mostrando la cantidad en binario, y como el microcontrolador trabaja en este lenguaje, solo era realizar la suma y automáticamente mostraba la cantidad. Esquivel González César Antar Esta práctica me resulto bastante sencilla ya que realmente lo único que se tenía que hacer era hacer una mezcla de prácticas anteriores, entonces solo se buscaba leer dos datos de entrada y mostrar un tercero a la salida que sería la suma de los dos anteriores, hubieron pequeños inconvenientes al momento del armado de los circuitos debido a fallas en una de las protoboards pero logramos identificar el error y solucionarlo sin mayor inconveniente. Lara Tufiño Erandi Aleli La práctica que realizamos no resultó tan compleja ya que el resultado también se mostró en binario por lo cual no implicó un cambio de sistema numérico después de haber obtenido el resultado. Al momento de armar el circuito en la protoboard hubo diversos problemas que a pesar de estar bien la conexión no funcionó a la primera como lo esperábamos pero se debió a las cargas electrostáticas almacenadas en la proto, habiéndola limpiado y cambiado pudimos armar el circuito y funcionó sin problema alguno.
Compartir