今天在使用C51单片机发数据给PC时,呈现了一个小小的问题:假如我要用一个按键来触单片发送5个数据到PC,当单片机复位后,第一次发送的数据总是只要一个数据,而不是5个,当第2次后又正常了。原因是在程序中开了串口中止(ES = 1);大约程序如下:
ES = 1;
TOMD = 0x20;
TR1 = 1;
main()
{P1.0 = 1;
while(P1.0);
send(0x00);
send(0x01);
send(0x02);
send(0x03);
send(0x04);
}
。。。。。。
假如是以上程序,当单片每复位后,按第一次P1.0将只发送00,第2次后会是00,01,02,03,04;
去掉ES = 1;后能够处理。