Hola a todos, tengo un problema con mi programa, estoy haciendo una prueba para ver si funciona mi conexion serial con el microcontrolador. El programa que hice en c# manda un string al puerto serial, en proteus estoy simulando con el COMPIN y microcontrolador pic16f876. He hecho pruebas y con el virtual terminal de proteus y si llega el string, sin embargo el pic no lo recibe o no se que pasa. Lo unico que quiero ahora es que cuando el pic reciba el dato encienda un led. El resto del codigo es solo para controlar la matriz de leds.
-----codigo en C para compilador CCS de PIC------
#include <16F876.h>
#include <stdio.h>
#FUSES NOWDT, HS
#use delay(clock=20M)
#use rs232 (baud = 9600, parity = N, xmit=PIN_C7, rcv=PIN_C6, bits =

#define DATA PIN_C4
#define CLOCK PIN_C3
#define LATCH PIN_C2
char dato; //dato2;
//byte nuevo;
#INT_RDA
void rda_isr()
{
if(kbhit()) // si hay algo pendiente de descargar en la USART...
{
dato=getc(); // lo descargo sobre la variable -dato-
output_high(pin_a2); //cada descarga de datos enciente el led
}
}
void reloj (int x){
output_bit(DATA,2^x);
output_bit(CLOCK,1);
output_bit(CLOCK,0);
output_bit(LATCH,1);
output_bit(LATCH,0);
}
#define LARGO 42 //Longitud de la tabla
int const tabla[LARGO+80]={
0,0,0,0,0,0,0,0, //Espacios
0,0,0,0,0,0,0,0, //Espacios
0,0,0,0,0,0,0,0, //Espacios
0,0,0,0,0,0,0,0, //Espacios
0,0,0,0,0,0,0,0, //Espacios
255,16,16,16,255,0,0, //H
255,145,145,145,129,0,0, //E
255,128,128,128,128,0,0, //L
255,128,128,128,128,0,0, //L
126,129,129,129,126,0,0 //O
255,64,32,64,255,0,0 //W
0,0,0,0,0,0,0,0, //Espacios
0,0,0,0,0,0,0,0, //Espacios
0,0,0,0,0,0,0,0, //Espacios
0,0,0,0,0,0,0,0, //Espacios
0,0,0,0,0,0,0,0, //Espacios
};
void main(){
enable_interrupts(int_rda);
enable_interrupts(global);
int i,j,k; //Variables contadores
while(TRUE){ //Ciclo infinito
for(i=0;i<LARGO;i++){ //Recorrido de tabla
for(k=0;k<5;k++){ //Refresco de matriz
for(j=0;j<40;j++){ //Barrido de columnas
reloj(j); //Columnas ponderadas
output_b(tabla[j+i]); //Desplazamiento de tabla
delay_ms(1); //Demora de multiplexado
}
}
}
}
}