STC系列单片机-定义IO口的工作状态
STC系列单片机怎么样定义IO口的工作状态?sfrP3M=****(地址)P3M0=0;P3M1=0;//为标准51IO口,高阻、强推挽输出..........这样定义是...
STC系列单片机怎么样定义IO口的工作状态?
sfr P3M=****(地址)
P3M0=0;
P3M1=0;//为标准51IO口,
高阻、强推挽输出..........
这样定义是P3总线的全部IO为标准51/高阻/强推挽吗?.....
能不能只定义P3总线的其中一个IO为标准51/高阻/强推挽.......?
希望各位大虾能够帮帮我,谢谢0..................
QQ:631054235
Email:18701931930@163.com 展开
sfr P3M=****(地址)
P3M0=0;
P3M1=0;//为标准51IO口,
高阻、强推挽输出..........
这样定义是P3总线的全部IO为标准51/高阻/强推挽吗?.....
能不能只定义P3总线的其中一个IO为标准51/高阻/强推挽.......?
希望各位大虾能够帮帮我,谢谢0..................
QQ:631054235
Email:18701931930@163.com 展开
7个回答
展开全部
如果给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开漏
举个例子吧
P1.0为推挽输出,P1.1输入,其余为准双向。则配置成:
P1M1=0000 0010B
P1M0=0000 0001B
这样,P1M1.0=0,P1M0.0=1,推挽输出
P1M1.1=1,P1M0.1=0,输入
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开漏
举个例子吧
P1.0为推挽输出,P1.1输入,其余为准双向。则配置成:
P1M1=0000 0010B
P1M0=0000 0001B
这样,P1M1.0=0,P1M0.0=1,推挽输出
P1M1.1=1,P1M0.1=0,输入
展开全部
P3M0、P3M1的位7~0 对应 P3的位7~0(即P3.7~P3.0),你想设置哪个IO就配置P3M0、P3M1对应的位就可以,比如:
P3M1=0x01;
P3M0=0x01;
则 P3.7~P3.1是准双向口,P3.0是高阻
为了方便,可以弄个宏定义头文件,头文件内容如:
……
#define BP3(x) P3M0 &= ~(1<<x), P3M1 &= ~(1<<x) //准双向
#define PP3(x) P3M0 |= (1<<x), P3M1 &= ~(1<<x) //推挽
#define OP3(x) P3M0 &= ~(1<<x), P3M1 |= (1<<x) //开漏
#define RP3(x) P3M0 |= (1<<x), P3M1 |= (1<<x) //高阻
……
RP3(0) ; //P3.0高阻
PP3(1) ; //P3.1推挽
P3M1=0x01;
P3M0=0x01;
则 P3.7~P3.1是准双向口,P3.0是高阻
为了方便,可以弄个宏定义头文件,头文件内容如:
……
#define BP3(x) P3M0 &= ~(1<<x), P3M1 &= ~(1<<x) //准双向
#define PP3(x) P3M0 |= (1<<x), P3M1 &= ~(1<<x) //推挽
#define OP3(x) P3M0 &= ~(1<<x), P3M1 |= (1<<x) //开漏
#define RP3(x) P3M0 |= (1<<x), P3M1 |= (1<<x) //高阻
……
RP3(0) ; //P3.0高阻
PP3(1) ; //P3.1推挽
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我这里有份很好的,资料,你看下.........我感觉蛮好的 ..................
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当然可以啊,只要对应的位按照你的设置来写寄存器,那相应的端口就是你需要的状态了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询