Autor Tema: Generación de nuevos caracteres en pantalla de 2x20  (Leído 3143 veces)

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

Desconectado GRUTTIS

  • PIC10
  • *
  • Mensajes: 26
Generación de nuevos caracteres en pantalla de 2x20
« en: 26 de Octubre de 2013, 14:24:41 »
Hola de nuevo, estoy tratando de generar caracteres especiales en una pantalla de 2 lineas x 20 caracteres, pero no entiendo bien el concepto. Programo en assembler, ¿algún ejemplo simple para arrancar?, saludos a todos. 

Desconectado fabianjsm

  • PIC18
  • ****
  • Mensajes: 255
    • fabianjsm is on twitter
Re: Generación de nuevos caracteres en pantalla de 2x20
« Respuesta #1 en: 29 de Octubre de 2013, 10:42:31 »
Te refieres al controlador HD44780 (o compatible)? Para crear tus propios caracteres escribes el bitmap byte a byte en la RAM de caracteres luego del comando 0x40 (0x40 + direccion):

Código: ASM
  1. ; Flecha
  2.     enviar_cmd     0x40
  3.     enviar_dato    b'00000'
  4.     enviar_dato    b'00100'
  5.     enviar_dato    b'00010'
  6.     enviar_dato    b'11111'
  7.     enviar_dato    b'00010'
  8.     enviar_dato    b'00100'
  9.     enviar_dato    b'00000'
  10.     enviar_dato    b'00000'

Espero que te sirva.
@fabianjsm is on twitter

Desconectado GRUTTIS

  • PIC10
  • *
  • Mensajes: 26
Re: Generación de nuevos caracteres en pantalla de 2x20
« Respuesta #2 en: 29 de Octubre de 2013, 11:03:20 »
Hola, gracias por contestar, estoy usando una pantalla de una marca genérica, creo que debe ser compatible con el controlador que mencionas, probé el mismo programa con varias pantallas y de distintas marcas y siempre me dio resultado.

dejo acá un ejemplo de como muestro un carácter:

* le doy inicio a la pantalla.

*por las dudas, borro la pantalla:

movlw 0x01
call      LCD_REG: ¿esto seria igual a "enviar_cmd"?

*fijo la posición de inicio del mensaje

movlw 0x80 
call      LCD_REG: el primer carácter del mensaje va a aparecer en la primera posición de la linea superior.

movlw  'A'
call      LCD_DAT: muestro el caracter ,¿esto sería igual a "enviar_dato"?
   

Desconectado fabianjsm

  • PIC18
  • ****
  • Mensajes: 255
    • fabianjsm is on twitter
Re: Generación de nuevos caracteres en pantalla de 2x20
« Respuesta #3 en: 29 de Octubre de 2013, 16:41:43 »
Como envías 0x01 para borrar y 0x80 para posicionarte al inicio te diría que son los mismos, o compatibles. Después del comando 0x80, para dibujar tu primer carácter debes escribir un cero, para el segundo un uno y así sucesivamente:

Código: ASM
  1. movlw 0x40
  2.     call LCD_REG
  3.     movlw  primer_byte_del_bitmap
  4.     call LCD_DAT
  5.     ; ... así sucesivamente para todo el bitmap ...
  6.  
  7.     movlw 0x80
  8.     call LCD_REG
  9.     movlw  'A'  ; Letra A
  10.     call LCD_DAT
  11.     movlw  0   ; Primer caracter definido por usuario
  12.     call LCD_DAT
  13.     movlw  1   ; Segundo caracter definido por usuario
  14.     call LCD_DAT
@fabianjsm is on twitter

Desconectado GRUTTIS

  • PIC10
  • *
  • Mensajes: 26
Re: Generación de nuevos caracteres en pantalla de 2x20
« Respuesta #4 en: 29 de Octubre de 2013, 18:05:06 »
Hola de nuevo, entiendo que la instrucción: "movlw  0   ; Primer caracter definido por usuario", sería enviar el valor 0x00, no el caracter "0", ¿verdad?, saludos. 

Desconectado GRUTTIS

  • PIC10
  • *
  • Mensajes: 26
Re: Generación de nuevos caracteres en pantalla de 2x20
« Respuesta #5 en: 30 de Octubre de 2013, 00:44:14 »
Hola, logré crear un par de caracteres y mostrarlos, pero cuando le quito la alimentación a la pantalla y vuelvo a hacer correr el programa, aparece cualquier cosa, el lugar de los caracteres que creé, ¿en que estoy fallando? 

Desconectado fabianjsm

  • PIC18
  • ****
  • Mensajes: 255
    • fabianjsm is on twitter
Re: Generación de nuevos caracteres en pantalla de 2x20
« Respuesta #6 en: 01 de Noviembre de 2013, 23:40:07 »
Es el funcionamiento normal, ya que los caracteres permanecen en una RAM, tendrás que dibujarlos como parte de la rutina de inicialización de tu display.
@fabianjsm is on twitter

Desconectado GRUTTIS

  • PIC10
  • *
  • Mensajes: 26
Re: Generación de nuevos caracteres en pantalla de 2x20
« Respuesta #7 en: 02 de Noviembre de 2013, 09:50:15 »
Hola, cierto que es memoria RAM y no quedan grabados, debo hacer el proceso de grabar los caracteres cada vez que haga la rutina de inicialización. Después puedo usarlos cuando quiera, ¿es así?