单片机c语言的右移库函数 单片机c语言左移和右移

单片机 移位操作 右移 C语言

先说第一个问题:

创新互联建站-专业网站定制、快速模板网站建设、高性价比隆回网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式隆回网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖隆回地区。费用合理售后完善,10余年实体公司更值得信赖。

比如用查表法将结果保存到变量i中,查表变量为x,则i=table[x],记住c语言里面数组是从0开始的,比如说上面的0x01就是table[0],0x02是table[1],以此类推。

再说第二个问题:

比如说从p1.0口发送出去,则可以写为

sbitout=p1^0;//定义out为p1.0口,这样今后好写程序

chari;

for(i=0;i8;i++)

{

out=data0x80;//因为高位在前,将它写成二进制就明白了

data=1;

}

上面的程序就能搞定了;

应该是所有的单片机都有cy位(不知道浮点dsp有没有);

c语言中左移和右移之后低位或高位自动补零,cy位也保持为零(视编译器而定,这个得看编译器手册),有些编译器提供了循环移位的函数;

还有什么不明白的补充问题就是

单片机C语言右移指令怎么用?

用这种移位语句,就是这种结果。

你试试:_crol_()和_cror_()移位函数。

需要先加上头文件:

#includeintrins.h

C语言和单片机中的左移右移

# include "reg51.h" // 包含头文件

#define uchar unsigned char

void delay02s(void) // 延时0.2s子程序

{

unsigned char i,j,k;

for ( i=2;i0;i-- )

for (j=200;j0;j-- )

for (k=250;k0;k-- );

}

void main (void) // 主函数

{

uchar i,j;

while (1) // 死循环

{

j=0x01; // j初始化为0x01,左移初始值

for(i=0;i8;i++) // for循环语句,完成8个循环

{

P1= ~ j; // 对变量j 中的值按位取反后,从P1口输出

delay02s( ); // 延时0.2s

j= j1; // 左移1位

}

j=0x80; // 设置右移初始值j为0x80

for (i=0;i8;i++)

{

P1= ~ j;

delay02s( );

j= j1; // 右移1位

}

}

}


网站标题:单片机c语言的右移库函数 单片机c语言左移和右移
URL链接:http://pwwzsj.com/article/ddsghgj.html