关于51单片机通过串口发送数据的问题 我没有用循环发送 但是连上电脑后单片机就不断的向pc机发送数据 不管怎么改都不行 请大家帮帮忙 看能不能解决哈 谢各位高手了
下面是部分程序
void all_Init()
{ int i = 0; //振荡时钟初始化
OSCXCN = 0x67;
for (i = 0; i < 3000; i++); // Wait 1ms for initialization
while ((OSCXCN & 0x80) == 0);
OSCICN = 0x08;
CKCON = 0x20 ; //定时器2使用系统时钟
SCON0 = 0x50 ; //uart0 方式1,8位uart,可变波特率;允许接收
T2CON = 0x34 ; //定时器2作为接收和发送时钟,允许
RCAP2L = 0xFA ; //定时器2自动重载的初值低字节
RCAP2H = 0xFF ; //高字节
P0MDOUT = 0xFF;
P1MDOUT = 0xFF;
XBR0 = 0x04; //UART0的TX连到P0.0,RX连到P0.1
XBR1 = 0x00;
XBR2 = 0x40; //交叉开关使能
IE = 0x90; //EA=1,允许RI0标志位或TI0标志位产生的中断
IP = 0x10; //中断优先级寄存器,uart0为高优先级
}
//void Uart0_TX(unsigned char dat);
//void Uart0_trans(unsigned char len,unsigned char transdata[]);
void delay1ms(unsigned char j)
{
unsigned int i,k,l;
for(k=0;k<j;k++)
for(i=0;i<0xe1;i++)
for(l=0;l<0x07;l++);
}
void Uart0_TX(unsigned char dat)
{
TI0=0;
SBUF0=dat;
while(!TI0);
TI0=0;
}
void Uart0_trans(unsigned char len,unsigned char transdata[])
{
unsigned char i,rctemp;
TI0=0;
RI0=0;
//ES0=0;
rctemp = 0;
for(i=0;i<len-1;i++)
{
Uart0_TX(transdata[i]); //按顺序发送读出的时间数据到SBUF0 通过串口发出
rctemp += transdata[i];
}
Uart0_TX(rctemp);
//ES0=1;
}
main()
{ all_Init();
Uart0_trans(12,temp1);
while(1);
}