PROYECTOS EN MICROCONTROLADORES AVR
Transcript of PROYECTOS EN MICROCONTROLADORES AVR
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
enlace: 05/Septiembre/2010, enlace web:
http://www.datasheetcatalog.org/datasheet/fairchild/ATMEGA16.pdf
Información otorgada por el Ing. Luis Oñate Universidad Politécnica
Salesiana.
Microcontroladores PIC Programación en Basic, Segunda Edición 2006,
Carlos A. Reyes