UNIVERSIDAD POLITÉCNICA SALESIANA DEPARTAMENTO DE ELECTRÓNICA LABORATORIO DE sistemas Microprocesados PRACTICA No. 2 CONTROL DE puertos Escritura en puertos del microcontrolador atmel avr SEXTO ELECTRÓNICA Integrantes: LENIN VELASQUEZ DIEGO DUQUE JONATHAN ECHEVERRÍA
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
UNIVERSIDAD POLITÉCNICA SALESIANA
DEPARTAMENTO DE ELECTRÓNICA
LABORATORIO DE sistemas
Microprocesados
PRACTICA No. 2
CONTROL DE puertos
Escritura en puertos del
microcontrolador atmel avr
SEXTO ELECTRÓNICA
Integrantes:
LENIN VELASQUEZ
DIEGO DUQUE
JONATHAN ECHEVERRÍA
OBJETIVOS:
Familiarizarse con el uso de AVRS.
Utilizar los puertos del microcontrolador pic, como interface digital al
mundo exterior.
MATERIALES:
Se realizo el amplificador inversor en el cual se necesitaba:
8 Leds
8 Resistencia 330
9 Resistencia 10 k
2 Capacitores de 33pF
1 Pulsador normalmente abierto
1 Cristal 8 MHz
1 Dipswitch
1 ATMEGA16
MARCO TEÓRICO:
Las características del ATMEGA16 podemos encontrar como ya sabemos en
los datasheet para poder saber las diferentes conexiones de este
Microcontrolador AVR.
A continuación mostraremos los circuitos realizados a los circuitos ya
funcionando.
Podremos observar algún margen de error que es muy común en prácticas de
laboratorio.
PROGRAMA 1:
Este programa escribe el valor 55 hexagesimal en el puerto D.
Regfile "m16def.dat" 'Libreria de trabajo del ATMEGA16 $crystal = 8000000 'Cristal a utilizar 8000000 MHz Ddrd = 255 'Se especifica el puerto D como salida Congig Portd = Output 'Se inicializa el puerto D como salida Do 'Inicio de un lazo infinito Portd = &B1010_1010 'Se escribe en el puerto el valor 55 hexagesimal Loop 'Fin de lazo End 'Fin de programa
SIMULACIÓN:
FLUJO GRAMA:
Inicio
Configurar
puerto D
como salida
Portd=&B1010_1010
Escribir en el puerto D
en forma Binaria el
valor&B1010_1010
PROGRAMA 2:
Se cambia el valor $1010_1010 por el siguiente numero decimal portd=
240.
$Regfile "m16def.dat" 'Libreria de trabajo del ATMEGA16 $crystal = 8000000 'Cristal a utilizar 8000000 MHz
Ddrd = 255 'Se especifica el puerto D como salida Congig Portd = Output 'Se inicializa el puerto D como salida Do 'Inicio de un lazo infinito Portd = &240 'Se escribe en el puerto el valor 55 hexagesimal Loop 'Fin de lazo End 'Fin de programa SIMULACIÓN:
FLUJO GRAMA:
Inicio
Configurar
puerto D
como salida
Portd=&240
Escribir en el puerto D
en forma Decimal el
valor&240
PROGRAMA 3:
Se escribe en un pin del puerto D.
Regfile "m16def.dat" 'Libreria de trabajo del ATMEGA16 $crystal = 8000000 'Cristal a utilizar 8000000 MHz Ddrd = 255 'Se especifica el puerto D como salida Config Portd = Output 'Se inicializa el puerto D como salida Portd = 0 Do 'Inicio de un lazo infinito Portd.1 = 1 'Se escribe en el puerto el valor 55 hexagesimal Loop 'Fin de lazo End 'Fin de programa SIMULACIÓN:
FLUJO GRAMA:
Inicio
Configurar
puerto D
como salida
Portd.1=1
Escribir en el puerto D
PROGRAMA 4:
Para leer en un puerto de un microcontrolador AVR se utiliza el comando
PIN. Además se va a introducir el uso de variables.
$regfile "m16def.dat"
$crystal = 8000000
Ddrb = 0 'Se especifica el puerto B como
entrada
Ddrd = 255 'Se especifica el puerto D como
salida
Config Portd = Output 'Se inicializa el puerto D como salida
Config Portb = Input 'Se inicializa el puerto B como salida
Dim A As Byte 'Se define la variable A tpo byte
Do 'Inicio de un lazo infinito
A = Pinb 'Se lee en la variable A los datos
escritos en el puerto B
Portd = A 'Se escribe en el puerto D los datos
leidos en el puerto B
Loop 'Fin del lazo
End
SIMULACIÓN:
FLUJO GRAMA:
Inicio
Configurar puerto
D como salida y el
puerto B como
entrada
Variable A as bit
Portd=A
PROGRAMA 5:
Se comprueba las funciones lógicas and, or, xor y not.
$regfile "m16def.dat" $crystal = 8000000 Ddrb = 0 'Se especifica el puerto B como entrada Ddrd = 255 'Se especifica el puerto D como salida Config Portd = Output 'Se inicializa el puerto D como salida Config Portb = Input 'Se inicializa el puerto B como salida Dim A As Bit , B As Bit , C As Bit , D As Bit 'Se define la variables A,B,C,D tipo bit Do 'Inicio de un lazo infinito A = Pinb.0 And Pinb.1 Portd.0 = A B = Pinb.2 Or Pinb.3 Portd.1 = B C = Pinb.4 Xor Pinb.5 Portd.2 = C D = Not Pinb.6 Portd.3 = C Loop 'Fin del lazo End
SIMULACIÓN:
FLUJO GRAMA:
Inicio
Configurar puerto
D como salida y el
puerto B como
entrada
Variable A,B,C,D as
byte
A = Pinb.0 And Pinb.1 Portd.0 = A B = Pinb.2 Or Pinb.3 Portd.1 = B C = Pinb.4 Xor Pinb.5 Portd.2 = C D = Not Pinb.6 Portd.3 = C
PROGRAMA 6:
Se comprueba las funciones lógicas and, or, xor y not. Ejercicio
propuesto (A AND B)OR(NOT C)
A B C (AB) (NOT C) (AB)OR(NOTC)
0 0 0 0 1 1
0 0 1 0 0 0
0 1 0 0 1 1
0 1 1 0 0 0
1 0 0 0 1 1
1 0 1 0 0 0
1 1 0 1 1 1
1 1 1 1 0 1
$regfile "m16def.dat" $crystal = 8000000 Ddrb = 0 'Se especifica el puerto B como entrada Ddrd = 255 'Se especifica el puerto D como salida Config Portd = Output 'Se inicializa el puerto D como salida Config Portb = Input 'Se inicializa el puerto B como salida Dim A As Bit , B As Bit , C As Bit , D As Bit , F As Bit , E As Bit ' „Se define la variables A,B,C,D,E,F tipo bit Do 'Inicio de un lazo infinito A = Pinb.0 B = Pinb.1 C = Pinb.2 D = A And B F = Not C E = D Or F Portd.1 = E Loop 'Fin del lazo End
SIMULACION:
FLUJO GRAMA:
CONCLUSIONES:
Aprendimos la utilización del equipo para uso de los microcontroladores
AVRs.
Utilizamos prácticamente los periféricos de entrada y salida de los
microcontroladores.
Vimos la práctica de la entrada de puertos y la respuesta en la salida.
Inicio
Configurar puerto
D como salida y el
puerto B como
entrada
Variable A,B,C,D,E,F
as byte
A = Pinb.0 B = Pinb.1 C = Pinb.2 D = A And B F = Not C E = D Or F Portd.1 = E
BIBLIOGRAFÍA:
Enlace realizado desde Google: “datasheet ATMEGA16”, fecha de