Informe Practica2 AVR

Post on 13-Jun-2015

1.093 views 4 download

Transcript of Informe Practica2 AVR

Ingenieria Electrónica UPS, Sistemas Microprocesados

LABORATORIO DE SISTEMAS MICROPROCESADOS I

PRÁCTICA Nro. 2 AVR

Edison Riofrío

Francisco Reyes

TEMA: Manejo de entrada y salida en el Atmega16 de Atmel.

OBJETIVO: Utilizar los puertos del Atmega16, como interface digital al mundo exterior.

2.1 Programa utilizando ROTATE

Entradas: -Bit de entrada

Salidas: -Bit rotando en las patitas del Atlmega16.

Procesos: -Definir variable para guardar el bit de entrada.

-Rotar el bit de entrada por todo el puerto D del Atmega16.

Diagrama de flujo:

Ingenieria Electrónica UPS, Sistemas Microprocesados

Programación en BASCOM-AVR:

$regfile "m16def.dat"

$crystal = 8000000

Ddrd = 255 'se especifica el puerto D como salida

Config Portd = Output

Dim A As Byte

Dim I As Byte

A = 1

Do 'inicia del lazo

For I = 1 To 8 'el lazo se repite por 8 veces

Portd = A

Rotate A , Left 'en la variable A y en el puerto D, se escribe un bit a la vez hacia la izquierda

Waitms 50

Next

I = 0

For I = 1 To 7

Rotate Portd , Right

Waitms 50

Next

Loop

End

Ingenieria Electrónica UPS, Sistemas Microprocesados

Simulación

2.2 Utilización de display de siete segmentos. Visualizar en un display de sietesegmentos, datos que van desde cero hasta 9 en forma ascendente

Entradas: -Bits de entrada correspondientes a cada número decimal.

Salidas: -Código binario correspondiente a los números en las patitas del Atlmega16.

Procesos: -Definir variable A para guardar el número.

-Escribir el número en el puerto D del Atmega16.

-Esperar 500 ms.

-Incrementar en uno la variable A.

Diagrama de flujo:

Ingenieria Electrónica UPS, Sistemas Microprocesados

Programación en BASCOM-AVR:

$regfile "m16def.dat"

$crystal = 8000000

Ddrb= 0 'se especifica el puerto D como salida

Config Portb = Output

Dim A As Byte

A = 0

Do

Portb = A

Waitms 100

Incr A

If A = 10 Then

A = 0

End If

Loop

End

Simulación

Ingenieria Electrónica UPS, Sistemas Microprocesados

2.3 Manejo de display de siete segmentos con barrido. Escribir un número desdecero hasta 99 en forma ascendente

Entradas: -Bits de entrada correspondientes a cada número decimal.

Salidas: -Código binario correspondiente a los números en las patitas del Atlmega16.

-Bit de habilitación del display.

Procesos: -Definir variable A para guardar las decenas.

-Definir variable B para guardar las unidades.

-Escribir el número en el puerto D del Atmega16.

-Escribir el bit de habilitación del display en el puerto C del Atmega16.

-Incrementar en uno la variable A y la variable B.

Diagrama de flujo:

Ingenieria Electrónica UPS, Sistemas Microprocesados

Programación en BASCOM-AVR:

$regfile "m16def.dat"

$crystal = 8000000

Config Portc = Output

Config Portd = Output

Dim A As Byte

Dim B As Byte

A = 0

B = 0

Dim I As Word

I = 0

Do

Portc = 1

Portd = A

Waitms 10

Portc = 2

Portd = B

Waitms 10

Incr I

If I = 5 Then

Incr B

If B = 10 Then

B = 0

Incr A

If A = 10 Then

A = 0

End If

End If

Ingenieria Electrónica UPS, Sistemas Microprocesados

I = 0

End If

Loop

End

Simulación

2.4 Programa utilizando RND. Generar un número aleatorio entre cero y 99.

Sintaxis del comando RND:

Var=RND(límite)

Var: variable donde se guarda el número aleatorio generado.

Límite: el valor máximo que el número aleatorio puede tomar.

Entradas: -Número aleatorio.

