51单片机c语言移位函数,51单片机跳转指令c语言

C语言51单片机左移函数的问题

你首先赋值P0=0xfe,就是p0^1亮,其他全灭,而你的zuoyi()函数在执行完后才给P0赋值,而zuoyi()执行完后,返回值是0;

成都创新互联专业为企业提供望都网站建设、望都做网站、望都网站设计、望都网站制作等企业网站建设、网页设计与制作、望都企业网站模板建站服务,十余年望都做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

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

先说第一个问题:

比如用查表法将结果保存到变量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位也保持为零(视编译器而定,这个得看编译器手册),有些编译器提供了循环移位的函数;

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

51单片机求解c语言求解,详细解释, 特别led_table = LED_0F + LED[2]; 这句话

led_table = LED_0F + LED[2]; //这个 LED_0F是数据表的首地址,,+LED[2] 变成数组的第三个数的地址。

i = *led_table; 这里获取值。。。 不过我想太麻烦了

改为

i = LED_0F [ LED[2] ] 就可以了。

51单片机的c语言 左移右移怎么用?想用来控制流水灯,请帮忙写个完整的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语言右移指令怎么用?

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

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

需要先加上头文件:

#includeintrins.h

51单片机C语言如何实现8个流水灯左移三次,后右移三次;如此循环

51单片机C语言实现循环8个流水灯左移三次,后右移三次。

例程:

#includereg51.h  //51单片机头文件

#include intrins.h //包含有左右循环移位子函数的库

#define uint unsigned int    //宏定义

#define uchar unsigned char  //宏定义

sbit beep=P2^3;

void delay(uint z)  //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.

{                    //delay(500);大约延时500ms.

uint x,y;

for(x=z;x0;x--)

for(y=110;y0;y--);    

}

void main()            //主函数

{

uchar a,i,j;

while(1)        //大循环

{

a=0xfe;     //赋初值

for(j=0;j3;j++) for(i=0;i8;i++)   //左移三次

{

P1=a;       //点亮小灯

beep=0;     //开启蜂鸣器

delay(50); //延时50毫秒

beep=1;     //关闭蜂鸣器

delay(50);  //再延时50毫秒

a=_crol_(a,1); //将a变量循环左移一位

}

a=0x7f;

for(j=0;j3;j++) for(i=0;i8;i++)  //右移三次

{

P1=a;       //点亮小灯

beep=0;     //开启蜂鸣器

delay(50); //延时50毫秒

beep=1;     //关闭蜂鸣器

delay(50);   //再延时50毫秒

a=_cror_(a,1); //将a变量循环右移一位

}        

}

}

51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。


当前文章:51单片机c语言移位函数,51单片机跳转指令c语言
文章起源:http://myzitong.com/article/phjppi.html