void send (uchar n)
{
SBUF=n;
while(!TI) ;
TI=0;
}
void main()
{
SP=0x30;
init_cpu(); //这个函数设置串口通讯
while(1)
{
send(0x01);
P1=0x01;
send(0x02);
P1=0x02;
send(0x03);
P1=0x03;
send(0x04);
P1=0x04;
send(0x05);
P1=0x05;
}
}
我进行软件仿真,为什么执行第一遍的时候,就是刚开始运行的时候,第一次调用send(0x01)时,会停留在while(!TI);处,当TI=1的时候,他就跳到P1=0x04处了。这是什么原因使它跳到那个地方。然后,继续往后运行,一切正常。
期待着高手的指导。
此帖出自
小平头技术问答
你可以在0x02处打断点,软件仿真,TI是要你自己手动拉高拉低的。看是否执行到0x02
一周热门 更多>