PRACTICA No. 2
SEXTO ELECTRÓNICA
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" $crystal = 8000000 Ddrd = 255 salida Congig Portd = Output salida Do Portd = &B1010_1010 55 hexagesimal Loop End SIMULACIÓN:
'Libreria de trabajo del ATMEGA16 'Cristal a utilizar 8000000 MHz 'Se especifica el puerto D como 'Se inicializa el puerto D como 'Inicio de un lazo infinito 'Se escribe en el puerto el valor 'Fin de lazo 'Fin de programa
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" ATMEGA16 $crystal = 8000000 Ddrd = 255 salida Congig Portd = Output salida Do Portd = &240 55 hexagesimal Loop End SIMULACIÓN:
'Libreria de trabajo del 'Cristal a utilizar 8000000 MHz 'Se especifica el puerto D como 'Se inicializa el puerto D como 'Inicio de un lazo infinito 'Se escribe en el puerto el valor 'Fin de lazo 'Fin de programa
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" ATMEGA16 $crystal = 8000000 Ddrd = 255 Config Portd = Output salida Portd = 0 Do Portd.1 = 1 55 hexagesimal Loop End SIMULACIÓN:
'Libreria de trabajo del 'Cristal a utilizar 8000000 MHz 'Se especifica el puerto D como salida 'Se inicializa el puerto D como
'Inicio de un lazo infinito 'Se escribe en el puerto el valor 'Fin de lazo 'Fin de programa
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 c omando PIN. Además se va a introducir el uso de variables.
$regfile "m16def.dat" $crystal = 8000000 Ddrb = 0 entrada Ddrd = 255 salida Config Portd = Output Config Portb = Input Dim A As Byte Do A = Pinb escritos en el puerto B Portd = A leidos en el puerto B Loop End SIMULACIÓN:
'Se especifica el puerto B como 'Se especifica el puerto D como 'Se inicializa el puerto D como salida 'Se inicializa el puerto B como salida 'Se define la variable A tpo byte 'Inicio de un lazo infinito 'Se lee en la variable A los datos 'Se escribe en el puerto D los datos 'Fin del lazo
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 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 End SIMULACIÓN:
'Inicio de un lazo infinito
'Fin del lazo
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. propuesto (A AND B)OR(NOT C) A B C (AB) (NOT C)
Ejercicio (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 A = Pinb.0 B = Pinb.1 C = Pinb.2 D = A And B F = Not C E = D Or F Portd.1 = E
'Inicio de un lazo infinito
Loop End
'Fin del lazo
SIMULACION:
FLUJO GRAMA: 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 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.
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 Segunda Edición 2006, Carlos A. Reyes