
在c51中ACC可以按位操作吗 20
比如ACC=P1;ACC^0=1;P1=ACC^0;这样P1的0位是否会变成1;如果不能这样操作,那什么变量可以这样操作...
比如ACC=P1;
ACC^0=1;
P1=ACC^0;
这样P1的0位是否会变成1;
如果不能这样操作,那什么变量可以这样操作 展开
ACC^0=1;
P1=ACC^0;
这样P1的0位是否会变成1;
如果不能这样操作,那什么变量可以这样操作 展开
3个回答
展开全部
可以位操作,ACC在51单片机内存地址为0xE0,51单片机内存地址为0或8截止的,均可位操作
其他内存地址附于下(来自REG52.h)
/* BYTE Registers */
sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;
sfr PSW = 0xD0;
sfr ACC = 0xE0;
sfr B = 0xF0;
sfr SP = 0x81;
sfr DPL = 0x82;
sfr DPH = 0x83;
sfr PCON = 0x87;
sfr TCON = 0x88;
sfr TMOD = 0x89;
sfr TL0 = 0x8A;
sfr TL1 = 0x8B;
sfr TH0 = 0x8C;
sfr TH1 = 0x8D;
sfr IE = 0xA8;
sfr IP = 0xB8;
sfr SCON = 0x98;
sfr SBUF = 0x99;
其他内存地址附于下(来自REG52.h)
/* BYTE Registers */
sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;
sfr PSW = 0xD0;
sfr ACC = 0xE0;
sfr B = 0xF0;
sfr SP = 0x81;
sfr DPL = 0x82;
sfr DPH = 0x83;
sfr PCON = 0x87;
sfr TCON = 0x88;
sfr TMOD = 0x89;
sfr TL0 = 0x8A;
sfr TL1 = 0x8B;
sfr TH0 = 0x8C;
sfr TH1 = 0x8D;
sfr IE = 0xA8;
sfr IP = 0xB8;
sfr SCON = 0x98;
sfr SBUF = 0x99;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以将P1^1作为一个位寄存器使用:
sbit P1_1 = P1^1;
P1_1 = 1;
sbit P1_1 = P1^1;
P1_1 = 1;
追问
重点不是P,是ACC的操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询