c语言编程怎样给单片机的I/O口整口赋值而不影响其他几个不用的I/O口的值的变化?

c语言编程怎样给单片机的I/O口整口赋值而不影响其他几个不用的I/O口的值的变化?比如说我要操作P1口的1.0、1.1、1.2、1.3,不影响另外四个口,怎么写程序?求解... c语言编程怎样给单片机的I/O口整口赋值而不影响其他几个不用的I/O口的值的变化?比如说我要操作P1口的1.0、1.1、1.2、1.3,不影响另外四个口,怎么写程序?求解大虾~~ 展开
 我来答
yang_8308
2011-08-08 · TA获得超过131个赞
知道答主
回答量:78
采纳率:0%
帮助的人:59.8万
展开全部
哈哈,用按位 或“|” 逻辑最简单:
举两个例子吧~
P1 | = 0X0F; (假设给P1.0,P1.1,P1.2,P1.3赋值1)。
P1 | = 0X05; (假设给P1.3赋0,给P1.2赋1,给P1.1赋0,给P1.0赋1)。
注意:高4位的"0"不能改变哦(即:0F,05中的0)。
seminger
2011-08-08
知道答主
回答量:2
采纳率:0%
帮助的人:3477
展开全部
通过位操作 假设P1口有1.0 1.1 ... 1.7 一共八个口 我想把1.0至1.3置为1 则我只需要将原来的p1_date和0x0f相或 则其他位不会变 前四位变成1 因为任何数和0或 都不会变 跟1或都置为1
若想要设为0 只需要跟0xf0相与 因为任何数跟1与 都不变 跟0与 置为0

例子:我有端口P1 我想使p1里的数据 1.0 1.1 1.2 1.3 为1 则有
P1date |= 0x0f;
若我只想使 1.0 1.3 为1 则有
P1date |= (1) | (1<<3); // <<是位移标志 表示在 x<<y 将x左移y个位置
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ATF144X
2011-08-09 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5344
采纳率:77%
帮助的人:4773万
展开全部
来个标准的做法:

P1|=0x0F,这样把P1口的低四位设置为1,高四位不变。
P1&=~0x0F,或者P1&=0xF0,这样把低四位清零,高四位不改变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Septuu
2011-08-08
知道答主
回答量:20
采纳率:0%
帮助的人:14.5万
展开全部
可以这样尝试一下:单片机的I/O端口是可以设置成三种模态的即,推挽输出,开漏(可实现双向输入、输出),高祖态。可以将需要进行操作的端口配置成开漏输入,其他的配置成推免输出,或者高祖态这时候你写值是写不进去的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
酷猥的菊花
2011-08-08
知道答主
回答量:53
采纳率:0%
帮助的人:14.3万
展开全部
一个个赋值就行了啊,别直接P1 = XXXX ,你在前面用sbit P1.0 = P1^0,重新定义一下单个管脚,下面就直接赋值单个管脚的高低电平就行啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式