PIC16F84 + LCD... dudas
| #1 PIC16F84 + LCD... dudas |
| #2 |
|
microextremo
|
justo estaba revisando una informacion donde hay unas figuras que te pueden ayudar,
http://www.pic16f84a.com/Proteus.htm aunque los ejemplos hacen trabajar al LCD con 4 pines y tu quieres con 8... bueno no creo que eso sea tan dificil de encontrar 8) |
|||||||||||
|
|
||||||||||||
| #3 |
|
tiopepe123
Colaborador
|
Ve con cuidado, primero haz el proyecto con todas las lineas de control Rw... aunque utilices el formato de cuatro lineas de datos. Lo digo porque si te pasas al "c" es un poco problematico, una vez verificado que la LCD rula bien, pues pruebas de quitarselo y crear una libreria.
Yo lo probe y no funciono del todo correcto y como utilizaba un pic16f876 no me veria de esas tres patillas. Te recomiendo encarecidamente te pases al pic16f876/877, funcionan y valen casi lo mismo y son mas versatiles sobretodo el bootloader |
|||||||||||
|
|
||||||||||||
| #4 |
|
Ehecatl
|
No puedes dejar inactivada la terminal E del LCD. Sin ésta no podrás cargar ni datos ni comandos al mismo. La única que puedes dejar siempre fija es la R/W.
|
|||||||||||
|
|
||||||||||||
| #5 Como controlar un LCD |
|
akyles
|
En esta pagina hay un mini-tutorial como usar los LCD http://www.josepino.com/pic_projects/indexsp.pl?hitachi_displays.jps - Incluso te indica paso a paso como inicializar el display LCD.
|
|||||||||||
|
|
||||||||||||
| #6 lcd.. |
|
skan
|
gracias por sus contestaciones..
alfinal necesito conectarlo con 8 patillas...ya que el LCD que tengo, DB0-DB3 controla 40 segmentos del LCD, y las otras 4.. los otros 40 segmentos (es de una línea)... tengo librerias de las que hechar mano... lo que no tengo ninguna para el control del LCD a 8 bits (usaba una; LCD_4BIT.INC) y todos los programas ejemplos q tenia usaban esa... ¿alguien sabe donde puedo encontrar una? |
|||||||||||
|
|
||||||||||||
| #7 |
|
tiopepe123
Colaborador
|
utiliza 4 bits si no tienes prisa, que no te sobran pines para tirar.
Recuerda que es inteligente,, no hables de segmentos, eso lo hace el chip, solo precupate de enviarle los datos. con 4 bits puedes manejar todo el display. la primera linea va desde 00 a 39 y la segunda linea 40-79 si no me equivoco. me explico solo hay un tipo de chip esta diseñado para controlar 4x40 caracteres, el fabricante le mete la lcd que le interese 1x16 o 2x16 .... las filas que sobran simplemente no se ven(no hay cristal lcd), pero existen si escribes y lees en una posicion que no hay nada veras como lo retiene, como si lo quieres para guardar datos por que no te caven en el micro, eso se puede hacer. |
|||||||||||
|
|
||||||||||||
| #8 Eliminando problemas!! |
|
skan
|
PORFIN pude visualizar algo coherente y bien escrito en el LCD!!!!!!!...
lo conseguí mandando yo caracter a caracter, sin utilizar la libreria para enviar la palabra entera como hacia antes...esta es un poco la estructura... -------------- ORG 0 Inicio call LCD_Inicializa Principal movlw 'H' call LCD_Caracter call Retardo_500ms movlw 'o' call LCD_Caracter call Retardo_500ms movlw 'l' call LCD_Caracter call Retardo_500ms movlw 'a' call LCD_Caracter call Retardo_500ms call LCD_Borra ; Borra la pantalla. call Retardo_500ms goto Principal ----------------- EL PROBLEMA QUE PERSISTE:: sigo controlando tan solo la parte izquierda de la pantalla... e probado de subir temporizaciones, desactivar el watchdog, verificar que no hay ninguna interrupción activa que altere el programa...y nada sigue igual.. Recuerdo que el control lo realizo de DB7-DB4 del LCD a RB7-RB4 del pic, RS=RA0, R/W=RA1, E=RA2... alguna idea¿¿ al- ya es algo lo que puedo enseñar..! |
|||||||||||
|
|
||||||||||||
| #9 |
|
Ehecatl
|
Aclaremos. De los 16 caracteres que se pueden mostrar en la pantalla ¿sólo puedes mostrar 8?
¿qué sucede al intentar escribir el noveno? ¿podrías poner la rutina lcdcaracter para ver si no hay algo extraño en ella? lo dudo pero hay que estar 100% seguros. |
|||||||||||
|
|
||||||||||||
| #10 lcd.. |
|
skan
|
lo e probado de dos maneras... mandando los 8 caracteres y despues la llamada a LCD_posicionLinea1 y situandolo en la posicion 08 (la 9a del LCD), y también sin llamar a la subrutina mandar 11 caracteres,,,
simplemente escribe hasta el 8, y lo otro no se ve (nada ningun segmento se enciende) pero si realiza el proceso, por que las temporizaciones de escribir esas 3 letras si se cumplen..y la temporización final (matengo el msg 1seg en pantalla) también. ESTA ES LA SUBRUTINA LCDPOSICIONLINEA1; --------------- LCD_PosicionLinea1 ; Cursor a posición de la Línea 1, a partir de la iorlw b'10000000' ; dirección 00h de la DDRAM más el valor del goto LCD_EnviaComando ; registro W. esta la LCD_EnviaCOmando ----------------------------- LCD_EnviaComando bcf LCD_PinRS ; Activa el Modo Comando, poniendo RS=0. goto LCD_Envia LCD_Caracter bsf LCD_PinRS ; Activa el "Modo Dato", poniendo RS=1. call LCD_CodigoCGROM ; Obtiene el código para correcta visualización. LCD_Envia movwf LCD_GuardaDato ; Guarda el dato a enviar. call LCD_EscribeLCD ; Primero envía el nibble alto. swapf LCD_GuardaDato,W ; Ahora envía el nibble bajo. Para ello pasa el ; nibble bajo del dato a enviar a parte alta del call LCD_EscribeLCD ; Se envía al visualizador LCD. btfss LCD_PinRS ; Debe garantizar una correcta escritura manteniendo call Retardo_10ms ; 2 ms en modo comando y 50 µs en modo cáracter. call Retardo_100micros return ------------------ y mi manera de llamar a LCD_posicionlinea1: movlw b'00001001' call LCD_PosicionLinea1 call Retardo_20ms |
|||||||||||
|
|
||||||||||||
|
| Temas de interés | |
|---|---|
| Adquisicion de datos a traves de serial o puerto paralelo | |
| Adquisicion de datos con JK3 (motorola) | |
| Adquisición de datos por Tarjeta de audio | |
| Anchos de banda (Transmisión de datos VoIP videoconferencia) | |
| Datos de Norma PAL N (Television) | |
| Foros de Electronica |
| ||
Cuestiones Elementales de Electrónica ||
Fuentes de alimentacion ||
Circuitos de radio ||
Diseño de circuitos en general || || Sistemas de Audio: Preamplificadores, Ecualizadores || Amplificadores || Reparación || Discusión || || Microcontroladores y sistemas embebidos || Circuitos logicos combinacionales y secuenciales || Interfaces y Programacion || Dudas en general || Sistemas de Video || PC Hardware || Telematica y comunicaciones || Tecnologias moviles || Software Electronico || Robotica, Domotica y Mecatronica || Autotrónica || Automatizacion, Electronica industrial y de Potencia || Documentacion, circuitos y esquemas || Donde Las Ideas Convergen... || Tutoriales y Manuales || Proyectos Prácticos || |
Site Map
© Foros de Electrónica
Comunidad Internacional de Electrónicos
Powered by phpBB © 2001, 2005 phpBB Group
Acerca de || Política de privacidad
© Foros de Electrónica
Comunidad Internacional de Electrónicos
Powered by phpBB © 2001, 2005 phpBB Group
Acerca de || Política de privacidad

