Autor Tema: trasladar un mensaje por lcd???  (Leído 3491 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado cesar gomez

  • PIC10
  • *
  • Mensajes: 13
trasladar un mensaje por lcd???
« en: 10 de Junio de 2007, 00:18:50 »
hola a todos necesito mostrar un mensaje por una lcd de 2x16 con el pic 18f452 este mensaje debe salir por la derecha y volver a ingresar por la izquierda esto debe ser en assembler, espero haberme hecho entender. Toda ayuda se las agradecere... gracias adios.... :lol:

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: trasladar un mensaje por lcd???
« Respuesta #1 en: 10 de Junio de 2007, 12:37:15 »
hola a todos necesito mostrar un mensaje por una lcd de 2x16 con el pic 18f452 este mensaje debe salir por la derecha y volver a ingresar por la izquierda esto debe ser en assembler, espero haberme hecho entender. Toda ayuda se las agradecere... gracias adios.... :lol:

Sería de gran ayuda que nos indiques qué has probado hasta ahora y qué es lo que no te funciona.

Saludos
- 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 cesar gomez

  • PIC10
  • *
  • Mensajes: 13
Re: trasladar un mensaje por lcd???
« Respuesta #2 en: 13 de Junio de 2007, 01:46:18 »
hola.... mira este es el programa espero que no te aburra.... como ves es con el pic 18f452, amigo ya lo vizualice por proteus y con el protoboard pero la verdad simplemente aparece... y no se desplaza e intentado hacerlo con....

movlw b'0000000111'
movwf XLCDCommand

pero no logre mucho y sigue en el mismo sitio... espero que me puedan ayudar se los agradeceria....

;###############################################################################
;# TITLE   "LCD Display"   
;#             
;#      Program         :External LCD(for 18F452)
;#      Version         :1.0   
;#      Revision Date   :      
;#      Author          : Naveen Raj
;#                           
;# Program demonstrates use of External LCD Module
;# general purpose library module.
;###############################################################################
       list p=18F452         
        include <P18F452.INC>               
 
 

    include "XLCD.inc"                      ;This include all required files and variables.   
   
;The user can deaclare different definitions and make necessary commands   
XLCDCursorOnBlinkOn     equ     B'00001111' ;Display on Cursor on and Blink on
XLCDCursorOnBlinKOff    equ     B'00001110' ;Display on Cursor on and Blink off
XLCDDisplayOnCursorOff  equ     B'00001100' ;Display on Cursor off     
XLCDDisplayOff          equ     B'00001000' ;Display off     
XLCDAddrIncrOnShiftOn   equ     B'00000111' ;increment DDRAM address and Display shift during read and wite
XLCDAddrIncrOnShiftOff  equ     B'00000110' ;increment DDRAM address no Display shift during read and wite
XLCDAddrIncrOffShiftOff equ     B'00000100' ;Do not increment DDRAM address and shift during read and wite
XLCDDisplayMoveRight    equ     B'00011100' ;Display moves right,DDRAM Content remain unchanged
XLCDDisplayMoveLeft     equ     B'00011000' ;Display moves left,DDRAM Content remain unchanged
XLCDCursorMoveRight     equ     B'00010100' ;Cursor moves right,DDRAM Content remain unchanged
XLCDCursorMoveLeft      equ     B'00010000' ;Cursor moves left,DDRAM Content remain unchanged

   UDATA   
reg res 1                                   ;used in checking flag status in non blocking mode
                  
Starthere   code    0x0000         
            goto    Start                            
Strt        code

Start
                                            ;make PORTA digital(control signals are on PORTA)
        clrf    PORTD
   
        call    XLCDInit                    ;initialize LCD module(machine cycle talken for this call
                                            ;is depended on MPamOption and if in READBF mode it i depended
         
                                  ;on LCDmodule

                                              ;display of string (this is always blocking)
         movlw b'0000000111'
         movwf XLCDCommand
       
        goto    StartDisplay
       
StartDisplay       
       
 
         movlw   'U'
         call    XLCDPut

        movlw   'n'
        call    XLCDPut

        movlw   'i'
        call    XLCDPut

        movlw   'v'
        call    XLCDPut

        movlw   'a'
        call    XLCDPut       
       
        movlw   'l'
        call    XLCDPut

        movlw   'l'
        call    XLCDPut

        movlw   'e'
        call    XLCDPut
               
        call    XLCDL2home                      ;goto   Line 2 of the LCD       

   movlw   'M'
       call    XLCDPut
       movlw   'i'
       call    XLCDPut   
       movlw   'c'
       call    XLCDPut
       movlw   'r'
       call    XLCDPut
       movlw   'o'
       call    XLCDPut           
       movlw   'c'
       call    XLCDPut
       movlw   'o'
       call    XLCDPut
       movlw   'n'
       call    XLCDPut
       movlw   't'
       call    XLCDPut
   movlw   'r'
       call    XLCDPut
       movlw   'o'
       call    XLCDPut
       movlw   'l'
       call    XLCDPut
   movlw   'a'
       call    XLCDPut
   movlw   'd'
       call    XLCDPut
   movlw   'o'
       call    XLCDPut
   movlw   'r'
       call    XLCDPut
       
       goto    $   

   

       end

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: trasladar un mensaje por lcd???
« Respuesta #3 en: 13 de Junio de 2007, 10:12:57 »
movlw b'0000000111'
movwf XLCDCommand
Fijate que eso que escribiste son varios bits, mucho más que 8.

Ahora bien porqué no usas directamente los comandos que están definidos como constantes?

Es decir por ejemplo

      movlw      XLCDDisplayMoveRight 
      call       XLCDPut

- 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: trasladar un mensaje por lcd???
« Respuesta #4 en: 13 de Junio de 2007, 10:18:14 »
porque parece que él no hizo ese codigo....
a cosechar!!!... :P
pic32... ahi voy....
aguante el micro 16f84  !!!!

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

Desconectado HaroldCannet

  • PIC10
  • *
  • Mensajes: 2
Re: trasladar un mensaje por lcd???
« Respuesta #5 en: 17 de Junio de 2007, 07:07:20 »
Hola:

para resolver este problema creo que pueden mandarle al LCD lo sigiente:

movlw '00000111'
call       XLCDPut

el primer bit de la derecha es 1 si quieres que el texto se desplaze y 0 si no, el segundo es 1 si el cursor incrementa su posicion y 0 si la decrementa.
Los dos primeros 0 de la izquierda de:

movlw b'0000000111'
movwf XLCDCommand

no son del codigo sino que corresponden al estado en que deben estar los pines RS y R/W del LCD respectivamente durante el envio de la instruccion.

Bueno espero que esto sirva de algo.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: trasladar un mensaje por lcd???
« Respuesta #6 en: 17 de Junio de 2007, 10:52:26 »
porque parece que él no hizo ese codigo....

Si, intuí lo mismo pero quería que él lea lo que él mismo había escrito.  ¿suena lógico mi pedido no? :)



para resolver este problema creo que pueden mandarle al LCD lo sigiente:

movlw '00000111'
call       XLCDPut

¿Pero eso no haría desplazar al texto durante la escritura? Creo que la idea es desplazarlo post. escritura.


Los dos primeros 0 de la izquierda de:

movlw b'0000000111'
movwf XLCDCommand

no son del codigo sino que corresponden al estado en que deben estar los pines RS y R/W del LCD respectivamente durante el envio de la instruccion.
Tal vez quiso hacer eso, pero los pics desde la familia 10 a la 18, tienen un bus de datos de 8bits, por ende eso así como está escrito equivale a


     movlw     b'00000111'
     movwf     XLCDCommand


Ya que al ensamblarse se truncarán los bits superiores.

Saludos
- 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 cesar gomez

  • PIC10
  • *
  • Mensajes: 13
Re: trasladar un mensaje por lcd???
« Respuesta #7 en: 22 de Junio de 2007, 01:17:39 »
hola a todos necesito mostrar un mensaje por una lcd de 2x16 con el pic 18f452 este mensaje debe salir por la derecha y volver a ingresar por la izquierda esto debe ser en assembler, espero haberme hecho entender. Toda ayuda se las agradecere... gracias adios.... :lol:
porque parece que él no hizo ese codigo....

Si, intuí lo mismo pero quería que él lea lo que él mismo había escrito.  ¿suena lógico mi pedido no? :)



