Você está na página 1de 19

UNIVERSIDAD POLITECNICA SALESIANA

SISTEMAS MICROPROCESADOS I
INTEGRANTES

OSCAR AYALA
CHRISTIAN IBARRA
ANDRES VALDIVIESO

1
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

2
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.

3
 Diagrama De Flujos

INICIO

Establecer variables

Iniciar subrutina

ADCON=$80

Habilitar el puerto A
como entrada

Configurar LCD

Utilizar la sentencia While

Leer el voltaje a la entrada

Observar el valor en el LCD

End.

4
 Esquemático

 Grafico Anexo

5
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)

6
lcd_cmd(lcd_clear)
LCD_OUT(1,1,valor)
delay_ms(300)
WEND
end.

 Diagrama De Flujos

INICIO

Definir variables

Subrutina

Configurar el option_reg

Puerto A como entrada

Configurar el LCD

sentencia While

Leer el voltaje de entrada

Observar el valor en el LCD

End.

7
 Esquemático

 Grafico Anexo

8
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])

9
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

INICIO

Definir variables

Configurar Vref

Habilitar A0 como entrada

Habilitar B0 como salida

Configurar LCD

Leer la entrada analógica

Conversión ADC/ Temperatura

Convertimos variable resultado


a texto

Visualizar en LCD

End.

10
 Esquemático

 Grafico Anexo

11
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.

12
 Diagrama De Flujos

INICIO

Subrutina

Habilitar el puerto D como


salida

Definir variables

Usando la sentencia For realizamos


un contador de 1 a 255

Realizo el conteo en el puerto d

Retardo

End.

13
 Esquemático

 Grafico Anexo

14
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)

15
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.

16
 Diagrama De Flujos

INICIO

Definir variables

Subrutina

Retardo

Habilitar puerto B como salida

Configurar LCD

Leer los valores de entrada

Observar el valor en el LCD

End.

17
 Esquemático

 Grafico Anexo

18
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

19

Você também pode gostar