muchas gracias Diego E. pero hay algo que no me queda claro y es que al generar el codigo con el generador de caracteres me sale este codigo
//*******************************************************************************
// CODIGO A NIVEL DE PIXEL con cristal a 4Mhz
// CON 5 X 7 DOTS (se pueden crear hasta 8 caracteres solamente)
// EN ESTE EJEMPLO SE PRUEBA COMO GRABAR NUEVOS CARACTERES
// EN LA CG-RAM-DATA DIRECCIONANDO CADA LINEA CON EL CG-RAM-ADDRESS
//*******************************************************************************
#include <16F84A.h>
#fuses XT,NOWDT,PUT
#use delay(clock=4000000)
#byte porta =5
#byte portb =6
#define use_portb_lcd TRUE
#include <LCD.c>
int const caracter0_direccion[8]={0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47};
int const caracter0_datos[8]={0b00000,0b00000,0b01010,0b00100,0b10001,0b01110,0b00000,0b0};
int const caracter1_direccion[8]={0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f};
int const caracter1_datos[8]={0b00000,0b00000,0b01010,0b00100,0b00000,0b01110,0b10001,0b0};
int const caracter2_direccion[8]={0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57};
int const caracter2_datos[8]={0b00000,0b00000,0b01010,0b00100,0b00000,0b01110,0b00000,0b0};
int const caracter3_direccion[8]={0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f};
int const caracter3_datos[8]={0b00000,0b00000,0b01010,0b00100,0b00000,0b01110,0b01110,0b0};
int const caracter4_direccion[8]={0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67};
int const caracter4_datos[8]={0b00000,0b01010,0b01010,0b00100,0b01110,0b10001,0b01110,0b0};
int const caracter5_direccion[8]={0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f};
int const caracter5_datos[8]={0b00000,0b00000,0b11011,0b00100,0b00100,0b10001,0b01110,0b0};
int const caracter6_direccion[8]={0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77};
int const caracter6_datos[8]={0b00000,0b11011,0b11011,0b00100,0b00000,0b01110,0b00000,0b0};
int const caracter7_direccion[8]={0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f};
int const caracter7_datos[8]={0b00000,0b00000,0b11011,0b00100,0b00000,0b01110,0b10001,0b0};
void main() {
int contador;
set_tris_a(0x0);
set_tris_b(0x0);
lcd_init();
for(contador=0;contador<8;contador++){
lcd_send_byte(0,caracter0_direccion[contador]); //modo comando
lcd_send_byte(1,caracter0_datos[contador]); // modo dato
lcd_send_byte(0,caracter1_direccion[contador]); //modo comando
lcd_send_byte(1,caracter1_datos[contador]); // modo dato
lcd_send_byte(0,caracter2_direccion[contador]); //modo comando
lcd_send_byte(1,caracter2_datos[contador]); // modo dato
lcd_send_byte(0,caracter3_direccion[contador]); //modo comando
lcd_send_byte(1,caracter3_datos[contador]); // modo dato
lcd_send_byte(0,caracter4_direccion[contador]); //modo comando
lcd_send_byte(1,caracter4_datos[contador]); // modo dato
lcd_send_byte(0,caracter5_direccion[contador]); //modo comando
lcd_send_byte(1,caracter5_datos[contador]); // modo dato
lcd_send_byte(0,caracter6_direccion[contador]); //modo comando
lcd_send_byte(1,caracter6_datos[contador]); // modo dato
lcd_send_byte(0,caracter7_direccion[contador]); //modo comando
lcd_send_byte(1,caracter7_datos[contador]); // modo dato
}
lcd_send_byte(0,0x80);
for(contador=0;contador<8;contador++){
lcd_send_byte(1,contador); //modo dato
}
delay_cycles(1);
}
como ven las lineas
int const caracter0_direccion[8]={0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47};
int const caracter0_datos[8]={0b00000,0b00000,0b01010,0b00100,0b10001,0b01110,0b00000,0b0};
se posicionan en 0x40 en adelante y con tu distribucion empiezan en 80 Diego E. porque es asi en el codigo y que significa 0b0 ?
otra cosa es que si ago
int const caracter0_direccion[8]={0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87};
int const caracter0_datos[8]={0b00000,0b00000,0b01010,0b00100,0b10001,0b01110,0b00000,0b0};
no funciona ! perdón si no entiendo nada solo toco de oido !
PD: y se me ocurrio algo! al que me conteste primero, le presento a mi hermana