微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机C语言实现NOP 循环移位

单片机C语言实现NOP 循环移位

时间:11-24 来源:互联网 点击:

总线
uchar i;
uchar temp = 0;
uchar date = 0x82;
for (i = 0; i 8; i++)
{
temp <= 1; //左移
temp |= (bit)(date & 0x80);
date <= 1;
}

b:如果是先接受低位,后接受高位 则先接受一位数据后循环右移一位
uchar i;
uchar temp = 0;
uchar date = 0x82;
for (i = 0; i 8; i ++)
{
temp |= (bit)(date & 0x01);
date >>= 1;
temp = _cror_(temp,1);
//循环右移,应用_cror_()需要包含头文件
}
如果不用函数
则for循环应该这样写
for (i = 0; i 8; i ++)
{
temp >>= 1;
temp |= (date & 0x01) 7;
date >>= 1;

}
三:任意一位的置位或者取反运算
置位运算
low |= 0x01; (置最低位为1)
取反运算
low |= ~low & 0x01;
四:合并和拆分数据
1:合并两个单字节数据为一个双字节数据
int len;
uchar low;
uchar high;
Len |= high;
Len <= 8;
Len |= low;
2: 拆分一个双字节数据为两个单字节数据
int len;
uchar low;
uchar high;
low |= len;
high |= len >> 8;
--

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top