51单片机P0M0 |=(1<<3)什么意思?

如题所述

P0M0是STC单片机用来设置IO状态的寄存器之一 具体看STC的手册 P0M0|=(1<<3) 中 1对应16进制是0x01 向左移动3位 变成0x40 语句简化成 P0M0|=0X40 再简化 P0M0=P0M0|0X40 意思就是 把0x40 和p0m0 按位或 如果P0M0寄存器中原先的数值为0x20的话 执行 P0M0|=(1<<3) P0M0寄存器变成0x24
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-09-24
P0M0,P0M1用于 使用M0,M1设置P0口的IO模式.
有准双向口,推挽输出,高阻输入,开漏输出
//00->准双向 01->推挽PP 10->高阻输入Zin 11->开漏OD
P0M1 = 0x00; //=0000 0000
P0M0 = 0x01; //=0000 0001 // 把P0.0为推挽模式01, 其他为准双向00
能看懂吗?
比如 P0.0 设置为 00->准双向, 那么P0M1= xxxx xxx0, P0M0= xxxx xxx0,
比如 P0.7 设置为 10->高阻输入,那么P0M1= 1xxx xxxx, P0M0= 0xxx xxxx,

所以 P0M0 |=(1<<3)什么意思? 是把P0.3设置为 00->准双向 或者 10->高阻输入Zin . 到底是哪个再看 P0M1的值.
相似回答