焊接资讯

您现在的位置是:首页 > led灯 > 正文

led灯

单片机八个led灯依次点亮什么意思(单片机8个灯依次点亮)

工品易达2022-10-16led灯10

用单片机控制8个LED灯,8个LED灯从左到右依次点亮一次,再从右到左依次点亮一次

假设51单片机,P1口点亮,低电平点亮。

unsigned char x =0xfe,i=0;

for(i=0,i<8;i++)

{

x=_crol_(x,1);

P1=x;

delay500ms();

}

for(i=0,i<8;i++)

{

x=_cror_(x,1);

P1=x;

delay500ms();

}

单片机C语言编程:让8个LED流水灯以0.2s时间间隔从左到右依次点亮然后重复实现

#includereg52.h

#includeintrins.h

void delay(unsigned int z );

void main()

{

unsigned int a;

unsigned char b=0xfe;

for(a=0;a8;a++)

{

P1=b;//P1口接8个LED灯

delay(200);

b=_crol_ (b,1);

}

}

void delay(unsigned int z)

{

unsigned int i;

for(;z0;z--) //延迟时间自己算吧

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

}

用汇编写这个容易点

main: mov a,#0feh

mov r0,#8

loop: mov p1,a

acall delay

rl a

djnz r0,loop

delay:mov r6,#0ffh

loop1: mov r7,#01h

djnz r7,$

djnz r6,loop1

ret

end

好像是这样,延迟时间可能不太准,也是P1口接8个LED灯

8个彩灯依次点亮,求电路图和工作原理。

C语言1:

/*该实验是流水灯(8个发光二极管循环点亮),功能是8个发光二极管循环以1S间隔点亮*/

#includereg52.h//包含reg.52文件

#define uint unsigned int//宏定义

#define uchar unsigned char//宏定义

void delay(uint z);//声明延时函数

uint a;//定义循环用变量

uchar code table[]={

0xff,0xfe,0xfd,0xfb,0xf7,

0xef,0xdf,0xbf,0x7f};//定义循环用数据表格

void main()//main函数

{

a=0;//给a赋初值

P1=table[a];//将a所在的table中的值赋给P1口

while(1)//while循环

{

delay(1000);//1S延时子程序

if(a==8)//测试a是否等于8

a=0;//给a赋值

a++;//a的值加一

P1=table[a];//将a所在的table中的值赋给P1口

}

}

void delay(uint z)//1ms延时子程序,通过z值改变延时

{

uint x,y;

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

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

}

C语言2:

/*该实验是流水灯(8个发光二极管循环点亮),功能是8个发光二极管循环以1S间隔点亮*/

#includereg52.h//包含reg.52文件

#define uint unsigned int//宏定义

#define uchar unsigned char//宏定义

void delay(uint z);//声明延时函数

uint a;//定义循环用变量

uchar code table[]={

0xff,0xfe,0xfd,0xfb,0xf7,

0xef,0xdf,0xbf,0x7f};//定义循环用数据表格

void main()//main函数

{

a=8;//给a赋初值

P1=table[a];//将a所在的table中的值赋给P1口

while(1)//while循环

{

delay(100);//1S延时子程序

if(a==0)//测试a是否等于8

a=8;//给a赋值

a--;//a的值加一

P1=table[a];//将a所在的table中的值赋给P1口

}

}

void delay(uint z)//1ms延时子程序,通过z值改变延时

{

uint x,y;

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

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

}

C语言3:

/* 该实验是流水灯(8个发光二极管循环点亮),功能是8个发光二极管循环以1S间隔点亮*/

#includereg52.h//包含reg.52文件

#includeintrins.h//包含左右循环移位子函数库文件

#define uint unsigned int//宏定义

#define uchar unsigned char//宏定义

void delay(uint z);//声明延时函数

uint a;//定义循环用变量

void main()//main函数

{

a=0xfe;//给a赋初值

while(1)//while循环

{

P1=a;

delay(1000);//1S延时子程序

a=_crol_(a,1);

}

}

void delay(uint z)//1ms延时子程序,通过z值改变延时

{

uint x,y;

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

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

}

单片机控制八个发光二极管并使其以1S时间间隔循环点亮,C语言中,把流水灯的循环方式以数组的形式存到了表中,然后调用,是很方便的,学校实验室都提倡这么写。延时参数是毫秒单位,很准确。

单片机控制8个灯依次亮,全亮了,再依次灭的c语言流程图,顺便加上解释,不然看不懂

1、创建项目,如图所示。

2、创建延迟函数。

3、创建C语言主函数。设计unsigned char k=0;变量。

4、添加循环效果。

5、点亮灯,通过k++,改变效果。

6、添加延迟效果,单片机就可以控制8个灯依次亮,全亮了,然后再依次灭。

单片机八个led 从左到右依次单个点亮,从右到左再依次点亮;然后从左到右每次增加一个led 点亮

#includereg51.h

#includeintrins.h

#define uchar unsigned char

void delay(uchar a)

{

uchar i;

while(a--)for(i=0;i120;i++);

}

main()

{

uchar i,led;

while(1)

    {

    led=0xfe;

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

        {

        P1=led;

        delay(200);

        led=_crol_(led,1);

        }

    led=0x7f;

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

        {

        P1=led;

        delay(200);

        led=_cror_(led,1);

        }

        led=0xfe;

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

        {

        P1=led;

        led=led1;

        delay(200);

        }

        led=0x00;

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

        {

        P1=led;

        led=(led1)|0x80;

        delay(200);

        }

    P1=0x7e;delay(200);

    P1=0x3c;delay(200);

    P1=0x18;delay(200);

    P1=0x00;delay(200);

    P1=0x18;delay(200);

    P1=0x3c;delay(200);

    P1=0x7e;delay(200);

    P1=0xff;delay(200);

    }

}

[img]

关于单片机八个led灯依次点亮什么意思和单片机8个灯依次点亮的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。微信号:ymsc_2016

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~