51单片机爱心流水灯原理及制作
51单片机流水灯实验报告
51单片机流水灯实验报告51单片机流水灯实验报告引言:51单片机是一种常用的微控制器,广泛应用于各种电子设备中。
流水灯实验是学习单片机编程的基础实验之一,通过控制多个LED灯的亮灭顺序,可以了解单片机的基本原理和编程方法。
一、实验目的本实验旨在通过使用51单片机,设计并实现一个简单的流水灯电路,加深对单片机原理的理解,掌握基本的单片机编程方法。
二、实验原理51单片机是一种8位微控制器,具有强大的功能和广泛的应用。
流水灯实验中,我们需要控制多个LED灯的亮灭顺序,通过编写程序,将指令发送给单片机,控制LED灯的亮灭。
三、实验器材1. 51单片机开发板2. LED灯若干3. 面包板4. 连接线四、实验步骤1. 将51单片机开发板连接到电脑上,打开开发板的编程软件。
2. 在编程软件中,新建一个工程,选择适合的单片机型号。
3. 编写程序,设置相应的引脚为输出模式,并配置流水灯的亮灭顺序。
4. 将单片机开发板与面包板连接,将LED灯连接到相应的引脚上。
5. 将编写好的程序下载到单片机中。
6. 打开电源,观察LED灯的亮灭顺序是否符合预期。
五、实验结果与分析经过实验,我们成功地实现了一个简单的流水灯电路。
LED灯按照设定的顺序亮灭,形成了流水灯的效果。
通过调整程序中的指令顺序,我们可以改变LED灯的亮灭顺序,实现不同的流水灯效果。
六、实验心得通过这次实验,我对51单片机的原理和编程方法有了更深入的了解。
流水灯实验是一种简单但基础的实验,通过实际操作和编程,加深了我对单片机的理解和掌握。
在实验过程中,我遇到了一些问题,如LED灯连接错误、程序逻辑错误等,但通过仔细检查和调试,最终成功解决了这些问题。
这次实验让我更加熟悉了单片机的应用,为以后更复杂的项目打下了基础。
七、实验拓展在掌握了基本的流水灯实验后,我们可以进一步拓展实验内容。
例如,可以增加控制开关,实现对流水灯的启停控制;可以设计不同的流水灯效果,如闪烁、变速等;还可以与其他传感器、模块进行组合,实现更多功能和效果。
单片机流水灯实验原理
单片机流水灯实验原理
单片机流水灯实验原理:
流水灯是一种基本的电子实验,通过使用单片机控制多个
LED 灯的亮灭来实现灯光在各个灯珠之间流动的效果。
流水
灯实验原理如下:
1. 硬件连接:将多个 LED 灯和适当的电流限制电阻连接到单
片机的不同输出引脚上。
每个 LED 灯的阴极与电流限制电阻
连接到负极(GND),而阳极连接到单片机的 IO 引脚。
需要
注意的是,单片机的 IO 引脚的输出电压应该能够点亮 LED 灯。
2. 软件设计:使用单片机的 GPIO(通用输入输出)功能,设
置相应的输出引脚作为流水灯的控制引脚。
通过对这些引脚进行高低电平控制,实现不同 LED 灯的点亮和熄灭。
3. 流水灯效果:为了实现流水灯的效果,我们将需要在不同的时间间隔内控制不同的 LED 灯点亮。
可以使用一个循环来实
现这种效果,循环中通过更新和改变控制引脚的电平状态来控制流水灯的亮灭顺序。
4. 控制顺序:通过改变控制引脚的电平状态的顺序,可以改变流水灯的流动顺序。
可以通过在循环中使用延迟函数来控制灯的变换速度,或者使用计数器等其他方法来实现更复杂的流水灯效果。
通过以上原理,我们可以实现单片机流水灯实验并观察到灯光在不同的 LED 灯之间流动的效果。
51单片机流水灯实验报告-单片机实验报告流水灯
51单片机流水灯试验一、实验目的1.了解51单片机的引脚结构。
2.根据所学汇编语言编写代码实现LED灯的流水功能。
3.利用开发板下载hex文件后验证功能。
二、实验器材个人电脑,80c51单片机,开发板三、实验原理单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。
使用rl或rr a实现位的转换。
A寄存器的位经过rr a之后转换如下所示:然后将A寄存器转换一次便送给P2即MOV P2,A便将转换后的数送到了P2口,不断循环下去,便实现了逐位置一操作。
四、实验电路图五、通过仿真实验正确性代码如下:ORG 0 MOV A,#00000001B LOOP:MOV P2,ARL AACALL DELAY SJMP LOOPDELAY:MOV R1,#255 DEL2:MOV R2,#250DEL1:DJNZ R2,DEL1DJNZ R1,DEL2RETEnd实验结果:六、实验参考程序#include<reg52.h>#define uchar unsigned char #define uint unsigned intuchar table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};sbit P00=P0^0;sbit P01=P0^1;void delay(uchar t){uchar i,j;for(i=0;i<t;i++)for(j=0;j<110;j++); }void main(){uchar i;while(1){P00=1;delay(2000);P00=0;for(i=0;i<8;i++){P1=table[i];P2=table[i];delay(2000);}P01=1;delay(2000);P01=0;}}实物展示:(1)单片机最小系统板(2)自己焊制的集成最小系统板自己制作的心形流水灯实验板(3)系统板与实验板的连接展示七.实验总结:这次试验我通过Proteus仿真实现对流水灯功能的实现。
51单片机爱心流水灯原理及制作
51单片机爱心流水灯原理及制作一、引言爱心流水灯是一种常见的电子制作项目,它使用51单片机控制LED灯的亮灭顺序,形成一个流动的爱心图案。
本文将详细介绍51单片机爱心流水灯的原理及制作过程。
二、原理介绍1. 51单片机51单片机是一种非常常见的单片机,具有广泛的应用领域。
它具有强大的计算能力和丰富的外设接口,非常适合用于控制LED灯的亮灭。
2. LED灯LED灯是一种半导体发光二极管,具有低功耗、长寿命和高亮度等特点。
在爱心流水灯中,我们使用红色的LED灯来形成爱心图案。
3. 流水灯原理流水灯是一种常见的电子灯光效果,通过控制LED灯的亮灭顺序,形成一个流动的效果。
在爱心流水灯中,我们将多个LED灯按照特定的顺序亮灭,形成一个流动的爱心图案。
4. 原理图以下是51单片机爱心流水灯的原理图:(在此处插入原理图)三、制作材料准备在开始制作爱心流水灯之前,我们需要准备以下材料:1. 51单片机开发板2. LED灯(红色)3. 电阻4. 面包板5. 连接线6. 电源四、制作步骤1. 连接电路首先,将51单片机开发板和面包板连接起来。
然后,根据原理图连接LED灯、电阻和51单片机的引脚。
确保连接正确且稳固。
2. 编写程序使用C语言编写51单片机的程序。
程序的主要功能是控制LED灯的亮灭顺序,形成一个流动的爱心图案。
以下是一个简单的示例程序:(在此处插入示例程序)3. 烧录程序将编写好的程序烧录到51单片机中。
可以使用专业的烧录工具,也可以使用通用的USB转串口模块进行烧录。
4. 测试将电源接入电路,打开电源开关,观察LED灯的亮灭情况。
如果一切正常,LED灯将按照程序中设定的顺序亮灭,形成一个流动的爱心图案。
五、注意事项在制作爱心流水灯时,需要注意以下几点:1. 连接线的接触要牢固,确保电路的稳定性。
2. 程序的编写要准确无误,确保LED灯按照预期的顺序亮灭。
3. 使用适当的电阻限流,以保护LED灯和51单片机。
实验一51单片机流水灯实验实验报告
实验一 51单片机流水灯实验实验报告
“流水灯”实验报告 一、实验目的 1.了解单片机I/O口的工作原理。 2.掌握51单片机的汇编指令。 3.熟悉汇编程序开发,调试以及仿真环境。 二、实验内容 通过汇编指令对单片机I/O进行编程(本实验使用P0口),以控制八个发光二极管以一定顺序亮灭。(即流水灯效果) 三、实验原理 通过更改P0口8位的高低电平,分别控制8个发光二极管的亮灭。具体的亮灭情况如下表:
要实现“流水灯”效果,也就是需要将P0口的输出值发生以下变化: FE→FD→FB→F7→EF→DF→BF→7F→BF→DF→EF→F7→FB→FD→FE→...... 可以使用一个循环,不断对数据进行移位运算实现。这里的移位指令采用RL和RR,即不带进位的位移运算指令。如果使用带 进位的位移运算指令(RLC和RRC),则需要定期把CY置0,否则会出现同时亮起两个发光二极管的情况。 四、实验过程 1.在仿真系统中绘制RG 0000H Delay: MOV R0, #0FFH SJMP Start Delay1: MOV R1, #0FFH Start: MOV A, #0FEH Delay2: NOP MOV P0, A DJNZ R1, Delay2 CLR P2.7 DJNZ R0, Delay1 CLR P3.7 RET Move: MOV R2, #7H END MOV R3, #7H RMove: RL A MOV P0, A CALL Delay DJNZ R2, RMove LMove: RR A MOV P0, A CALL Delay DJNZ R3, LMove SJMP Move 五、实验结果 为了便于实验结果的描述,下面分别把P0.0, P0.1…, P0.7对应的发光二极管编号为1, 2, …, 8号二极管。 在仿真系统中,先从1号二极管下面是在仿真系统中的实验结果:
心形流水灯STC89C52电子制作焊接套件单片机程序设计0资料
x9 =0; delay2ms();
x10 =0; delay2ms();
x11 =0; delay2ms();
x12 =0; delay2ms();
x13 =0; delay2ms();
x14 =0; delay2ms();
x15 =0; delay2ms();
x16 =0; delay2ms();
x31 =0; delay2ms();
x3elay2ms();
x28 =0; delay2ms();
x27 =0; delay2ms();
x26 =0; delay2ms();
x25 =0; delay2ms();
x13 =0;
x20 =0; delay2ms();
x21 =0;
x12 =0; delay2ms();
x11 =0;
x22 =0; delay2ms();
x23 =0;
x10 =0; delay2ms();
x9 =0;
x24 =0; delay2ms();
x8 =0;
x25 =0; delay2ms();
P1=0xff;
P2=0xff;
P3=0xff;
delay2ms();
x1 =0; delay2ms();
x2 =0; delay2ms();
x3 =0; delay2ms();
x4 =0; delay2ms();
x5 =0; delay2ms();
x6 =0; delay2ms();
x7 =0; delay2ms();
x24 =0; delay2ms();
x23 =0; delay2ms();
51单片机爱心流水灯原理及制作
51单片机爱心流水灯原理及制作引言:在现代科技发展的背景下,电子产品已经成为我们生活中不可或者缺的一部份。
而作为电子制作的入门级项目,流水灯因其简单而受到泛博爱好者的爱慕。
本文将介绍使用51单片机制作爱心流水灯的原理及制作过程。
1. 原理介绍:爱心流水灯是一种特殊的流水灯效果,通过控制LED灯的亮灭顺序和时间间隔,形成一个爱心图案在LED灯带上流动的效果。
其原理基于51单片机的GPIO (通用输入输出)口控制LED灯的亮灭,通过改变LED灯的状态来实现流动效果。
2. 材料准备:制作爱心流水灯所需的材料如下:- 51单片机开辟板- LED灯带- 面包板- 杜邦线- 电阻- 电容- 电源适配器3. 硬件连接:首先,将51单片机开辟板和面包板连接起来。
然后,将LED灯带连接到面包板上,确保正极和负极正确连接。
接下来,通过杜邦线将51单片机的GPIO口与LED灯带连接起来。
最后,将电阻和电容连接到电路中,以保护电路免受过电流和过电压的伤害。
4. 软件编程:使用Keil C编译器进行软件编程。
首先,需要定义LED灯带的控制引脚,并初始化为输出模式。
然后,编写程序来控制LED灯的亮灭顺序和时间间隔。
在本例中,我们将使用循环语句和延时函数来实现流水灯效果。
通过改变LED灯的状态和延时时间,可以形成一个爱心图案在LED灯带上流动的效果。
5. 程序调试:将编写好的程序下载到51单片机开辟板上,并连接电源适配器。
打开开关,LED灯带上的爱心流水灯效果就会开始显示出来。
如果浮现问题,可以通过调试程序和检查硬件连接来解决。
6. 制作扩展:如果你对爱心流水灯的效果满意,你还可以进一步扩展你的制作。
例如,你可以添加一个按键来控制流水灯的启停,或者通过蓝牙模块和手机APP来远程控制流水灯的效果。
这些扩展可以增加你的制作的趣味性和创造性。
结论:通过本文的介绍,我们了解了51单片机爱心流水灯的原理及制作过程。
通过硬件连接和软件编程,我们可以制作出一个具有特殊效果的流水灯。
单片机流水灯实验报告
单片机流水灯实验报告:实验一:用C51实现流水灯实验实验要求:完成亮流水,即LED从低位流向高位流动,每次流动一位,且每次只亮一个LED灯,其它LED灭。
实验原理:单片机流水的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。
使用r1或rr a实现位的转换。
实验内容:通过仿真来实现实验电路图代码如下;for(x=0;x<8;x++){P0=num[x];delay();}for(x=6;x>0;x--){P0=num[x];delay();}P0=0xfe;实验结果:实验程序:#include<REG51.H>void delay();//延时函数声明void main()//主函数{unsigned charx,num[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};while(1){for(x=0;x<8;x++){P0=num[x];delay();}for(x=6;x>0;x--){P0=num[x];delay();}P0=0xfe;}}void delay()//延时函数,无符号字符型变量i为形式参数{unsigned int j,k;//定义无符号字符型变量j和kfor(k=0;k<500;k++)//双重for循环语句实现软件延时for(j=0;j<100;j++);}实验总结:这次试验通过仿真实验软件实现流水灯实验,充分学会了keil 软件和Proteus电路仿真的联合调试,为后期的实验做足了功课。
也认识到仿真实用性。
单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
51单片机流水灯实验报告
51单片机流水灯实验报告一、实验目的1.熟悉51单片机的硬件资源2.掌握51单片机的I/O口编程3.掌握51单片机的定时器/计数器编程二、实验原理流水灯是一种简单的电子设计,通过依次点亮和熄灭多个LED灯来形成流水灯的效果。
本实验使用的是51单片机,它有40个I/O口和3个定时器/计数器,可以方便地实现流水灯的效果。
三、实验器材1.51单片机开发板B数据线3.LED灯若干4.面包板5.连线材料(公对公、公对母杜邦线)四、实验过程1.准备工作:a.将51单片机开发板和LED灯连接起来,将LED灯依次插在面包板上,并与51单片机的I/O口相连接。
b.连接电脑与51开发板,使用USB数据线将它们连接起来。
2.编写程序:a. 打开Keil开发环境,新建一个工程。
b.在C代码文件中编写流水灯的控制程序,并引用51单片机的头文件和IO口控制相关的函数。
代码示例:```c#include <reg51.h>sbit LED1 = P1^0;sbit LED2 = P1^1;sbit LED3 = P1^2;sbit LED4 = P1^3;sbit LED5 = P1^4;void delay(unsigned int t)while(t--)for(unsigned int i = 0; i < 125; i++);}void maiwhile(1)LED1=0;//点亮LED1delay(1000); // 延时LED1=1;//熄灭LED1LED2=0;//点亮LED2delay(1000); // 延时LED2=1;//熄灭LED2LED3=0;//点亮LED3delay(1000); // 延时LED3=1;//熄灭LED3LED4=0;//点亮LED4delay(1000); // 延时LED4=1;//熄灭LED4LED5=0;//点亮LED5delay(1000); // 延时LED5=1;//熄灭LED5}}```3.烧录程序:a.将开发板上的烧录开关调整为“USB”模式。
单片机流水灯实验原理
单片机流水灯实验原理单片机流水灯实验原理是利用单片机的控制功能,通过对端口的操作,控制LED 灯的亮灭顺序,从而实现流水灯效果。
单片机是一种集成电路,由中央处理器、存储器和各种输入输出端口组成,可以对外部设备进行控制和操作。
在单片机流水灯实验中,我们使用的是8051系列单片机。
流水灯是一种常见的LED灯效,它的原理是多个LED灯按照一定的顺序依次亮灭,形成流动的效果。
在单片机流水灯实验中,我们可以通过对单片机的编程,控制端口的状态,从而实现LED灯的顺序控制。
具体实现流水灯效果的步骤如下:1. 确定使用几个LED灯:在单片机流水灯实验中,可以根据实际需求确定使用几个LED灯。
一般情况下,我们使用4~8个LED灯。
2. 连接LED灯和单片机:将LED灯的一端连接到单片机的输出端口,另一端接地。
3. 设置端口为输出模式:使用单片机的编程语言,将需要控制的端口设置为输出模式。
这样,单片机就可以通过改变端口的电平来控制LED灯的亮灭。
4. 设计流水灯的控制循环:设计一个循环控制LED灯的亮灭顺序,从而实现流水灯的效果。
一种简单的控制方式是通过改变端口的电平来控制LED灯的亮灭。
例如,假设我们使用4个LED灯,控制端口的顺序为P1.0、P1.1、P1.2、P1.3,那么我们可以设计一个循环控制LED灯亮灭的顺序为:P1.0亮,P1.1灭、P1.2灭、P1.3灭-> P1.0灭,P1.1亮,P1.2灭、P1.3灭-> P1.0灭,P1.1灭,P1.2亮,P1.3灭-> P1.0灭,P1.1灭,P1.2灭,P1.3亮-> P1.0亮,P1.1灭,P1.2灭,P1.3灭-> P1.0灭,P1.1亮,P1.2灭,P1.3灭-> P1.0灭,P1.1灭,P1.2亮,P1.3灭-> ...5. 编写程序:根据上述设计的控制循环,使用单片机的编程语言编写相应的程序。
程序的逻辑是根据循环的顺序,通过改变端口的电平来控制LED灯的亮灭。
心形流水灯制作
爱心花样流水灯电子制作套件心形18LED循环灯安装调试:这里介绍的是一款极具流动色彩的循环灯套件产品,本款套件含有18只红色LED(发光二极管),分成3租,排列组成一个心形的图案,并由三极管震荡电路驱动,使红色的心形图案不断的按顺时针方向旋转闪亮,特别是在夜间使用时,极富动感。
1.工作原理从原理图上可以看出,18只LED被分成3组,分别是LED1-LED6、LED7-LED12、LED13-LED18,每当电源接通时,3只三极管会争先导通,但由于元器件存在差异,只会有1只三极管最先导通,这里假设V1最先导通,则LED1-LED6点亮,由于V1导通,其集电极电压下降使得电容C2左端下降,接近0V,由于电容两端的电压不能突变,因此V2的基极也被拉到近似0V,V2截止,故接在其集电极的LED7-LED12熄灭。
此时V2的高电压通过电容C3使V3集电极电压升高,V3也将迅速导通,LED13-LED18点亮。
因此在这段时间里,V1、V3的集电极均为低电平,LED1-LED6和LED13-LED18被点亮,LED7-LED13熄灭,但随着电源通过电阻R3对C2的充电,V2的基极电压逐渐升高,当超过0.7V时,V2由截至状态变为导通状态,集电极电压下降,LED7-LED12点亮。
与此同时,V2的集电极下降的电压通过电容C3使V3的基极电压也降低,V3由导通变为截至,其集电极电压升高,LED13-LED8熄灭。
接下来,电路按照上面叙述的过程循环,3组18只LED便会被轮流点亮,同一时刻有2组共12只LED被点亮。
这些LED被交叉排列呈一个心形图案,不断的按照顺时针方向循环闪烁发光,达到流动显示的效果。
1.组装调试及注意事项装配过程可参考上面的原理图和PCB版图,安装调试很简单,焊接时位置不要装错,极性不反,基本没有问题,无需调试。
焊接完成后效果图如下好了,装上电池盒,我们看看效果???????? 焊接组装好的心形循环灯最适合在夜间相对较黑的环境中使用,距离2米以外观看效果更加生动、有趣。
基于单片机的心形流水灯设计
主程序流程图
电路原理总图
PCB板图
实物制作
经过一段时间的不断努力和学习,我在测试部分首先检查 了电路连接是否有错(少接、短路、接错、元件焊接不牢 等问题),可以用万用表来检测电路的导通情况。然后再 检查单片机的最小系统:能否使单片机正常工作等。最后 经过调试,系统整体调试:系统各个模块的测试,能够正 常工作,达到设计预期的目标。
课题要求: 结合C语言编程,使心形环绕LED流水灯实现42种不同形式的闪 烁功能,由快到慢,再由慢到快,在循环往复不断的变化中,给 人带来美的体验。
方案择
方案的选择与论证 基于单片机的新型电动栏杆设计由硬件部分和软件部
分两大部分组成。硬件系统采用STC89C52单片机作为中 央处理器,采用了多路电源供电,结合步进电机驱动电路 ,达到过往车辆数量检测,并结合数码管显示等功能。而 软件系统则采用模块化设计,包括车辆数量记录模块,距 离电机驱动模块、数码管显示模块等等。 主控制器芯片主要是负责控制LED灯的不同变化速度快慢 以及变化效果。主控制器作为整个系统的控制核心部分, 要求其功耗低、数据转换速率快。。
研究概述
研究背景与意义
随着现代科学技术的持续进步和发展和人们生活水平 的不断提高,以大规模、超大规模集成电路为首的电子工艺技术 的使用也越来越广泛,在日常生活中
也普遍常见,结合单片机技术设计的电子电路也层出不穷,像 是基于单片机技术设计的LED流水灯,也越来越满足商业 空间的需求,LED灯的优点主要体现在高节能、绿色环保 、无辐射、使用寿命长等,在商店、酒吧、歌厅、舞台等 许多场所正是由于装饰LED彩灯来照明,来展示店铺主题 形象,塑造空间光形象,从而使消费者产生共鸣和联想, 来建立情感交流,来吸引和引导消费者的目光。
心形流水灯设计原理
心形流水灯设计原理
心形流水灯是一款综合多彩灯带、音乐控制灯、延时功能的智能装饰灯,它可以极具艺术美感地装点房间室外空间。
心形流水灯使用LED灯珠、电子电路技术和音乐控制技术,聚合在一起,它能够根据用户的设置,实现彩色变化、渐变变色及跟随音乐的节奏律动等功能,给人以多彩的视觉感受。
心形流水灯的原理如下:首先,根据控制要求,通过控制电路板连接相应的灯具,实现对各个灯具的控制,如果要实现彩色变化、渐变变色及跟随音乐的节奏律动,则需要将控制电路板和电脑软件结合起来使用。
其次,音乐控制灯需要使用麦克风来监听音乐信号,并将其转换为指令发送给控制电路板,以便实现跟随音乐的节奏律动等功能。
最后,控制器会根据音乐的节奏和动作,生成控制信号,通过控制电路板驱动灯具随着音乐变化,实现多彩变化的效果。
心形流水灯小巧、环保、安全,可替代传统电源装饰灯,具有节能减排的保护环境的效果。
它不仅可以满足各种变彩诉求,而且可以随着音乐节奏变化,增强视觉冲击力。
它还可以延时,可以让观看者们享受到舒服而持久的光线,让我们的生活更加温馨舒适!。
心形花样LED流水灯(带程序)
心形花样LED 流水灯(带程序)1000146073713使用89C52做的,原理图如下:总共有32个LED灯,4个I/O全部用上了。
我在这里不加有LED保护电阻,用200的也可以晶振用12M的或11.0592M也行,C1,C2用30PF。
PCB图如下:作品效果录像:/programs/view/z0bjKg_3Cd4/程序是用C语言写的;如下:#include<reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charuchar code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00}; // 逐个点亮0~7 uchar code table1[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; // 逐个点亮7~0 uchar code table2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff}; // 逐个灭0~7 uchar code table3[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; // 逐个灭7~0/***********************************************************/void delay(uint t); //延时void zg(uint t,uchar a);//两边逐个亮void qs(uint t,uchar a);//全部闪烁void zgxh(uint t,uchar a); // 逆时针逐个点亮//void zgxh1(uint t,uchar a); // 顺时针逐个点亮void djs(uint t,uchar a); //对角闪void lbzgm(uint t,uchar a);//两边逐个灭//void sszgm(uint t,uchar a); // 顺时针逐个灭void nszgm(uint t,uchar a); // 逆时针逐个灭void sztl(uint t,uchar a);//顺时逐个同步亮void nztl(uint t,uchar a);//逆时逐个同步亮void sztm(uint t,uchar a);//顺时逐个同步灭void nztm(uint t,uchar a);//逆时逐个同步灭void hwzjl(uint t,uchar a); //横往中间亮void hwzjm(uint t,uchar a); //横往中间灭//void swzjl(uint t,uchar a); //竖往中间亮//void swzjm(uint t,uchar a); //竖往中间灭void nzdl(uint t,uchar a); //逆时逐段亮void nzdgl(uint t,uchar a); //逆时逐段一个点亮void jgs(uint t,uchar a); //间隔闪/**********************************************************/void zg(uint t,uchar a)//两边逐个亮{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;P0=0x7f;delay(t);for(i=0;i<7;i++){P0=table1[i+1];P2=table1[i];delay(t);}P2=0x00;P1=0xfe;delay(t);for(i=0;i<7;i++){P1=table[i+1];P3=table1[i];delay(t);}P3=0x00;delay(t);}}void qs(uint t,uchar a) //全部闪烁{uchar j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;delay(t);P0=P1=P2=P3=0x00;delay(t);}}void zgxh(uint t,uchar a) // 逆时针逐个点亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for (i=0;i<8;i++){P0=table1[i];delay(t);}for(i=0;i<8;i++){P1=table[i];delay(t);for(i=0;i<8;i++){P3=table[i];delay(t);}for(i=0;i<8;i++){P2=table[i];delay(t);}}}void nszgm(uint t,uchar a) // 逆时针逐个灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0x00;for (i=0;i<8;i++){P0=table3[i];delay(t);}for (i=0;i<8;i++){P1=table2[i];delay(t);}for (i=0;i<8;i++){P3=table2[i];delay(t);}for (i=0;i<8;i++){P2=table2[i];delay(t);}}}/*void zgxh1(uint t,uchar a) // 顺时针逐个点亮{for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for (i=0;i<8;i++){P2=table1[i];delay(t);}for(i=0;i<8;i++){P3=table1[i];delay(t);}for(i=0;i<8;i++){P1=table1[i];delay(t);}for(i=0;i<8;i++){P0=table[i];delay(t);}}}*//*void sszgm(uint t,uchar a) // 顺时针逐个灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0x00;for (i=0;i<8;i++){P2=table3[i];delay(t);}for (i=0;i<8;i++){P3=table3[i];delay(t);}for (i=0;i<8;i++){P1=table3[i];delay(t);}for (i=0;i<8;i++){P0=table2[i];delay(t);}}}*/void djs(uint t,uchar a) //对角闪{uchar j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;P0=P3=0x00;delay(t);P0=P1=P2=P3=0xff;P1=P2=0x00;delay(t);}}void lbzgm(uint t,uchar a)//两边逐个灭{uchar i,j;for (j=0;j<a;j++){P0=P2=0x00;P3=0x01;delay(t);for(i=7;i>1;i--){P1=table[i-1];P3=table1[i-2];delay(t);}P1=0xfe;P3=0xff;delay(t);P1=0xff;P2=0x01;delay(t);for(i=7;i>1;i--){P0=table1[i-1];P2=table1[i-2];delay(t);}P0=0x7f;P2=0xff;delay(t);P0=0xff;delay(t);}}void sztl(uint t,uchar a)//顺时逐个同步亮{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table[i];P1=P2=P3=table1[i];delay(t);}}}void nztl(uint t,uchar a)//逆时逐个同步亮{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table1[i];P1=P2=P3=table[i];delay(t);}}}void sztm(uint t,uchar a)//顺时逐个同步灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0x00;for(i=0;i<8;i++){P0=table2[i];P1=P2=P3=table3[i];delay(t);}}}void nztm(uint t,uchar a)//逆时逐个同步灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table3[i];P1=P2=P3=table2[i];delay(t);}}}void hwzjl(uint t,uchar a) //横往中间亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=P2=P1=table1[i];P3=table[i];delay(t);}}}void hwzjm(uint t,uchar a) //横往中间灭{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0x00;for(i=0;i<8;i++){P0=P2=P1=table3[i];P3=table2[i];delay(t);}}}/*void swzjl(uint t,uchar a) //竖往中间亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=P2=P1=table[i];P3=table1[i];delay(t);}}}void swzjm(uint t,uchar a) //竖往中间灭{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0x00;for(i=0;i<8;i++){P0=P2=P1=table2[i];P3=table3[i];delay(t);}}}*/void nzdl(uint t,uchar a) //逆时逐段亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table1[i];delay(t);}P0=0xff;for(i=0;i<8;i++){P1=table[i];delay(t);}P1=0xff;for(i=0;i<8;i++){P3=table[i];delay(t);}P3=0xff;for(i=0;i<8;i++){P2=table[i];delay(t);}P2=0xff;}}void nzdgl(uint t,uchar a) //逆时逐段一个点亮{uchar i,j,k,l;for (j=0;j<a;j++){k=table1[0];P0=k;l=table[0];P1=P2=P3=l;delay(t);for(i=0;i<8;i++){k=_crol_(k,-1);P0=k;l=_crol_(l,1);P1=P2=P3=l;delay(t);}}}void jgs(uint t,uchar a) //间隔闪{uchar j;for (j=0;j<a;j++){P0=0x55;P1=P2=P3=0xaa;delay(t);P0=0xaa;P1=P2=P3=0x55;delay(t);}}void main(){uchar i;while(1){zg(100,1); //两边逐个亮lbzgm(100,1); //两边逐个灭jgs(300,10);djs(100,20); //对角闪////////////////////////////////////////////P1=P2=P3=0xff;for(i=0;i<3;i++){P0=0x00;delay(800);P0=0xff;delay(800);}P0=0x00;for(i=0;i<3;i++){P1=0x00;delay(800);P1=0xff;delay(800);}for(i=0;i<3;i++){P3=0x00;delay(800);P3=0xff;delay(800);}P3=0x00;for(i=0;i<3;i++){P2=0x00;delay(800);P2=0xff;delay(800);}qs(500,3);/////////////////////////////////////////////for(i=0;i<6;i++){zgxh(50,1);nszgm(50,1);}djs(100,20); //对角闪for(i=0;i<3;i++){zg(100,1); //两边逐个亮lbzgm(100,1); //两边逐个灭}qs(200,10);djs(100,50);for(i=0;i<5;i++){sztl(200,1); //顺时逐个同步亮nztm(200,1);nztl(200,1);sztm(200,1); //顺时逐个同步灭}djs(300,10); //对角闪nzdgl(300,10); //逆时逐段一个点亮jgs(300,10); //间隔闪for(i=0;i<3;i++){nszgm(100,1);}/*for(i=0;i<5;i++){zgxh1(100,1);sszgm(100,1);}*/nzdl(200,3); //逆时逐段亮jgs(50,100); //间隔闪/*///////////////////////////////////////////////////// P0=P1=P2=P3=0xff;for (i=0;i<8;i++){P0=table1[i];delay(200);}for (i=0;i<8;i++){P1=table[i];delay(200);}for(i=0;i<3;i++){P0=P1=0x00;delay(200);P0=P1=0xff;delay(200);}for (i=0;i<8;i++){P2=table1[i];delay(200);}for (i=0;i<8;i++){P3=table1[i];delay(200);}for(i=0;i<3;i++)P2=P3=0x00;delay(200);P2=P3=0xff;delay(200);}*///////////////////////////////////////////////////nzdgl(50,40); //逆时逐段一个点亮for(i=0;i<4;i++){zg(100,1);qs(100,10);lbzgm(100,1);}// djs(50,100); //对角闪for(i=0;i<3;i++){zgxh(100,1);nszgm(100,1);}djs(1000,10);for(i=0;i<10;i++){hwzjl(200,1); //横往中间亮hwzjm(200,1); //横往中间灭}djs(300,10); //对角闪/* for(i=0;i<10;i++){swzjl(200,1); //竖往中间亮swzjm(200,1); //竖往中间灭}*/for(i=0;i<5;i++){zgxh(100,1);nszgm(100,1);}djs(100,20); //对角闪zg(300,1);lbzgm(300,1);/*for(i=0;i<5;i++)zgxh1(100,1);sszgm(100,1);}*/for(i=0;i<5;i++){sztl(200,1); //顺时逐个同步亮nztm(200,1);nztl(200,1);sztm(200,1); //顺时逐个同步灭}djs(500,20); //对角闪djs(100,30); //对角闪djs(50,50); //对角闪// djs(10,100); //对角闪delay(1000);}}void delay(uint t){uint x,y;for (x=t;x>0;x--){for (y=120;y>0;y--);}}因为89C52的容量有限,所以还有几个方式注释掉了。
51单片机-流水灯
51单片机-流水灯这个是原理图,从图中最右边有一个排阻,也就是这里八个电阻封装在一起,这里排阻的特点是八个电阻有一个公共端,然后一个电源VCC 通过跳线与排阻相连。
到达二极管的电流从正极流向负极,如果二极管负极是低电平,则电流流过二极管,发光二极管亮起来。
负极接在单片机的P2 端口上。
也就是说P2 的引脚位低电平时可驱动发光二极管发光。
驱动各个灯闪烁的方法是把各位循环左移,使用函数_crol_。
#include #include unsigned int a;void delay(){ int i,j; for(i = 0; i #include unsigned int dd;sbit key = P1;void delay(){ int i,j; for(i = 0; i 2. #include 3. #define uint unsigned int 4. uint a; 5. 6. void delay(uint t){ 7. int i,j; 8. for(i = 0; i < t; i++) 9. for(j = 0; j < 0xff;j++) 10. ; 11. } 12. 13. void liushui(){ 14. int i,dd; 15. dd =0xfe; //dd = 1111 1110 此时L9 亮16. for(i = 0; i < 8; i++){ 17.P2 = dd; 18. delay(1000); 19. dd = _crol_(dd,1); // 循环左移一位dd = 1111 1101 20. P2 = 0xff; 21. delay(300); 22. } 23. } 24. void main(){ 25. while(1){ 26. liushui(); 27. } 28.}tips:感谢大家的阅读,本文由我司收集整编。
仅供参阅!。
51单片机如何实现流水灯?51单片机实现流水灯的三种方法详细分析
51单片机如何实现流水灯?51单片机实现流水灯的三种方法详细分析首先,介绍下原理。
下图为主控芯片和流水灯模块的原理图。
流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯。
相反,如果要LED灯熄灭,就要把P1口的电平变为高电平即可。
要实现流水灯功能,我们只要将LED1~LED8依次点亮、熄灭,依始类推,8只LED变会一亮一暗的做流水灯了。
实现8个LED流水灯程序用中文表示为:P1.0低、延时、P1.0高、P1.1低、延时、P1.1高、P1.2低、延时、P1.2高、P1.3低、延时、P1.3高、P1.4低、延时、P1.4高、P1.5低、延时、P1.5高、P1.6低、延时、P1.6高、P1.7低、延时、P1.7高、返回到开始、程序结束。
听起来是不是很简单啊!那么下面我们来看下实现流水灯功能的三种常用方法!第一种,总线方法实现流水灯。
这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,加上延时函数,即可控制每个LED灯的亮灭。
C程序如下:#include#define uchar unsigned char#define uint unsigned intcode unsigned char tmpled[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //定义八只LED灯,依次点亮八只LED灯//N毫秒的延时函数delay_ms(uint ms) { uint i,j; for(i=ms;i>0;i--) for(j=114;j>0;j--); return 0; }void main(void){unchar i;while (1){for(i=0;i#define uchar unsigned char#define uint unsigned int//N毫秒的延时函数delay_ms(uint ms) { uint i,j; for(i=ms;i>0;i--) for(j=114;j>0;j--); return 0; }。
心形流水灯的实验报告
心形流水灯的实验报告心形流水灯的实验报告一、引言心形流水灯是一种具有艺术性和创意性的灯光装饰,它通过流动的灯光呈现出一个心形的图案。
本实验旨在探索心形流水灯的制作原理和工作原理,并通过实际搭建一个心形流水灯来验证理论。
二、实验材料和方法1. 实验材料:- Arduino开发板- LED灯珠- 面包板- 连接线- 电阻- 电池或电源2. 实验方法:- 将Arduino开发板与面包板连接,并将LED灯珠插入面包板上。
- 根据电路图连接电路,包括电阻和电源的连接。
- 编写Arduino程序,控制LED灯珠按照心形图案流动。
三、实验过程1. 搭建电路根据电路图,将Arduino开发板与面包板连接,并将LED灯珠插入面包板上。
根据需要,可以选择不同颜色的LED灯珠,以增加艺术效果。
2. 连接电路根据电路图连接电路。
首先,将Arduino开发板的数字引脚与面包板上的LED灯珠连接,以控制灯珠的亮灭。
然后,将电阻连接到面包板上的LED灯珠,以限制电流。
最后,将电源连接到电路上,为LED灯珠提供电力。
3. 编写Arduino程序使用Arduino编程软件,编写程序以控制LED灯珠按照心形图案流动。
可以使用Arduino的编程语言,通过控制数字引脚的高低电平来控制LED灯珠的亮灭。
通过循环和延时函数,可以实现LED灯珠按照一定的频率和顺序流动,形成心形图案。
四、实验结果经过实验,我们成功搭建了一个心形流水灯,并通过Arduino程序控制LED灯珠按照心形图案流动。
当灯珠流动时,形成一个明亮的心形图案,给人一种浪漫和温馨的感觉。
五、实验分析心形流水灯的制作原理是通过控制LED灯珠的亮灭和流动顺序,形成一个心形图案。
通过Arduino开发板和编程软件,我们可以方便地控制LED灯珠的亮灭和流动,实现心形流水灯的效果。
在实验过程中,我们还可以对实验进行一些改进和扩展。
例如,可以增加更多LED灯珠,以增加心形图案的亮度和效果。
51单片机爱心流水灯原理及制作
51单片机爱心流水灯原理及制作爱心流水灯是一种常见的电子制作项目,它利用51单片机控制LED灯的亮灭顺序,形成一个动态的爱心图案。
下面将详细介绍爱心流水灯的原理及制作过程。
一、原理介绍1. 51单片机:51单片机是一种常用的微控制器,具有较强的控制能力和广泛的应用领域。
2. LED灯:LED灯是一种半导体发光器件,具有低功耗、长寿命和丰富的颜色选择等特点。
3. 流水灯原理:流水灯是利用多个LED灯按照一定的顺序依次亮灭,形成一个动态的流动效果。
二、制作材料准备1. 51单片机开发板:用于编写和烧录控制程序。
2. LED灯:选择红色LED灯,数量根据实际需要确定。
3. 电阻:用于限流,根据LED灯的工作电流和电压确定合适的电阻值。
4. 连接线:用于连接单片机和LED灯。
三、制作步骤1. 连接电路:将LED灯按照心形的形状连接在面包板上,每个LED灯之间通过连接线连接。
2. 连接单片机:将51单片机开发板与面包板上的电路连接,确保每个LED灯的正极连接到单片机的输出引脚。
3. 编写程序:使用C语言编写控制LED灯亮灭的程序,并将程序烧录到51单片机中。
4. 供电测试:将电路连接到电源上,通过控制程序使LED灯按照设定的顺序亮灭,观察是否形成了爱心流水灯效果。
5. 优化调整:根据实际效果对程序进行优化和调整,使得爱心流水灯效果更加流畅和美观。
四、注意事项1. 电路连接:在连接LED灯的过程中,注意正负极的连接,确保LED灯正极连接到单片机的输出引脚。
2. 电阻选择:根据LED灯的工作电流和电压确定合适的电阻值,以保护LED 灯不受过电流的损坏。
3. 程序编写:编写程序时,注意控制LED灯的亮灭顺序和时间间隔,以达到预期的流水灯效果。
4. 安全用电:在进行供电测试时,确保使用稳定可靠的电源,并注意电路的绝缘和防触电措施。
五、扩展应用1. 调节亮度:通过调整LED灯的亮度,可以改变爱心流水灯的效果,使其更加柔和或明亮。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电路原理图:原件清单:1、51单片机x1、40Pin 座x12、LED x32(建议用5mm 七彩的)3、电阻470Ωx334、晶振12MHz x15、10uf 电解电容x1、谐振瓷片电容30pf x26·其他的可以看自己的爱好去加7、其实也可以不用那么多的电阻,用几个排阻就OK了。
~效果展示:作品程序:#include<>#define uchar unsigned char;uchar flag=200;///////////////////////////////////////////////////////////////////////uchar code Tab1[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xFF};//暗中左移向下uchar code Tab2[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF};//暗中右移向上uchar code Tab3[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00};//亮中左移向下uchar code Tab4[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x00};//亮中右移向上uchar code Tab11[]={0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00,0xff};//暗中左移向下uchar code Tab22[]={0x7F,0x3F,0x1F,0x0F,0x07,0x03,0x01,0x00,0xff};////////////////////////////////////////////////////////////////////uchar code Tab33[]={0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF};;uchar code Tab44[]={0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xFF};uchar code Tab55[]={0x08,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff};uchar code Tab5[]={0x00,0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xff};uchar code Tab6[]={0x00,0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F,0xff}; uchar code Tab7[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; uchar code Tab8[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};////////////////////////////////////////////////////////////////void shansuo();void xl();///////////////////////////////////////////////////////////////}void delay(void){unsigned char m,n;for(m=0;m<flag;m++)for(n=0;n<250;n++);}///////////////////////////////////void hy1(void) //点亮状态逆时针旋转90度(一个一个灭){.unsigned char i;for(i=0;i<8;i++){P0=Tab11[i];P1=Tab22[i];P2=Tab11[i];P3=Tab22[i];delay();}for(i=0;i<8;i++){P0=Tab44[i];P1=Tab55[i];!P2=Tab44[i];P3=Tab55[i];delay();}}///////////////////////////////////////////void hy2(void) //暗中逆时针转360。
(一个一个点亮){unsigned char i;for(flag=250;flag>0;flag=flag-50){:P0=0xff;P1=0xff;P2=0xff;P3=0xff;for(i=0;i<8;i++){P0=Tab11[i];delay();}for(i=0;i<8;i++){P2=Tab11[i];delay();?}for(i=0;i<8;i++){P3=Tab22[i];delay();}for(i=0;i<8;i++){P1=Tab22[i];delay();(}}flag=250;}////////////////////////////////////////////////void hy3(void) //点亮中逆时针转360°(一个一个灭){unsigned char i;flag=50;P0=0x00;P1=0x00;P2=0x00;P3=0x00;"for(i=0;i<8;i++){P0=Tab44[i];delay();}for(i=0;i<8;i++){P2=Tab44[i];delay();}、for(i=0;i<8;i++){P3=Tab33[i];delay();}for(i=0;i<8;i++){P1=Tab33[i];delay();}-flag=150;}///////////////////////////////////////////////////void hy4(void) //点亮状态顺时针旋转90度(一个一个灭){unsigned char i;for(i=0;i<8;i++){P1=Tab11[i];P0=Tab22[i];P3=Tab11[i];P2=Tab22[i];)delay();}for(i=0;i<9;i++){P1=Tab6[i];P0=Tab5[i];P3=Tab6[i];P2=Tab5[i];delay();}}/////////////////////////////////////////!void hy2_1(void) //暗中逆时针转90度。
(一个一个点亮){unsigned char i;flag=200;P0=0xff;P1=0xff;P2=0xff;P3=0xff;for(i=0;i<9;i++){P0=Tab11[i];delay();})flag=110;for(i=0;i<9;i++){P2=Tab11[i];delay();}flag=80;for(i=0;i<9;i++){P3=Tab22[i];、delay();}flag=80;for(i=0;i<9;i++){P1=Tab22[i];delay();}}////////////////////////////////////////////////¥void hy2_2(void) //暗中逆时针转180度。
(一个一个点亮){unsigned char i;P0=0xff;P1=0xff;P2=0xff;P3=0xff;for(i=0;i<8;i++){P0=Tab11[i];delay();}for(i=0;i<8;i++)—{P2=Tab11[i];delay();}P0=0xff;P2=0xff;for(i=0;i<8;i++){P3=Tab22[i];delay();}#for(i=0;i<8;i++){P1=Tab22[i];delay();}P1=0xff;P3=0xff;}///////////////////////////////////////////////////void hy2_3(void) //暗中向下180。
(一个一个点亮){>unsigned char i;P0=0xff;P1=0xff;P2=0xff;P3=0xff;for(i=0;i<8;i++){P0=Tab11[i];P1=Tab11[i];delay();}for(i=0;i<8;i++){#P2=Tab11[i];P3=Tab11[i];delay();}///////////////////////flag=100;for(i=0;i<8;i++){P2=Tab33[i];P3=Tab33[i];*delay();}for(i=0;i<8;i++){P0=Tab33[i];P1=Tab33[i];delay();flag=200;}},///////////////////////////////////////////////////void hy2_4(void) //暗中逆时针转360。
(一个一个点亮){unsigned char i;P0=0xff;P1=0xff;P2=0xff;P3=0xff;for(i=0;i<8;i++){P0=Tab11[i];P3=Tab22[i];delay();!}for(i=0;i<8;i++){P2=Tab11[i];P1=Tab22[i];delay();}///////////////////////flag=100;for(i=0;i<8;i++)]{P0=Tab44[i];P3=Tab5[i];delay();}for(i=0;i<8;i++){P2=Tab44[i];P1=Tab5[i];delay();?}flag=200;}///////////////////////////////////void hy5(void) //先向下伸展,然后向上伸展逐渐点亮{unsigned char i;for(i=0;i<8;i++)《{P0=Tab8[i];P1=Tab8[i];delay();}P0=0xff;P1=0xff;for(i=0;i<8;i++){P2=Tab8[i];》P3=Tab8[i];delay();}P2=0xff;P3=0xff;for(i=0;i<8;i++){P2=Tab7[i];P3=Tab7[i];delay();}}P2=0xff;P3=0xff;for(i=0;i<8;i++){P0=Tab7[i];P1=Tab7[i];delay();}P0=0xff;\P1=0xff;}///////////////////////////// void jr(void)//聚拢{unsigned char i;for(i=0;i<9;i++) //8位控制码{P0=Tab1[i];P1=Tab1[i];P2=Tab2[i];P3=Tab2[i]; 【delay();}for(i=0;i<9;i++)P0=Tab2[i];P1=Tab2[i];P2=Tab1[i];P3=Tab1[i];delay();}///////////////////////////for(i=0;i<9;i++)({P0=Tab1[i];P1=Tab1[i];P2=Tab2[i];P3=Tab2[i];delay();}for(i=0;i<9;i++){P0=Tab2[i];P1=Tab2[i];P2=Tab1[i];P3=Tab1[i];delay();]}xl(); //星星眨眼xl(); //星星眨眼///////////////////////////for(i=0;i<9;i++){P0=Tab3[i]; P1=Tab3[i];P2=Tab4[i]; P3=Tab4[i];delay();}?for(i=0;i<9;i++){P0=Tab4[i];P1=Tab4[i];P2=Tab3[i];P3=Tab4[i];delay();}//////////////////////////////// for(i=0;i<9;i++){P0=Tab1[i];P1=Tab1[i]; ]P2=Tab2[i]; P3=Tab2[i];delay();}for(i=0;i<9;i++){P0=Tab4[i];P1=Tab4[i];P2=Tab3[i];P3=Tab3[i];delay();}~/////////////////////////////for(i=0;i<9;i++){P0=Tab3[i]; P1=Tab3[i];P2=Tab4[i];P3=Tab4[i];delay();}for(i=0;i<9;i++){P0=Tab2[i];P1=Tab2[i];—P2=Tab1[i];P3=Tab1[i];delay();}}//////////////////////////////////// void azzy(void) //暗中向下{unsigned char i;flag=200;for(i=0;i<8;i++):{P2=0xff;P3=0xff;P1=Tab1[i];P0=Tab1[i];delay();}for(i=0;i<9;i++){P1=0xff;P0=0xff;P2=Tab1[i];P3=Tab1[i];delay();:}}/////////////////////////////////void azyy(void) //暗中you移{unsigned char i;for(i=0;i<8;i++){P0=0xff;P1=0xff;P2=Tab2[i];P3=Tab2[i];·delay();}for(i=0;i<9;i++){P0=Tab2[i];P1=Tab2[i];delay();}}////////////////////////////////// void led_flow1(void)}{unsigned char i;for(i=0;i<9;i++){P2=0;P3=0;P1=Tab3[i];P0=Tab3[i];delay();}for(i=0;i<9;i++){;P2=Tab3[i];P3=Tab3[i];delay();}}/////////////////////////////////// void lzyy(void) //亮中右移{unsigned char i;for(i=0;i<9;i++){。