Autor Tema: ayuda con modulo LCC  (Leído 5440 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado facundo_bellesi

  • PIC10
  • *
  • Mensajes: 14
ayuda con modulo LCC
« en: 11 de Julio de 2007, 15:15:49 »
  Hola a todos!!!
Estoy tratando de hacer un proyectito con en PIC 16F877 y un modulo LCD 16x2, pero el problema es que nunca trabaje con modulos LCD  :8}...
Lo que quisiera es si alguien me puede ayudar/desirme como hago una subrrutina en el PIC para que mande mensaje que quiero al modulo. Por lo que pude ver, es algo asi??

MENSAJE   CALL      MUESTRA   ;Llama a muestra      
              BSF      PORTE,2   ;Habilita el modulo LCD (conectado al Enable)
              BSF      PORTE,1   ;Selecciono el registro de datos
              BCF      PORTE,0   ;Le dice al modulo que lo voy a escribir
                           NOP                                               ;
                           MOVWF      PORTD   ;Mueve W a al puerto D   
              INCF      CUENTA   ;incrementa cuenta      
              MOVLW      0x07   ;mueve el literal 07h a w                                           SUBWF      CUENTA   ;resta w y cuenta para ver si ya termino de escribir el msj                                        BTFSC      STATUS,2   ;termino?   
              RETURN         ;si, retorna de donde la llamaron      
              GOTO      MENSAJE   ;no, va a mensaje   
      
MUESTRA   MOVF      CUENTA,W   ;mueve A w   
              ADDWF      PCL,1   ;Le suma al contador de programa W      
              RETLW      "M"   ;mueve el codigo ASCII de M a W y retorna      
              RETLW      "E"   ;mueve el codigo ASCII de E a W y retorna      
              RETLW      "N"   ;mueve el codigo ASCII de N a W y retorna      
              RETLW      "S"   ;mueve el codigo ASCII de S a W y retorna      
              RETLW      "A"   ;mueve el codigo ASCII de A a W y retorna      
              RETLW      "J"   ;mueve el codigo ASCII de J a W y retorna      
              RETLW      "E"   ;mueve el codigo ASCII de E a W y retorna   

Por favor agradeceria si alguien me puede decir si esto esta bien... Y si con esto nada mas ya me aparece MENSAJE en el modulo...

Gracias nuevamente y saludos a todos...   
         
La teoría es asesinada tarde o temprano por la experiencia. A. Einstein

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: ayuda con modulo LCC
« Respuesta #1 en: 11 de Julio de 2007, 15:28:20 »
No, un LCD requiere de una inicialización que son varios pasos y de una forma bien específica de comunicarse con el.

Eso que tu haces no servirá para nada en un LCD compatible con el hitachi HD44780 por ejemplo.
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: ayuda con modulo LCC
« Respuesta #2 en: 12 de Julio de 2007, 01:17:34 »
busca en el foro ejemplos para el LCD en ASM, hay ufff por kilos!  :-/
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado facundo_bellesi

  • PIC10
  • *
  • Mensajes: 14
Re: ayuda con modulo LCC
« Respuesta #3 en: 12 de Julio de 2007, 11:08:05 »
Ahh... muchas gracias por contestar...

Me voy a fijar algunos ejemplitos y cualquier cosa los molesto otra vez  :P...

muchas gracias
La teoría es asesinada tarde o temprano por la experiencia. A. Einstein

Desconectado micro_cadaver

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2102
    • blog microembebidos
Re: ayuda con modulo LCC
« Respuesta #4 en: 12 de Julio de 2007, 12:00:42 »
por supuesto , para aclarar dudas simplemente postea. :-)
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

visita mi pagina: http://www.microembebidos.wordpress.com

Desconectado facundo_bellesi

  • PIC10
  • *
  • Mensajes: 14
Re: ayuda con modulo LCC
« Respuesta #5 en: 13 de Julio de 2007, 17:48:54 »
Hola a todos  :-/ ...