Salidas: -Código binario correspondiente al número en las patitas del Atlmega16.

-Bit de habilitación del display.

Procesos: -Definir variable Mayor para guardar las decenas.

-Definir variable Menor para guardar las unidades.

-Definir variable H para guardar el número aleatorio.

-Escribir el número en el puerto D del Atmega16.

-Escribir el bit de habilitación del display en el puerto C del Atmega16.

Ingenieria Electrónica UPS, Sistemas Microprocesados

Diagrama de flujo:

Programación en BASCOM-AVR:

$regfile "m16def.dat"

$crystal = 8000000

Ddrc = 255

Ddrd = 255

Config Portc = Output

Config Portd = Output

Dim I As Byte , H As Byte , Menor As Byte , Mayor As Byte

Do

H = Rnd(99)

H = Makebcd(h)

Menor = H And &B0000_1111

Mayor = H And &B1111_0000

Shift Mayor , Right , 4

For I = 1 To 10

Portd = Menor

Portc = 1

Ingenieria Electrónica UPS, Sistemas Microprocesados

Waitms 10

Portd = Mayor

Portc = 2

Waitms 10

Next

Loop

End

Simulación

2.5 Utilización del comando GOSUB y GOTO. Prender un led intermitentemente 3veces, luego prender un segundo led intermitentemente 2 veces, si se presiona el pulsador 1sólo funciona el segundo led y si se presiona el pulsante 2 sólo funciona el prime led.

Entradas: -Bits de entrada correspondientes a cada pulsante por el puerto B.

Salidas: -Bits que encienden los dos leds intermitentemente.

Procesos: -Prender el primer led por 500ms.

-Apagar el primer led por 500ms.

-Repetir los dos pasos anteriores por 2 veces más

-Prender el segundo led por 1 s.

-Apagar el segundo led por 1 s.

-Repetir los dos pasos anteriores por 1 vez más

-Si se mantiene presionado el pulsante P1 apagar el primer led y solo dejarfuncionando el segundo led.

Ingenieria Electrónica UPS, Sistemas Microprocesados

-Si se mantiene presionado el pulsante P2 apagar el segundo led y solo dejarfuncionando el primer led.

Programación en BASCOM-AVR:

$regfile "m16def.dat"

$crystal = 8000000

Ddrd = 0

Ddrb = 255

Config Portb = Input

Config Portd = Output

Portd = &B0000_0000

Dim I As Byte

Lazo:

If Pinb.0 = 1 Then Gosub Sub1

Waitms 100

If Pinb.1 = 1 Then Gosub Sub2

Waitms 100

Goto Lazo

End

Sub1:

For I = 1 To 3

Portd.1 = 1

Waitms 50

Portd.1 = 0

Waitms 50

Next

Return

Ingenieria Electrónica UPS, Sistemas Microprocesados

Sub2:

For I = 1 To 2

Portd.2 = 1

Waitms 100

Portd.2 = 0

Waitms 100

Next

Return

Simulación

Ingenieria Electrónica UPS, Sistemas Microprocesados

CONCLUSIONES

Bascom-AVR es una muy buena herramienta para la programación de AVR’s, es este caso para el Atmega16

Bascom-AVR permite crear subrutinas dentro de la programación para que seanllamadas en cualquier instante que se las requiera, ahorrando espacio y líneas deprogramación.

Una correcta programación en conjunto con el correcto diseño del hardware garantizaun buen resultado final.

RECOMENDACIONES

Obtener información suficiente sobre el Atmaga16 para conocer la correctadistribución y funcionamiento de cada uno de sus pines.

El IDE de Bascom-AVR es un tanto menos amigable que el IDE de MikroBasic, por estarazón se recomienda tener a la mano toda la información posible acerca de estecompilador para AVR’s de manera que se pueda lograr una óptima programación

Ingenieria Electrónica UPS, Sistemas Microprocesados

ANEXOS

Fotografías de las prácticas de AVR’s realizadas en el laboratorio de sistemas microprocesados.

Ingenieria Electrónica UPS, Sistemas Microprocesados

Ingenieria Electrónica UPS, Sistemas Microprocesados