麻烦大家给看看这个程序?
我用的是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;}}
}
发表时间:2003年4月4日15:41:39