Hola, alguien me podría colaborar con este código por favor, nesecito enviar datos de forma serial pero con un clock para hacer un buffer.
eso es una matriz de led, pero lo que quiero es simplemente tener un array con un dato y luego enviarlo por un solo pin
//-----Guelbert Cool FACEBOOK 13/05/2012-----//
#include <16F84A.h>
#fuses NOWDT, XT, PUT, NOPROTECT
#use delay(clock=12000000)
const char TEXT []={"Guelbert Cool FACEBOOK 13/05/2012 Guelbert Cool FA"};
int i,j,k,d,n,m,s,DATA;
//------------------------------------------------------------------
const char FONT1[32][7] ={
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, // Space
0xFB,0xFB,0xFB,0xFB,0xFB,0xFF,0xFB, // !
0xF5,0xF5,0xF5,0xFF,0xFF,0xFF,0xFF, // "
0xF5,0xF5,0xE0,0xF5,0xE0,0xF5,0xF5, // #
0xFB,0xF0,0xEB,0xF1,0xFA,0xE1,0xFB, // $
0xE3,0xEA,0xE5,0xFB,0xF4,0xEA,0xF8, // %
0xF7,0xEB,0xEB,0xF7,0xEA,0xED,0xF2, // &
0xF9,0xF9,0xFD,0xFB,0xFF,0xFF,0xFF, // '
0xFD,0xFB,0xF7,0xF7,0xF7,0xFB,0xFD, // (
0xF7,0xFB,0xFD,0xFD,0xFD,0xFB,0xF7, // )
0xFB,0xEA,0xF1,0xFB,0xF1,0xEA,0xFB, // *
0xFF,0xFB,0xFB,0xE0,0xFB,0xFB,0xFF, // +
0xFF,0xFF,0xFF,0xF3,0xF3,0xFB,0xF7, // ,
0xFF,0xFF,0xFF,0xF1,0xFF,0xFF,0xFF, // -
0xFF,0xFF,0xFF,0xFF,0xFF,0xF3,0xF3, // .
0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xFF, // /
0xF1,0xEE,0xEC,0xEA,0xE6,0xEE,0xF1, // 0
0xFB,0xF3,0xFB,0xFB,0xFB,0xFB,0xF1, // 1
0xF1,0xEE,0xFE,0xF1,0xEF,0xEF,0xE0, // 2
0xF1,0xEE,0xFE,0xF9,0xFE,0xEE,0xF1, // 3
0xFD,0xF9,0xF5,0xED,0xE0,0xFD,0xFD, // 4
0xE0,0xEF,0xE1,0xFE,0xFE,0xFE,0xE1, // 5
0xF9,0xF7,0xEF,0xE1,0xEE,0xEE,0xF1, // 6
0xE0,0xFE,0xFD,0xFB,0xF7,0xF7,0xF7, // 7
0xF1,0xEE,0xEE,0xF1,0xEE,0xEE,0xF1, // 8
0xF1,0xEE,0xEE,0xF0,0xFE,0xFD,0xF3, // 9
0xFF,0xF3,0xF3,0xFF,0xF3,0xF3,0xFF, // :
0xF3,0xFB,0xF3,0xF3,0xFF,0xF3,0xF3, // ;
0xFD,0xFB,0xF7,0xEF,0xF7,0xFB,0xFD, // <
0xFF,0xFF,0xF1,0xFF,0xF1,0xFF,0xFF, // =
0xF7,0xFB,0xFD,0xFE,0xFD,0xFB,0xF7, // >
0xF1,0xEE,0xFE,0xFD,0xFB,0xFF,0xFB}; // ?
const char FONT2[32][7] ={
0xF1,0xEE,0xFE,0xF2,0xEA,0xEA,0xF1, // @
0xFB,0xF5,0xEE,0xEE,0xE0,0xEE,0xEE, // A
0xE1,0xF6,0xF6,0xF1,0xF6,0xF6,0xE1, // B
0xF1,0xEE,0xEF,0xEF,0xEF,0xEE,0xF1, // C
0xE1,0xF6,0xF6,0xF6,0xF6,0xF6,0xE1, // D
0xE0,0xEF,0xEF,0xE3,0xEF,0xEF,0xE0, // E
0xE0,0xEF,0xEF,0xE3,0xEF,0xEF,0xEF, // F
0xF1,0xEE,0xEF,0xE8,0xEE,0xEE,0xF1, // G
0xEE,0xEE,0xEE,0xE0,0xEE,0xEE,0xEE, // H
0xF1,0xFB,0xFB,0xFB,0xFB,0xFB,0xF1, // I
0xF8,0xFD,0xFD,0xFD,0xFD,0xFD,0xF3, // J
0xEE,0xED,0xEB,0xE7,0xEB,0xED,0xEE, // K
0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xE0, // L
0xEE,0xE4,0xEA,0xEA,0xEE,0xEE,0xEE, // M
0xEE,0xE6,0xEA,0xEC,0xEE,0xEE,0xEE, // N
0xF1,0xEE,0xEE,0xEE,0xEE,0xEE,0xF1, // O
0xE1,0xEE,0xEE,0xE1,0xEF,0xEF,0xEF, // P
0xF1,0xEE,0xEE,0xEE,0xEA,0xED,0xF2, // Q
0xE1,0xEE,0xEE,0xE1,0xEB,0xED,0xEE, // R
0xF1,0xEE,0xEF,0xF1,0xFE,0xEE,0xF1, // S
0xE0,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB, // T
0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xF1, // U
0xEE,0xEE,0xEE,0xF5,0xF5,0xFB,0xFB, // V
0xEE,0xEE,0xEE,0xEA,0xEA,0xE4,0xEE, // W
0xEE,0xEE,0xF5,0xFB,0xF5,0xEE,0xEE, // X
0xEE,0xEE,0xF5,0xFB,0xFB,0xFB,0xFB, // Y
0xE0,0xFE,0xFD,0xFB,0xF7,0xEF,0xE0, // Z
0xF1,0xF7,0xF7,0xF7,0xF7,0xF7,0xF1, // [
0xFF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF, // \
0xF1,0xFD,0xFD,0xFD,0xFD,0xFD,0xF1, // [
0xFB,0xF5,0xEE,0xFF,0xFF,0xFF,0xFF, // ^
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0}; // _
const char FONT3[32][7] ={
0xF3,0xF3,0xF7,0xFB,0xFF,0xFF,0xFF, // `
0xFF,0xFF,0xF1,0xFE,0xF0,0xEE,0xF1, // a
0xEF,0xEF,0xE9,0xE6,0xEE,0xE6,0xE9, // b
0xFF,0xFF,0xF8,0xF7,0xF7,0xF7,0xF8, // c
0xFE,0xFE,0xF2,0xEC,0xEE,0xEC,0xF2, // d
0xFF,0xFF,0xF1,0xEE,0xE0,0xEF,0xF1, // e
0xF9,0xF6,0xF7,0xE1,0xF7,0xF7,0xF7, // f
0xFF,0xFF,0xF0,0xEE,0xF0,0xFE,0xF1, // g
0xEF,0xEF,0xE9,0xE6,0xEE,0xEE,0xEE, // h
0xFB,0xFF,0xF3,0xFB,0xFB,0xFB,0xF1, // i
0xFD,0xFF,0xF9,0xFD,0xFD,0xFD,0xF3, // j
0xF7,0xF7,0xF6,0xF5,0xF3,0xF5,0xF6, // k
0xF3,0xFB,0xFB,0xFB,0xFB,0xFB,0xF1, // l
0xFF,0xFF,0xE5,0xEA,0xEA,0xEA,0xEA, // m
0xFF,0xFF,0xE9,0xE6,0xEE,0xEE,0xEE, // n
0xFF,0xFF,0xF1,0xEE,0xEE,0xEE,0xF1, // o
0xFF,0xFF,0xE1,0xEE,0xE1,0xEF,0xEF, // p
0xFF,0xFF,0xF0,0xEE,0xF0,0xFE,0xFE, // q
0xFF,0xFF,0xE9,0xE6,0xEF,0xEF,0xEF, // r
0xFF,0xFF,0xF0,0xEF,0xF1,0xFE,0xE1, // s
0xFB,0xFB,0xF0,0xFB,0xFB,0xFB,0xFC, // t
0xFF,0xFF,0xEE,0xEE,0xEE,0xEC,0xF2, // u
0xFF,0xFF,0xEE,0xEE,0xEE,0xF5,0xFB, // v
0xFF,0xFF,0xEE,0xEE,0xEA,0xEA,0xF4, // w
0xFF,0xFF,0xEE,0xF5,0xFB,0xF5,0xEE, // x
0xFF,0xFF,0xEE,0xF5,0xFB,0xFB,0xF3, // y
0xFF,0xFF,0xE0,0xFD,0xFB,0xF7,0xE0, // z
0xF9,0xF7,0xF7,0xE7,0xF7,0xF7,0xF9, // {
0xFB,0xFB,0xFB,0xFF,0xFB,0xFB,0xFB, // |
0xF3,0xFD,0xFD,0xFC,0xFD,0xFD,0xF3, // }
0xF5,0xEA,0xFF,0xFF,0xFF,0xFF,0xFF}; // ~
//------------------------------------------------------------------
void main()
{
OUTPUT_A(0x00);OUTPUT_B(0x00);
while(TRUE)
{
for(j=0;j<8;j++)
{
for(i=d;i<d+16;i++)
{
if (TEXT <='?')DATA=~FONT1[TEXT -' '][j];else
if (TEXT <='_')DATA=~FONT2[TEXT -'@'][j];else
if (TEXT <='~')DATA=~FONT3[TEXT -'`'][j];
if(j==7)DATA=0x00;
for(k=0;k<8;k++)
{
OUTPUT_BIT(PIN_A1,shift_left(&DATA,1,0));
if(k>=2){OUTPUT_HIGH(PIN_A0);OUTPUT_LOW (PIN_A0);}
}
}
OUTPUT_HIGH(PIN_A2); delay_ms(5); OUTPUT_LOW (PIN_A2);
OUTPUT_B(s+=1);
}
m+=1;
if(m==5){m=0;n+=1;};
if(n==6){n=0;d+=1;}
if(d==34)d=0;
}
}
//------------------------------------------------------------------
Creo que deberia ir así
char TEXTO[]={"123aB"};
//--------------- FUNCION PRINCIPAL------------------------------------------------------------------
void main(){
OUTPUT_A(0x00);OUTPUT_B(0x00); // Limpio Puerto A y B
while(TRUE){ // Ciclo Infinito
enviar();
} // Fin del ciclo infinito
} // Fin Principal
//-------------- Control Buffer----------------------------------------------------------------------
void enviar(){
for(j=0;j<8;j++){
for(i=0;i<5;i++){ //
if (TEXTO <='?')DATO=~FONT1[TEXTO -' '][j];else // Fuente 1 (fuente numerica)
if(j==7)DATO=0x00; // Control de la fuente
for(k=0;k<8;k++) { //
OUTPUT_HIGH(PIN_A1) ; // Clock
OUTPUT_BIT(PIN_A3,shift_left(&DATO,1,0)); // Dato (buffe
OUTPUT_LOW (PIN_A1); // Clock
} //
} //
}
}