首页 > 编程知识 正文

流水灯c语言程序,流水灯C语言程序

时间:2024-04-24 11:43:02 阅读:333593 作者:WOHE

本文目录一览:

单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)

1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。

2、#include "reg51.h"首先写出单片机的头函数。

3、#include "intrins.h"输入位移函数。

4、unsigned int count=0,led;定义函数。

5、输入主函数,定义单片机的端口,写入延时函数。

6、中断跳转,使流水灯运行起来。

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语言编写流水灯?

C语言流水灯程序是学习的基础,一定要搞懂!给你发两个!x0dx0a(一)x0dx0a#include //51系列单片机定义文件x0dx0a#define uchar unsigned char //定义无符号字符x0dx0a#define uint unsigned int //定义无符号整数x0dx0avoid delay(uint); //声明延时函数x0dx0avoid main()x0dx0a{x0dx0a uint i;x0dx0a uchar temp;x0dx0a while(1)x0dx0a {x0dx0a temp=0x01;x0dx0a for(i=0;i=1;x0dx0a }x0dx0a temp=0xFE;x0dx0a for(i=0;i=1;x0dx0a }x0dx0a }x0dx0a}x0dx0avoid delay(uint a) //延时函数,毫秒级别x0dx0a{x0dx0a uint i;x0dx0a while(--a!=0) //执行空操作循环,其中a为形参,由调用该函数的函数语句提供值x0dx0a {x0dx0a for(i=0;ix0dx0a#define uint unsigned intx0dx0a#define uchar unsigned charx0dx0a#define ulong unsigned longx0dx0a sbit p2=P2^0;x0dx0avoid main()x0dx0a{x0dx0a TMOD=0x01;x0dx0a TR0=1;x0dx0a ET0=1;x0dx0a EA=1;x0dx0a while(1)x0dx0a {x0dx0a ;x0dx0a }x0dx0a}x0dx0ax0dx0atimer0() interrupt 1x0dx0a{x0dx0a TH0=0x00;x0dx0a TL0=0x06;x0dx0a p2=!p2;x0dx0a}x0dx0ax0dx0a(三)x0dx0a定时流水灯//x0dx0a#includex0dx0a#define uint unsigned intx0dx0a#define uchar unsigned charx0dx0a#define ulong unsigned longx0dx0abit ldelay=0;x0dx0avoid main()x0dx0a{x0dx0a uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};x0dx0a uchar leda;x0dx0a TMOD=0x00;x0dx0a TR0=1;x0dx0a ET0=1;x0dx0a EA=1;x0dx0a while(1)x0dx0a {x0dx0a if(ldelay)x0dx0a {x0dx0a ldelay=0;x0dx0a P2=led[leda];x0dx0a leda++;x0dx0a if(leda==9)leda=0; x0dx0a }x0dx0a }x0dx0a}x0dx0atimer2() interrupt 1x0dx0a{x0dx0a static uchar t;x0dx0a TF0=0;x0dx0a t++;x0dx0a if(t==10)x0dx0a {x0dx0a t=0;x0dx0a ldelay=1;x0dx0a }x0dx0a} x0dx0ax0dx0a(四)x0dx0a变速流水灯//x0dx0a#includex0dx0a#define uint unsigned intx0dx0a#define uchar unsigned charx0dx0a#define ulong unsigned longx0dx0abit ldelay=0;x0dx0auchar speed=100;x0dx0avoid main()x0dx0a{x0dx0a uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};x0dx0a uchar leda;x0dx0a TMOD=0x00;x0dx0a TR0=1;x0dx0a ET0=1;x0dx0a EA=1;x0dx0a while(1)x0dx0a {x0dx0a if(ldelay)x0dx0a {x0dx0a ldelay=0;x0dx0a P2=led[leda];x0dx0a leda++;x0dx0a if(leda==9)x0dx0a {x0dx0a leda=0;x0dx0a speed-=10;x0dx0a if(speed==0)speed=100;x0dx0a } x0dx0a }x0dx0a }x0dx0a}x0dx0atimer2() interrupt 1x0dx0a{x0dx0a static uchar t;x0dx0a TF0=0;x0dx0a t++;x0dx0a if(t==speed)x0dx0a {x0dx0a t=0;x0dx0a ldelay=1;x0dx0a }x0dx0a} x0dx0ax0dx0a(五)x0dx0a//每2两圈改变一次亮度x0dx0a#includex0dx0a#define uint unsigned intx0dx0a#define uchar unsigned charx0dx0a#define ulong unsigned longx0dx0abit ldelay=0;x0dx0auchar speeda=30;x0dx0auint k=0;x0dx0avoid main()x0dx0a{x0dx0a uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};x0dx0a uchar leda;x0dx0a uchar speed[10]={5,80,70,60,50,40,30,20,10,5};x0dx0a uint i;x0dx0a uint k;x0dx0a TMOD=0x00;x0dx0a TR0=1;x0dx0a ET0=1;x0dx0a EA=1;x0dx0a while(1)x0dx0a {x0dx0a if(ldelay)x0dx0a {x0dx0a ldelay=0;x0dx0a P2=led[leda];x0dx0a leda++;x0dx0a if(leda==9)x0dx0a {x0dx0a leda=0;x0dx0a k++;x0dx0a if(k==2){x0dx0a k=0;x0dx0a speeda=speed[i];x0dx0a i++;x0dx0a if(i==9)i=0;x0dx0a }x0dx0a } x0dx0a }x0dx0a }x0dx0a}x0dx0atimer2() interrupt 1x0dx0a{x0dx0a static uchar t;x0dx0a TF0=0;x0dx0a t++;x0dx0a if(t==speeda)x0dx0a {x0dx0a t=0;x0dx0a ldelay=1;x0dx0a }x0dx0a} x0dx0ax0dx0a(六)x0dx0a//在上面基础上调灯的亮度(调占空比)x0dx0a#includex0dx0a#define uint unsigned intx0dx0a#define uchar unsigned charx0dx0a#define ulong unsigned longx0dx0abit ldelay=0;x0dx0auchar speeda=30;x0dx0auint k=0;x0dx0auchar scale; x0dx0avoid main()x0dx0a{x0dx0a uchar led[9]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};x0dx0a uchar leda;x0dx0a uchar speed[10]={5,80,70,60,50,40,30,20,10,5};x0dx0a uint i;x0dx0a uint k;x0dx0a TMOD=0x00;x0dx0a TR0=1;x0dx0a ET0=1;x0dx0a EA=1;x0dx0a while(1)x0dx0a {x0dx0a if(ldelay==1)x0dx0a {x0dx0a ldelay=0;x0dx0a P2=led[leda];x0dx0a leda++;x0dx0a scale++;x0dx0a if(scale==10)scale=0;x0dx0a if(leda==9)x0dx0a {x0dx0a leda=0;x0dx0a k++;x0dx0a if(k==2){x0dx0a k=0;x0dx0a speeda=speed[i];x0dx0a i++;x0dx0a if(i==9)i=0;x0dx0a }x0dx0a } x0dx0a }x0dx0a }x0dx0a}x0dx0atimer2() interrupt 1x0dx0a{ x0dx0a static uchar t;x0dx0a TH0=0x1c;x0dx0a TL0=0xbf;x0dx0a TF0=0;x0dx0a t++;x0dx0a if(t==speeda)x0dx0a {x0dx0a t=0;x0dx0a ldelay=1;x0dx0a }x0dx0a if(scale==10)P2=0;x0dx0a if(scale==0)P2=1;x0dx0a}

