Escolar Documentos
Profissional Documentos
Cultura Documentos
SISTEMAS MICROPROCESADOS I
INTEGRANTES
OSCAR AYALA
CHRISTIAN IBARRA
ANDRES VALDIVIESO
1
TEMA: Conversión análoga digital y digital análoga
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
End.
4
Esquemático
Grafico Anexo
5
Ejercicio 2
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
Configurar el LCD
sentencia While
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
Configurar LCD
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
Definir variables
Retardo
End.
13
Esquemático
Grafico Anexo
14
Ejercicio 5
Algoritmo
Entradas:
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]
15
end sub
main:
trisb=0
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
Configurar LCD
End.
17
Esquemático
Grafico Anexo
18
Conclusiones
Bibliografía
http://ww1.microchip.com/downloads/en/devicedoc/3202.pdf
19