MARZO – JULIO 2010
UNIVERSIDAD POLITÉCNICA SALESIANA SISTEMAS MICROPROCESADOS 1
INFORME PRÁCTICA #03 AVR TEMA: Control de puertos
DAVID ESPIN ANDRÉS MOGRO QUITO - ECUADOR
PRÁCTICA 03 1.1 Escritura en un puerto del microcontrolador atmel AVR. Para escribir en un puerto se debe habilitar mediante el comando DDRX=255, como salidas, luego se procede a escribir el valor en el puerto. Este programa escribe escribe el valor 55 hexadecimal hexadecimal en el puerto D. Entradas:
El valor 55 hexadecimal en el puerto D. Procesos: •
Habilitar puerto D (salida)
•
Inicializa el puerto D como salida
•
Escribo en el puerto D el valor 55 hexadecimal.
Salidas:
Salida del puerto D hacia los leds.
CÓDIGO. 'programa 1.2
$regfile = "m16def.dat"
'libreria de trabajo del ATMEGA 16
$crystal = 8000000
'cristal a utilizar 8MHz
Ddrd = 255
'se especifica el puerto D como
Config Portd = Output
' se inicializa el puerto D como salida
Do Portd=&B1010_1010
'inico de un lazo infinito 'se escribe en elpuerto el valor 55h
Loop End
'fin de lazo
salida
DIAGRAMA DE FLUJOS. INICIO
Configuro el puerto puerto D como salida
Escribo en el puerto D
ESQUEMÁTICO.
FOTOS.
En el programa 1 cambiar el valor val or &B1010_1010, &B1010_1010, por el siguiente número decimal.
Portd=240 Observar el resultado. El resultado fue que solo se encendieron 4 leds empezando desde el más significativo.
CÓDIGO 'programa 1.2
$regfile = "m16def.dat" $crystal = 800
'libreria de trabajo del ATMEGA 16 'cristal a utilizar 8MHz
Ddrd = 255 Config Portd = Output
'se especifica el puerto D como salida ' se inicializa el puerto D como salida
Do Portd=240
'inico de un lazo infinito 'se escribe en elpuerto el valor 55h
Loop
'fin de lazo
End
FOTOS.
Programa 2: este programa escribe en un pin del d el puerto D Entradas:
Datos que se guardaran en el microcontrolador. Procesos: •
Habilitar puerto D (salida)
•
Inicializa el puerto D como salida
•
Escribo en el del pin d.1 del puerto D el valor 55 hexadecimal.
Salidas:
Salida del puerto d.1 del puerto D hacia los leds.
CÓDIGO. 'programa 2
$regfile = "m16def.dat" $crystal = 8000000
'libreria de trabajo del ATMEGA 16 'cristal a utilizar 8MHz
Ddrd = 255 Config Portd = Output Portd = 0 Do Portd.1 = 1 Loop End
'se especifica especifica el puerto puerto D como salida ' se inicializa el puerto D como salida 'inico de un lazo infinito 'se escribe en elpuerto el valor 55h 'fin de lazo
DIAGRAMA DE FLUJOS. INICIO
Configuro el puerto D como salida
Escribo en el pin d.1 del puerto D
ESQUEMÁTICO.
FOTOS.
Programa 2: Para leer en un puerto de un microcontrolador mi crocontrolador AVR se utiliza el comando PIN, además se va a introducir al uso de las variables. Entradas:
Datos que se guardaran en el microcontrolador. Procesos: •
Habilitar puerto B como entrada
•
Inicializa el puerto D como salida
•
Se define la variable A tipo byte
•
Escribo puerto D los datos leídos del puerto B
Salidas:
Salida del D hacia los leds.
CÓDIGO. $regfile "m16def.dat" $crystal = 8000000 Ddrd = 0 Ddrb = 255 Config Portd = Output Config Portb = Input Dim A As Byte Do A = Pinb Portd = A Loop End 'fin de programa
DIAGRAMA DE FLUJO. INICIO
Configuro el puerto puerto D como salida y puerto puerto B entrada
Escribir en el Puerto BDlos datos leidos del Puerto B
Escribo en el puerto D los datos
ESQUEMÁTICO.
FOTOS.
1.2 Tablas de verdad Utilizando el esquema del tema 1.2, se comprobara el uso de las funciones lógicas and, or, xor y not. Entradas:
Datos ingresados por el usuario que se guardaran en el microcontrolador. Procesos: •
Habilitar puerto B como entrada
•
Inicializa el puerto D como salida
•
Se define las variables A, B, C, D tipo bit
•
Realiza la operación indicada
•
Escribo puerto D los resultados.
Salidas:
Salida del D hacia los leds.
CÓDIGO. 'tabla de verdad $regfile = "m16def.dat" "m16def.dat" $crystal = 8000000
'libreria de trabajo del ATMEGA 16 'cristal a utilizar 8MHz
Ddrb = 0 Ddra = 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 entrada Config Porta = Input Dim A As Bit , B As Bit , C As Bit , D As Bit 'se define la variable A tipo byte Do A = Pinb.0 And Pinb.1 Portd.0 = A
'inicio de un lazo infinito
B = Pina.0 Or Pina.1 Portd.1 = B C = Pinb.4 Xor Pinb.5 Portd.2 = C D = Not Pinb.6 Portd.3 = D Loop End
'fin de p
DIAGRAMA DE FLUJO. INICIO
Configuro el puerto D como salida y puerto puerto B entrada
Defino variables A, B, C, D tipo bit
Leo puerto B y realizo la operación indicada
Escribo en el puerto D los datos obtenidos
ESQUEMÁTICO.
FOTOS.
Ejercicio propuesto: Crear la tabla de verdad de la siguiente función booleana. (A AND B) OR (NOT C)
Entradas:
Datos ingresados por el usuario que se guardaran en el microcontrolador. Procesos: •
Habilitar puerto B como entrada
•
Inicializa el puerto D como salida
•
Se define las variables A, B, C tipo bit
•
Realiza la operación indicada
•
Escribo puerto D los resultados.
Salidas:
Salida del D hacia los leds.
CÓDIGO. 'tabla de verdad $regfile = "m16def.dat" "m16def.dat" $crystal = 8000000 Ddrb = 0 Ddrd = 255 Config Portd = Output Config Portb = Input Dim A As Bit , B As Bit , C As Bit Do A = Pinb.5 And Pinb.6 B = Not Portb.7 C = A Or B Portd.0 = C
'libreria de trabajo del ATMEGA 16 'cristal a utilizar 8MHz 'se especifica el puerto B como entrada 'se especifica el puerto D como salida ' se inicializa el puerto D como salida ' se inicializa el puerto B como entrada 'se define la variable A tipo byte 'inicio de un lazo infinito
Loop End 'fin de p
DIAGRAMA DE FLUJO. INICIO
Configuro el puerto D como salida y puerto puerto B entrada
Defino variables A, B, C tipo bit
Leo puerto B y realizo la operación indicada
Escribo en el puerto D los datos obtenidos
Tabla de Verdad
ABC 000 001 010 011 100 101 110 111
ESQUEMÁTICO.
S 1 0 1 0 1 0 1 1
FOTOS.
BIBLIOGRAFÍA •
MICROCONTROLADORES PIC. Diseño práctico de aplicaciones SEGUNDA PARTE: PIC 16F87X PIC 18FXXXX. Segunda edición. Segundo Angulo, Susana Romero, Mc Graw Hill. España
•
Hojas guía de la práctica.
•
Librerías de ayuda del software Bascom AVR