2019-07-15 23:10发布
dongyumin 发表于 2013-8-9 12:34 本帖最后由 dongyumin 于 2013-8-9 12:38 编辑 我截断51地址映射文件给你看。 如下:
最多设置5个标签!
我截断51地址映射文件给你看。
如下:
/* BYTE Registers */
sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;
sfr PSW = 0xD0;
sfr类型:C51编译器扩展的一个类型,用于定义特殊功能寄存器。这是对寄存器8位字节操作的定义。在用户代码中,P0就代表了0x80这么一个地址。
/* BIT Registers */
/* PSW */
sbit CY = PSW^7;
sbit AC = PSW^6;
sbit F0 = PSW^5;
sbit RS1 = PSW^4;
sbit同上,是扩展类型。定义某一位。用于用户位带操作。这样在用户代码中,CY就代表PSW中第7位。当然这个PSW字符已经在前面被定义成sfr(特殊功能寄存器)类型了,实质是一个指向0XD0这个字节。如果对位操作,必须满足改寄存器允许位操作,有些是不能对位操作的。比如:SBUF。
你可以理解成,位操作就是对某个字节的某位操作,如果允许位操作,应该是可以字节操作的。
比如:以上例说明,位类型 CY=1; 可以写成 PSW|=1<<7;。顺便说下,只是举例说明,PSW是状态寄存器不做写操作,道理是一样的。
以上仅个人观点,仅供参考。
谢谢,很详细
一周热门 更多>