很简的51单片机C语言流水灯程序

1、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变量循环右移一位

        }        

    }

}

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

用C51单片机控制12个LED流水灯的C语言程序怎么写?

#include "REG52.H"

//控制引脚定义

sbit LED1 = PX.X; //P0.0-P3.7任意引脚

.... .... .......

sbit LED12 = PX.X;

//宏定义灯亮灯灭

#define LED1_ON( ) LED1 =0 //阳极接电源

#define LED1_OFF( ) LED1 =1 //阳极接电源

....... ............. .............

#define LED12_ON( ) LED12 =0 //阳极接电源

#define LED12_OFF( ) LED12 =1 //阳极接电源

void Init_GPIO( )//端口引脚初始化,关闭所有指示灯

{

LED1_OFF( ) ;

..............

LED12_OFF( ) ;

}

void Delay_ms( u16 dat ) //延时函数

{

u16 i, j;

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

{

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

}

}

int main( ) //主函数

{

Init_GPIO( );//引脚初始化

while(1) //大循环

{

LED1_ON( );//点亮第一个LED

LED2_OFF( );

.............

LED12_OFF( );

Delay_ms(1000);//延时 参数自己可以根据晶振频率自己调节

LED1_OFF( ); //点亮第二个LED

LED2_ON( );

LED3_OFF( );

.............

LED12_OFF( );

Delay_ms(1000);

............. //按照上面修改;

LED1_OFF( );//点亮第十二个LED

LED2_OFF );

LED3_OFF( );

.............

LED12_ON( );

Delay_ms(1000);

}

}

51单片机流水灯用C语言编写的设计程序是什么?

#includereg51.h

#includeintrins.h

#define uchar unsigned char

void delay(void)

{

uchar i,j;

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

for(j=0;j240;j++);

}

main()

{

uchar led,i,j;

while(1)

{

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

{

led=0xfei;

for(j=0;j8-i;j++)

{

P0=led;

led=_crol_(led,1);

delay();

}

}

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。