“SALESIANA”
FACULTAD DE INGENIERÍAS
CARRERA DE INGENIERÍA
ELECTRÓNICA
SISTEMAS MICROPROCEADOS I
INFORME Nº 6
SANTIAGO MALDONADO
ARMANDO ALOMOTO
JIMMY ANDRADE
6º ELECTRÓNICA “1”
UNIVERSIDAD POLITÉCNICA SALESIANA
SISTEMAS MICROPROCESADOS I
INFORME Nº 1
Objetivo
Desarrollo
Para la práctica se utilizo el PIC 16F877A
ALGORITMO
Definir la configuración
Declaración de variables y puerto A como digital
Transformación del voltaje análogo a la palabra digital
Retardo de 300 ms
End
CÓDIGO
program Ejerciciouno
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.
DIAGRAMA DE FLUJOS
INICIO
CONFIGURO LAS
VARIABLES
ADCON1=$80
WORDTOSTR
RETARDO DE 300 ms
END
SIMULACIÓN
RESULTADO
PROBLEMA Nº 2
ALGORITMO
Definir la configuración
Declaración de variables y puerto A como digital
Transformación de la palabra digital al voltaje análogo
Cálculos para transformación
Retardo de 300 ms
End
CÓDIGO
program Ejerciciodos
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)
lcd_cmd(lcd_clear)
lcd_out(1,1,valor)
delay_ms(300)
wend
end.
DIAGRAMA DE FLUJOS
INICIO
CONFIGURO LAS
VARIABLES
ADCON1=$80
VOLTAJE= ADC_READ(0)
VOLTAJE= (VOLTAJE*5)/1024
RETARDO DE 300 ms
END
SIMULACIÓN
RESULTADO
PROBLEMA Nº 3
ALGORITMO
Definir la configuración
Declaración de variables y puerto A como digital
Cálculos para ver la temperatura en el LCD
Retardo de 1 s
End
CÓDIGO
program Ejerciciotres
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,"Temp:")
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])
delay_ms(1000)
wend
end.
DIAGRAMA DE FLUJOS
INICIO
CONFIGURO LAS
VARIABLES
ADCON1=$80
VOLTAJE= ADC_READ(0)
RESULTADO=TEMP_RES*48
RETARDO DE 1 s
END
SIMULACIÓN
RESULTADO
PROBLEMA Nº 4
ALGORITMO
Definir la configuración
Cálculos para ver la conversión D/A
Retardo de 100 ms
End
CÓDIGO
program Ejerciciocuatro
sub procedure init
trisd=0
end sub
dim i as byte
dim a as byte
a=0
i=0
main:
while true
init
for i=1 to 255
a=a+1
portd=a
next i
delay_ms(100)
wend
end.
DIAGRAMA DE FLUJOS
INICIO
CONFIGURO LAS
VARIABLES
CÁLCULOS D/A
RETARDO DE 1 s
END
SIMULACIÓN
RESULTADO
PROBLEMA Nº 6
ALGORITMO
Definir la configuración
Cálculos para ver la conversión A/D
Retardo de 100 ms
End
CÓDIGO
program Ejerciciocinco
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)
end sub
main:
trisb=0
Spi_Init
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.
DIAGRAMA DE FLUJOS
INICIO
CONFIGURO LAS
VARIABLES
CÁLCULOS A/D
RETARDO DE 1 s
END
SIMULACIÓN
RESULTADO
CONCLUSIONES
BIBLIOGRAFÍA
http://www.disam.upm.es/~cybertech/Nacional/Documentos/Comp
onentes/PIC18F442.pdf (9/12/2010)
http://ww1.microchip.com/downloads/en/devicedoc/30292c.pdf
(9/12/2010)
Manual de ayuda de microbasic para PIC. (9/12/2010)