UNIVERSIDAD POLITÉCNICA SALESIANA
FACULTAD DE INGENIERIAS
INGENIERÍA ELECTRÓNICA
SISTEMAS MICROPROCESADOS I
INFORME DE MICROCONTROLADOR ATMEL AVR
INTEGRANTES: HÉCTOR CÁRDENAS RICARDO RAMOS ESTEBAN SALAZAR
SEXTO SEMESTRE
SISTEMAS MICROPROCESADOS I
OBJETIVOS: Aprender nuevos comandos de programación en Bascom mediante los algoritmos generados para el microcontrolador Atmega16. Desarrollar el hadware necesario para el funcionamiento del microcontrolador virtualmente (simulación), mediante software. Comprobar el funcionamiento del microcontrolador y del hadware diseñado en el mundo real.
PROGRAMAS A DISEÑAR: Programa usando el comando “Rotate” (rotar), con el AVR Atmega16. Entradas: Desplazamiento de un bit hacia los leds.
Salidas: Puerto D, hacia (izquierda/derecha)
los
leds
indicadores
del
movimiento
Procesos: Creamos una variable para almacenar el dato. Definimos una variable auxiliar para crear el desplazamiento. Creamos un lazo para repetir infinito número de veces. Creamos una condición en la variable auxiliar, para que pueda desplazarse el dato en el puerto. Retardo de 500 ms, para los movimientos. Escribimos en el puerto D.
2
SISTEMAS MICROPROCESADOS I
Diagrama de flujo: INICIO
Definir variables A e I como bytes.
Hacer A = 1
Para I = 0 a 7 Rotar A hacia la izquierda. Retardo de 500ms Para I = 0 a 7 Rotar A hacia la derecha. Retardo de 500ms PuertoD = A
Programación del algoritmo:
3
SISTEMAS MICROPROCESADOS I
Simulación en Proteus-Isis:
Visualización de números dígitos (0-9) en un display por medio del microcontrolador. Entradas: Números del 0 al 9. Salidas: Puerto D hacia el display. Procesos:
Definir una variable para almacenar los datos. Incrementar la variable (incremento del byte mas 1) Comparar la variable con el valor 10 para contar de nuevo desde 0 Retardo de 1 segundo. 4
SISTEMAS MICROPROCESADOS I
Escribir en el puerto D. Diagrama de Flujo: INICIO
Definir variable A como byte.
A=0 Retardo de 1s Incrementar A Puerto D = A
A =10
Si
No
Programación del algoritmo:
5
SISTEMAS MICROPROCESADOS I
Simulación en Proteus-Isis:
Manejo de displays de 7 segmentos con barrido, se muestra números del 0 al 99. Entradas: Números del 0 al 99. Salidas: Puerto C, como alternador para los displays. Puerto D, números a mostrar en los displays. Procesos:
Definir variables A y B como bytes. Definir una variable auxiliar I como una palabra. Guardar el valor de 0 en las variables A y B. Escribir en I el valor de 0. Alternar los displays mediante el puerto C. Retardo de 10 us. Incrementar I hasta 200 Comprobar si I = 200 entonces incrementar B y encerar I. Comprobar si B = 10 entonces incrementar A y enceramos B. Comprobar si A = 10 entonces encerar A. 6
SISTEMAS MICROPROCESADOS I
Finalizar comparaciones Escribir las variables A y B en el puerto D controlado por el puerto C. Diagrama de Flujo: INICIO
Definir variables A, B como Bytes, e I como una palabra. A=0 B=0 I=0 Hacer Portc = 1 Para que Portd = A Retardo 10us Hacer Portc = 2 Para que Portd = B Retardo 10us Incrementar I
I =200
Si
Incrementar B
No
B = 10
Si
Incrementar A
No
A = 10
Si
No
7
SISTEMAS MICROPROCESADOS I
Programación del algoritmo:
Simulación en Proteus-Isis:
8
SISTEMAS MICROPROCESADOS I
Análisis del comando RND (random), para generar números aleatorios del 0 al 99. Entradas: Números aleatorios. Salidas: Puerto C como alternador para los displays. Puerto D, muestra números aleatorios en los displays. Procesos: Definir las variables I, H, Menor y Mayor, como bytes. Hacer H un numero cualquiera del 0 al 99 con el comando RND Transformar H a BCD. Hacer Menor igual a mascara elimina bits inferiores de H. Hacer Mayor igual a mascara elimina bits superiores de H. Condicionar I = 1 al 20 para que PortD sea igual a Menor y PortC sea igual a Menor. Retardo de 1ms La condición sigue para PortD = Mayor y PortC = 1 Ir al siguiente número.
Diagrama de Flujo: INICIO
Definir variables I, H, Mayor y Menor como Bytes. H = RND(99) Hacer H a BCD Menor = H and &B0000_1111 Mayor = H and &B1111_0000 Shift Mayor, Right, 4
9
SISTEMAS MICROPROCESADOS I
Para I = 1 a 20 PortD = Menor PortC = 2
Retraso 1 ms
PortD = Mayor PortC = 1 Siguiente
Programación del Algoritmo:
10
SISTEMAS MICROPROCESADOS I
Simulación en Proteus-Isis:
Utilizar el comando GOSUB y GOTO, el comando GOSUB permite ejecutar subrutinas. Entradas: Puerto B, pulsantes de Activación en bajo. Salidas: Puerto D, led’s indicadores. Procesos:
Definir una variable I como Byte. Crear un lazo. Comparar Pin 0 del puerto B = 0 para ejecutar subrutina 1. Comparar Pin 1 del puerto B = 0 para ejecutar subrutina 2. Retardo de 100 ms Subrutina 1: prende y apaga el led del puertoD.1 2 veces. Subrutina 2: prende y apaga el led del puertoD.2 3 veces. Retardo de 1 s.
11
SISTEMAS MICROPROCESADOS I
Diagrama de Flujo: INICIO
Pines 1 y 2 del puerto B Definir una variable I como Byte.
PortD = 0 Crear Lazo
PinB.0=0
Si
PinB.1=0
No
Si
No
Gosub Sub2 Para I = 1 a 3 PortD.1 = 1 Retardo de 500 ms PortD.1 = 0 Retardo de 500 ms Retornar
Gosub Sub1 Para I = 1 a 2 PortD.2 = 1 Retardo de 500 ms PortD.2 = 0 Retardo de 500 ms Retornar
PortD = 0
Go to Lazo
12
SISTEMAS MICROPROCESADOS I
Programación del algoritmo:
13
SISTEMAS MICROPROCESADOS I
Simulación en Proteus-Isis:
Conclusiones: Se pudo demostrar el funcionamiento de los comandos estudiados al probar el circuito, funcionó tal y como se lo esperaba. Se comprobó que la simulación mediante software, es una gran herramienta, ya que actúa como si fuera un circuito armado en el mundo real. Se corrigió errores de programación los cuales, hacían inútiles el funcionamiento interno del microcontrolador. Bibliografía: Hojas de las Prácticas Ayuda del programa Bascom (documentación en Inglés) Cuaderno de Sistemas Microprocesados.
14
SISTEMAS MICROPROCESADOS I
Anexos Fotográficos:
15
SISTEMAS MICROPROCESADOS I
16
SISTEMAS MICROPROCESADOS I
17
SISTEMAS MICROPROCESADOS I
18
SISTEMAS MICROPROCESADOS I
19