新闻中心

EEPW首页>嵌入式系统>设计应用> 技巧 3 -- Keil C51 中 P1.0、P1^0、P1_0 的区别

技巧 3 -- Keil C51 中 P1.0、P1^0、P1_0 的区别

作者: 时间:2016-11-17 来源:网络 收藏
KeiluVision2 为例,在安装路径下的C51INC 文件夹中,打开 reg52.h 头文件,可以看到:

  #ifndef__REG52_H__
  #define__REG52_H__

本文引用地址://m.amcfsurvey.com/article/201611/315364.htm

  /* BYTE Registers */
sfrP0 = 0x80;
  sfrP1 = 0x90;
  sfrP2 = 0xA0;
  sfrP3 = 0xB0;
  sfrPSW = 0xD0;
  sfrACC = 0xE0;

其中sfr关键字是 C51 特有的关键字,它用来定义变量和地址的对应关系。如sfrP0 = 0x80,意思就是:P0 口的地址是 0x80。(0x80 是 C51 的写法,等价于汇编的 80H)

然后进入正题:

P1.0 指的是单片机P1 口的第 0 位,A51 汇编编程时使用,如SETBP1.0

P1^0 指的是上面图中,头文件中定义的 P1 寄存器的第 0 位,C51 编程时使用

P1_0 本来无特殊含义,当你想在 C51 中,使用 P1 口的第 0 位时,需要指定一个变量代表 P1^0(是不是必须的,博主没有试验过),这时候就需要使用sbit关键字,用法如下:

  sbitP1_0 = P1^0;

  sbitXXXX = P1^0;

也就是说,P1_0 只是个变量名称,实际上变量名用什么都可以(前提是符合命名规则)



关键词:KeilC51P0

评论


技术专区

关闭