打印

51的头文件是否包含IO口未定义的问题

[复制链接]
2432|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zzzzzx|  楼主 | 2013-2-13 17:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
IO, GIS, RS, ST, TE
刚发现一个现象,以前一直未注意。
AT89X51.H和AT89X52.H中有对如下的IO口的位进行定义:
/*------------------------------------------------
P0 Bit Registers
------------------------------------------------*/
sbit P0_0 = 0x80;
sbit P0_1 = 0x81;
sbit P0_2 = 0x82;
sbit P0_3 = 0x83;
sbit P0_4 = 0x84;
sbit P0_5 = 0x85;
sbit P0_6 = 0x86;
sbit P0_7 = 0x87;



/*------------------------------------------------
P1 Bit Registers
------------------------------------------------*/
sbit P1_0 = 0x90;
sbit P1_1 = 0x91;
sbit P1_2 = 0x92;
sbit P1_3 = 0x93;
sbit P1_4 = 0x94;
sbit P1_5 = 0x95;
sbit P1_6 = 0x96;
sbit P1_7 = 0x97;



/*------------------------------------------------
P2 Bit Registers
------------------------------------------------*/
sbit P2_0 = 0xA0;
sbit P2_1 = 0xA1;
sbit P2_2 = 0xA2;
sbit P2_3 = 0xA3;
sbit P2_4 = 0xA4;
sbit P2_5 = 0xA5;
sbit P2_6 = 0xA6;
sbit P2_7 = 0xA7;



/*------------------------------------------------
P3 Bit Registers (Mnemonics & Ports)
------------------------------------------------*/
sbit P3_0 = 0xB0;
sbit P3_1 = 0xB1;
sbit P3_2 = 0xB2;
sbit P3_3 = 0xB3;
sbit P3_4 = 0xB4;
sbit P3_5 = 0xB5;
sbit P3_6 = 0xB6;
sbit P3_7 = 0xB7;

而在REG51和REG52的头文件中并未给IO口的位进行定义,然而很多人使用的都是这两个文件,反而能用。
这是怎么回事?

相关帖子

沙发
NE5532| | 2013-2-13 20:52 | 只看该作者
个人猜测,编译器可能默认了部分“古老”的MCU的部分定义,建议看一下反汇编,如果编译正确了,大可放心。

使用特权

评论回复
板凳
uet_cache| | 2013-2-14 11:04 | 只看该作者
地址分配相同,可以使用。

使用特权

评论回复
地板
jerry_ls| | 2013-2-16 15:54 | 只看该作者
楼主细腻也

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

25

帖子

0

粉丝