#ifndef __REG52_H__
#define __REG52_H__
/* BYTE Registers */
sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;
sfr PSW = 0xD0;
sfr ACC = 0xE0;
其中 sfr 关键字是 C51 特有的关键字,它用来定义变量和地址的对应关系。如 sfrP0 = 0x80,意思就是:P0 口的地址是 0x80。(0x80 是 C51 的写法,等价于汇编的 80H)
然后进入正题:
P1.0 指的是单片机 P1 口的第 0 位,A51 汇编编程时使用,如 SETB P1.0
P1^0 指的是上面图中,头文件中定义的 P1 寄存器的第 0 位,C51 编程时使用
P1_0 本来无特殊含义,当你想在 C51 中,使用 P1 口的第 0 位时,需要指定一个变量代表 P1^0(是不是必须的,博主没有试验过),这时候就需要使用 sbit 关键字,用法如下:
sbit P1_0 = P1^0;
sbit XXXX = P1^0;
也就是说,P1_0 只是个变量名称,实际上变量名用什么都可以(前提是符合命名规则)
关键字:Keil C51 P0口『本文转载自网络,版权归原作者所有,如有侵权请联系删除』