TODOPIC

Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: PalitroqueZ en 30 de Octubre de 2006, 11:28:28

Título: Generador de Caracteres CG-RAM
Publicado por: PalitroqueZ en 30 de Octubre de 2006, 11:28:28
Link de descarga actualizado al 20-07-13

http://www.mediafire.com/download/oksuiu05u5okvg1/cgram_picture.rar



Hola foreros, aquí vengo con un programilla que tal vez le puedan ser útil, se trata de un programa realizado en Visual basic (lo quise pegar aqui, ya que trae 3 ingredientes: PIC+ensamblador+C) y sirve para facilitar la creación de caracteres para almacenarlo en la CG-RAM que traen las pantallas LCD, es tedioso tener que hacer aquello a mano, así que lo automaticé en un programa para que podamos dibujarlo tranquilamente en la computadora y después genere las tablas correspondiente.

estas son una imagenes de las pruebas que hice en el protoboard (y que hicieron falta ya que el proteus no mostraba ciertos detalles)

en ensamblador:

(http://img49.imageshack.us/img49/1247/asm1awz0.jpg)

(http://img49.imageshack.us/img49/9066/asm1iw3.jpg)

(http://img49.imageshack.us/img49/1848/asm2apx8.jpg)

(http://img49.imageshack.us/img49/5872/asm2fm4.jpg)

en lenguaje C

(http://img49.imageshack.us/img49/948/c4aka9.jpg)

(http://img156.imageshack.us/img156/4271/c4ee0.jpg)

(http://img49.imageshack.us/img49/9880/c5adw7.jpg)

(http://img238.imageshack.us/img238/1508/c5eu4.jpg)

la libreria lcd_cxx.inc usada para ensamblador, se consigue en Curso Practico 1.zip de la página http://www.msebilbao.com/tienda/software.php

la libreria LCD.C usada en C, es la que trae el PCWH en la carpeta driver

les confieso que las pruebas en protoboard las hice con el 16F877, (no dispongo del 16F84A)
pero eso no altera la tabla (que es la misma), al código de ejemplo que genera el programa
solo cambié estas lineas:

ensamblador

Código: ASM
  1. ;*******************************************************************************
  2. ;   CODIGO A NIVEL DE PIXEL
  3. ;   CON 5 X 7 DOTS (se pueden crear hasta 8 caracteres solamente)
  4. ;   EN ESTE EJEMPLO SE PRUEBA COMO GRABAR NUEVOS CARACTERES
  5. ;   EN LA CG-RAM-DATA DIRECCIONANDO CADA LINEA CON EL CG-RAM-ADDRESS
  6. ;*******************************************************************************
  7.         List    p=16F84a        ;Tipo de procesador
  8.         include "P16F84a.inc"   ;Definiciones de registros internos
  9. ;************************************************************************
  10.         __CONFIG   _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC
  11. ;************************************************************************
  12.         cblock  0x0c
  13. ...
  14. ...
por estas:

Código: ASM
  1. ;*******************************************************************************
  2. ;   CODIGO INVERSAMENTE (A NIVEL DE PIXEL)
  3. ;   CON 5 X 7 DOTS (se pueden crear hasta 8 caracteres solamente)
  4. ;   EN ESTE EJEMPLO SE PRUEBA COMO GRABAR NUEVOS CARACTERES
  5. ;   EN LA CG-RAM-DATA DIRECCIONANDO CADA LINEA CON EL CG-RAM-ADDRES
  6. ;*******************************************************************************
  7.         List    p=16F877        ;Tipo de procesador
  8.         include "P16F877.inc"   ;Definiciones de registros internos
  9. ;************************************************************************
  10.         __CONFIG        _CP_OFF & _DEBUG_OFF & _WRT_ENABLE_ON & _CPD_OFF & _LVP_OFF & _BODEN_ON & _PWRTE_ON & _XT_OSC & _WDT_OFF
  11. ;************************************************************************
  12.         cblock  0x20
  13.  
  14. ...
  15. ...
  16. ...
  17.  
  18.  
  19. ;************************************************************************
  20.         #include "Lcd_cxx.inc"    ; Rutinas de control LCD.
  21. ;*************************************************************************
  22. inicio:
  23.         bsf     STATUS,RP0        ;Banco 1
  24.         movlw   0X06            ;
  25.         movwf   ADCON1          ;
  26. ...
  27. ...


y en lenguage C

Código: C
  1. //*******************************************************************************
  2. //   CODIGO A NIVEL DE PIXEL
  3. //   CON 5 X 7 DOTS (se pueden crear hasta 8 caracteres solamente)
  4. //   EN ESTE EJEMPLO SE PRUEBA COMO GRABAR NUEVOS CARACTERES
  5. //   EN LA CG-RAM-DATA DIRECCIONANDO CADA LINEA CON EL CG-RAM-ADDRESS
  6. //*******************************************************************************
  7.  
  8. #include <16F84A.h>
  9. #fuses XT,NOWDT,PUT
  10.  
  11. ...
  12. ...
por estas:

Código: C
  1. //*******************************************************************************
  2. //   CODIGO INVERSAMENTE (A NIVEL DE PIXEL)
  3. //   CON 5 X 7 DOTS (se pueden crear hasta 8 caracteres solamente)
  4. //   EN ESTE EJEMPLO SE PRUEBA COMO GRABAR NUEVOS CARACTERES
  5. //   EN LA CG-RAM-DATA DIRECCIONANDO CADA LINEA CON EL CG-RAM-ADDRES
  6. //*******************************************************************************
  7.  
  8. #include <16F877.h>
  9. #fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,NODEBUG,BROWNOUT,NOCPD,NOWRT // 0x3F71
  10. ...
  11. ...

claro, el que tenga el 16F84 no tiene que sustituir nada, solo copiar al portapapeles y ¡listo!
pueden bajarlo aquí (http://www.4shared.com/file/5169703/dc823e30/generador_caracteres_cg-ram.html)

también hay un "videito" que explica su funcionamiento.

última modificación: cambié el formato del video a wmv(es el mismo video), porque en algunas maquinas no se reproduce. Con este video (http://www.4shared.com/file/5219261/56a994cf/usando_el_generador_cg-ram_en_formato_wmv.html) se puede ver sin problemas.

Cualquier duda, comentario ó correción es bien recibida.

Salu2
Título: Re: Generador de Caracteres CG-RAM
Publicado por: LordLafebre en 30 de Octubre de 2006, 19:13:54
Hola:

Buen trabajo PalitroqueZ, esta muy buena la herramienta, felicidades, y como siempre: "GRACIAS POR COMPARTIRLO"  :-/
Título: Re: Generador de Caracteres CG-RAM
Publicado por: Nocturno en 01 de Noviembre de 2006, 19:10:20
Muy útil, Palitroquez. Muchas gracias.
Título: Re: Generador de Caracteres CG-RAM
Publicado por: NEO 2K3 en 04 de Noviembre de 2006, 05:08:14
Muy buena esa, justo lo que necesito para mi proyecto GPS->GPRS
Título: Re: Generador de Caracteres CG-RAM (MEJORADO)
Publicado por: PalitroqueZ en 06 de Diciembre de 2006, 12:23:53
Amigos, aquí hay una versión mejorada del programilla que colgué arriba y debo agradecer al amigo BrunoF, que me ayudó (http://www.todopic.com.ar/foros/index.php?topic=14851.0) en la parte de los picturebox.

- Ahora si se puede guardar lo que se ha hecho, para no tener que empezar de nuevo un caracter que no nos acordemos como se dibuja.

- con el picturebox, usando la pintada se hace fácil dibujar con el mouse los pixels que conforman cada caracter (considerando el programilla anterior  :))

- está el código fuente completo para que alguien que tenga conocimientos en los lenguajes que faltan se los añada, falta (de lo que visto) el Basic (mikrobasic,picbasic,proton), el C de (Hitech, MikroC)

estuve haciendo unas simulaciones y vá bien, hasta el proteus muestra la velocidad de ejecución del asm frente al C, en los adjuntos estan unos circuitos para que hagan los ensayos.

para que simulara sin problemas el lcd en asm, usé la librería que colgó (http://www.todopic.com.ar/foros/index.php?topic=857.msg91509#new) pocher, le cambié el nombre (para no alterar el programilla) a Lcd_cxx.inc

HISTORIAL DE CAMBIOS REALIZADOS

25-Dic-2007
- se quitó el control commdlg.ocx y mscommctl.ocx que aunque no se usa se cargaba en panel de proyectos. El código principal sigue sin modificaciones.

------------------------------------------------------------------------------------------------------------
modificación 07-Dic-2006:
sigo viendo el código que colgué para sacarle posibles detalles, y le modifiqué uno:

- cuando se desactiva la cuadricula y se clica en invertir pixel, se activa las cuadriculas en los controles del 1 al 7 (no debería pasar)

solución:
la última linea del procedimiento invertir_pixel(indice As Integer), es

cuadricula chkcuadricula(0).Value, indice

se debe sustituir el "0" por "indice"

la razón: inicialmente el código estaba hecho con un solo picturebox, así que el cero, justificaba ese argumento, ahora como son 7 puede cambiar dependiendo de la variable indice.

------------------------------------------------------------------------------------------------------------

otra modificación:

Dentro del procedimiento mnuabrir_Click en las lineas:

For t = 0 To numero_caracteres
    pic_caracter(t).Enabled = True
Next t

sustituí numero_caracteres por 7 para que se habilitaran los pictureboxes después de cargar datos.

la razón: este for inhabilita momentaneamente los pictureboxes, esto lo hice como medida de seguridad, ya que algunas veces, pintaba en las cuadriculas cuando apenas cargaba los caracteres guardados, fijense en el código que hasta tuve que usar un retardo de 1 segundo.

adjunto corregido. 26-Dic-2007


Título: Re: Generador de Caracteres CG-RAM
Publicado por: BrunoF en 06 de Diciembre de 2006, 12:30:14
Enhorabuena amigo.
Me alegro que hayas lanzado esta version.
Ahora le echare una mirada.

Saludos.
Título: Re: Generador de Caracteres CG-RAM
Publicado por: Y@el en 19 de Febrero de 2007, 12:03:11
Hola Palitorquez,

Muy interesante tu programa. Queria pedirles permiso, para usar su programa y generar la combinacion para generar el codigo HEX, para grabar en una EEPROM. tal como esta en el POSTComo crear un archivo hex para memoria EEPROM (http://www.todopic.com.ar/foros/index.php?topic=16059.msg104903#new)
Título: Re: Generador de Caracteres CG-RAM
Publicado por: PalitroqueZ en 19 de Febrero de 2007, 12:08:04
estas en plena libertad  :mrgreen:

si puedes ampliar las aplicaciones del programa, ¡mucho mejor!. también quería comentar que hace falta agregarles las rutinas para generar el código en Basic (para los amigos que programan en pic Basic).

Salu2
Pedro
Título: Re: Generador de Caracteres CG-RAM
Publicado por: MGLSOFT en 24 de Agosto de 2007, 14:23:03
Nadie lo ha utilizado para generar caracteres para el lenguaje C de CCS ??
Título: Re: Generador de Caracteres CG-RAM
Publicado por: mancupic en 24 de Agosto de 2007, 14:38:29
Hola PalitroqueZ 
 
 
Queria saber si podes ser tan amable de pasarme ese programita que mostras en este post, ya que tengo que hacer un caracter para trabajar un lcd, para un t.p. de la facu... desde ya, muchas gracias.

Atte. Walter
Título: Re: Generador de Caracteres CG-RAM
Publicado por: PalitroqueZ en 24 de Agosto de 2007, 15:54:55
Hola mancupic.

en uno de mis post anteriores está en la parte de abajo como adjunto
Título: Re: Generador de Caracteres CG-RAM
Publicado por: migsantiago en 23 de Diciembre de 2007, 13:07:50
Hola

Pedro, en mi máquina no quiere correr la aplicación...

(http://img108.imageshack.us/img108/6078/dibujotx0.jpg)

Voy a instalar VB6 para que corra, pero sería bueno recompilarla para los que no tienen VB.

Gracias por la aplicación!  :mrgreen:
Título: Re: Generador de Caracteres CG-RAM
Publicado por: Leon Pic en 23 de Diciembre de 2007, 13:40:13
Exelente trabajo Pali. muchas gracias por compartirlo.
Título: Re: Generador de Caracteres CG-RAM
Publicado por: PalitroqueZ en 24 de Diciembre de 2007, 13:53:43
no me había percatado de eso, porque la aplicación trabaja directamente con comdlg32.dll y no necesita de registrar controles, voy a revisarlo a ver porque lanza ese mensaje.

Título: Re: Generador de Caracteres CG-RAM
Publicado por: reiniertl en 24 de Diciembre de 2007, 14:25:56
Hola Palitroquez.

Por qué no pasas el programa para SourceForgue, allí será más facil descargarlo y por supuesto mantener las versiones y mejoras que se hagan al programa.

Te felicito, excelente trabajo, y por supuesto no te olvides de hablar con Ariel para ponerlo donde tu sabes.

Slds
Reinier
Título: Re: Generador de Caracteres CG-RAM
Publicado por: PalitroqueZ en 24 de Diciembre de 2007, 14:38:38
si Reinier ya Ariel me comentò, voy a arreglarle ese detalle y se lo envìo.

Título: Re: Generador de Caracteres CG-RAM
Publicado por: migsantiago en 24 de Diciembre de 2007, 21:56:15
Gracias Pedro
Título: Re: Generador de Caracteres CG-RAM
Publicado por: PalitroqueZ en 26 de Diciembre de 2007, 14:14:58
cambios recientes:

25-Dic-2007
- se quitó el control commdlg.ocx y mscommctl.ocx que aunque no se usa se cargaba en panel de proyectos. El código principal sigue sin modificaciones.

prueba ahora Mig. 

Título: Re: Generador de Caracteres CG-RAM
Publicado por: migsantiago en 26 de Diciembre de 2007, 22:41:00
erhemmm... ya no puedo probarlo, ya instalé el vb jejeje

pero muchas gracias de todas formas, me sirvió mucho el programa para hacer un regalo navideño al estilo de los pics

para mostrarte que hice puedes checar este adjunto...

http://www.4shared.com/file/33095394/bacc41/PIC_LCD_navidad.html

o ver esta foto :D

(http://img181.imageshack.us/img181/9568/dibujoba9.jpg)
Título: Re: Generador de Caracteres CG-RAM
Publicado por: IAO en 27 de Diciembre de 2007, 13:32:10
Holaaaaaa:


Yo solo puedo repetir lo que el sr. navaismo dijo un día al sr. picmouse.
Cuando yo sea grande, quiero ser como Palitroquez.  :-)

De verdad eres un Cerebro Pali....z, y dices que no es nada, pero es bastante.

Te felicito, y adelante.
Bye('_').
Título: Re: Generador de Caracteres CG-RAM
Publicado por: PalitroqueZ en 27 de Diciembre de 2007, 15:34:13
que bien Mig  :-/ :-/ :-/




IAO jeje no es para tanto, no hace falta que seas como yo, solo con un poquito de constancia se pueden hacer grandes cosas.

Título: Re: Generador de Caracteres CG-RAM
Publicado por: Blanca Sánchez en 18 de Febrero de 2008, 21:21:24
Hola:

Gracias a Migsantiago encontré este mensaje...

No merezco tanto   :D :D :D

Título: Re: Generador de Caracteres CG-RAM
Publicado por: migsantiago en 18 de Febrero de 2008, 23:56:30
jajaja ¿verdad que se lució Pali con esta aplicación?  :D
Título: Re: Generador de Caracteres CG-RAM
Publicado por: Blanca Sánchez en 19 de Febrero de 2008, 06:53:56
Hey, Hey... Chicos!

Pues resulta que con modificar un poco el código ejemplo del C en CCS se saca fácilmente el código en C para C18!!!

doble WUAW para Palitroquez!!!

aquí un ejemplito:

(http://img253.imageshack.us/img253/8344/dibujo1lh4.png)


código en CCS:
Código: C
  1. //*******************************************************************************
  2. //   CODIGO A NIVEL DE PIXEL con cristal a 4Mhz
  3. //   CON 5 X 7 DOTS (se pueden crear hasta 8 caracteres solamente)
  4. //   EN ESTE EJEMPLO SE PRUEBA COMO GRABAR NUEVOS CARACTERES
  5. //   EN LA CG-RAM-DATA DIRECCIONANDO CADA LINEA CON EL CG-RAM-ADDRESS
  6. //*******************************************************************************
  7.  
  8. #include <16F84A.h>
  9. #fuses XT,NOWDT,PUT
  10. #use delay(clock=4000000)
  11.  
  12. #byte porta =5
  13. #byte portb =6
  14. #define use_portb_lcd TRUE
  15. #include <LCD.c>
  16. int const caracter0_direccion[8]={0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47};
  17. int const caracter0_datos[8]={0b00000,0b01010,0b00000,0b00100,0b10001,0b10001,0b11111,0b0};
  18.  
  19.  
  20. void main() {
  21.         int contador;
  22.         set_tris_a(0x0);
  23.         set_tris_b(0x0);
  24.         lcd_init();
  25.         for(contador=0;contador<8;contador++){
  26.                 lcd_send_byte(0,caracter0_direccion[contador]);   //modo comando
  27.                 lcd_send_byte(1,caracter0_datos[contador]);        // modo dato
  28.                
  29.         }
  30.         lcd_send_byte(0,0x80);
  31.  
  32.         for(contador=0;contador<1;contador++){
  33.                 lcd_send_byte(1,contador); //modo dato
  34.         }
  35.         delay_cycles(1);
  36. }

código en C18:
Código: C
  1. #include <p18f452.h>    // librería del microcontrolador
  2. #include <delays.h>             // librería de retardos
  3. #include <lcdd.h>               // librería de LCD modificada para el Puerto D
  4. /************************************************************************************/
  5.  
  6. int const caracter0_direccion[8]={0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47};
  7. int const caracter0_datos[8]={0b00000,0b01010,0b00000,0b00100,0b10001,0b10001,0b11111,0b0};
  8.  
  9. #pragma config LVP = OFF
  10. #pragma config WDT = OFF
  11. #pragma config OSC = XT        
  12.  
  13. /************************************************************************************/
  14. //Programa Principal
  15. /************************************************************************************/
  16.  
  17. void main(void)
  18. {
  19.         int contador;
  20.         Inicializa_LCD();                                              
  21.         Comando_LCD(CURSOR_OFF & BLINK_OFF);
  22.         Delay10KTCYx(100);
  23.         Comando_LCD(CLEAR);
  24.         for(contador=0;contador<8;contador++)
  25.         {
  26.                 Comando_LCD(caracter0_direccion[contador]);
  27.                 Dato_LCD(caracter0_datos[contador]);
  28.         }
  29.         Comando_LCD(0x80);
  30.  
  31.         for(contador=0;contador<1;contador++)
  32.         {
  33.                 Dato_LCD(contador);
  34.         }
  35.         while(1);
  36. }
   

acá la librería del LCD (puerto D):
Código: C
  1. /******************************************************/
  2. /*
  3. /* Manejo de un Display de Cristal Liquido LCD 16X4   */
  4. /* de 16 caracteres por 4 lineas, el LCD se encuentra */
  5. /* conectado en el Puerto D del microcontrolador, con */
  6. /* una interface de 4 lineas:                         */
  7. /*
  8. /*      LCD             PIC
  9. /* ------------------------------------
  10. /*      D4  (11)                -->     RD0
  11. /*      D5  (12)                -->     RD1
  12. /*      D6  (13)                -->     RD2
  13. /*      D7  (14)                -->     RD3
  14. /*
  15. /*      RS  (4)                 -->     RD4
  16. /*      RW  (5)                 -->     RD5
  17. /*      E   (6)                 -->     RD6
  18. /*
  19. /******************************************************/
  20.  
  21. /* Conexiones del LCD al Microcontrolador */
  22. //#include <delays.h>
  23. #define RS      RD4
  24. #define RW      RD5
  25. #define E       RD6
  26.  
  27.  
  28. /* Configuracion del Display y cursor */
  29.  
  30. #define DON                             0b00001111  /* Display encendido   */
  31. #define DOFF                    0b00001011  /* Display apagado     */
  32. #define CURSOR_HOME             0b00000010  /* Cursor encendido    */
  33. #define CURSOR_ON               0b00001111  /* Cursor encendido    */
  34. #define CURSOR_OFF              0b00001101  /* Cursor apagado      */
  35. #define BLINK_ON                0b00001111  /* Cursor con parpadeo */
  36. #define BLINK_OFF               0b00001110  /* Cursor sin parpadeo */
  37. #define CLEAR                   0b00000001  /* Display encendido   */
  38.  
  39.  
  40. /* Modo de entrada */
  41.  
  42. #define INCREMENT               0b00000110  /* Incrementa la posicion del cursor */
  43. #define DECREMENT               0b00000100  /* Decrementa la posicion del cursor */
  44.  
  45.  
  46. /* Configuracion de los desplazamientos del cursor y del Display*/
  47.  
  48. #define SHIFT_CUR_LEFT          0b00010011  /* Corrimiento del cursor a la izquierda  */
  49. #define SHIFT_CUR_RIGHT         0b00010111  /* Corrimiento del cursor a la derecha    */
  50. #define SHIFT_DISP_LEFT         0b00011011  /* Corrimiento del display a la izquierda */
  51. #define SHIFT_DISP_RIGHT        0b00011111  /* Corrimiento del display a la derecha   */
  52.  
  53.  
  54. /* Funciones de inicializacion */
  55.  
  56. #define NIBLE                           0b00000010  /* interface a 4 bits */
  57. #define FOUR_BIT                        0b00101111  /* Interface a 4-bit  */
  58. #define EIGHT_BIT                       0b00111111  /* Interface a 8-bit  */
  59. #define LINE_5X7                        0b00110011  /* Una linea, caracter 5x7 */
  60. #define LINE_5X10                       0b00110111  /* Una linea, caracter 5x10 */
  61. #define LINES_5X7                       0b00111011  /* Dos lineas. character 5x7 */
  62.  
  63.  
  64. /* Lineas de trabajo */
  65.  
  66. #define DDRAM_LINEA_1           0b10000000      /* Linea 1 */
  67. #define DDRAM_LINEA_2           0b11000000      /* Linea 2 */
  68. #define DDRAM_LINEA_3           0b10010000      /* Linea 3 */
  69. #define DDRAM_LINEA_4           0b11010000      /* Linea 4 */
  70.  
  71.  
  72. /* Configuracion del puerto */
  73.  
  74. #define Config_Puerto           0b00000000      /* RC<0:6> como salidas */
  75. #define Mascara                         0b00001111      /* Parte baja del Byte  */
  76.  
  77.  
  78. /* Prototipos de funciones */
  79.  
  80. void Inicializa_LCD(void);              /* Inicializa LCD */
  81. void Comando_LCD(char);                 /* Indica al LCD un comando */
  82. void Dato_LCD(char);                    /* Indica al LCD un caracter */
  83. /* Inicializacion del LCD segun fabricante */
  84.  
  85. void Inicializa_LCD(void)
  86. {
  87.         int i;
  88.        
  89.         PORTD = 0;                                      /* Puerto D a utilizar E = RS = RW = 0 */
  90.         TRISD = Config_Puerto;
  91.         Delay10TCYx(110);                       /* Retardo mayor a 100 useg. */
  92.         PORTD = NIBLE;                          /* Interface de 4 bits RC<0:3> */
  93.         PORTDbits.RS = 0;                       /* RS = 0 */
  94.         PORTDbits.RW = 0;                       /* RW = 0 */
  95.         PORTDbits.E = 1;                        /* E = 1 */
  96.         Delay1KTCYx(5);                         /* Retardo de 5 mseg. */       
  97.         PORTDbits.E = 0;                        /* E = 0 */
  98.         Delay1KTCYx(15);                        /* Retardo de 15 mseg. */
  99.  
  100.  
  101.         /* Funcion set,  DL = 0, N = 1, F = 0 */
  102.         /* Dos lineas, caracter de 5X7 e interface a 4 bits */ 
  103.         Comando_LCD(LINES_5X7 & FOUR_BIT);
  104.  
  105.  
  106.         /* Display ON, D = 1, C = 1, B = 1 */
  107.         /* Display encendido, cursor encendido con parpadeo */
  108.         Comando_LCD(DON & CURSOR_ON & BLINK_ON);
  109.  
  110.  
  111.         /* limpia el display */
  112.         Comando_LCD(CLEAR);
  113.  
  114.  
  115.         /* Entry Mode Set */
  116.         /* Incremento del cursor */
  117.         Comando_LCD(INCREMENT);
  118. }
  119.  
  120.  
  121. /* Indica al LCD comandos */
  122. void Comando_LCD(char dato)
  123. {
  124.         char temp;                                              /* variable auxiliar */
  125.  
  126.         Delay1KTCYx(10);                                /* Retardo de 10 mseg. */
  127.         temp = dato;                                    /* Respaldo del dato original */
  128.         dato = dato >> 4;                               /* Corrimiento del nible alto */
  129.         PORTD = dato & Mascara;                 /* Manda parte alta del nible */
  130.         PORTDbits.RS = 0;                               /* Indica que es un comando */
  131.         PORTDbits.RW = 0;                               /* RW = 0 */
  132.         PORTDbits.E = 1;                                /* Pone a E = 1 */
  133.         Delay1KTCYx(5);                                 /* Retardo de 5 mseg. */       
  134.         PORTDbits.E = 0;                                /* Pone a E = 0 */
  135.         PORTD = temp & Mascara;                 /* Parte baja del Byte */
  136.         PORTDbits.RS = 0;                               /* Indica que es un comando */
  137.         PORTDbits.RW = 0;                               /* RW = 0 */
  138.         PORTDbits.E = 1;                                /* Pone a E = 1 */
  139.         Delay1KTCYx(5);                                 /* Retardo de 5 mseg. */       
  140.         PORTDbits.E = 0;                                /* Pone a E = 0 */
  141. }
  142.  
  143. /* Manda datos al LCD */
  144. void Dato_LCD(char dato)
  145. {
  146.         char temp;                                              /* variable auxiliar */
  147.  
  148.         Delay1KTCYx(10);                                /* Retardo de 10 mseg. */
  149.         temp = dato;                                    /* Respaldo del dato original */
  150.         dato = dato >> 4;                               /* Corrimiento del nible alto */
  151.         PORTD = dato & Mascara;                 /* Manda parte alta del nible */
  152.         PORTDbits.RS = 1;                               /* Indica que es un caracter */
  153.         PORTDbits.RW = 0;                               /* RW = 0 */
  154.         PORTDbits.E = 1;                                /* Pone a E = 1 */
  155.         Delay1KTCYx(5);                                 /* Retardo de 5 mseg. */       
  156.         PORTDbits.E = 0;                                /* Pone a E = 0 */
  157.         PORTD = temp & Mascara;                 /* Parte baja del Byte */
  158.         PORTDbits.RS = 1;                               /* RS = 0 */
  159.         PORTDbits.RW = 0;                               /* RW = 0 */
  160.         PORTDbits.E = 1;                                /* Pone a E = 1 */
  161.         Delay1KTCYx(5);                                 /* Retardo de 5 mseg. */       
  162.         PORTDbits.E = 0;                                /* Pone a E = 0 */
  163. }


jiji... solo falta que averigue como agregar esta opción a esta fantástica aplicación...  :D :D :D

P.D.1. En cuanto averigue como postear BIEN los códigos modifico este mensaje... porque se ve raro... :shock:
P.D.2. ya me falta menos...

MODIFICADO: esa opción de GeSHi no está en todas las "apariencias" del foro. Pero ahora se ve bien :-/
Título: Re: Generador de Caracteres CG-RAM
Publicado por: migsantiago en 19 de Febrero de 2008, 13:16:15
Puedes usar el botoncito (http://www.todopic.com.ar/foros/Themes/babylon/images/bbc/code.gif). Luego entre los corchetes pones el código y se va a ver así...

Código: [Seleccionar]
int suma(int a, int b)
{
return a+b;
}
Título: Re: Generador de Caracteres CG-RAM
Publicado por: PalitroqueZ en 19 de Febrero de 2008, 20:54:02
voy a tomar nota Blanquita  :mrgreen: veo ese ejemplo que servirá de plantilla para añadirlo al programita.

ya me dieron otra tarea a mi lista de trabajos por hacer.  :lol:





Título: Re: Generador de Caracteres CG-RAM
Publicado por: Blanca Sánchez en 20 de Febrero de 2008, 00:10:12
Hola PalitroqueZ:

pues sería genial ¡¡¡ :-/ !!!... hubiese querido hacerlo yo para aprender más sobre el Visual Basic, pero apenas ví el código que empleaste y me quedé vizca  :D :D :D y sinceramente me tardaría muuucho tiempo...

aunque admito que me he dado a la tarea de utilizar tu programa como guía de aprendizaje... quien sabe, a lo mejor dentro de varios meses lo logro.

Saludos!
Título: Re: Generador de Caracteres CG-RAM
Publicado por: migsantiago en 20 de Febrero de 2008, 21:58:37
Hola PalitroqueZ:

pues sería genial ¡¡¡ :-/ !!!... hubiese querido hacerlo yo para aprender más sobre el Visual Basic, pero apenas ví el código que empleaste y me quedé vizca  :D :D :D

 :D :D :D
Título: Re: Generador de Caracteres CG-RAM
Publicado por: PalitroqueZ en 21 de Febrero de 2008, 14:02:34
por si te sirve de guía, en el vb, con la tecla F8 ves el programa corriendo de linea en linea, se sombrean con unos rectangulos amarillos y abajo hay una ventana llamada inmediato, en esta ventana puedes ver la evolución de las variables, para ello basta colocar un

Código: Visual Basic
  1. Debug.print "nombre de la variable: " & nombre de la variable

en zonas claves que quieras indagar. También estan los breakpoints

(http://img301.imageshack.us/img301/6870/breakpointvbjr4.jpg)

clicando antes de la linea vertical en tiempo de diseño, bastante útil.

Título: Re: Generador de Caracteres CG-RAM
Publicado por: scientist en 17 de Diciembre de 2008, 02:09:42
felicitaciones, no habia visto este hilo, gracias Palitroquez  :-/ :-/ :-/ :-/
Título: Re: Generador de Caracteres CG-RAM
Publicado por: PalitroqueZ en 17 de Diciembre de 2008, 16:01:14
Gracias scientist , si te ha sido de utilidad, me alegra mucho  :mrgreen:


Título: Re: Generador de Caracteres CG-RAM
Publicado por: gaston en 19 de Diciembre de 2008, 10:03:48
Hola chicos

como puedo bajar la aplicacion ??

muy bueno pali, parece espectacular

gracias
Título: Re: Generador de Caracteres CG-RAM
Publicado por: PalitroqueZ en 19 de Diciembre de 2008, 17:21:20
mira en el post:

http://www.todopic.com.ar/foros/index.php?topic=14552.msg93533#msg93533

también lo puedes bajar desde la página de Ariel

http://www.ucontrol.com.ar/wiki/index.php/Generador_de_Caracteres_CG-RAM

Título: Re: Generador de Caracteres CG-RAM
Publicado por: gaston en 20 de Diciembre de 2008, 12:03:56
Muchas gracias, voy a verlo, seguro que es de utildad

saluds!! y feliz navidad para todos
Título: Re: Generador de Caracteres CG-RAM
Publicado por: Bar-Tolo en 15 de Marzo de 2009, 22:30:30
Hola muchachos, esta muy bueno ese programa y ahorra mucho tiempo.Tengo una preguntita al respecto.Yo tengo un codigo qen el cual genero 4 diferentes caracteres CG RAM, no tengo problemas para crearlos ni para mostrarlos en el LCD.La cosa esta que yo quiero que estos cuatro caracteres se muestren en una secuencia en una direcion del LCD antes de moverse a la siguiente direcion del LCD y hacer la misma secuencia.Solo logro hacer la primera secuencia en la direcion 00 del LCD.No logro que avance.

Gracias por adelantado.


Un Saludo.
Título: Re: Generador de Caracteres CG-RAM
Publicado por: unactron123 en 20 de Marzo de 2009, 02:01:57
Amigos muy interesante el programita de generar caracteres. Estaba pensando en usar la configuración del display como matris de 5x10 ahi se podrian generar caracteres mas grandes he leido que se cambia la configuración de unos comandos de inicialización; pero todavia no logra realizarlo alguien de casualidad ha logrado esto para que me de algun alcance de como hacerlo
Gracias de antemano por su respuesta
Título: Re: Generador de Caracteres CG-RAM
Publicado por: PalitroqueZ en 20 de Marzo de 2009, 11:35:39
hasta la fecha, el generador de caracteres no trabaja con fonts de 5x10. Se me había cruzado por la mente ponerselo, pero como son 4 caracteres que se pueden escribir no lo tomé en consideración.  :(

Título: Re: Generador de Caracteres CG-RAM
Publicado por: cdrpo en 21 de Abril de 2009, 11:44:33
Encontré en la web, un programa que pasa una fuente de texto de windows a imagen BMP de cada carácter, sería una buena idea, coger estas imágenes y convertirlas a código de microcontrolador, de esta manera nos evitamos crear cada carácter pixel  a pixel
http://webcatering.com/Font2BMP/

otros programas

http://www.iseasoft.com/shot_bfc.htm

http://www.pocketmt.com/

http://www.ticalc.org/archives/files/fileinfo/267/26798.html

http://www.ticalc.org/archives/files/fileinfo/290/29070.html
Título: Re: Generador de Caracteres CG-RAM
Publicado por: PalitroqueZ en 21 de Abril de 2009, 17:40:15
hola cdrpo

esos programas se ven finos!! voy a probarlo a ver que tal.

gracias por los links.

Título: Re: Generador de Caracteres CG-RAM
Publicado por: NANO1985 en 07 de Noviembre de 2009, 17:38:48
muy buen aporte éste generador de caracteres amigo PalitroqueZ...
ahora estoy por probar con un display de 16 caracteres x 2 lineas....
la idea es utilizar cuatro caracteres para crear un dígito como si fuera un display de 7 segmentos...
alguien lo ha hecho?...
el motivo de hacer ésto es que normalmente en aplicaciones donde nuestro circuito se encuentra a luz ambiente, sol,... o lo que sea.... es muy dificil apreciar lo que el display de 7segmentos led nos está indicando... entonces la idea es poder con un LCD 8 caracteres x 2 lineas, emular un conjunto de 4 displays de 7 segmentos led....
manos a la obra...
saludos!
Título: Re: Generador de Caracteres CG-RAM
Publicado por: PalitroqueZ en 08 de Noviembre de 2009, 13:54:17
Hola nano.

no entiendo muy bien lo que pretendes hacer

¿te refieres a tomar 2 posiciones verticales de la lcd para crear un dígito 7 seg?

Título: Re: Generador de Caracteres CG-RAM
Publicado por: NANO1985 en 08 de Noviembre de 2009, 14:44:15
asi es palitroquez..... mirá acá (http://www.todopic.com.ar/foros/index.php?topic=28280.msg233118#new) inicié con el proyecto....

saludos  8)
Título: Re: Generador de Caracteres CG-RAM
Publicado por: Drod en 10 de Noviembre de 2009, 11:24:44
Hola foreros!

Una pregunta: Los codigos funcionaron perfectamente, pero solo escribi 8 digitos en la primera linea. Como hago para escribir 16 digitos em la primera, y luego, en los 16 de la segunda?

Título: Re: Generador de Caracteres CG-RAM
Publicado por: MLO__ en 10 de Noviembre de 2009, 12:06:57
Hola.

Solo se pueden escribir 8 caracteres personalizados.
Título: Re: Generador de Caracteres CG-RAM
Publicado por: MGLSOFT en 10 de Noviembre de 2009, 15:22:54
Solo dispones de 8 caracteres personalizados que se cargan en CGRAM, luego los llamas y vas colocandolos en las distintas posiciones, según el carácter que quieras "dibujar".
Se entiende??
Título: Re: Generador de Caracteres CG-RAM
Publicado por: lioaaguila en 26 de Noviembre de 2009, 00:14:26
Hola felicidades por este ejemplito, pero tengo una duda espero y me contesten,



Como le aria para cargarlo al ATMEGA 8 el AVR, bueno espero y alguien se tome la molestia en contestar, y si no es asi mi correo es davidleoslp@hotmail.com, tengo algunos programas para AVR 8, agreguenme y ahi charlamos.




Siempre he dicho que la informacion no solo es de uno si no que es universal°°°!!!!!!!!!!!!!!!!!!!111
Título: Re: Generador de Caracteres CG-RAM
Publicado por: Suky en 26 de Noviembre de 2009, 02:11:49
Es necesario colocar todo en rojo? Con el contraste del fondo negro del foro me hizo pelota los ojos  :mrgreen: Con respecto a utilizarlo en un ATMEGA, lo único que te serviría aquí serían los arreglos con los caracteres personalizados y las direcciones. Después debes de proveer la librería del manejo del LCD para el microcontrolador utilizado y el lenguaje elegido.

Saludos!
Título: Re: Generador de Caracteres CG-RAM
Publicado por: MGLSOFT en 26 de Noviembre de 2009, 15:37:36
Citar
« Última modificación: Hoy a las 14:03:06 por un Moderador, Razón: No abuses de los colores.  »

Ja..ja..!!
Es la primera vez que violan a un moderador de un foro !!! :D :D :D
Título: Re: Generador de Caracteres CG-RAM
Publicado por: NANO1985 en 27 de Noviembre de 2009, 09:59:52
aaayyy me perdí del mje!... bue...  ;-)
Título: Re: Generador de Caracteres CG-RAM
Publicado por: PALIO_TD98 en 28 de Noviembre de 2010, 23:50:19
Hola, esta muy bueno el programita, lo baje y funciona de 10! GRACIAS POR COMPARTIRLO, ahora una consulta, todavía no probe, pero se que el LCD tienen para almacenar hasta 8 caracteres graficos de 7x5 verdad?? cuando yo los uso, que sucede si regrabo encima de esos 8 caracteres otros 8 nuevos, estando ya en "PANTALLA" los 8 anteriores, ahora bien les explico lo que necesito...:

Yo quiero lograr dispones de un juego de caracteres INVERTIDOS, para por ejemplo remarcar un MENU/SUB-MENU cuando lo selecciono, se que me "come2 memoria, pero los caracteres los extraigo de una eeprom I2C, y chau..... y que el micro labure a 20Mhz.... todo es mas o menos rápido....

Se puede hacer eso, o una vez que reescribis la CGRAM, los datos que estan la pantalla se borran??? por que es una pena que el LCD, no tenga la opcion de invertir caracter.... o si??

Saludos, y Muchas Gracias...
Título: Re: Generador de Caracteres CG-RAM
Publicado por: PalitroqueZ en 29 de Noviembre de 2010, 11:42:25
....
Se puede hacer eso, o una vez que reescribis la CGRAM, los datos que estan la pantalla se borran??? por que es una pena que el LCD, no tenga la opcion de invertir caracter.... o si??

...

los datos en pantalla se borran es cuando mandas a escribir sobre la pantalla, de otra forma se quedaran allí a menos que desconectes las lcd.

Título: Re: Generador de Caracteres CG-RAM
Publicado por: LuNaTk en 16 de Diciembre de 2011, 16:48:37
Ya ha pasado mas de un año de la ultima respuesta, solo quiero saber si el programa sigue en linea, ya lo he buscado pero no eh logrado iniciar la descarga, el link de rapidshare esta muerto al igual que el de 4shared y en la pagina de ucontrol no se encuentra.
Título: Re: Generador de Caracteres CG-RAM
Publicado por: PalitroqueZ en 16 de Diciembre de 2011, 20:45:31
ver aquí:

hxxp://www.unpocodelectronica.netau.net/generador-de-caracteres-cg-ram

o aquí también:

hxxp://www.ucontrol.com.ar/wiki/index.php?title=Generador_de_Caracteres_CG-RAM
Título: Re: Generador de Caracteres CG-RAM
Publicado por: knozis en 02 de Julio de 2013, 12:23:22
Buenos días compañeros. ya se que esta mal revivir un post de tanto tiempo, tiene mas de 120 días sin tener una respuesta, ¿podría alguien volver a subir el programa para generar los caracteres? he revisado en Internet y la mayoría de los enlaces están caídos. disculpen las molestias. saludos

Edito:

Al fin logre conseguirlo por si alguien anda buscándolo también
http://www.mediafire.com/download/oksuiu05u5okvg1/cgram_picture.rar

Saludos amigos
Título: Re: Generador de Caracteres CG-RAM
Publicado por: MGLSOFT en 02 de Julio de 2013, 13:14:53
Ese enlace lleva a una película... al menos a mi me paso eso..
Título: Re: Generador de Caracteres CG-RAM
Publicado por: PalitroqueZ en 03 de Julio de 2013, 21:49:49
el primer link era cuando tenía otro hosting con otro nombre de dominio.

el link actualizado donde se encuentra el archivo de descarga es:


http://www.mediafire.com/download/oksuiu05u5okvg1/cgram_picture.rar

Título: Re: Generador de Caracteres CG-RAM
Publicado por: knozis en 20 de Julio de 2013, 20:29:13
Correcto, de igual forma yo anexe el enlace para su descarga directa.