51单片机IO口合并问题,
答案:3 悬赏:20 手机版
解决时间 2021-02-11 05:04
- 提问者网友:姑娘长的好罪过
- 2021-02-10 05:33
如何将P4.0和P2.0---P2.6重新组成一个新的IO口,方便赋值 效果要跟P(1,2,3)他们赋值效果一样,
最佳答案
- 五星知识达人网友:思契十里
- 2021-02-10 06:22
前面有P2.0到P2.6,那么缺少P2.7,那么可以用P4.0做P2.7:
unsigned char temp = P2 & 0x7F;//取低7位
temp = temp | ((P4 & 0x01) << 7);//取P4口的最低一位,然后左移7位作为temp的最高位;
unsigned char temp = P2 & 0x7F;//取低7位
temp = temp | ((P4 & 0x01) << 7);//取P4口的最低一位,然后左移7位作为temp的最高位;
全部回答
- 1楼网友:迟山
- 2021-02-10 08:33
1)首先要确定你的单片机型号。
虽然传统的51单片p2口漏极开路的,但目前部分单片机的所有io为了增大电流,都采用了内部上拉方式。如stc的51类。
2)传统单片机的51,p2口, 不对它操作,状态是不定的,有可能是0,也可能是1.
内部有上拉电阻的,不对它操作,默认为1.
- 2楼网友:末日狂欢
- 2021-02-10 07:52
单片机IO基本输出大体一样,输入有的要注意先赋值1,p4和p3 这些口有附带其他功能用的时候定义就行,没用可以当普通口。
如果怕干扰到p2.7的话 ,就用数组吧,定义一个a[7]=....,然后对应赋值输入,取出,存入a[7]=p4^0,用的时候p4^0=a[7],修改时整个数组修改,简单方便不容易出错,浪费内存和运行效率而已
如果实在想改的话在单片机定义文件。h文件中,改掉p2.7的地址,用p4.0的地址代替,那么p2.7等效于p4.0,。 记得备注下这个特殊的定义文件。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