Gracias amigos, tengo otro problema parecido con PIC16F877A, esta vez con PROTON, al final creo que son lo mismo, mas otro problema adicional con el LCD.
Quiero mostrar temperatura y ponerle alarmas de alta y baja temperatura, el programa aun falta......pero por ahora tengo estos errores....
1.- Quiero usar el PORTA.O, como salida de sonido a un piezo, pero solo me genera ruido blanco como en el anterior caso, creo que es por la configuracion del puerto A, pero ya me canse de probar, por favor diganme como configurarlo. Actualmete el código debajo esta con el pin B.1, y asi si funciona.
2.-No se por que tengo que dejar un espacio en blanco antes de escribir en PRINT $FE, 1, " TEMPERATURA", si no dejo este espacio me sale cortada la palabra TEMPERATURA o sea me muestra EMPERATURA, ademas de esto se muestran inestables las dos primeras letras de la palabra, algunas veces se desaparece la letra T, o o me muestra un D, cosa extraña, lo mismo me sucede con un programa de HOL MUNDO, que lo incluyo al final.
Gracias por su colaboracion.
JoseF
' Mostrar y controlar temperatura con un LM35
Device 16F877A
Declare XTAL 20
' Asigna pines de LCD
DECLARE LCD_DTPIN PORTB.4
DECLARE LCD_ENPIN PORTB.3
DECLARE LCD_RSPIN PORTB.2
DECLARE LCD_INTERFACE 4
DECLARE LCD_LINES 2
Declare ADIN_RES 10
Declare ADIN_TAD 2
Declare ADIN_STIME 100
Dim Temp as Word
'Symbol N9600 = 104 - 20
Symbol AN1 = 1
SYMBOL PIEZO = PORTb.1 'AQUI QUISIERA USAR PORTA.0
TRISA = %00000010
TRISb = %00000000
CMCON = 7
INTCON = 0
ADCON1 = %11111110 'Set up ADCON1 RA1 - RAx analogo
Main: Temp = Adin AN1 'Carga la variable TEMP con la muestra "sample"
'Serout PORTC.6,N9600, [ "Temperatura es ",dec (Temp / 2) - 3," Grados C ",dec Temp,13]
'Delayms 500
temp = (TEMP/2) - 3
DISPLAY:
PRINT $FE, 1, " TEMPERATURA "
print $FE, $C0, dec temp , " Grados C"
delayms 500
if temp > 25 then
high portb.0
else
low portb.0
endif
if temp < 24 then
high portc.0
else
low portc.0
endif
if temp > 26 then GOSUB BEEP 'Ir a la alrma
if temp < 23 then GOSUB BEEP 'Ir a la alarma
Goto Main
BEEP:
SOUND PIEZO, [120, 10, 123, 20, 115, 10, 110, 20]
RETURN
---------------------------------------------------------------------------------------
Device 16F877A
XTAL 20
START:
CLS
DELAYMS 100
'DECLARE LCD_TYPE 0
DECLARE LCD_DTPIN PORTB.4
DECLARE LCD_ENPIN PORTB.3
DECLARE LCD_RSPIN PORTB.2
DECLARE LCD_INTERFACE 4
DECLARE LCD_LINES 2
Inicio:
PRINT $FE, 1, "Hola Mundo"
DELAYMS 1000
goto inicio: