流水灯左移函数c语言 用c语言流水灯从两边向中间移

c语言8位流水灯两个开关控制左移右移,程序怎么写哟,各位大神帮帮忙

关键语句在于两个for中的“a=_crol_(a,1);”和“a=_cror_(a,1);”,可以发现用的是两个不同的函数_crol_()和_cror_(),一个左移,一个右移

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

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单片机是基础入门的一个单片机,还是应用最广泛的一种。

c语言流水灯程序 求具体代码

1灭)。编译器keil

C代码如下:

#include

#include

//包含循环左移函数

_cro_l头文件

unsigned

char

tmp;

//中间变量

//////////////////////////////////////////////////////////////////////////////////////////////////

//

延时子程序

////////////////////////////////////////////////////////////////////////////////////////////////

void

delay(unsigned

int

cnt)

{

while(--cnt);

}

//////////////////////////////////////////////////////////////////////////////////////////////////

//

主函数

////////////////////////////////////////////////////////////////////////////////////////////////

main()

{

while(1)

//外层循环

{

tmp

=

0xfe;

P1

=

tmp;

while(1)

//内层循环,执行1、3、5、7亮灯循环

{

delay(30000);

//延时以便能观察到灯亮移动,自己可以调整时间,由晶振和实参决定

tmp

=

_crol_(tmp,2);

P1

=

tmp;

if(tmp

==

0xbf)

//判断是否已经点亮到第7灯。是,则退出进入2、4、6、8循环

{

break;

}

}

tmp

=

0xfd;

P1

=

tmp;

while(1)

//内层循环,执行2、4、6、8亮灯循环

{

delay(30000);

//延时以便能观察到灯亮移动,自己可以调整时间,由晶振和实参决定

tmp

=

_crol_(tmp,2);

P1

=

tmp;

if(tmp

==

0x7f)

//判断是否已经点亮到第8灯。是,则退出进入1、3、5、7循环

{

break;

}

}

}

}

C语言流水灯程序用左移符号怎么写

用 1111 1111B 表示八盏灯,1表示灭,0表示亮,左移第一次是 1111 1110B, 左移第二次是1111 1100B, 左移第三次是 1111 1000B, ... 左称第八次是 0000 0000B, 然后再赋成 1111 1111B,重新开始左移。


文章标题:流水灯左移函数c语言 用c语言流水灯从两边向中间移
当前网址:http://scyanting.com/article/doiijjc.html