8个LED中7个做流水灯,两个按键控制流水速度,一个越按越快,一个越按越慢,剩下一个LED灯指示流水速度,越快越亮。求单片机程序!!没写完全,不好意思!
追答程序难度不大,但比较啰嗦。还得有PWM波。
#include
#define uchar unsigned char
#define uint unsigned int
uchar led[7]={0x7e,0x7d,0x7b,0x77,0x6f,0x5f,0x4f};
uchar num=0,speed=10,cnt=0,pwm=0;
sbit keyu=P1^0;
sbit keyd=P1^1;
void t0isr() interrupt 1
{
uchar tmp;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cnt++;
if(cnt>=speed)
{
cnt=0;
num++;
num%=7;
tmp=P0|0x7f;
P0=tmp&led[num];
}
}
void t1isr() interrupt 3
{
TH1=(65536-5000)/256;
TL1=(65536-5000)%256;
pwm++;
pwm%=100;
if(pwm=100)speed=100;
}
if(keyd==0)
{
while(keyd==0);
speed--;
if(speed<=1)speed=1;
}
}
}
8个led流水灯依次点亮
ED流水灯是一种常见的装饰灯具,通过控制每个LED的亮度和颜色,可以创造出各种动态的光影效果。我们需要准备一些硬件设备,包括8个LED灯,一个微控制器(如Arduino或RaspberryPi),以及一些电阻和电线。我们将LED灯连接到微控制器的一个GPIO(GeneralPurposeInput\/Output,通用输入输出)引脚上。接下来,我们...
单片机如何设置一个循环的流水灯?
1、首先要写入单片机的头函数,定义单片机P1口的8个管脚,让他们分别代表流水灯的8个led。2、写一个大约一小时的延时函数,为了清楚的看到流水灯的、效果。3、下面是流水灯的主函数,流水灯一个点亮后一个熄灭反复循环点亮熄灭。4、这样流水灯就可以反复循环了。把程序下到仿真软件或者是开发板,进行仿...
8个led流水灯依次点亮
1. 首先,我们需要准备ED流水灯的硬件设备,包括8个LED灯、一个微控制器(例如Arduino或Raspberry Pi)、一些电阻和电线。2. 将LED灯连接到微控制器的GPIO(通用输入输出)引脚上。3. 然后,编写一段代码来控制LED灯的亮度。这段代码将使用“for”循环结构,依次对每个LED灯进行操作。4. 在这个例子...
求大神写一个程序,两个开关控制8个流水灯,按下第一个开关从左向右流水...
P1口接8个流水灯,用两个开关K1和K2控制流水灯的方向,仿真图如下。
51单片机开发板八个led灯依次点亮(就是流水灯)然后再全部
首先,定义了一系列宏和位定义:include define uint unsigned int define uchar unsigned char 接下来,定义了延时函数delay:void delay(uint);然后定义了控制LED的位:sbit D0=P1^0;sbit D1=P1^1;sbit D2=P1^2;sbit D3=P1^3;sbit D4=P1^4;sbit D5=P1^5;sbit D6=P1^6;sbit D7=P1...
单片机开发板怎么用?
2. 流水灯模块:我们使用了8个红色led,可以进行闪关灯实验,流水灯实验。 3. 独立键盘模块:4个小按键组成,可以做外中断INT0、INT1 ,外定时器T0、T1 实验。 4. 矩阵键盘模块:16个小按键组成可以做外中断INT0、INT1 ,外定时器T0、T1 实验。 5. 数码管模块:由6个一位一体数码管组成,可以显示0,1,2,...
基于单片机的流水灯的设计
基于单片机的流水灯的设计 要求:1、要求能用按键完成流水灯的速度和灯的亮设置,灯的亮度可以用PWM进行设置;2、要求用一个按键控制流水灯的方向,即按一下按键可以改变流水灯的方向... 要求:1、要求能用按键完成流水灯的速度和灯的亮设置,灯的亮度可以用PWM进行设置;2、要求用一个按键控制流水灯的方向,即按一...
怎么用单片机做出8个LED同时亮,但亮度不同的流水灯?
首先,例如你要最亮的灯先点亮,隔几十微秒后点亮第二个灯,再相隔同样时间点亮第三个灯……依次类推间隔一定时间点亮八个灯。但间隔时间不要太大,超过十几毫秒就不行了。然后再间隔相同的时间一次性把灯全关了,再间隔几十微秒回到上面的状态依次点亮灯。……一直这样循环。这样的话因为人的视力有...
8个led灯进行流水灯实验程序
include <reg51.h> main(){int i,j;while(1){P1=0xff;for(j=1;j<=8;j++){P1=P1<<1;for(i=0;i<=30000;i++);} } }
正常情况下 8 个led灯轮流点亮。实现流水灯效果, 当k1接通时产生中断...
你这样子哪行呀,别人能帮你这一次帮不了你下一次呀