麻烦大家给看看这个程序?我用的是keil。模拟的芯片有两个串口所以是sbuf0,为什么在if语句中非要将sbuf0与字符型的1和0来比较,当我换成0x00与0x01时,程序就不能执行了?
这是为什么呢?
在这里先谢谢各位了。
void
main()
{
byte
ssend[7]={"hello!\n"};
byte
esend[10]={"no
hello!\n"};
while(1){
uarcon();
tr1=1;
while
(ri_0==0);ri_0=0;
if(sbuf0=='0'){
uarsend(&ssend,7,0);}//uarsend函数(指针,几个数据,送是0或读是1)
else
if(sbuf0=='1')
{
uarsend(&esend,10,0);}
}
}
/*++++++++++++++++++uarcon+++++++++++++++++++++
*
配置串口1,没有启动定时器?19200
*
++++++++++++++++++++++++++++++++++++++++++++++*/
void
uarcon(void)
{ea=0;tmod=0x20;tl1=0xfd;th1=0xfd;
scon0=0x50;pcon=0x80;}
/*+++++++++++++++++++uarsend++++++++++++++++++++++++
+
串口发送与接受;由sr控制。
+
+++++++++++++++++++++++++++++++++++++++++++++++++++*/
void
uarsend(byte
*sendadd,byte
num,byte
sr)
{
byte
index;
uarcon();tr1=1;
if
(sr==0){
for
(index=0;index
<num;index++)
{sbuf0=*sendadd++;
while(ti_0==0);
ti_0=0;}
}
else
if(sr==1){for
(index=0;index
<num;index++){
while(ri_0==0);
*sendadd++=sbuf0;
ri_0=0;}}
}





