#define INBUF_LEN 50 //数据长度
unsigned char receiveCount = 0; //已接收字符数
unsigned char receiveData;
unsigned char inbuf1[INBUF_LEN];
void init_serialcomm(void)
{
IE=0;
TMOD |= 0x20; //TMOD: timer 1, mode 2, 8-bit reload
TH1 = 0xFA; //Baud:9600 fosc=11.0592MHz
TL1 = 0xFA;
TCON |= 0x40; // Enable Timer 1
EICON |= 0x80; //SMOD1=1;
SCON1 = 0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr
}
//向串口发送一个字符
void send_char_com(unsigned char c)
{
SBUF1=c;
while(TI_1==0);
TI_1=0;
}
void serial () interrupt 15 using 0
{
if(RI_1)
{
RI_1 = 0;
T0 = ~T0; //发光二极管交替闪烁
inbuf1[receiveCount] = SBUF1;
send_char_com( receiveCount+'0' );
receiveCount++;
}
}
void main()
{
int i = 0;
init_serialcomm();
receiveCount = 0;
EA=1;
ES1=1; //Enable Serial Interrupt
}
程序是这样的,应该随着发送数的增加,接收到的应该是0123...但是收到的全是零