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 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 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 Procesos: Código
Establecemos el puerto D como salida y B 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
Portd.1=1 Retardo
Defino variable I Portd.1=0
si Retardo Pinb.0=1
Gosub sub1
no
For I = 1 to 3
si Pinb.1=1
Gosub sub2
Portd.2=1 Retardo
no Portd.2=0 Retardo
Simulación
Retardo
Anexos