水平。
水平。
51单片机流水灯程序
程序1 (用c语言编写的最基础的程序) ) ) ) ) ) ) ) ) ) ) )。
#包含
#包含
sbit D0=P1^0; //位的定义,P1端口的第一个引脚定义为D0
sbit D1=P1^1; //位的定义,P1端口的第二个引脚定义为D1
sbit D2=P1^2; //位的定义将P1端口上的第三个引脚定义为D2
sbit D3=P1^3; //位的定义将P1端口的第四个管脚定义为D3
sbit D4=P1^4; //位的定义将P1端口上的第五个引脚定义为D4
sbit D5=P1^5; //位的定义将P1端口的第六个引脚定义为D5
sbit D6=P1^6; //位的定义将P1端口的第七个引脚定义为D6
sbit D7=P1^7; //位的定义将P1端口的第八个引脚定义为D7
Void主() )
{
while(1)//创造大的死循环。
{
未指定Int I,j;
D0=0,D7=1; //点亮1、熄灭8
for(I=50; i0; I----)
for(j=200; j0; j----;//由两个FOR构成的延迟
D0=1,D1=0; //点亮2、熄灭1
for(I=50; i0; I----)
for(j=200; j0; j----;
D1=1,D2=0;
for(I=50; i0; I----)
for(j=200; j0; j----;
D2=1,D3=0;
for(I=50; i0; I----)
for(j=200; j0; j----;
D3=1,D4=0;
for(I=50; i0; I----)
for(j=200; j0; j----;
D4=1,D5=0;
for(I=50; i0; I----)
for(j=200; j0; j----;
D5=1,D6=0;
for(I=50; i0; I----)
for(j=200; j0; j----;
D6=1,D7=0;
for(I=50; i0; I----)
for(j=200; j0; j----;
}
}
程序2 (用2(swichcase语句编写的) ) )。
#include//51单片机头文件。
sbit d1=P1^0; //
sbit d2=P1^1;
sbit d3=P1^2;
sbit d4=P1^3;
sbit d5=P1^4;
sbit d6=P1^5;
sbit d7=P1^6;
sbit d8=P1^7;
Void主() )
{
unsigned int i=1,a,b;
wile(1)//大循环
{
for(I=1; i15; I )
{
for(a=0; a80; a ) )//延迟。
for(b=0; b200; b );
交换机(I ) ) )。
{
case 1:
d2=1,d1=0,d8=1;
布雷克;
case 2:
d1=1,d2=0;
布雷克;
case 3:
d2=1,d3=0;
布雷克;
case 4:
d3=1,d4=0;
布雷克;
case 5:
d4=1,d5=0;
布雷克;
case 6:
d5=1,d6=0;
布雷克;
case 7:
d6=1,d7=0;
布雷克;
case 8:
d7=1,d8=0;
布雷克;
case 9:
d8=1,d7=0;
布雷克;
case 10:
d7=1,d6=0;
布雷克;
case 11:
d6=1,d5=0;
布雷克;
case 12:
d5=1,d4=0;
布雷克;
case 13:
d4=1,d3=0;
布雷克;
case 14:
d3=1,d2=0;
布雷克;
}
(;
}
}
程序3 (最简洁的) :
#包含
#include//_crol_和_cror_的头文件。
创建唯一延迟//延迟子函数。
{
未指定Int I,j;
for(I=0; I
for(j=0; j200; j;
}
Void主() )
{
无符号字符d;
d=0xfe;
while(1) /
{
for (; d0x7f; )
{
P1=d;
延迟(100; //调用延迟子函数进行延迟。
d=_crol_(d,1 ); //循环左移。
}
for (; d0xfe; )
{
P1=d;
延迟(100;
d=_cror_(d,1 ); //循环向右移动,使指示灯返回。
}
}
}