Autor Tema: pic16f84A con lcd LM016L personalizar caracter  (Leído 3910 veces)

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

Desconectado yamilongiano

  • PIC10
  • *
  • Mensajes: 37
pic16f84A con lcd LM016L personalizar caracter
« en: 15 de Julio de 2011, 21:01:27 »

Hola a todo e tratado de configurar un caracter personalizable pero no encuentro mucha informacion, encontre algunos programas para generar codigos pero nunca pude insertar el codigo y parecia un codigo bastento complicado.

en la hoja de caracteristicas veo las instrucciones pero oir ejemplo

ya puedo escribir puedo mandar la letra donde yo quiera puedo mover cursor y todo. pero no comprendo el codigo para acceder a la CG ram e insertarlas en la memoria atravez del bus de datos de 8 bit

por favor si alguien me puede encaminar un poco seria muy util hasta entonces seguire leyendo por todos lados.

aqui esta el pic y las conexiones. el lenguaje debe ser assembler


aqui esta el codigo que ocupo con pic simulator IDE

--------------------------------------------------------
   org 0x0
   contador equ 01Ch
   contador1 equ 01DH
   contador2 equ 01Eh
   bsf status,rp0
   movlw b'00000000'
   movwf trisb
   movwf trisa
   bcf status,rp0

   
inicio:   
   movlw b'00111000'    ; comando para trabaja con 2 lineas
   call LCDI
   movlw b'00111000' 
   call LCDI
   movlw b'00001110'  ; comando por bus de datos para habilitar cursor y display
   call LCDI            ;intruccion para insertar comando

        movlw b'10000000' ;posicion linea1 (0,0) si ponemos b'11000000' se trabaja en la linea 2 del display.
   call LCDI

   movlw a'H'
   call LCDC
   nop
   goto inicio        ;vuelve a inicio
   end

LCDI:               
   bcf porta,0
   bcf porta,1
   bsf porta,2
   movwf portb
   bcf porta,2
   call retardo2
   return
   
LCDC:                  ;instruccion para mostrar letras en lcd
   bcf porta,1
   bsf porta,0
   bsf porta,2
   movwf portb
   bcf porta,2
   call retardo2
   return


retardo:                ;retardo50 milisegundos
   movlw d'50'
   movwf contador
loop1   movlw d'249'
   movwf contador1
loop   nop
   decfsz contador1,1
   goto loop
   decfsz contador,1
   goto loop1
   return

retardo2:                 ;retardo 1 milisegundo
   movlw d'249'
   movwf contador2
loop3   nop
   decfsz contador2,1
   goto loop3
   return
-------------------------------------------------------------------------

ojala encuentre ayuda por aqui desde ya gracias

Desconectado om@r

  • PIC12
  • **
  • Mensajes: 86
Re: pic16f84A con lcd LM016L personalizar caracter
« Respuesta #1 en: 20 de Julio de 2011, 16:51:34 »
Hola aTodos!
Es facil ,mira primero apuntas a cgram que es la posicion 40H y luego cargas los datos :shock:
cada caracter esta definido segun lo creas ejemplo puede ser 5x8
la secuencia seria mas o menos haci:
                     MOVLW   40H
                     CALL       LCDI ;CON ESTO PONES AL PUNTERO EN EL INICIO DE CGRAM
                     ;
                     MOVLW   1FH  ;A PARTIR DE AHORA CARGAS LOS DATOS DE TU CARACTER QUE SERAN 8 BYTES
                     CALL       LCDC
                     MOVLW   1FH
                     CALL        LCDC
                     MOVLW   1FH
                     CALL        LCDC
                      MOVLW   1FH
                     CALL        LCDC
                     MOVLW   1FH
                     CALL        LCDC
                     MOVLW   1FH
                     CALL        LCDC
                     MOVLW   1FH
                     CALL        LCDC
                     MOVLW   1FH
este ejemplo te grafica un caracter negro ,un caracter tiene 5 de ancho por 8 de alto
en la cgram puedes cargar hasta 8 caracteres o menos si son de 5 por 10 .
las posiciones de memoria son consecutivas por lo que puedes cargar los 8 caracteres de una vez
sin terner que apuntar la cgram ,por ejemplo.
Para llamar tu caracter solo tienes que hacer lo mismo que con cualquier otro ,primero
apuntas donde quieres poner tu caracter y luego lo llamas .
                      MOVLW   80H
                      CALL        LCDI
                       MOVLW   00H
                       CALL        LCDC
Los datos de tus caracteres definidos tendran la ''direccion'' desde 00 al 07.
Espero te ayude :shock:
Saludos!
                 
     


 

anything