Informe de AVR Sistemas Microprocesados I USo de case if for do while en ATMEGA AVR en bascomDescripción completa
Descripción completa
en esta practica se representa la rutina de 2 semáforos utilizando el microcontrolador ATmega8, esto con la finalidad de enrolarse en la programación con avrDescripción completa
Descripción completa
Descripción completa
Descripción completa
Descripción completa
Descripción completa
Descripción completa
Descripción completa
Descripción completa
Descripción completa
Descripción completa
UNIVERSIDAD POLITÉCNICA SALESIANA INGENIERÍA ELECTRÓNICA
SISTEMAS MICROPROCESADOS
Tema: CONTROL DE PUERTOS
INFORME Nº 2 AVR
INTEGRANTES: GARCÍA PATRÍCIO SALGADO CRISTIAN
Ejercicio 1 Uso del comando rotate
Podemos visualizar como se encienden los leds de izquierda a derecha en forma secuencial Var = Variable Left = Izquierda Right = Derecha Código
Algoritmo:
Entradas: rotación rotación de izquierda a derecha Salidas: código binario en los pines D0 al D7 Procesos:
-
Defino Variables Inicializo cada variable (A) Establecemos el puerto D como Salida. Iniciamos el lazo Escribimos el valor de A en cada pin del puerto D (De izquierda a derecha y de derecha a izquierda)
Diagrama de flujo
INICIO Especificar el puerto D como salida Defino variables A e I A=1 for I= 1 a 8 Rotar hacia la izquierda Retardo for I= 1 a 8 Rotar hacia derecha Portd=A
Simulación
Ejercicio 2
Utilización de display de 7 segmentos El siguiente programa nos permite visualizar en un display de 7 segmentos , datos que van desde 0 hasta 9 en forma ascendente Algoritmo:
Entradas: números del cero al nueve en forma ascendente Salidas: Se escribe en el puerto D el incremento del cero al nueve en Forma repetitiva Procesos:
Código
Establecemos el puerto D como Salida. Defino Variables Inicializo cada variable (A) Incrementamos la variable(A) y la comparamos con 10 Escribimos el valor valor de A en el puerto D
Diagrama de flujo
INICIO Especificar el puerto D como salida Defino variable A
A=0
Retardo Incr A
Si A=10
No Portd=A
Simulación
Ejercicio 3
Manejo de display de 7 de segmentos con barrido En este ejemplo se escribe los números del 0 al 99 en forma ascendente Algoritmo:
Entradas: números del 0 al 99 Salidas: Se escribe en el puerto D el incremento de 0 al 99 en forma repetitiva Procesos:
Código
Establecemos el puerto D como Salida. Defino Variables Inicializo cada variable (para cada display) Hacemos un barrido Escribimos en cada puerto
Diagrama de flujo
INICIO Especificar el puerto D y C como salida Defino variable A, B, I A=0 B=0 I =0 PorD=A PortC=1 Retardo PorD=B PortC=2 Retardo Incremento I
I=2000
Incremento B
B=10
B =0 Incremento A
A=10
A =0
I=0
Simulación
Ejercicio 4
El comando RND nos permite generar números aleatorios Var = RND(Limite) Var = Variable donde se guarda un numero aleatorio Limite = el numero máximo Aleatorio
Algoritmo:
Entradas: Salidas: Código en binario de los números aleatorios Procesos:
- Establecemos el puerto D y C como Salida. - Defino Variables ¨Mayor¨ para decenas ¨Menor¨ para unidades - Se guarda el valor en una variable - Escribimos en cada puerto Código
Diagrama de flujo
INICIO Especificar el puerto D como salida Defino mis variables H, A , Mayor , Menor H=rnd(99) H= makebcd(h) PortD= Menor Portd=2 Retardo PortD= Mayor PortC=1 Retardo
Simulación
Ejercicio 5
- Utilización del comando GOSUB y GOTO - Gosub permite ejecutar subrutinas repetitivas Algoritmo:
Entradas: Voltaje TTL (5V) en el puerto B(B0y B1) Salidas: Encendido y apagado 1º led forma repetitiva Encendido y apagado 2º led forma repetitiva repetitiva Procesos:
Código
Establecemos el puerto D como como salida y B como como Entrada Inicio el lazo Llamo a las subrutinas Escribo con intervalos de tiempo el valor de 1y 0 en el Puerto D(D1 o D2 dependiendo de la entrada)
Diagrama de flujo
INICIO For I = 1 to 3 Especificar el puerto D como salida y B como entrada