Otra vez yo con dudad  :(...

el problema que tengo ahora es que me compré un modulo LCD generico (mi ciudad es bastante chica y no conseguí otro) y cuando me fijo en la hoja de datos me indica que el modulo tiene 14 pines de conexion mas 2 pines mas de la luz, pero mi modulo tiene 16 pines de conexion mas 2 de la luz... lo que queria saber es si estoy leyendo otra hoja de datos o bien yo no estoy entendiendo la hoja de datos del modulo (que es lo mas probable)...

la hoja de datos que encontre es la del modulo CCM1620 y el modulo que yo tengo dice (dentro de la escasa informacion que tiene) CCM1620CSLS2...

Agradezco de antemano y espero que alguien me pueda ayudar  :?...
La teoría es asesinada tarde o temprano por la experiencia. A. Einstein

Desconectado Menta

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 611
Re: ayuda con modulo LCC
« Respuesta #6 en: 14 de Julio de 2007, 08:32:06 »
hay algunos módulos que repiten los pines de backlight
en la tira de 16 tienes:

8 de datos (D0...D7)
3 de control (E,RW,RS)
3 de alimentación (VSS VDD y VEE)
y los 2 de luz de fondo

Fijate que seguramente estan conectados, busca continuidad entre ellos.

Justo tengo acá uno que los tiene así:

15- Anodo
16- Cátodo
1-  VSS   ( - )
2-  VDD  ( + )
3-  VEE   (contraste: cercano a masa)

4-  RS
5-  RW
6-  E

7..10     D0 a D3
11..14   D4 a D7

En este orden aparecen
« Última modificación: 14 de Julio de 2007, 08:40:58 por Menta »
     

Desconectado facundo_bellesi

  • PIC10
  • *
  • Mensajes: 14
Re: ayuda con modulo LCC
« Respuesta #7 en: 14 de Julio de 2007, 16:33:20 »
Muchas gracias Menta... :mrgreen:...

Me salvaste porque estaba a punto de tirar todo... :P...

Era como vos me decias, se repiten los pines de backlight...


Saludos y Muchas gracias nuevamente...
« Última modificación: 14 de Julio de 2007, 16:37:05 por facundo_bellesi »
La teoría es asesinada tarde o temprano por la experiencia. A. Einstein

Desconectado Menta

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 611
Re: ayuda con modulo LCC
« Respuesta #8 en: 14 de Julio de 2007, 16:42:16 »
Me alegra ayudar.
Si vas a usar la luz de fondo fijate que acá en el foro hay algunos mensajes sobre qué resistencia ponerles, no debés conectar 5v directamente ya que la luz de fondo son diodos led. Menos 12V como alguno por ahí hizo alguna vez...  :D
Además, demandan una corriente considerable.

Saludos
     

Desconectado facundo_bellesi

  • PIC10
  • *
  • Mensajes: 14
Re: ayuda con modulo LCD
« Respuesta #9 en: 18 de Julio de 2007, 15:35:32 »
Hola a todos!!!  :-/  :-/  :-/  :-/  :-/

Otra vez hinchando  :P ... Empece a programar mi proyecto y me surgio una duda  :?, que obviamente me surgio porque me fije como habian hecho otros usuarios del foro para hacer lo que yo queria...

La cosa es que quiero enviarle los datos desde el PIC al modulo LCD, pero investigando vi que hay dos formas distintas. Una sumandole una constante al PCL que luego tengo que ir incrementando hasta llegar al final de mi mensaje donde le mando una constante conocida, la resto y retorno, la subrutina que encontre es la siguiente

ESCMEN                   movwf   puntab
ESCMEN2                   call   TABLA
      addlw   00h
      btfsc   status,2
      return
      call   WRITEL
      incf   puntab,f
      movf   puntab,w
      goto   ESCMEN2

TABLA      movwf   pcl
MEN_1      retlw   'i'
      retlw   'n'
      retlw   't'
      retlw   'r'
      retlw   'o'
      retlw   'd'
      retlw   'u'
      retlw   'z'
      retlw   'c'
      retlw   'a'
MEN_5      retlw   ' '
      retlw   'c'
      retlw   'l'
      retlw   'a'
      retlw   'v'
      retlw   'e'
      retlw   00h

WRITEL                   bsf   en
      bsf   rs
      bcf   rw
      movwf   dato
      bcf   en
      call   WAITLCD
      return

WAITLC                   btfsc   dato,7
      goto   WAITLC
      bcf   en
      bcf   rw
      bcf   dato,7
      bsf   status,5
      clrf   dato
      bcf   status,5
      return

 y la otra que vi que se puede hacer es mover el codigo ASCII al acumulador y llamar a una subrutina que me la imprima en la pantalla del modulo LCD, como se muestra a continuación

MENSAJE_1   movlw   H'80'         ;
      call   ENABLE_LCD      ;
      movlw   A'I'         ;
      call   LCD_DATO      ;
      movlw   A'N'         ;
      call   LCD_DATO      ;
      movlw   A'G'         ;
      call   LCD_DATO      ;
      movlw   A'R'         ;
      call   LCD_DATO      ;
      movlw   A'E'         ;
      call   LCD_DATO      ;
      movlw   A'S'         ;
      call   LCD_DATO      ;
      movlw   A'A'         ;
      call   LCD_DATO      ;
      movlw   A'R'         ;
      call   LCD_DATO      ;
      movlw   A' '         ;
      call   LCD_DATO      ;
      movlw   A'C'         ;
      call   LCD_DATO      ;
      movlw   A'L'         ;
      call   LCD_DATO      ;
      movlw   A'A'         ;
      call   LCD_DATO      ;
      movlw   A'V'         ;
      call   LCD_DATO      ;
      movlw   A'E'         ;
      call   LCD_DATO      ;
      return   

ENABLE_LCD   movwf      portd      ;
      bsf      porte,2      ;
      call      RUTINA_1ms   ;
      call      RUTINA_1ms   ;
      call      RUTINA_1ms   ;
      call      RUTINA_1ms   ;
      bcf      porte,2      ;
      return            ;

LCD_DATO   movwf      portd      ;
      bsf      porte,1      ;selecciona el modo dato
      bsf      porte,2      ;habilita el lcd
      movlw      .20      ;
      movwf      cuenta      ;
      decfsz      cuenta,f      ;
      goto      $-1      ;
      bcf      porte,2      ;
      bcf      porte,1      ;
      return


Mi duda es que diferencia hay entre usar una u otra? Y de ser posible me dijeran, Cual me recomendarian?

Les pido disculpa por mostrar las subrutinas asi, pero intente adjuntar un .doc para que quedara mas prolijo y no pude  :(... No se como hacer  :(...

Saludos a todos... y muchas gracias de ante mano...

La teoría es asesinada tarde o temprano por la experiencia. A. Einstein

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: ayuda con modulo LCC
« Respuesta #10 en: 18 de Julio de 2007, 18:10:57 »
;
Código: ASM
  1. INSTRUCCIONES PARA EL LCD
  2. LCDINI 
  3.         MOVLW   B'00111000'     ;INTERFACE DE 8BITS 2 LINEAS
  4.         CALL    INSTRUC
  5.         MOVLW   B'00000110'     ;DIRECCION A LA DERECHA
  6.         CALL    INSTRUC
  7.         MOVLW   B'00001100'     ;PRENDE PANTALLA
  8.         CALL    INSTRUC
  9.         MOVLW   B'00000001'     ;LIMPIA PANTALLA
  10.         CALL    INSTRUC
  11.  
  12.  
  13. INSTRUC ;RUTINA PARA MANDARLE AL LCD UN DATO NO ESCRIBIBLE O SEA UN DATO DE CONTROL.
  14.                         ;COLOCA EN CERO RA1.;CUANDO EL DATO NO ES
  15.         BCF     PORTA,RS                ;ESCRIBIBLE RS DEBE ESTAR EN 0.
  16.         MOVWF   PORTB
  17.         BSF     PORTA,E
  18.         MOVWF   PORTB
  19.         CALL    RETAR
  20.         BCF     PORTA,E
  21.         RETURN
  22.  
  23.  
  24. DATOS       ;RUTINA PARA MANDARLE AL LCD UN DATO ESCRIBIBLE O SEA UN
  25.                          ;DATO DE LETRAS O NUMEROS.
  26.         BSF     PORTA,RS        ;CUANDO EL DATO ES ESCRIBIBLE RS DEBE ESTAR EN 1.
  27.         BSF     PORTA,E
  28.         MOVWF   PORTB  
  29.         CALL    RETAR
  30.         BCF     PORTA,E
  31.         RETURN
  32.  
  33.  
  34.  
  35.  
  36. MENSA   MOVLW   B'10000000'            ; CODIGO DE INSTRUCCION, EL
  37.                                                                                 ;PUNTERO SE UBICA EN LA PRIMERA LINEA.
  38.         CALL    INSTRUC
  39.         CLRF    MENS
  40. RE      MOVF    MENS,0
  41.         CALL    TABLA
  42.         CALL    DATOS
  43.         INCF    MENS,1
  44.         MOVF    MENS,0
  45.         XORLW   .5
  46.         BTFSS   STATUS,2
  47.         GOTO     RE
  48. Siga programa
  49.  
  50.  
  51. TABLA   ADDWF   PCL,1
  52.   RETLW "T"
  53.         RETLW   "E"
  54. RETLW   "M"
  55.         RETLW   "P"
  56.                 RETLW   ":"

Desconectado facundo_bellesi

  • PIC10
  • *
  • Mensajes: 14
Re: ayuda con modulo LCC
« Respuesta #11 en: 18 de Julio de 2007, 19:57:54 »
Muchisimas Gracias Microcom!!!
Ahora si voy a poder empezar con mi proyectito...   :-/  :-/  :-/

Saludos y Muchisamas gracias...
La teoría es asesinada tarde o temprano por la experiencia. A. Einstein


 

anything