Hola,
Con la ayuda del foro acabo de hacer funcionar mi LCD de 4x20 y eso ha sido el inicio para el proyecto que traigo entre manos.
Se trata de un display LCD de 4x20 gobernado por un PIC16F76 con cristal de 8MHz que va a estar monitoreando el voltaje de entrada ya rectificado, es decir después del transformador de bajada de 127VAC a 18VAC. Después de rectificarlo con un puente de onda completa y capacitor de 100uF tengo un voltaje de 26VDC aprox.
Le he puesto un divisor de tensión con 1 resistencia de 10Kohms y luego una de 2Kohms y en medio de estas dos saco el valor muestra que lo llevo al RA5/AN5 de PIC. Esto es porque las RA0-RA3 las ocupo para controlar el LCD. Según mis calculos y lo que he encontrado de información aquí en el foro, el Valor Real de lo leido en el ADC seria
Vreal = 0.1171 * Vadc
Ok, el display funciona y al querer mostrar el valor leido en el ADC me muestra los caracteres correspondientes al binario del registro ADRES de acuerdo al mapa de caracteres del LCD. Encontré una rutina que convierte de binario a decimal y lo mujestra en el display:
LCDval08:
clrf Bcheck
movlw d'100'
movwf TEMP2
call VALcnv
movlw d'10'
movwf TEMP2
call VALcnv
movlw d'1'
movwf TEMP2
bsf Bcheck,0
call VALcnv
return
VALcnv:
clrf TEMP1
movfw TEMP2
VALc01 subwf VIN,0
skpc
goto LCDval2
incf TEMP1,1
movfw TEMP2
subwf VIN,1
bsf Bcheck,0
goto VALc01
LCDval2 movlw '0'
addwf TEMP1,0
btfss Bcheck,0
movlw ' '
call LCD_DAT
el valor de VIN es el que saco del registro ADRES.
Lo he probado físicamente y sí me muestra un valor decimal en el display pero no me parece que sea el valor que busco a veces es un valor de un sólo digito, a veces de 2 digitos a veces es cero y a veces nada. Podrían explicarme cómo funciona esta rutina? ya que como mencioné la encontre en un libro en pdf y sólo lo copié con algunos cambios de acuerdo a mis variables pero no logro entender cómo funciona.
Por otro lado, si hay alguna forma para hacer que el valor en ADRES lo pueda visualizar en el LCD les agradecería me dijeran cómo hacerlo.
Saludos