AbnerSmith 发表于 2014-5-20 12:48:21

51中如何将几个位并置在一起

比如我想将P1 P2中的一共8个位并置在一起成为一个新的8位IO口,要怎么办呢

qlb1234 发表于 2014-5-20 12:59:49

1. 割開芯片。
2. 重新連線。

lmt50211 发表于 2014-5-20 13:02:10

端口映射。。。。。

68336016 发表于 2014-5-20 13:03:19

如果想方便读写操作,可以用宏

ourdemo 发表于 2014-5-20 13:08:21

|和&的应用。
例如,P1=0xAA, P2=0x55, 要合成0x5A .
unsigned char tmp1,tmp2,tmp3;
tmp1=P1&0x0F;   //0x0A
tmp2=P2&0xF0;   //0x50
tmp3=tmp1|tmp2; //0x5A

unifax001 发表于 2014-5-20 13:12:49

你做个函数 把数据拆成位赋值到相应的IO即可

AbnerSmith 发表于 2014-5-20 13:17:39

这。。。。后来者继续吧

jzkn 发表于 2014-5-20 14:12:29

支持2楼。
不过要是我的话,会写一个宏或者API函数来封装。
这种事芯片设计好了,你无解的,只能软件手段来搞。

AbnerSmith 发表于 2014-5-20 14:20:11

bdata unsigned char com;
sbit com_0 = com^0;
.
.
.

com_0 = P1^3;
.
.
.
我现在是这样想的,但是不知怎么就出问题了

dushanwu522 发表于 2014-5-20 15:28:29

自己定义一下,重新排列组合即可。

AbnerSmith 发表于 2014-5-20 16:51:28

dushanwu522 发表于 2014-5-20 15:28
自己定义一下,重新排列组合即可。

排列组合,?!板子都固定了

AbnerSmith 发表于 2014-5-20 16:52:26

dushanwu522 发表于 2014-5-20 15:28
自己定义一下,重新排列组合即可。

现在需要的是八个口一起操作,成为P1=,,,这种形式,方便编程

dushanwu522 发表于 2014-5-20 17:08:52

AbnerSmith 发表于 2014-5-20 16:52
现在需要的是八个口一起操作,成为P1=,,,这种形式,方便编程

做个宏定义之类的应该可以

tiger5 发表于 2014-5-20 17:10:48

AbnerSmith 发表于 2014-5-20 16:52
现在需要的是八个口一起操作,成为P1=,,,这种形式,方便编程

估计不行。
弄个函数或宏等等,可以。

AbnerSmith 发表于 2014-10-17 11:51:52

这个很早之前发的帖子了,当时是碰到蓝桥杯比赛时候发的,现在有了办法了,如果哪一天有人碰到类似的问题可以回帖问我。今天就不啰嗦了

lmt50211 发表于 2014-10-17 13:44:47

AbnerSmith 发表于 2014-10-17 11:51
这个很早之前发的帖子了,当时是碰到蓝桥杯比赛时候发的,现在有了办法了,如果哪一天有人碰到类似的问题可 ...

你直接说出来不就行,还等什么以后呀。
页: [1]
查看完整版本: 51中如何将几个位并置在一起