51单片机里P1&=~(1<<0)这个语句为什么可以让最低位的LED灯亮啊

如上所述,P1这里P1是reg52.h里默认的0x90么,如果是,计算出来的跟实体显示的又不一样啊?>_<纠结了,在线等回复。... 如上所述,P1这里P1是reg52.h里默认的0x90么,如果是,计算出来的跟实体显示的又不一样啊?>_<纠结了,在线等回复。 展开
 我来答
11kxmx
2015-11-17 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.2万
采纳率:70%
帮助的人:2413万
展开全部
P1&=~(1<<0) 相当于 P1=P1&(~(1<<0))
1<<0 结果是二进制 0000 0001
取反后为 1111 源高1110
不管P1原来状态雹正尺如何,相"与"后最后一位一定是0,
即xxxx xxx0 如果清此LED阳极接VCC,则最低位LED点亮
P1 默认值不是0x90 复位后是0XFF
0x90  是它的寄存器地址
追问
实在太感谢了,主要就是不确定这里的P1到底是多少。
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32是ARM Cortex内核单片机和微处理器市场和技术方面的佼佼者,目前提供16大产品线 (F0, G0, F1, F2, F3, G4, F4, F7, H7, MP1, L0, L1, L4, L4+,L5, WB),超过100... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
he_123456
2015-11-17 · TA获得超过2891个赞
知道大有可为答主
回答量:3162
采纳率:58%
帮助的人:1302万
展开全部
P1&=~(1<<0)里面最后那个0可取值0,1,2,...7对应P1不同的位。
(1<<0)是得到一个数 ,让要亮的那一位为1,其它位为0
~(1<<0)是得到一个数,让要亮的那一位为0,其它答厅贺位为1
P1&=~(1<<0) 是把P1当前的值和上面一行说的那个数 按位与 后赋值给P1,其效果清派就是要亮的那一位伏郑为0,其它位不发生改变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式