P2 = ((P2&0x1f)|0xa0);是什么含义

voidmain(void){while(1){P2=((P2&0x1f)|0x80);P0=0xff;//LED熄灭P2&=0x1f;delay();P2=((P2&0... void main(void)
{
while(1)
{
P2 = ((P2&0x1f)|0x80);
P0 = 0xff; //LED熄灭
P2 &= 0x1f;
delay();

P2 = ((P2&0x1f)|0x80);
P0 = 0x00; //LED点亮
P2 &= 0x1f;
delay();
展开
 我来答
其墨As
2017-12-04
知道答主
回答量:1
采纳率:0%
帮助的人:923
展开全部
void main(void)
{
while(1)
{
P2 = ((P2&0x1f)|0x80); /*
其中0x1f=0001 1111,P2与0x1f进行虚宏与运算,高三留出宽侍来,接着再或上0x80;容易发现0x80=1000 0000;或运算,与1或结果为1,与0或结果不变,所以或上0x80只需看P2的高三位,则高三位为100,对应3-8译码器的话,P2^7=1;P2^6=0;P2^5=0;所以输出Y4=0;Y4再经过与非运算,则输出Y4C=1;即LED对应的锁存器的片选信号被差巧册选中,锁存器打通,*/
P0 = 0xff; //LED熄灭
P2 &= 0x1f; /*P2=P2&0x1f;P2高三位直接清零,此时Y4C=0,则把锁存器锁上了*/
delay();
这个程序对应CT107D单片机综合训练平台上的电路,你可以看下,里面有锁存器和38译码器等相关知识。
CodeBlove
2014-04-20 · TA获得超过3364个赞
知道小有建树答主
回答量:936
采纳率:79%
帮助的人:242万
展开全部
p2的值与16进制常量橘让穗0x1f进行与运算(and)
然后再和常量滑饥0x80进行圆卜或运算(or)。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
了空60
2014-04-20 · 超过34用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:36.8万
展开全部
先学好C语言再学单片机,位运算都不会。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式