1.基本功能,系统具有启动,停止,暂停,左移,右移,加速,减速。
2.效果,彩灯效果,跑马效果,流水效果,拉幕效果,或自定义效果。
求程序,求原理图
求求求
提供参考实例【51单片机】4个按键分别控制流水灯的开启、关闭、加速、减速,链接:https://blog.csdn.net/m0_46234966/article/details/119023865
51 控制流水灯和按键配合就好了
之前做实验的代码,希望有用。
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint i) //延时
{
uchar t;
while(i--)
{
for(t=0;t<120;t++);
}
}
//1 8个LED灯分别反映8个按键的状态,按键按下LED亮,弹起LED熄灭;
void keyscan()
{
uchar temp;
P0=0xff;
temp=P0;
if(P0!=0xff)
{
delay(20);
if(P0!=0xff)
{
P2=temp;
}
else
{
P2=0xff;
}
}
}
//2 S0按下LED从上到下流水灯,S1按下LED从下到上流水灯,S2按下8个LED闪烁点亮;
void keyscan2()
{
uchar temp,i,PP;
P0=0xff;
PP=P0;
if(PP!=0xff)
{
delay(200); //消抖
if(PP!=0xff)
{
if(PP==0xfe)
{
temp = 0xfe;
for(i=0;i<8;i++)
{
P2=temp;
delay(500);
temp =_crol_(temp,1);
}
}
else if(PP==0xfd)
{
temp = 0x7f;
for(i=0;i<8;i++)
{
P2=temp;
delay(500);
temp=_cror_(temp,1);
}
}
else if(PP==0xfb)
{
P2 = 0xff;
delay(500);
P2 = 0;
delay(500);
}
else
{
P2=0xff;
}
}
else
{
P2=0xff;
}
}
}
//3 初始LED0点亮,S1按下LED流水灯往下移1位,S2按下LED流水灯往上移1位,S3按下LED状态取反,S4按下LED0点亮,S5按下LED等全部熄灭;
void keyscan3()
{
P0=0xff;
P2=0xfe;
while(1)
{
delay(200);
if(P0==0xfd)
{
P2 =_crol_(P2,1);
delay(500);
}
if(P0==0xfb)
{
P2 =_cror_(P2,1);
delay(500);
}
if(P0==0xf7)
{
P2=~P2;
delay(500);
}
if(P0==0xef)
{
P2=0xfe;
delay(500);
}
if(P0==0xdf)
{
P2=0xff;
delay(500);
}
}
}
void main()
{
while(1)
{
keyscan();
//keyscan2();
//keyscan3();
}
}