Informe Practica 6 PIC
Click here to load reader
-
Upload
oscarayala88 -
Category
Documents
-
view
466 -
download
2
Transcript of Informe Practica 6 PIC
1
UNIVERSIDAD POLITECNICA SALESIANA
SISTEMAS MICROPROCESADOS I
INTEGRANTES
OSCAR AYALA
CHRISTIAN IBARRA
ANDRES VALDIVIESO
2
TEMA: Conversión análoga digital y digital análoga
OBJETIVO: Aprender a utilizar correctamente los conversores D/A y A/D del
microcontrolador PIC.
DESARROLLO: Para la practica utilizamos la placa programadora “PICTrainer” de dsPIC y
el software Microbasic ds.
PROCEDIMIENTO
EJERCICIO 1
PROBLEMA:
Conversión A/D con el microcontrolador PIC16F877A
Se requiere la señal de un potenciómetro entre 0 y 5 voltios y se observa en el LCD
un valor entre 0 y 1024
3
ALGORITMO:
Entrada: Voltaje en el potenciómetro ente 0 y 5voltios
Proceso:
Configurar el ADCON1
Configurar el LCD
Habilitar el Puerto A como entrada
Salida: Visualizar los datos de 0 a 1024 en el LCD.
Código
program AnalogoDigital
dim voltaje as word
dim valor as string[10]
sub procedure init
adcon1=$80
trisa=$FF
lcd_config(portb,7,6,5,4,portb,0,1,2)
lcd_cmd(lcd_cursor_off)
end sub
main:
init
while true
voltaje = adc_read(0)
wordtostr(voltaje, valor)
lcd_cmd(lcd_clear)
lcd_out(1,1,valor)
delay_ms(300)
wend
end.
4
Diagrama De Flujos
Establecer variables
INICIO
ADCON=$80
Iniciar subrutina
Habilitar el puerto A como entrada
Configurar LCD
Observar el valor en el LCD
Utilizar la sentencia While
Leer el voltaje a la entrada
End.
5
Esquemático
Grafico Anexo
6
Ejercicio 2
Conversión A/D con el Microcontrolador PIC 16F877. Se adquiere un valor entre 0 y 5 voltios y se observa, en el LCD el valor entre 0 y 5 voltios. Algoritmo Entradas: Voltaje entre 0 y 5 voltios.
Salidas: Display LCD
Procesos: Defino variables Creo subproceso Habilito ADCON1 Configuro Puerto B como entrada Configuro LCD Leo mi voltaje de entrada Despliego en el LCD Retardo de 300 ms
Código:
program ADC2 DIM voltaje as float dim valor as string [10] sub procedure init OPTION_REG = $80 ADCON1=$80 TRISA=$FF lcd_config(portb,7,6,5,4,portb,0,1,2) lcd_cmd(lcd_cursor_off) end sub main: init WHILE TRUE voltaje=Adc_read(0) voltaje=(voltaje*5)/1024 FLOATTOSTR(voltaje,valor)
7
lcd_cmd(lcd_clear) LCD_OUT(1,1,valor) delay_ms(300) WEND end.
Diagrama De Flujos
Definir variables
INICIO
Configurar el option_reg
Subrutina
Configurar el LCD
Observar el valor en el LCD
sentencia While
Leer el voltaje de entrada
End.
Puerto A como entrada
8
Esquemático
Grafico Anexo
9
Ejercicio 3 Medición de temperatura con LM35. Los ADC en el pic 18f452 devuelven valores con 10 bits de resolución , se entiende que este valor comprende de 0 a 5 V, por lo tanto su valor máximo es 1023 y equivale a los 5 v. Para el ejemplo que mostraremos más abajo utilizaremos el sensor LM35 sin realimentación negativa, con lo cual solo podremos obtener lecturas de temperaturas mayores de 0º.
Algoritmo
Entrada: La señal del LM35
Proceso:
Configurar Vref y AN0
Habilitar el puerto a0 como entrada
Habilitar el puerto b0 como salida
Configurar el LCD en el puerto B
Leer entrada analógica
Realizar la conversión
Salida: Visualizo en el LCD la “temperatura”
Código:
program temperatura dim temp_res as word Resultado as word OutTxt as byte[5] main: ADCON1=%10001110 TRISA= %00000001 trisb=0 lcd_config(portb,7,6,5,4,portb,0,1,2) LCD_Cmd(Lcd_CURSOR_OFF) Lcd_Cmd(Lcd_Clear) Lcd_Out(1,1,"Temperat:") WHILE TRUE temp_res=Adc_Read(0) Resultado=temp_res*48 wordtostr(Resultado,OutTxt) Lcd_Chr(1,11,OutTxt[0]) Lcd_Chr(1,12,OutTxt[1])
10
Lcd_Chr(1,13,OutTxt[2]) Lcd_Chr(1,14,".") Lcd_Chr(1,15,OutTxt[3]) Lcd_Chr(1,16,OutTxt[4]) delay_ms(1000) wend end.
Diagrama De Flujos
Definir variables
INICIO
Habilitar A0 como entrada
Configurar Vref
Habilitar B0 como salida
Configurar LCD
Visualizar en LCD
Conversión ADC/ Temperatura
Convertimos variable resultado a texto
Leer la entrada analógica
End.
11
Esquemático
Grafico Anexo
12
Ejercicio 4
Problema
Conversión Digital análoga con el DAC0808
Algoritmo
Proceso:
Definir variables
Crear una subrutina
Utilizar sentencia while-wend
Realizar un contador de 1 a 255
El DAC realiza la conversión
Salida: En la salida de C.I 741 obtenemos una señal análoga
Código
program DAC
sub procedure init
trisd=0
end sub
dim i as byte
dim a as byte
main:
init
while true
a=0
i=0
for i=1 to 255
a=a+1
portd=a
next i
wend
end.
13
Diagrama De Flujos
INICIO
Habilitar el puerto D como salida
Subrutina
Definir variables
Retardo
Realizo el conteo en el puerto d
End.
Usando la sentencia For realizamos un contador de 1 a 255
14
Esquemático
Grafico Anexo
15
Ejercicio 5 Conversor análogo digital de 12 bits Algoritmo Entradas: Señal Análoga de 0 a 5 voltios
Salidas: LCD valores de 0 - 4096
Proceso: Definir variables Crear una subrutina Habilitar el puerto B como salida Configurar e Inicializo el LCD Habilitar el Puerto C pin 2 como Entrada Leer el valor
Código:
program AD12bits dim i as byte dim j as byte dim k as word dim l as float dim txt1, txt2 as string [6] sub procedure ret1 delay_ms(1000) end sub sub procedure tx k=i<<8 k=k+j k=k and %1111111111111000 k=k>>3 wordtostr(k,txt1) l=k floattostr(l,txt1)
16
end sub main: trisb=0 spi_init 'standar configuration lcd_config(portb,3,2,1,0,portb,5,6,4) lcd_cmd(lcd_cursor_off) lcd_out(1,1,"conversor") lcd_out(2,1," ") trisc=trisc and $FB portc.2=1 while true portc.2=0 Spi_write(%1011) i=Spi_Read(i) j=Spi_Read(j) portc.2=1 tx ret1 lcd_out(2,7,txt1) lcd_out(2,11," ") wend end.
17
Diagrama De Flujos
Definir variables
INICIO
Retardo
Subrutina
Habilitar puerto B como salida
Configurar LCD
Observar el valor en el LCD
Leer los valores de entrada
End.
18
Esquemático
Grafico Anexo
19
Conclusiones
Los ejercicios realizados en el laboratorio fueron de mucha ayuda porque nos
permitieron tener conocimientos sobre el manejo de los puertos del PIC y sus
conversores internos.
El conversor A/D es muy útil debido a que con el podemos adquirir señales
provenientes de sensores u otros dispositivos con el fin de poder manipularlos
mediante un PC.
Podemos concluir que la primera práctica de laboratorio fue realizada con mucho
éxito aprendimos un poco más sobre el mundo de la familia de los PICs y de su
programación con el propósito de adquirir datos externos.
Bibliografía
Hojas de prácticas para Laboratorio Sistemas Microprocesados I.
http://ww1.microchip.com/downloads/en/devicedoc/3202.pdf
Microcontroladores PIC - Angulo Usategui Jose Maria