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

Python016

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

单片机流水灯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=0i<8i++) //8个流水灯逐个闪动

{

P1=~temp

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

temp<<=1

}

temp=0x80

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

{

P1=~temp

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

temp>>=1

}

temp=0xFE

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

{

P1=temp

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

temp<<=1

}

temp=0x7F

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

{

P1=temp

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

temp>>=1

}

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

{

register uint bt

for(tt--)

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

}

扩展资料

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

#include<reg51.h>

#include<intrins.h>

void delay(int a)

{

int i

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

}

main()

{

int i

while(1)

{

P0=0xfe

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

{

P0=_crol_(P0,1)

delay(500)

}

}

}

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