Mostrar dos digitos en lcd

hola,no se como hacer para mostrar por ejemplo un numero de 2 digitos en un lcd usando un lm35 y un pic 16f876,ya que solo se mostrar desde el 0 al 9 y despues del nueve me aparece el caracter ':' y a ese caracter lo quiero reemplazar por un diez despues que venga el once y asi a medida que aumente la temperatura.estoy programando en assembler y utilizo el proteus.este es el codigo:

list p=16F876
INCLUDE "P16F876.INC"

caracter equ 20h
porta equ 05h
portb equ 06h
portc equ 07h
adcon0 equ 1Fh
adcon1 equ 9Fh
status equ 03h
adresL equ 9Eh
option_r equ 81h
intcon equ 8Bh
tmr0 equ 01h
pcl equ 82h

reset org 00h
bcf status,5 ;banco 0
movlw 0xC0
tris portc ;puerto c,bit 6 y 7 salidas,demas entradas
movlw 00h
tris portb ;puerto b como salida
movlw 01h
tris porta ;puerto a:pin 0 entrada,demas salidas
movlw 85h
movwf adcon0 ;selecciono AN0 analogico y inicio conversion
movlw 8Eh
bsf status,5 ;banco 1
movwf adcon1 ;selecciono adresL
movlw 07h
movwf option_r ;uso tmr0 y preescaler de 256
movlw 0x0A
movwf intcon ;habilito inter. por tmr0
clrf porta
clrf portc
clrf portb

bcf status,5 ;banco 0
termino btfsc adcon0,2 ;termino de procesar?
goto termino ;no
bsf adcon0,2 ;inicio conversion
bsf status,5 ;banco 1
rrf adresL,1 ;corro a la derecha los bits de adresL
movlw 30h
addwf adresL,0 ;le sumo 30h a adressL para convertir a codigo ASCII '0'
bcf status,5 ;banco 0
movwf portb ;muestro resultado en puerto b
bsf portc,6 ;habilito enable en lcd
bsf portc,7
call cuenta
bcf portc,6
bcf portc,7 ;deshabilito enable


cuenta bcf intcon,2 ;tempo de 2ms
movlw .217
movwf tmr0
goto tempo1
tempo1 btfss intcon,2 ;termino?
goto tempo1
bcf intcon,2
bcf portc,6 ;deshabilito
return
 
El problema es que estas enviando el valor obtenido directamente al LCD, y el 10d correponde en asccii a :. Lo que debes hacer es tomar el valor que vas a enviar al LCD y convertirlo de binario a BCD para que tengas los dígitos en BCD independientes en dos o tres registros y de ahí envías cada uno al display para formar el valor correcto... por lo que necesitas una rutina o librería para convertir binario a BCD...

Espero haberme explicado.

Chau...
 
Atrás
Arriba