以 Keil uVision2 为例,在装置途径下的 \ C51 \ INC 文件夹中,翻开 reg52.h 头文件,能够看到:
#ifndef__REG52_H__
#define__REG52_H__
/* 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 仅仅个变量称号,实际上变量名用什么都能够(条件是契合命名规矩)