You are on page 1of 21

SISTEMAS MICROPROCESADOS I

UNIVERSIDAD POLITÉCNICA SALESIANA

INGENIERÍA ELECTRÓNICA

SISTEMAS MICROPROCESADOS I

INFORME DE LA PRACTICA 6

CONVERSION ANALOGO DIGITAL Y DIGITAL


ANALOGO

INTEGRANTES:

 CHRISTIAN MORALES
 HENRY SUNTAXI
SISTEMAS MICROPROCESADOS I

UNIVERSIDAD POLITÉCNICA SALESIANA


SISTEMAS MICROPROCESADOS I
INFORME No. 6
INTEGRANTES: CHRISTIAN MORALES
HENRY SUNTAXI
OBJETIVO: Utilizar los conversores A/D y D/A del microcontrolador PIC.

DESARROLLO
Para la practica se utilizo el PIC 16F877A.

Figura 1. PIC 16F877A


SISTEMAS MICROPROCESADOS I

PROCEDIMIENTO PRÁCTICO

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

 ALGORITMO
Entrada: La señal del potenciómetro ente 0 y 5voltios
Proceso:
 Defino variables

 Configuro el ADCON1

 Configuro e Inicializo el LCD


 Habilito el Puerto A como entrada
Salida: Visualizo en el LCD los datos de 0 a 1024
 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)
SISTEMAS MICROPROCESADOS I

wordtostr(voltaje, valor)
lcd_cmd(lcd_clear)
lcd_out(1,1,valor)
delay_ms(300)
wend
end.

 DIAGRAMA DE FLUJOS

INICIO

Defino las variables

Sub. Rutina

ADCON=$80

Puerto A como entrada

Configuro el LCD

Utilizo la sentencia While

Leo el voltaje de entrada

Observo en el LCD el valor

End
SISTEMAS MICROPROCESADOS I

 ESQUEMÁTICO

Esquematico Ejercicio6.1

Fotografía practica 6.1


SISTEMAS MICROPROCESADOS I

2.
 PROBLEMA
Conversión A/D con el microcontrolador PIC16F877A
Se adquiere un valor entre 0 y 5 voltios y se observa en el LCD el valor entre 0 y 5 voltios.
 ALGORITMO
Entrada: La señal del potenciómetro ente 0 y 5voltios
Proceso:
 Defino variables

 Creo una subrutina

 Configuro el ADCON1

 Configuro el OPTION_REG

 Configuro e Inicializo el LCD


 Habilito el Puerto A como entrada
Salida: Visualizo en el LCD los valores de 0 a 5V
 CÓDIGO
program analogdig1

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
SISTEMAS MICROPROCESADOS I

floattostr(voltaje, valor)
lcd_cmd(lcd_clear)
lcd_out(1,1,valor)
delay_ms(300)
wend
end.
 DIAGRAMA DE FLUJOS

INICIO

Defino las variables

Sub. Rutina

Configuro el registro
option_reg

ADCON=$80

Puerto A como entrada

Configuro el LCD

Utilizo la sentencia While

Leo el voltaje de entrada

Observo en el LCD el valor

End
SISTEMAS MICROPROCESADOS I

 ESQUEMÁTICO

Esquematico Ejercicio6.2

Fotografía practica 6.2


SISTEMAS MICROPROCESADOS I

3.
 PROBLEMA
Medición de temperatura con LM35.
El LM35 es un sensor analógico que devuelve la temperatura en forma de tensión esta tensión
devuelta es proporcional a la temperatura, Su rango comprende desde -55º hasta 150 ºC y el valor
devuelto es el equivalente a la temperatura dividida por 10. Entonces es su salida se obtiene valores
como estos:
1000mv=100 ºC
240mv=24 ºC
-300mv=-30 ºC

En el Microcontrolador hay que implementar una regla de tres con el valor analógico leído, de
forma que podamos trabajar con el valor devuelto en formato de temperatura real, ya sea para hacer
un termómetro con avisador o simplemente para mostrar la lectura en un LCD.
Los ADC en el pic 18f452 devuelven valores con 10bits de resolución, se entiende que este valor
comprende de 0-5v por lo tanto su valor máximo es 1023y equivale a los 5voltios para el ejemplo
que mostraremos mas abajo utilizaremos el sensor LM35 sin realimentación negativa con el cual
solo podemos obtener lectura de temperatura mayores a 0º.
Para esto utilizaremos esta expresión:

Resolución por paso=Voltaje/Resolución ADC


Donde 5v/1024(bits)=0.00488+1000=4.88
Ahora se multiplica por el valor de 10 devuelto para obtener un segundo decimal del resultado de la
conversión ADC/Temperatura, con esto tenemos un valor que hemos redondeado a 48.

 ALGORITMO
Entrada: La señal del LM35
Proceso:
 Defino variables

 Configuro Vref y AN0

 Habilito el puerto a0 como entrada

 Habilito el puerto b0 como salida


 Configuro el LCD en el puerto B
 Leo la entrada analógica
 Realizo la conversión
