电脑断电重启的过程中,向串口发送了无意义的数据,使单片机进入到一个意外的状态并且出不来,直到收到一个符合格式的数据,它才反应过来.
可能是你的单片机程序编写得不够合理,没有做足够的出错处理,或者做得不正确.
这个不一定的,延长线也就是直连线和交叉线都有的,问题不在这里……关键是要把单片机的RXD连计算机的TXD,单片机的TXD连计算机的RXD,对于计算机端好像2对应RXD,3对应TXD,单片机端要通过MAX232等电平转换电路才可以通过串口线连接到电脑上。
跟你一样的芯片,protues仿真出来跟你一样的问题,最后赋初值解决
发送端部分程序:
Start:
mov SCON,#50H;
anl PCON,#00H;
mov TMOD,#20H;
mov TL1,#0fdH;
mov TH1,#0fdH;
setb TR1;
setb EA;
setb ES;
mov P2,#00H; //不加这句第一次不执行
loop1:
mov A, P1;
cjne A,P2,chuli;
sjmp loop1;
chuli:
mov P2,A;
mov SBUF,A;
jnb TI,$;
cpl TI;
ret;
;====================================================================
END