//Matriz que almacena los codigos ASCII
char carac[96][6]= {{0x00,0x00,0x00,0x00,0x00,0x00},
{0x4f,0x00},
//!
{0x07,0x00,0x07,0x00,0x00},
//"
{0x14,0x7f,0x14,0x7f,0x14,0x00},
//#
{0x24,0x2a,0x7f,0x2a,0x12,0x00},
//$
{0x23,0x13,0x08,0x64,0x62,0x00},
//%
{0x36,0x49,0x55,0x22,0x50,0x00},
//&
{0x07,0x00},
//'
{0x1c,0x22,0x41,0x00},
//(
{0x41,0x22,0x1c,0x00},
//)
{0x14,0x08,0x3e,0x08,0x14,0x00},
//*
{0x08,0x08,0x3e,0x08,0x08,0x00},
//+
{0xA0,0x60,0x00,0x00},
//,
{0x08,0x08,0x08,0x08,0x08,0x00},
//{0xC0,0x00},
//.
{0x20,0x10,0x08,0x04,0x02,0x00},
///
{0x3e,0x51,0x49,0x45,0x3e,0x00},
//0
{0x42,0x7f,0x40,0x00},
//1
{0x62,0x51,0x49,0x45,0x42,0x00},
//2
{0x21,0x41,0x45,0x4b,0x31,0x00}, //3
{0x18,0x10,0x12,0x7f,0x10,0x00},
//4
{0x27,0x45,0x45,0x45,0x39,0x00},
//5
{0x3c,0x4a,0x49,0x49,0x30,0x00},
//6
{0x01,0x71,0x09,0x05,0x03,0x00},
//7
{0x36,0x49,0x49,0x49,0x36,0x00},
//8
{0x06,0x49,0x49,0x29,0x1e,0x00},
//9
{0x66,0x66,0x00,0x00},
//:
{0xE6,0x66,0x00,0x00},
//;
{0x08,0x14,0x22,0x41,0x00,0x00},
//<
{0x14,0x14,0x14,0x14,0x14,0x00},
//=
{0x41,0x22,0x14,0x08,0x00},
//>
{0x02,0x01,0x51,0x09,0x06,0x00},
//?
{0x3e,0x41,0x5d,0x55,0x1e,0x00},
//@
{0x7e,0x11,0x11,0x11,0x7e,0x00},
//A
{0x7f,0x49,0x49,0x49,0x36,0x00},
//B
{0x3e,0x41,0x41,0x41,0x22,0x00},
//C
{0x7f,0x41,0x41,0x22,0x1C,0x00},
//D
{0x7f,0x49,0x49,0x49,0x41,0x00},
//E
{0x7f,0x09,0x09,0x09,0x01,0x00},
//F
{0x3e,0x41,0x49,0x49,0x7a,0x00},
//G
{0x7f,0x08,0x08,0x08,0x7f,0x00},
//H
{0x41,0x7f,0x41,0x00},
//I
{0x20,0x40,0x41,0x3f,0x01,0x00},
//J
{0x7f,0x08,0x14,0x22,0x41,0x00},
//K
{0x7f,0x40,0x40,0x40,0x40,0x00},
//L
{0x7f,0x02,0x0c,0x02,0x7f,0x00},
//M
{0x7f,0x04,0x08,0x10,0x7f,0x00},
//N
{0x3e,0x41,0x41,0x41,0x3e,0x00},
//O
{0x7f,0x09,0x09,0x09,0x06,0x00},
//P
{0x3e,0x41,0x51,0x21,0x5e,0x00},
//Q
{0x7f,0x09,0x19,0x29,0x46,0x00},
//R
{0x26,0x49,0x49,0x49,0x32,0x00},
//S
{0x01,0x01,0x7f,0x01,0x01,0x00},
//T
{0x3f,0x40,0x40,0x40,0x3f,0x00},
//U
{0x1f,0x20,0x40,0x20,0x1f,0x00},
//V
{0x3f,0x40,0x38,0x40,0x3f,0x00},
//W
{0x63,0x14,0x08,0x14,0x63,0x00},
//X
{0x07,0x08,0x70,0x08,0x07,0x00},
//Y
{0x61,0x51,0x49,0x45,0x43,0x00},
//Z
//
{0x7f,0x41,0x41,0x00,0x00},
{0x02,0x04,0x08,0x10,0x20,0x00},
{0x41,0x41,0x7f,0x00,0x00},
{0x04,0x02,0x01,0x02,0x04,0x00},
{0x80,0x80,0x80,0x80,0x80,0x00},
{0x03,0x05,0x00,0x00},
//`
{0x20,0x54,0x54,0x54,0x78,0x00},
{0x7f,0x44,0x44,0x44,0x38,0x00},
{0x38,0x44,0x44,0x44,0x44,0x00},
{0x38,0x44,0x44,0x44,0x3F,0x00},
{0x38,0x54,0x54,0x54,0x18,0x00},
{0x04,0x04,0x7e,0x05,0x05,0x00},
{0x08,0x94,0x94,0x94,0x7c,0x00},
{0x7f,0x08,0x04,0x04,0x78,0x00},
{0x44,0x7d,0x40,0x00,0x00},
{0x40,0x80,0x84,0x7d,0x00,0x00},
{0x7f,0x10,0x28,0x44,0x00,0x00},
{0x41,0x7f,0x40,0x00},
//l
{0x7c,0x04,0x7c,0x04,0x78,0x00},
{0x7c,0x08,0x04,0x04,0x78,0x00},
{0x38,0x44,0x44,0x44,0x38,0x00},
{0xFc,0x24,0x24,0x24,0x18,0x00},
{0x18,0x24,0x24,0x24,0xfc,0x00},
{0x7c,0x08,0x04,0x04,0x00,0x00},
{0x48,0x54,0x54,0x54,0x24,0x00},
{0x04,0x04,0x3F,0x44,0x44,0x00},
{0x3c,0x40,0x40,0x20,0x7c,0x00},
{0x1c,0x20,0x40,0x20,0x1c,0x00},
{0x3c,0x40,0x30,0x40,0x3c,0x00},
{0x44,0x28,0x10,0x28,0x44,0x00},
{0x0c,0x90,0x90,0x90,0x7c,0x00},
{0x44,0x64,0x54,0x4c,0x4c,0x00},
{0x08,0x36,0x41,0x41,0x00,0x00},
{0x77,0x00,0x00},
//|
{0x41,0x41,0x36,0x08,0x00},
{0x7c,0x09,0x05,0x05,0x78,0x00},
{0x3E,0x22,0x22,0x22,0x3E,0x00},
//[
// /imvrt
//]
//^
//_
//a
//b
//c
//d
//e
//f
//g
//h
//i
//j
//k
//m
//n
//o
//p
//q
//r
//s
//t
//u
//v
//w
//x
//y
//z
//{
//}
//
//127
};
char i,j; //Variables auxiliares para las estructuras for
char pos; //Auxiliar de posicion
int numero=0; //Contador inicia en 0
void mostrar(char a,char b,int num);
void main()
{
ADCON1=0x0f;
TRISA=0; //Puerto A como salida
TRISB=0; //Puerto B como salida
TRISD=0; //Puerto D como salida
PORTB=0x00;
PORTD=0x00;
while(1)
{
for(j=1;j<=50;j++) //For que muestra varias veces en la matriz un simbol
o
{
mostrar(2,6,numero); //Se muestra el simbolo correspondiente a
//la fila "numero" de la matriz carac desde la posicion 0 hasta la 4
}
numero++; //Se incrementa el contador
if (numero>48) //Si se excede las 48 caracteres de la MATRIZ carac, est
e
// contador "numero" se reinicia en 0, reiniciando el cic
lo.
{
numero=0;
}
}
}
/*Funcion para mostrar en la matriz desde la posicion a
num
mismo que se busca en la matriz de caracteres
*/
void mostrar(char a, char b, int num)
{
for(i=a;i<=b;i++)
{
pos=i-a; //Se obtiene la posicion a mostrar
PORTA=i; //El puntero indica que columna de la
if(i<=7) //Si se encuentra i menor a 7
PORTB=carac[num][pos]; //Se muestra por el
else //Caso contrario
PORTD=carac[num][pos]; //Se muestra por el
delay_ms(10); //Espera de 2ms
}
}
hasta la b, el valor de
matriz se muestra
puertoB el codigo de num
puertoD el codigo de num