4个回答
展开全部
这个不是写得很清楚了嘛。。。
如果给P1M1赋值0X03,给P1M0赋值0X05,那么P1口各个引脚对应的模式就是:
P1M1 P1M0 IO口模式
0 0 P1.7准双向口
0 0 P1.6准双向口
0 0 P1.5准双向口
0 0 P1.4准双向口
0 0 P1.3准双向口
0 1 P1.2推挽输出
1 0 P1.1高阻
1 1 P1.0开漏
如果给P1M1赋值0X03,给P1M0赋值0X05,那么P1口各个引脚对应的模式就是:
P1M1 P1M0 IO口模式
0 0 P1.7准双向口
0 0 P1.6准双向口
0 0 P1.5准双向口
0 0 P1.4准双向口
0 0 P1.3准双向口
0 1 P1.2推挽输出
1 0 P1.1高阻
1 1 P1.0开漏
更多追问追答
追问
还是不是特别明白,PDF上说IO口有4总状态可以配置,传统IO高阻推挽和开漏,可以有8个IO口,那么这8个IO口每个IO口都有4总状态,我就不知道怎么配置了?P1M0和P1M1是2个8位寄存器,举例假如我要配置P1.3为推挽,那么应该如何配置?
追答
如果仅仅配置P1.3为推挽,其它IO口不变,从上面的表可以看出,当P1M1的位3为0,P1M0的位3为1时,P1.3为推挽输出,程序如下:
P1M1 &= ~(1 << 3); //清零P1M1的位3
P1M0 |= (1 << 3); //置位P1M0的位3
展开全部
表已经标明了呀。
举个例子吧
P1.0为推挽输出,P1.1输入,其余为准双向。则配置成:
P1M1=0000 0010B
P1M0=0000 0001B
这样,P1M1.0=0,P1M0.0=1,推挽输出
P1M1.1=1,P1M0.1=0,输入
举个例子吧
P1.0为推挽输出,P1.1输入,其余为准双向。则配置成:
P1M1=0000 0010B
P1M0=0000 0001B
这样,P1M1.0=0,P1M0.0=1,推挽输出
P1M1.1=1,P1M0.1=0,输入
追问
可是表上画出来P1M0和P1M1分别只有4位啊,4个数据可以写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个不是写得很清楚了嘛。。。
如果给P1M1赋值0X03,给P1M0赋值0X05,那么P1口各个引脚对应的模式就是:
P1M1
P1M0
IO口模式
0
0
P1.7准双向口
0
0
P1.6准双向口
0
0
P1.5准双向口
0
0
P1.4准双向口
0
0
P1.3准双向口
0
1
P1.2推挽输出
1
0
P1.1高阻
1
1
P1.0开漏
如果给P1M1赋值0X03,给P1M0赋值0X05,那么P1口各个引脚对应的模式就是:
P1M1
P1M0
IO口模式
0
0
P1.7准双向口
0
0
P1.6准双向口
0
0
P1.5准双向口
0
0
P1.4准双向口
0
0
P1.3准双向口
0
1
P1.2推挽输出
1
0
P1.1高阻
1
1
P1.0开漏
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根据你的外围电路选择一种模式,第一种和普通的51单片机是一样的,第二种的输出电流比第一种大,后面的两种图中说的很明白了。
其实我说的这些也白说,最终还是要看你在引脚上接什么东西才能选择其中的一种模式。
其实我说的这些也白说,最终还是要看你在引脚上接什么东西才能选择其中的一种模式。
追问
不是什么模式,而你没明白我的意思,我是问这个寄存器怎么配置。P1M1和P1M0看不明白这个两个寄存器
追答
这个就是io口工作模式配置,是你没有明白我的意思
首先确定你想怎么使用你io口,输入还是输出,数字还是ad模拟。输出驱动能力要求有多大,然后根据你的实际情况配置这两个寄存器。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询