51单片机中设置P1M0=0x60;P1M1=0x00怎么理解

这个是STC的端口设置寄存器,每个端口可以分别工作在4种状态下:标准,高阻,推挽,开漏。具体见 的文档 赞同

将P1M0=0X60和P1M1=0X00译成二进制代码是P1M0=0110 0000,P1M1=0000 0000.按照I/O口工作模式设置规定都为0时为准双向口(传统8051单片机I/O口模式)为0,1时为推挽(强上拉输出),为1,0时为高阻(仅输入),为1,1时为开漏(内部上拉断开,须外加上拉电阻)。你选择的是P1M0和P1M1所以针对的是P1口的操作,将两个二进制代码一位位的比较可知:P1.0~P1.4及P1.7都为0,故这些I/O口设置的是标准状态;P1.5和P1.6为高阻态(P1M0上的第六位和第七位都为1,P1M1上的第六位和第七位都是0。1,0时为高阻)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-12
p1口做AD口,p1m1 与p1m0配合把p1口设为高阻或开漏, 地址sfr P1M1=0x91; sfr P1M0=0x92; 赋值 P1M1 =0xff; P1M0=0x00;-----高阻 P1M1 =0xff; P1M0=0xff--------开漏 赞同
第2个回答  2013-04-12
P1口的P1.0=1000000000,P1口的P1.1=0000 0000,这就是你的IO口的输出状态,M0和M1只是一个名称,0×60之类的都是进制码。本回答被网友采纳
第3个回答  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,
第4个回答  2013-04-12
要设置P1口的状态,输出还是输入;资料里应该有详细的说明。 赞同
相似回答