程序是让串口调试工具发送信息给单片机,单片机再发回来,但是为什么程序在下面两句语句顺序上会有影响? #include<reg52.h> sbit WE=P1^2; unsigned char a,flag; main() {
WE=0; REN=1; SM0=0; SM1=1; TR1=1; TMOD=0x20; TH1=0xfd; EA=1; ES=1; while(1) { while(1) { if(flag==1) { ES=0; flag=0; SBUF=a; while(TI==0); TI=0; // 注意两句语句 ES=1; // 顺序 这样的顺序经试验是正确的,调换为什么会一直不停地发 “ff ff ff ff ff ff ff ....”?为什么是“ff ....”呢? } } } }
void ter() interrupt 4 { RI=0; P0=SBUF; flag=1; a=SBUF;
}
望各位大哥不吝赐教,太感谢了!
|