单片机中I/O口定义问题
答案:4 悬赏:0
解决时间 2021-02-02 10:12
- 提问者网友:血樱陌殇
- 2021-02-02 00:07
比如单片机P1口,本来如果用拨码开关与P1.0-P1.7分别相连,当要读取拨码开关的值时,只需要语句比如B = P1;便能读取,但现在电路图中设计P3.0-P3.3以及P1.0-P1.3分别对应拨码开关的8位,问此时用什么语言将P3和P1的值让单片机读取?
最佳答案
- 二级知识专家网友:废途浑身病态
- 2021-02-02 01:46
两种方法,
第一种,是按位读取,就是定义 sbit P3_0 = P3^0;sbit P3_1 = P3^1;一位一位的读取。
第二种办法,
你原来的是B = P1,你现在改成 B =( P1<<4)|(P3&0x0F);或者 B =( P3<<4)|(P1&0x0F);就行了,这两个语句其实是一样的,只是看你的连接和方便你编程而已。
第一种,是按位读取,就是定义 sbit P3_0 = P3^0;sbit P3_1 = P3^1;一位一位的读取。
第二种办法,
你原来的是B = P1,你现在改成 B =( P1<<4)|(P3&0x0F);或者 B =( P3<<4)|(P1&0x0F);就行了,这两个语句其实是一样的,只是看你的连接和方便你编程而已。
全部回答
- 1楼网友:苦柚恕我颓废
- 2021-02-02 04:26
B = P1;
C = P3;
B |=(C<<4);
这和原来的是一样的了。
- 2楼网友:星痕之殇
- 2021-02-02 04:03
io口有输入和输出两种状态,如此定义是为了方便阅读和理解,另外,很多单片机的io口都有两个独立的输入、输出寄存器,一般记做p2in、p2out,在51中如此定义是一个好习惯。
- 3楼网友:开心就好
- 2021-02-02 03:07
这样读,B = (P3<<4)|(0x0f&P1),读的P3.0-P3.3为高4位,P1.0-P1.3为低四位
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