UNIVERSIDAD POLITÉCNICA SALESIANA
INGENIERÍA ELECTRÓNICA
SISTEMAS MICROPROCESADOS
Tema: CONTROL DE PUERTOS
INFORME Nº 1 AVR
INTEGRANTES: GARCÍA PATRÍCIO SALGADO CRISTIAN
Objetivo: utilizar
los puertos del microcontrolador ATMEL AVR, como interface digital al mundo exterior. Ejercicio 1 Este programa escribe el valor 55 h en el puerto D Código: Regfile "m16def.dat" $crystal = 800000 Ddrd = 255 Config Portd = Output Do Portd = &B1010_1010 Loop End
Algoritmo: Entradas: numero binario 55h Salidas: código binario 55h en el puerto D Procesos: - Establecemos el puerto D como Salida. - Guardo el valor 55h en una variable. - Escribir el dato guardado en el puerto D. Diagramas de flujo: INICIO
Especificar el puerto D como salida
Escribir el dato 55H en el puerto D Portd = &B1010_1010
2
Simulación:
Fotos
3
Ejercicio 2 Este programa escribe en un pin del puerto D Código: Regfile "m16def.dat" $crystal = 8000000 Ddrd = 255 Config Portd = Output Portd = 0 Do Portd.1 = 1 Loop End
Algoritmo: Entradas: valor que escribiremos en un pin del puerto D Salidas: valor en el pin 1 del puerto D Procesos: - Especifico el puerto D como salida - Especifico el pin que deseo como salida - Escribimos el valor en el pin seleccionado (pin 1) Diagramas de flujo: INICIO
Habilitar puerto D como salida
Especifico el pin que deseo como salida (Portd.1=1)
4
Simulación:
Fotos
5
Ejercicio 3 Lectura y escritura en puertos Para leer en un puerto de un microcontrolador AVR se utiliza el comando PIN. Además se va a introducir al uso de las variables Código: Regfile "m16def.dat" $crystal = 800000 Ddrb = 0 Ddrd = 255 Config Portd = Output Config Portb = Input Sim A As Byte Do A = Pinb Portd = A Loop End
Algoritmo: Entradas: Voltaje TTL (5v) en el puerto B Salidas: Se Escribe en puerto D de acuerdo al numero enviado por el puerto B Procesos: - Especifico el puerto B como Entrada - Especifico el puerto D como salida - Escribir los datos recibidos por el puerto B , en el puerto D
6
Diagramas de Flujo INICIO
Habilitar puerto B como Entrada
Habilitar puerto D como salida
A=datos q recibe el puerto B
Portd=A Simulación:
7
Foto
8
Ejercicio 4 Utilizando el esquema anterior comprobar el uso de las funciones lógicas, AND, OR, XOR y NOT Código: Regfile "m16def.dat" $crystal = 800000 Ddrb = 0 Ddrd = 255 Config Portd = Output Config Portb = Input Dim A As Bit , B As Bit , C As Bit , D As 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
Algoritmo: Entradas: Bytes dados por dipswich hacia el puerto D Salidas: Se Escribe en puerto D de acuerdo a la compuerta seleccionada Procesos: - Especifico el puerto B como Entrada - Especifico el puerto D como salida - Lógica booleana (and, or,xor, not) entre los diferentes pines
9
Diagramas de Flujo INICIO
Habilitar puerto B como Entrada
Habilitar puerto D como salida
A = Pinb.0 And Pinb.1 B = Pinb.2 Or Pinb.3 C = Pinb.4 Xor Pinb.5 D = Not Pinb.6
Portd.0 = A Portd.1 = B Portd.2 = C Portd.3 = C
And
Or
Xor
Not
10
Simulación:
Foto
11
Ejercicio 5 Crear la tabla de la siguiente función Booleana (A AND B) OR (NOT C) Código: $crystal = 800000 Ddrb = 0 Ddrd = 255 Config Portd = Output Config Portb = Input Dim A As Bit , B As Bit , C As Bit , D As Bit Do A = Pinb.0 And Pinb.1 B = Not Pinb.2 C = A Or B Portd.0 = C Loop End
Algoritmo: Entradas: Bytes dados por dipswich hacia el puerto D Salidas: Se Escribe en puerto D de acuerdo operación booleana seleccionada Procesos: -
Especifico el puerto B como Entrada Especifico el puerto D como salida Resolución de la tabla de verdad mediante lógica booleana Muestro en puerto D el resultado de las operaciones
12
Diagramas de Flujo INICIO
Habilitar puerto B como Entrada
Habilitar puerto D como salida
A = Pinb.0 And Pinb.1 B = Not Pinb.2 C = A Or B
Portd.0 = C Simulación:
13
Foto
14