para resolver este problema creo que pueden mandarle al LCD lo sigiente:

movlw '00000111'
call       XLCDPut

¿Pero eso no haría desplazar al texto durante la escritura? Creo que la idea es desplazarlo post. escritura.


Los dos primeros 0 de la izquierda de:

movlw b'0000000111'
movwf XLCDCommand

no son del codigo sino que corresponden al estado en que deben estar los pines RS y R/W del LCD respectivamente durante el envio de la instruccion.
Tal vez quiso hacer eso, pero los pics desde la familia 10 a la 18, tienen un bus de datos de 8bits, por ende eso así como está escrito equivale a


     movlw     b'00000111'
     movwf     XLCDCommand


Ya que al ensamblarse se truncarán los bits superiores.

Saludos

___________________________________________________________________________________
hola ya logre moverlo con

movlw B'0000011100'
call XLCDCommand

y con un ciclo repetitivo para que se vaya desplazando lo que note esque se desplazaba muy lento pero es por los ciclos de instruccion que tengo dentro del ciclo repetiv, son muchas las instrucciones que debe hacer antes que llegue al comando para mover el display.... pero le hice algunos arreglos... de todas maneras gracias

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: trasladar un mensaje por lcd???
« Respuesta #8 en: 22 de Junio de 2007, 08:47:11 »
Antes que nada, me alegro que lo hayas solucionado

hola ya logre moverlo con

movlw B'0000011100'
call XLCDCommand

y con un ciclo repetitivo para que se vaya desplazando lo que note esque se desplazaba muy lento pero es por los ciclos de instruccion que tengo dentro del ciclo repetiv, son muchas las instrucciones que debe hacer antes que llegue al comando para mover el display.... pero le hice algunos arreglos... de todas maneras gracias

César, espero puedas leer y comprender lo que mencioné anteriormente... hacer eso te funciona pero estas truncando el resultado!  El WREG es de 8 bits, así le pongas


    movlw b'101010101010101010101010101010101'

será lo mismo que hacer


    movlw b'01010101'



Lo que en tu caso equivale a


     movlw    b'00011100'
     call     XLCDCommand


saludos
- 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)


 

anything