标题: MCU如何把不同组的IO口的数据,整合到一个数据上 [打印本页]

作者: xyxiyangyaang    时间: 2021-11-16 16:05
标题: MCU如何把不同组的IO口的数据,整合到一个数据上
C8051F330, 使用P0.4~P0.7和 P1.4~P1.7,作为一个八位的输入,请问如何把这些口的值赋到一个变量上面,谢谢

作者: 188610329    时间: 2021-11-16 16:19
unsigned char   Get_CombiData()
{
       unsigned char x,y;
       x = P0 & 0xf0;
       x >>= 4;
       y = P1 & 0xf0;
       x  |= y;
       return x;
}

为方便你理解,我用分步写的,你要好看也可以合并成一行,虽然意义不大。
作者: suncat0504    时间: 2021-11-16 16:20
简单的把两个口数据,通过与或操作就可合并成一个数据
(P0&0x0F)  |  (P1&0xF0)
(P0&0x0F)  +  (P1&0xF0)
作者: lkc8210    时间: 2021-11-16 16:21
本帖最后由 lkc8210 于 2021-11-17 09:39 编辑

uchar Group_IO()
{
uchar dat = 0;
dat |= (uchar)P0_4 << 0;
dat |= (uchar)P0_5 << 1;
...
dat |= (uchar)P1_6 << 6;
dat |= (uchar)P1_7 << 7;
return dat;
}




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1