首页技术单片机流水灯程序c语言 单片机while1的作用

单片机流水灯程序c语言 单片机while1的作用

编程之家2026-07-02850次浏览

其实单片机流水灯程序c语言的问题并不复杂,但是又很多的朋友都不太了解单片机while1的作用,因此呢,今天小编就来为大家分享单片机流水灯程序c语言的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

单片机流水灯程序c语言 单片机while1的作用

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

/*********************************************************************************************

程序名: 8路流水灯

编写时间:2009年5月13日

硬件支持:STC12C4052AD外部12MHZ晶振

接口说明:8个LED彩灯接P1口

修改日志:

单片机流水灯程序c语言 单片机while1的作用

NO.1-2009年5月14日在程序前面加入参数定义项

/*********************************************************************************************

说明:

根据参数设置产生流水LED效果。

/*********************************************************************************************/

#include<REG51.h>//51头文件

单片机流水灯程序c语言 单片机while1的作用

/*********************************************************************************************/

#define DY_PORT P1//设置LED连接的I/O组

#define DY_SPEED 100//设置每一个明亮级的停留时间(值域:0~65535)

/*********************************************************************************************

bit [自定义名];//定义一个位(位的值只能是0或1)例:bit LED

#define [代替名] [原名]//用代替名代替原名(可以方便修改常改或调试的值)例:#define LED P1

sbit [自定义名]= [系统位名];//自定义系统位名。例:sbit Add_Key= P3 ^ 1;

unsigned char [自定义名];//定义一个0~255的整数变量.例:unsigned char a;

unsigned int [自定义名];//定义一个0~65535的整数变量

/*********************************************************************************************/

void delay(unsigned int a){// 1ms延时程序

unsigned int i;

while(--a!= 0){

for(i= 0; i< 600; i++);//STC单片机在外部晶振为12MHz时i值上限为600

}//AT89C51单片机在外部晶振为12MHz时i值上限为125

}

/*********************************************************************************************/

void main(void){

unsigned int i;

unsigned int temp;

while(1){

temp=0x01;

for(i=0;i<8;i++){//8个流水灯逐个闪动

DY_PORT=~temp;

delay(DY_SPEED);//调用延时函数

temp<<=1;

}

temp=0x80;

for(i=0;i<8;i++){//8个流水灯反向逐个闪动

DY_PORT=~temp;

delay(DY_SPEED);//调用延时函数

temp>>=1;

}

temp=0xFE;

for(i=0;i<8;i++){//8个流水灯依次全部点亮

DY_PORT=temp;

delay(DY_SPEED);//调用延时函数

temp<<=1;

}

temp=0x7F;

for(i=0;i<8;i++){//8个流水灯依次反向全部点亮

DY_PORT=temp;

delay(DY_SPEED);//调用延时函数

temp>>=1;

}

}

}

/*********************************************************************************************/

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

单片机流水灯C语言程序的源代码如下:

#include//51系列单片机定义文件

#define uchar unsigned char//定义无符号字符

#define uint unsigned int//定义无符号整数

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

void main(void)

{

uint i;

uchar temp;

while(1)

{

temp=0x01;

for(i=0;i<8;i++)//8个流水灯逐个闪动

{

P1=~temp;

delay(100);//调用延时函数

temp<<=1;

}

temp=0x80;

for(i=0;i<8;i++)//8个流水灯反向逐个闪动

{

P1=~temp;

delay(100);//调用延时函数

temp>>=1;

}

temp=0xFE;

for(i=0;i<8;i++)//8个流水灯依次全部点亮

{

P1=temp;

delay(100);//调用延时函数

temp<<=1;

}

temp=0x7F;

for(i=0;i<8;i++)//8个流水灯依次反向全部点亮

{

P1=temp;

delay(100);//调用延时函数

temp>>=1;

}

void delay(uint t)//定义延时函数

{

register uint bt;

for(;t;t--)

for(bt=0;bt<255;bt++);

}

扩展资料

51单片机流水灯的源代码如下

#include<reg51.h>

#include<intrins.h>

voiddelay(inta)

{

inti;

while(a--)for(i=0;i<110;i++);

}

main()

{

inti;

while(1)

{

P0=0xfe;

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

{

P0=_crol_(P0,1);

delay(500);

}

}

}

51单片机流水灯程序

程序如下:

#include<reg52.h>

sbit led1= P2^0;

sbit led2= P2^1;

sbit led3= P2^2;

sbit led4= P2^3;

sbit led5= P2^4;

sbit led6= P2^5;

sbit led7= P2^6;

sbit led8= P2^7;

void main()

{

int i,j;

//点亮第一个灯

led1= 1;

led2= 0;

led3= 0;

led4= 0;

led5= 0;

led6= 0;

led7= 0;

led8= 0;

//延时1秒

for(i= 0;i< 110;++i)

{

for(j= 0; j< 1000;++j)

{

;//什么也不做

}

}

//点亮第二个灯

led1= 0;

led2= 1;

led3= 0;

led4= 0;

led5= 0;

led6= 0;

led7= 0;

led8= 0;

//点亮剩余的灯

//省略……

while(1);

}

扩展资料:流水灯几点说明:

void:因为该延时函数不需要返回值,所以写为void

delay1s:该函数的函数名,命名需要符合C语言的标识符命名规则。

():不需要传入参数,所以括号中为空

至此我们可以把流水灯程序写为以下形式:

关于本次单片机流水灯程序c语言和单片机while1的作用的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

初等函数和基本初等函数的区别,基本初等函数mysql隔离级别 事务隔离 级别