TODOPIC
FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: seth83 en 16 de Julio de 2011, 01:07:14
-
Que tal, tengo un lcd serial que funciona a 9600bps, si utilizo un pic 16f628a a 20mhz con salida serie por hardware funciona perfecto, solo que quise agregar un lm35 y tube que cambiar lo por un 16f88, el problema consiste en que no se como hacer para que funcione, ya intente varias cosas y en el lcd me manda puros caracteres raros
este es el codigo utilizado
@ __CONFIG _CONFIG1, _INTRC_IO & _WDT_OFF & _PWRTE_OFF & _CP_OFF & _CCP1_RB3 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF
@ __CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
DEFINE OSC 8
OSCCON = %01111000 '8 Mhz
CMCON = 7 'turn comparators off
ANSEL = 0 'All digital
DEFINE HSER_BAUD 9600 ' Set baud rate
DEFINE HSER_TXSTA 20h ' Enable transmit, BRGH = 0
DEFINE HSER_SPBRG 12 ' 9600 Baud @ 8MHz, 0.16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically
INCLUDE "modedefs.bas"
pause 1800
main:
hserout [254, 0]
hserout [$fe, $c0, "TEXTO"]
goto main
end
haber si alguien pudiera hecharme una manita
-
Que tal, tengo un lcd serial que funciona a 9600bps, si utilizo un pic 16f628a a 20mhz con salida serie por hardware funciona perfecto, solo que quise agregar un lm35 y tube que cambiar lo por un 16f88, el problema consiste en que no se como hacer para que funcione, ya intente varias cosas y en el lcd me manda puros caracteres raros
este es el codigo utilizado
@ __CONFIG _CONFIG1, _INTRC_IO & _WDT_OFF & _PWRTE_OFF & _CP_OFF & _CCP1_RB3 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF
@ __CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
DEFINE OSC 8
OSCCON = %01111000 '8 Mhz
CMCON = 7 'turn comparators off
ANSEL = 0 'All digital
DEFINE HSER_BAUD 9600 ' Set baud rate
DEFINE HSER_TXSTA 20h ' Enable transmit, BRGH = 0
DEFINE HSER_SPBRG 12 ' 9600 Baud @ 8MHz, 0.16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically
INCLUDE "modedefs.bas"
pause 1800
main:
hserout [254, 0]
hserout [$fe, $c0, "TEXTO"]
goto main
end
haber si alguien pudiera hecharme una manita
Donde vas a poner el LM 35 si configurarste todas las entradas como digitales?.
-
Gracias por responder, aun no e configurado la parte de lectura, pues no me muestra nada de texto en la lcd, ese es el problema que tengo ahorita, ya probe varias cosas y nada salen puos caracteres raros, y la imagen de una flecha ->, asi esta actualmente haber si me pudieras ayudar :)
-
Sabes, aunque parezca algo tonto o tirado de los pelos, te hay fijado en el pinout, yo recuerdo que una vez me confie en que todos los pics de 18 pines tenian el usart en la misma ubicacion y luego me di cuenta que no siempre es asi :?.
Pinout del 16F628
(http://www.e-radiocontrol.com.ar/images/16f628.jpg)
pinout del 16F88
(http://circuits.datasheetdir.com/19/PIC16F88-pinout.jpg)
El usart no tiene la misma ubicacion, salvo que lo fuerzes a que funcione con software. ;-)
-
gracias por responder, no es tonto, si me llego a pasar en algunas ocaciones XD, pero no en esta, fue lo primero que le note en el proteus donde tambien funciona, pero ya armado no deja de sacar "basura" en el lcd
-
Has intentado descartar la comunicacion serial con otro dispositivo, es decir si le pones un max232 al pin de TX del PIC y en vez de enviarle los datos al LCD se lo envias a la PC, para descartar, si hay comunicacion entonces, el problema es de ruido, si es asi podrias ponerle un par de transistores.
-
no creo que sea eso, en dado caso no funcionaria ni con el 16f628a, pero todo es posible, no tendras algun ejemplo que tengas 100% probado en pbp o el hex, para enviar datos seriales?
-
Alguien sabe a que velocidad es mas preciso el ocilador interno del 16f628a??
-
Haber si alguien me puede responder esta gran solucion que me dejo bokiabierto
resulta que con este codigo funciono a la primera
DEFINE OSC 20
OSCCON = %01101110 '8 Mhz
CMCON = 7 'turn comparators off
ANSEL = 0 'All digital
OSCTUNE = %000000
DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
DEFINE HSER_SPBRG 129 ' 9600 Baud @ 20MHz, 0.16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically
lo mas raro es que si le cambio la velocidad del osc a 4 me aparecen los textos muy rapido, si cambio el osccon como se supone debe de ser sale pura basura, si lo uso tal cual funciona a la perfeccion
-
Haber si alguien me puede responder esta gran solucion que me dejo bokiabierto
resulta que con este codigo funciono a la primera
DEFINE OSC 20
OSCCON = %01101110 '8 Mhz
CMCON = 7 'turn comparators off
ANSEL = 0 'All digital
OSCTUNE = %000000
DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
DEFINE HSER_SPBRG 129 ' 9600 Baud @ 20MHz, 0.16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically
lo mas raro es que si le cambio la velocidad del osc a 4 me aparecen los textos muy rapido, si cambio el osccon como se supone debe de ser sale pura basura, si lo uso tal cual funciona a la perfeccion
Lo mas probable que el LCD se sature por no ser tan rapido.