PIC24E单片机 位操作

2019-03-25 19:02发布

我想用PIC24E单片机和DS1302通信,单片机从DS1302读取数据时,串行输入单片机的,低位先入,高位后入,我想问问PIC24单片机有位操作指令吗?我想要将先入的位数据放在变量的最高位,然后右移,例如:                     ACC_7=DIO;
                     ACC>>=1;
这个语句用PIC24E单片机该怎么写?




此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
lcofjp
1楼-- · 2019-03-26 01:44
在我所接触的处理器和单片机,还没有发现不支持位操作的。
如果你用C语言实现的话,其实是跟单片机关系不大的。
  1. uint8_t acc=0;
  2. int i;
  3. for(i=0; i<8; i++){    acc >>= 1;
  4.     if(DIO)acc |= 0x80;}
复制代码


dingzy_2002
2楼-- · 2019-03-26 03:00
你举的例子是属于51单片机系列的(不是通用方式),其它的C编译器一般支持通用设定,如楼上的例子,基本能做到与单片机无关的程序移植,建议使用这种方法进行位操作.
yafei88865
3楼-- · 2019-03-26 04:14
你可以用IO口直接操作,比如定义IO为一个别名,然后对IO进行操作,但是注意输入输出时注意方向寄存器的改变。我之前用IIC,从51移植过来就不行,后面发现IO性质不一样,PIC需要对IO方向进行设置才能用,而51是准双向,无需这一步。

一周热门 更多>