You are on page 1of 14

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:
- 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

Código
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:
- Establecemos el puerto D como Salida.
- Defino Variables
- Inicializo cada variable (para cada display)
- Hacemos un barrido
- Escribimos en cada puerto

Código
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:
- 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)
Código
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 Portd.2=1
Pinb.1=1 Gosub sub2
Retardo
no
Portd.2=0

Retardo
Retardo

Simulación
Anexos

You might also like