#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}欢迎分享,转载请注明来源:内存溢出
评论列表(0条)