Salida: Visualizo en el LCD la “temperatura”
SISTEMAS MICROPROCESADOS I

 CÓDIGO
program LM35
dim temp_res as word
dim resultado as word
dim 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,"temperatura: ")
while true
temp_res = adc_read(0)
resultado = temp_res*48
wordtostr(resultado, outtxt)
lcd_chr(1,6,outtxt[0])
lcd_chr(1,7,outtxt[1])
lcd_chr(1,8,outtxt[2])
lcd_chr(1,9,".")
lcd_chr(1,10,outtxt[3])
lcd_chr(1,11,outtxt[4])

wend
end.
SISTEMAS MICROPROCESADOS I

 DIAGRAMA DE FLUJOS

INICIO

Defino las variables

Configuro Vref

Habilito el puerto A0 como


entrada

Habilito el puerto B0 como


salida

Configuro el LCD en el puerto


B

Leo la entrada analógica

Conversión ADC/ Temperatura

Convertimos la variable
resultado a texto

Visualizamos en el LCD

END
SISTEMAS MICROPROCESADOS I

 ESQUEMÁTICO

Esquematico Ejercicio6.3

Fotografía practica 6.2


SISTEMAS MICROPROCESADOS I

4.
 PROBLEMA
Conversión Digital análoga con el microcontrolador PIC16F877A y DAC0808
 ALGORITMO

Proceso:
 Defino las variables

 Creo una subrutina

 Realizo la sentencia while-wend

 Realizo un contador de 1 a 255

 El DAC recibe los datos y realiza la conversión


Salida: En la salida de 741 obtengo 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.
SISTEMAS MICROPROCESADOS I

 DIAGRAMA DE FLUJOS

INICIO

Sub. Rutina

Habilito el puerto D como


salida

Defino variables

Defino las variables

Con la sentencia For realizo un


contador de 1 a 255

Realizo el conteo en el puerto d

Retardo

End
SISTEMAS MICROPROCESADOS I

 ESQUEMÁTICO

Esquematico Ejercicio6.4
SISTEMAS MICROPROCESADOS I

Fotografía practica 6.4

Salida obtenida en el osciloscopio


SISTEMAS MICROPROCESADOS I

5.
 PROBLEMA
Conversión Análogo digital de 12 bits
MCP 3202
El conversor A/D 12 bits MCP320X soporta 100K muestras por segundo, consume 400mA en
modo funcionamiento y 500 nA en modo espera, alimentado de 2.7V a 5.5 V y un rango de
temperatura de -40C a 85C.
Esta disponibles de 1, 2,4, 8 canales y una gran variedad de pines el que se uso para esta practica es
el es de 8 pines

 ALGORITMO
Entrada: La señal del potenciómetro ente 0 y 5voltios
Proceso:
 Defino variables

 Creo una subrutina

 Habilito el puerto B como salida

 Configuro e Inicializo el LCD


 Habilito el Puerto C pin 2 como Entrada
 Leo el valor
Salida: Visualizo en el LCD los valores de 0 a 4096
 CÓDIGO
program conversor12
dim i as byte
dim j as byte
dim k as word
dim l as float
dim txt1,txt2 as string[6]
SISTEMAS MICROPROCESADOS I

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)
end sub
main:
TRISB=0
Spi_Init ' Standard configuration
Lcd_Config(PORTb,3,2,1,0,PORTB,5,6,4)
Lcd_Cmd(Lcd_CURSOR_OFF) ' Turn off cursor
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.
SISTEMAS MICROPROCESADOS I

 DIAGRAMA DE FLUJOS

INICIO

Defino las variables

Sub. Rutina

Retardo

Habilito puerto B como salida

Configuro el LCD

Leo los valores de entrada

Observo en el LCD el valor

End
SISTEMAS MICROPROCESADOS I

 ESQUEMÁTICO

Esquematico Ejercicio6.5

Fotografía practica 6.5


SISTEMAS MICROPROCESADOS I

CONCLUCIONES
Las conversiones tanto analógicas como digitales mediante el PIC 16F877A se los realiza de una manera
mas sencilla con esta practica se logro entender el uso de los conversores como es el sensor de temperatura
ahí que tener cuidado en armar bien la parte externa o el hardware como el DAC. Los conversores son mas
precisos con el microcontrolador.

BIBLIOGRAFÍA
- Hojas de prácticas para Laboratorio de Sistemas Microprocesados I.
- Manual de ayuda de microbasic para PIC.
- ANGULO MARTÍNEZ IGNACIO; ROMERO YESA SUSANA; ANGULO USATEGUI
JOSÉ MARÍA MICROCONTROLADORES PIC. DISEÑO PRACTICO DE
APLICACIONES. SEGUNDA PARTE: PIC16F87XX, PIC18FXXXX.

You might also like