1:设置一个变量zhidaoi,它可以从0循环到3
2:检测一个已取消缓冲的键。按“+1”
3:当I值为每个值时,执行相应的模式。
水量灯参考程序
#include
#include
#定义uchar无符号字符
Ucharj,温度;
无效延迟(无符号整型ms)
{
Uchart;
(女士)
对于(t = 0T <123T + +)
}
Voidmain()
{
P1=0XFF;
延迟(500);
Temp=0xfe;//奇怪,led连接在P2.3~P2.6
对于(j = 0J <4J + +)
{
P1=temp;
延迟(500);
Temp=_crol_(Temp,1);
}
P1=0XFF;
(1);
}
扩展资料:
注意事项:
#include“reg52。这个文件为单片机定义了一些特殊的功能寄存器
Typedef无符号int在16以下;//以声明的方式定义数据类型
无符号charu8;
//LED灯
Sbitleda=P0;
Sbitled1=P0^0;
Sbitled2=P0^1;
Sbitled3=P0^2;
Sbitled4=P0^3;
Sbitled5=P0^4;
Sbitled6=P0^5;
Sbitled7=P0^6;
Sbitled8=P0^7;
无效延迟(16岁以下)
{
,(我);
}
Voidmain()
{
而(1)
{
勒达=1;//所有的灯都亮着
//从左到右熄灭
Led1=0;
Led2=0;
延迟(50000);//延迟时间约为450毫秒
Led3=0;
延迟(50000);//延迟时间约为450毫秒
Led4=0;
延迟(50000);//延迟时间约为450毫秒
Led5=0;
延迟(50000);//延迟时间约为450毫秒
Led6=0;
延迟(50000);//延迟时间约为450毫秒
Led7=0;
延迟(50000);//延迟时间约为450毫秒
Led8=0;
延迟(100000);//延迟大约900毫秒
//从右到左照明
Led8=1;
延迟(50000);//延迟时间约为450毫秒
Led7=1;
延迟(50000);//延迟时间约为450毫秒
Led6=1;
延迟(50000);//延迟时间约为450毫秒
Led5=1;
延迟(50000);//延迟时间约为450毫秒
Led4=1;
延迟(50000);//延迟时间约为450毫秒
Led3=1;
延迟(50000);//延迟时间约为450毫秒
Led2=1;
延迟(50000);//延迟时间约为450毫秒
Led1=1;
延迟(50000);//延迟时间约为450毫秒
勒达=1;//所有的灯都亮着
}
}
1、自动归零,就是让灯全部不亮回到全灭的状态;2、手动增加----每按一下亮一个灯,你要几个亮就按几下;
3、满足你的条件后(比如你说的,先亮3个然后自动累加)------先讲拨码开关切换到“手动”,是按钮生效,用归零按钮归零,然后用手动按钮3次亮3个灯!然后将拨码开关切换到“自动”,灯就会根据时钟间隔自动累加亮起来!
程序如下:
#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 = 0i <110++i)
{
for(j = 0j <1000++j)
{
//什么也不做
}
}
//点亮第二个灯
led1 = 0
led2 = 1
led3 = 0
led4 = 0
led5 = 0
led6 = 0
led7 = 0
led8 = 0
//点亮剩余的灯
//省略……
while(1)
}
扩展资料:流水灯几点说明:
void:因为该延时函数不需要返回值,所以写为void
delay1s:该函数的函数名,命名需要符合C语言的标识符命名规则。
(): 不需要传入参数,所以括号中为空
至此我们可以把流水灯程序写为以下形式:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)