请教keil 头文件的使用

[复制链接]
3445|8
 楼主| zhangli019 发表于 2013-3-29 14:20 | 显示全部楼层 |阅读模式
请问下,为什么程序里面不能使用
P3^7=1;
这样的语句,

而下面的语句可以使用
P37=1;


或者先定义
sbit K1 = P3^7;
然后可以用
K1=1;

打开reg51.h可以看到其中有一行,
sbit P37 = P3^7

ayb_ice 发表于 2013-3-29 14:41 | 显示全部楼层
扩展的关键字必须这样用
y651503148 发表于 2013-3-29 15:11 | 显示全部楼层
头文件已经做位定义了所以能用、你也可以自己位定义然后使用,就这样,没什么纠结的
 楼主| zhangli019 发表于 2013-3-29 15:36 | 显示全部楼层
ayb_ice 发表于 2013-3-29 14:41
扩展的关键字必须这样用

这里的P3^7是否是怎样理解?是否与这一行:
sfr P3   = 0xB0;
相关,

是否可以改成别的字符?
ayb_ice 发表于 2013-3-29 16:13 | 显示全部楼层
sfr P3   = 0xB0;
这里的0xB0是地址,可以更改为其它值,但必须在0x80~0xff之间
C语句中的P3^7表示P3异域7,与sbit中的意义完全不同
sbit LED = P3^7;表示P3的位7
yhhsky 发表于 2013-3-29 19:21 | 显示全部楼层
strorn 发表于 2013-3-29 20:23 | 显示全部楼层
 楼主| zhangli019 发表于 2013-4-1 10:10 | 显示全部楼层
ayb_ice 发表于 2013-3-29 16:13
sfr P3   = 0xB0;
这里的0xB0是地址,可以更改为其它值,但必须在0x80~0xff之间
C语句中的P3^7表示P3异域7,与 ...

sfr P3 = 0xB0;

确实可以改地址,该地址之后含义就变了;
我最初想知道的是P3能否更改,后来测试过了,我把P3改成P31,后面的
sbit LED = P3^7;
需要改成
sbit LED = P31^7;

想知道符号“^”的含义,关于它的用法,在keil里面关于这个符号的解释和使用方法是什么样的?
ayb_ice 发表于 2013-4-1 10:18 | 显示全部楼层
zhangli019 发表于 2013-4-1 10:10
sfr P3 = 0xB0;

确实可以改地址,该地址之后含义就变了;

^本身在C语言里是异或的符号
但sbit关键字用法中是用来指定某个字节中的某位的意思

sbit LED = P3^0;

意思就是将P3的位0定义成LED,方便编程与阅读,并且这种定义必须先用sbit语法定义,才能使用...

评分

参与人数 1威望 +3 收起 理由
zhangli019 + 3 很给力!

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

96

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部