有关串口TI的问题。好多书上说,在串口发送时要TI置位,还必须软件清零什么的,发送时TI必须为0,发送完后硬件置1,必须软件清零才能再发送,但是我写了个程序,根本不用管TI,电脑串口终端照样接收到welcome to china.而且一直下去不停。我迷惑了,那位大侠指点指点一下小弟,谢谢啦!
#include <AT89X52.H>
#define uchar unsigned char
#define uint unsigned int
uchar trdata [17]={'w','e','l','c','o','m','e',0x20,'t','o',0x20,'c','h',','i','n','a','\n'};
void main(void)
{
uchar i=0;
uint j;
TMOD = 0x20; //0010 0000定时器1定时方式2
TH1 = 0x0fd; //定时器置初值 (11.0592MHz 9600波特率 )
TL1 = 0x0fd;
SCON = 0x50; //0101 0000,串口方式1,允许接收
TR1 = 1; //启动定时器1
while(1)
{
SBUF=trdata[i];
i++;
if(i==17)
i=0;
for(j=0;j <12500;j++);//延时
}
}