在SBUF处设置0xAA, 运行到switch(a)处就返回了,不能进如 switch(a)内,
while(1)
{
if(RI)
{
RI = 0;
a = SBUF;
switch(a)
{
case 0xAA;
..........
case 0xBB
..........
}
}
}
仿真的时后,打开serial channel
在SBUF处设置0xAA, 运行到switch(a)处就返回了,不能进如 switch(a)内,
请问是何原因,我已用UV2,UV3两个软件了.
[解决办法]
case 0xaa:{...}break;
case 0xbb:{...}break;
....
default:{}
格式你没写错吧
[解决办法]
”在SBUF处设置0xAA“,并不表示接受为0xAA,因为接受和发送是一个SBUF。
[解决办法]
你设置的SBUF,是发送寄存器,不是接收寄存器.
a=SBUF;
读的是接收寄存器. 所以你设置的任何值都不会直接影响程序的运行.
[解决办法]
你的单片机从哪里接受字符?对方不发0xAA你就进不去。有仿真头的话可以设置断点。没有用示波器看看是不是接受端有AA(01010101)序列脉冲。
[解决办法]
a = SBUF;在这条语句上设置断点. 单步执行这条语句,然后把a改成你要的值.