导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→关于keil c51的求助![guest]

 *第10884篇: 关于keil c51的求助!

  
楼 主:guest 2003年4月23日15:26
 关于keil c51的求助!
.......

我是单片机方面得菜鸟,有段程序如下:

#define HEADH             0xff 
............
 if(SBUF==HEADH)     
     {
         ......
      }

请问各位大侠,当SBUF的数值为0xff时,以上 if 语句在keil里面怎么判断得不对?

我的keil是装在winXP下的,是不是跟操作系统有关?

给我这个菜鸟出出注意吧,先谢了!

  
2楼:guest 2003年4月23日15:38
 应该是操作系统的问题.
应该是操作系统的问题.
  
3楼:zhouxiao2319 2006年6月4日13:31
 猜猜
我是习惯用汇编进行编程C51,不知道用C有什么大的区别,你试一试我给你说的办法.
51单片机是8位的,如果立即寻址数第一个数是A~F,就不能写成"#FFH"格式,
而必须在前面加一个"0"才能被编译系统识别.比如"#FF",你必须写成"#0FFH".
计算机编译系统才能识别. 而其他的数,比如"55",可以直接写成:"#55H"
在C环境下0x代表16进制,你试试改成"0x0FF"试试,
     #DEFINE ~~~~    0x0FF

我也是一个单片机爱好者,如果不介意,我们交个朋友,我的QQ:51234711


  
4楼:xcfj9412 2006年6月5日15:31
 SBUF这个寄存器在读和写的时候
指向了两个不同的地址,写进去了某一个值后,立刻去读该寄存器的值,不可能与你写进去的值相等的(除非巧合)!比如:
SBUF = 10;
a = SBUF;
这个时候,a不会是10,那么a到底是什么值?不一定,跟你的串口接收有关,但与你写进去的值没有关系的.
  
5楼:zhouxiao2319 2006年6月7日17:47
 请教楼上师兄
用C编程的时候SBUF是不是可以直接用在WHEN里面啊
是不是要先把SBUF读到A累加器中,然后在用A和某个值比较啊

>>>>>>对该主题发表你的看法

本主题贴数5,分页: [第1页]


[上一篇主题]:誰知道哪儿有卖单片机HD63A03XF?

[下一篇主题]:国内有MCS-96方面的网站吗?