martes, 31 de agosto de 2010

T.P.Nº13 "MicroControladores"



1. Objetivos:

Informar adecuadamente la actividad desarrollada en este trabajo práctico.

Implementar un filtro activo.

Medir sus parámetros.

2. Contenidos:

Lenguaje ensamblador. Directivas del ensamblador. Proceso de simulación. Evaluación del comportamiento del programa.

3. Materiales necesarios

Manuales técnicos. Manuales de usuario de los distintos programas utilizados.

4. Actividades

1) Creá un programa capaz de activar una salida con una frecuencia de 500Hz, la misma se comandará desde el pulsador.

2) Verificá este programa en el simulador.



En el siguiente link Está el archivo ".asm" con el programa escrito para descargar.

http://myfreefilehosting.com/f/63a98b2f39_0.1MB



En este programa comenzamos con las descripcion del mismo, luego pasamos a la configuracion de los fusibles, luego las variables y los puertos.
Despues en loop, utilizamos la instruccion de salto "btfsc" . Cuando en RA4 hay un "1" sigue con la intruccion que le sigue que es "loop" si en RA4 hay un "0" salta a la otra intruccion que es "loop2" En la cual mediante la intruccion bsf y bcf ponemos el bit RB0 en 1 y en 0 con un delay de 2ms que equivale a una frecuencia de 500Hz. Luego volvemos a utilizar la instruccion de salto "btfsc" por lo que si registra un "1" realiza la intruccion que le sigue que es "loop" de la contrario, al registrar un "0" en RA4 salta la intruccion a "loop2".


Simulacion en el Proteus:





En placa starter:





Ahora vamos a hacer un Programa similar al anterior con la diferencia que no hace falta dejar el pulsador apretado para que se note la intermitencia del led. Alcanza con solo apretarlo y despues para apagarlo lo volvemos a apretar al pulsador.

Debajo está el link para descargar el archivo.asm con el programa.
http://myfreefilehosting.com/f/78eef7657e_0.1MB

Aquí está un video de la simulación hecha en "PROTEUS" y otro video demostrado en una placa de prueba.





Y ahora vamos a mostrar el mismo programa que funciona exactamente igual pero en lenguaje "C".


http://www.imagengratis.org/images/prog1c.jpg

Ahí, despues de la configuración de fusibles, creamos una variable llamada "Flag", que con el comando "int1" aclaramos que es una variable de 1 byte, despues pusimos el estado inicial de la variable "Flag=0"; y despues el programa que es simple: Si el pin_a0 está en "1" invierte el estado del flag,(como empieza en "0" al invertirlo pasa a "1") ahí llamamos a un delay_200ms para que el efecto rebote del pulsador no afecte al programa, ahora la variable está en "1" y el led parpadea a 500hz( 1milisegundo "ON" y 1milisegundo "OFF").









No hay comentarios:

Publicar un comentario