流水灯控制实验报告及程序

合集下载

流水灯实验报告总结

流水灯实验报告总结

流水灯实验报告总结一、实验目的本次流水灯实验的主要目的是通过实际操作,深入理解数字电路中时序逻辑电路的工作原理,掌握基本的硬件电路设计和编程方法,提高我们对电子电路的实践操作能力和问题解决能力。

二、实验原理流水灯是通过控制一系列发光二极管(LED)依次点亮和熄灭,从而产生一种流动的视觉效果。

其实现的核心原理是利用计数器和译码器来控制 LED 的亮灭状态。

在数字电路中,计数器可以对输入的时钟脉冲进行计数,从而产生不同的计数值。

译码器则将计数器输出的计数值转换为对应的控制信号,使得相应的 LED 点亮或熄灭。

例如,使用常见的 74LS161 四位二进制同步计数器和 74LS138 三线八线译码器,可以构建一个简单的八路流水灯电路。

计数器在时钟脉冲的驱动下不断计数,译码器根据计数器的输出值依次选通不同的输出端口,从而实现 LED 的顺序点亮。

三、实验设备及材料1、数字电路实验箱2、 74LS161 计数器芯片3、 74LS138 译码器芯片4、发光二极管(LED)若干5、电阻、电容等基本电子元件6、杜邦线若干7、数字万用表8、示波器四、实验步骤(一)电路设计1、根据实验原理,在实验箱上规划好芯片的布局和连线方式。

2、使用杜邦线将计数器、译码器和 LED 等元件按照设计好的电路连接起来。

3、注意连接的正确性,避免短路和断路现象。

(二)硬件搭建1、仔细对照电路设计图,将芯片插入实验箱的相应插槽中。

2、确保芯片引脚与插槽接触良好,无松动现象。

(三)编程与调试1、使用数字电路实验箱提供的编程工具,对计数器和译码器进行编程设置。

2、例如,设置计数器的计数模式、初始值等参数。

3、打开电源,观察 LED 的亮灭情况。

4、如果流水灯效果不符合预期,使用数字万用表和示波器等工具检测电路中的信号和电压,排查故障。

五、实验中遇到的问题及解决方法(一)LED 不亮1、问题描述:接通电源后,所有 LED 均不亮。

2、排查过程:首先检查电源是否正常,然后使用万用表测量芯片引脚的电压,发现计数器芯片没有正常工作。

流水灯实验报告

流水灯实验报告

流水灯实验报告实验目的,通过搭建流水灯电路,了解流水灯的工作原理,并掌握基本的电路连接方法和元器件的使用。

实验仪器与设备,LED灯、电阻、导线、面包板、电源等。

实验原理,流水灯是一种常见的LED灯效应,通过控制LED灯的亮灭顺序,形成灯光流动的效果。

在电路连接方面,我们需要使用电阻来限制LED灯的电流,以保护LED灯不受损坏。

实验步骤:1. 将LED灯和电阻连接到面包板上,按照电路图连接好各个元器件。

2. 将面包板连接到电源上,注意接线的正确性和稳定性。

3. 打开电源,观察LED灯的亮灭顺序,确认流水灯效果是否正常。

实验结果与分析:经过实验,我们成功搭建了流水灯电路,并且观察到LED灯按照一定的顺序亮灭,形成了流水灯的效果。

这说明电路连接正确,元器件工作正常。

在实验过程中,我们发现电阻的作用是非常重要的,它可以限制LED灯的电流,防止LED灯受损。

同时,电源的稳定性也对流水灯的效果有着重要的影响,稳定的电源可以保证LED灯的正常工作。

实验总结:通过本次实验,我们对流水灯的工作原理有了更深入的了解,也掌握了搭建流水灯电路的基本方法。

在今后的学习和实践中,我们可以运用这些知识,进行更多有趣的电路搭建和实验。

实验中还需要注意安全问题,避免短路和触电等意外情况的发生。

在实验过程中,要严格按照操作规程进行,确保实验的顺利进行。

最后,希望通过这次实验,大家能够对电路连接和LED灯效应有更深入的理解,为今后的学习和科研打下坚实的基础。

结语,本次实验结束,谢谢大家的参与和配合,希望大家能够从中收获知识,不断提高自己的实验能力和动手能力。

实验三流水灯实验(io口和定时器实验)

实验三流水灯实验(io口和定时器实验)

实验三流水灯实验(I/O口和定时器实验)一、实验目的1.学会单片机I/O口的使用方法和定时器的使用方法;2.掌握延时子程序的编程方法、内部中断服务子程序的编程方法;3.学会使用I/O口控制LED灯的应用程序设计。

二、实验内容1.控制单片机P1口输出,使LED1~LED8右循环轮流点亮(即右流水),间隔时间为100毫秒。

2.控制单片机P1口输出,使LED1~LED8左循环轮流点亮(即左流水),间隔时间为100毫秒。

3.使用K1开关控制上面LED灯的两种循环状态交替进行;4. 用定时器使P1口输出周期为100ms的方波,使LED闪烁。

5.使用定时器定时,使LED灯的两种循环状态自动交替,每一种状态持续1.6秒钟(选作)。

三、实验方法和步骤1.硬件电路设计使用实验仪上的E1、E5和E7模块电路,把E1区的JP1(单片机的P1口)和E5区的8针接口L1~L8(LED的驱动芯片74HC245的输入端)连接起来,P1口就可以控制LED 灯了。

当P1口上输出低电平“0”时,LED灯亮,反之,LED灯灭。

E7区的K1开关可以接单片机P3.0口,用P3.0口读取K1开关的控制信号,根据K1开关的状态(置“1”还是置“0”),来决定LED进行左流水还是右流水。

综上,画出实验电路原理图。

2.程序设计实验1和实验2程序流程图如图3-1实验3程序流程图如图3-2所示。

图3-1 实验1,2程序流程图图3-2 实验3程序流程图实验4程序流程图如图3-3,3-4所示。

实验5程序流程图如图3-5,3-6所示。

图3-5 实验5主程序流程图图3-6 定时器中断服务子程序流程图图3-4 定时器中断服务子程序流程图图3-3 实验4主程序流程图编程要点:(1)Pl,P3口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。

例如:MOV P1,A; P1口做输出MOV P1,#0FFHMOV A,P1;P1口做输入SETB P3.0MOV C,P3.1;从P3.1口读入数据(2)每个端口对应着一个寄存器,例:P1→90H(P1寄存器地址);P3→B0H(P3寄存器地址);寄存器的每一位对应着一个引脚,例:B0H.0→P3.0(3)对寄存器写入“0”、“1”,对应的外部引脚则输出“低电平”、“高电平”。

流水灯实验报告

流水灯实验报告

实验一流水灯实验一、实验目的1)简单I/O引脚的输出2)掌握软件延时编程方法3)简单按键输入捕获判断二、实验实现的功能1)开机时点亮12发光二极管, 闪烁三下2)按照顺时针循环依次点亮发光二极管3)通过按键将发光二极管的显示由顺时针改为逆时针方式三、系统硬件设计单片机STC10F08XE 1片发光二极管led 红4个黄4个绿4个按键6个复位电路时钟电路如下图所示:四、系统软件设计#include<reg51.h>sbit L1=P0^5; sbit L2=P0^6; sbit L3=P0^7; void Delay(void){unsigned char i,j,k;for(i=10;i>0;i--)for(j=132;j>0;j--)for(k=150;k>0;k--); }Scan_Key(){ unsigned char FLAG=0;unsigned char n;n=(L1==0)||(L2==0)||(L3==0);if(n) { FLAG=1;}return FLAG; }main(){ unsigned char y,n,s=0,b=1,m=0;unsigned char c=1;unsigned char a[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char h[]={0xff,0x38,0x34,0x2f,0x1f};n=Scan_Key(); for(y=0;y<3;y++){ P2=0; P3=0; Delay(); Delay(); Delay();P2=0xff; P3=0xff; Delay(); Delay(); Delay(); }while(1) { while(1){ m=m+n; P3=0x3f; while(1){ for(;b<9;b++){ n=Scan_Key(); m=m+n;if((P3==0x3f)&&(m%2==0)){P2=a[b];Delay();}else { P2=0xff;break; }if(m%2==0) c=1; P2=0xff; }for(;c<5;c++){n=Scan_Key(); m=m+n;if((P2==0xff)&&(m%2==0)){ P3=h[c];Delay();}else { P3=0x3f;break;} }if(m%2==0) b=1; break; }if(m%2==1) break; }while(1){ for(;b>0;b--){n=Scan_Key(); m=m+n;if((P3==0x3f)&&(m%2==1)){P2=a[b];Delay(); } else{P2=0xff;break;} P2=0xff; }if(m%2==1) c=4; for(;c>0;c--){ n=Scan_Key(); m=m+n;if((P2==0xff)&&(m%2==1)){ P3=h[c]; Delay();}else { P3=0x3f;break;} P3=0x3f; }if(m%2==0) break;if(m%2==1) b=8; } } }五、实验过程中遇到的问题及解决方法问题1: 如何实现顺、逆时针依次点亮流水灯?解决: 利用循环右移_cror_(m,1)和循环左移_crol_(n,1)依次点亮。

流水灯的实验报告

流水灯的实验报告

流水灯的实验报告流水灯的实验报告引言:流水灯是一种常见的电子元件,它通过控制电流的流动,使灯光依次在一组灯泡之间流动,形成一种流水般的效果。

在本次实验中,我们将探索流水灯的工作原理,并通过自己动手搭建电路,观察流水灯的效果。

实验目的:1. 了解流水灯的工作原理;2. 学习使用电子元件搭建电路;3. 观察流水灯的效果。

实验材料:1. 流水灯电路板;2. 线缆;3. 电源;4. 灯泡。

实验步骤:1. 将流水灯电路板连接到电源上,确保电路板的正负极正确连接;2. 将灯泡依次连接到电路板上,确保灯泡的极性正确;3. 打开电源,观察流水灯的效果。

实验结果:当电源打开后,流水灯开始工作。

灯泡依次亮起,然后熄灭,再亮起下一盏灯泡,如此循环。

整个流水灯的效果就像水流般流动,非常美观。

实验分析:流水灯的实现原理是通过控制电流的流动方向和路径来实现的。

在流水灯电路板上,灯泡被连接成一条线,电流从一个灯泡流向下一个灯泡,依次循环。

每个灯泡都有一个开关,控制灯泡的亮灭。

当电流通过一个灯泡时,该灯泡亮起,当电流流向下一个灯泡时,前一个灯泡熄灭,下一个灯泡亮起,如此循环,形成流水灯的效果。

流水灯的原理与实际生活中的流水有些类似。

我们可以将每个灯泡看作是水流中的一个水滴,电流的流动就像水流一样,从一个水滴流向下一个水滴。

每个灯泡的亮灭就像水滴的存在和消失,整个流水灯的效果就像水流般流动。

流水灯不仅在实验中有应用,也在现实生活中有广泛的应用。

例如,在舞台演出中,流水灯常常被用来营造出动感和变幻的效果。

在夜店、酒吧等娱乐场所,流水灯也是常见的装饰元素之一。

流水灯的效果不仅美观,还能吸引人们的注意力,增加场景的氛围。

实验总结:通过本次实验,我们了解了流水灯的工作原理,并亲自搭建了一个流水灯电路。

实验结果显示,流水灯的效果非常美观,给人一种流动的感觉。

流水灯不仅在实验中有应用,也在现实生活中有广泛的应用。

通过这个实验,我们不仅学到了电子元件的使用方法,还培养了动手实践的能力,提高了对电路原理的理解。

流水灯实验报告

流水灯实验报告

流水灯实验报告流水灯实验报告引言:流水灯是一种常见的电子实验,通过控制电路中的LED灯的亮灭顺序,形成灯光在一组LED灯之间流动的效果。

本文将介绍流水灯实验的背景、实验目的、实验步骤、实验结果和实验总结。

一、实验背景:流水灯是电子电路实验中的经典实验之一,它通过控制LED灯的亮灭顺序,展示了数字电路中的时序控制技术。

流水灯实验不仅能够培养学生的动手能力,还能够加深对数字电路原理的理解。

二、实验目的:1. 学习和掌握流水灯电路的基本原理;2. 熟悉数字电路中的时序控制技术;3. 提高实验操作和电路调试能力。

三、实验器材和元器件:1. Arduino开发板;2. 电阻、电容等基本元器件;3. LED灯。

四、实验步骤:1. 搭建电路:将Arduino开发板与电阻、电容和LED灯连接起来,按照流水灯电路的原理图进行连接。

2. 编写程序:使用Arduino开发环境,编写控制LED灯流动的程序。

程序中需要设置LED灯的亮灭时间和顺序。

3. 上传程序:将编写好的程序上传到Arduino开发板中。

4. 调试电路:通过观察LED灯的亮灭情况,检查电路连接是否正确。

如有问题,及时调整电路连接。

5. 运行实验:将Arduino开发板上电,观察LED灯按照预设的顺序流动。

五、实验结果:经过实验,LED灯按照预设的顺序流动,形成了流水灯的效果。

LED灯的亮灭时间和顺序可以根据程序的编写进行调整。

实验结果符合预期,实验成功。

六、实验总结:通过本次流水灯实验,我深入了解了数字电路中的时序控制技术,并通过实际操作提高了自己的动手能力和电路调试能力。

流水灯实验是一种理论联系实际的有效方式,通过实验可以更好地理解数字电路的原理和工作方式。

在实验过程中,我遇到了一些困难,例如电路连接错误、程序编写有误等。

但通过仔细检查和调试,最终解决了这些问题。

这个过程让我学会了耐心和细致,也增强了我的问题解决能力。

总之,流水灯实验是一种基础且有趣的电子实验,通过实验可以深入理解数字电路中的时序控制技术。

实训报告单片机流水灯

实训报告单片机流水灯

一、实验目的1. 熟悉单片机的基本原理和组成,掌握51单片机的编程方法。

2. 理解单片机I/O口的使用,学会利用单片机控制LED灯的流水灯效果。

3. 提高动手实践能力,培养团队协作精神。

二、实验环境1. 实验设备:51单片机开发板、LED灯、面包板、电源、连接线等。

2. 实验软件:Proteus仿真软件、Keil uVision5集成开发环境。

三、实验原理流水灯实验是单片机入门级实验之一,通过控制单片机的I/O口输出高低电平,使LED灯依次点亮,形成流水灯效果。

实验中,利用单片机的定时器产生定时中断,每隔一定时间改变I/O口的输出状态,实现LED灯的流水灯效果。

四、实验步骤1. 打开Proteus软件,新建一个工程项目,添加51单片机开发板和LED灯等元件,绘制电路图。

2. 打开Keil uVision5,新建一个C51工程项目,选择对应的单片机型号。

3. 编写程序:(1)初始化I/O口:将P0口设置为输出模式,将P1口设置为输出模式。

(2)设置定时器:选择合适的定时器,设置定时时间,使其产生定时中断。

(3)编写中断服务程序:在中断服务程序中,改变I/O口的输出状态,实现LED灯的流水灯效果。

(4)编写主程序:在主程序中,启动定时器,进入中断服务程序。

4. 编译程序,生成HEX文件。

5. 将生成的HEX文件导入Proteus软件,运行仿真实验。

6. 观察实验现象,检查LED灯的流水灯效果是否正常。

五、实验结果与分析1. 实验现象:在Proteus软件中,LED灯依次点亮,形成流水灯效果。

2. 实验分析:通过设置定时器,每隔一定时间改变I/O口的输出状态,实现LED 灯的流水灯效果。

实验过程中,可以调整定时器的定时时间,改变流水灯的速度。

六、实验总结1. 本实验使我们对单片机的基本原理和组成有了更深入的了解。

2. 通过编写程序,掌握了51单片机的编程方法,提高了编程能力。

3. 实验过程中,我们学会了利用单片机控制LED灯,实现了流水灯效果。

最新流水灯控制实验报告

最新流水灯控制实验报告

最新流水灯控制实验报告实验目的:本实验旨在通过设计和实现一个流水灯控制系统,加深对数字电路和微控制器编程的理解。

通过实验,学习如何使用微控制器的GPIO(通用输入输出)引脚来控制LED灯的亮灭,以及如何编写程序实现流水灯效果。

实验设备和材料:1. 微控制器开发板(如Arduino UNO)2. LED灯条或LED灯珠(数量根据实验要求确定)3. 电阻(用于保护LED,防止电流过大)4. 面包板或PCB板(用于搭建电路)5. 杜邦线(用于连接微控制器和LED)6. 电源适配器(为微控制器和LED提供电源)7. 相关软件(如Arduino IDE)实验步骤:1. 根据LED的额定电流和电压选择合适的电阻,计算出限流电阻的阻值。

2. 将LED灯珠通过限流电阻依次连接到微控制器的数字输出引脚。

3. 使用杜邦线将LED电路连接到微控制器的相应GPIO引脚。

4. 编写微控制器程序,控制每个GPIO引脚的高低电平,实现LED依次点亮和熄灭的效果。

5. 调整程序中的延时参数,以达到理想的流水灯效果。

6. 将编写的程序通过Arduino IDE上传到微控制器中。

7. 观察实验结果,确保所有LED灯能够按照预期进行流水式点亮。

实验结果:实验成功实现了流水灯效果。

通过调整程序中的延时参数,流水灯的速度可以在一定范围内调节。

所有LED灯均能稳定工作,没有出现闪烁或过热现象。

实验结论:通过本次实验,我们验证了微控制器控制GPIO引脚输出高低电平的基本功能,并且通过编程实现了流水灯的动态效果。

实验过程中,对电路设计和编程能力有了进一步的提高,同时也加深了对电子元件特性的理解。

流水灯控制的实验报告

流水灯控制的实验报告

流水灯控制的实验报告
《流水灯控制的实验报告》
实验目的:通过对流水灯控制的实验,掌握流水灯的原理和实现方法,加深对
电子电路控制的理解。

实验设备:Arduino开发板、LED灯、面包板、导线等。

实验步骤:
1. 连接电路:将LED灯连接到Arduino开发板的数字引脚上,通过面包板和导
线连接。

2. 编写代码:使用Arduino IDE编写代码,实现流水灯的控制逻辑。

代码中需
要包括LED灯的引脚定义、控制流水灯的循环逻辑等。

3. 上传程序:将编写好的代码上传到Arduino开发板上,进行实际的控制操作。

4. 测试效果:观察LED灯的亮灭情况,检验流水灯控制的效果。

实验结果:通过实验,成功实现了对流水灯的控制。

LED灯按照设定的流水灯
效果进行亮灭,实现了预期的控制效果。

实验分析:流水灯控制实验是一种常见的电子电路控制实验,通过这个实验可
以加深对Arduino开发板以及LED灯的控制原理的理解。

同时,通过编写代码
实现流水灯的控制,也可以提高对编程逻辑的理解和掌握。

实验总结:通过本次实验,我对流水灯的控制原理和实现方法有了更深入的了解,同时也加深了对电子电路控制和编程的理解。

这对我今后的学习和实践都
有很大的帮助。

结语:流水灯控制的实验报告告诉了我们,通过实际操作和实验,我们可以更
深入地理解和掌握电子电路控制的原理和方法。

这对我们的学习和实践都有着
重要的意义。

流水灯控制的实验报告

流水灯控制的实验报告

一、实验目的1. 熟悉流水灯控制电路的原理和设计方法;2. 掌握使用单片机控制LED灯流水灯的方法;3. 培养动手实践能力和创新意识。

二、实验原理流水灯是一种常见的LED灯控制方式,通过单片机对LED灯进行控制,使LED灯按照一定的规律依次点亮和熄灭,形成动态的流水效果。

本实验采用51单片机作为控制器,通过编程实现对LED灯流水灯的控制。

流水灯的控制原理如下:1. 将LED灯连接到单片机的P0口,每个LED灯对应一个P0口的引脚;2. 编写程序,使单片机依次对P0口的引脚进行赋值,从而控制LED灯的亮灭;3. 通过延时函数实现LED灯的流水效果。

三、实验器材1. 51单片机实验板;2. 8个LED灯;3. 电阻(阻值约为220Ω);4. 连接线;5. 编程器;6. 示波器(可选)。

四、实验步骤1. 将LED灯按照电路图连接到实验板上,确保每个LED灯的正极连接到单片机的P0口对应引脚,负极连接到GND;2. 编写程序,实现LED灯流水灯的控制。

程序如下:```c#include <reg51.h>void delay(unsigned int ms) {unsigned int i, j;for (i = 0; i < ms; i++)for (j = 0; j < 120; j++); }void main() {while (1) {P0 = 0x01; // 第一个LED灯亮 delay(500);P0 = 0x02; // 第二个LED灯亮 delay(500);P0 = 0x04; // 第三个LED灯亮 delay(500);P0 = 0x08; // 第四个LED灯亮 delay(500);P0 = 0x10; // 第五个LED灯亮 delay(500);P0 = 0x20; // 第六个LED灯亮 delay(500);P0 = 0x40; // 第七个LED灯亮 delay(500);P0 = 0x80; // 第八个LED灯亮delay(500);P0 = 0xFF; // 所有LED灯亮delay(500);P0 = 0x00; // 所有LED灯灭delay(500);}}```3. 将编写好的程序烧录到单片机中,并上电运行;4. 观察LED灯流水灯的效果,分析程序运行过程。

音乐流水灯实验报告(3篇)

音乐流水灯实验报告(3篇)

一、实验背景随着科技的不断发展,LED灯的应用越来越广泛。

LED流水灯作为一种新型照明设备,具有节能、环保、美观等特点。

为了进一步丰富LED灯的应用,本实验旨在设计一款音乐流水灯,使LED灯的亮度、颜色和闪烁模式随音乐节奏变化,达到一种动态、立体的视觉效果。

二、实验目的1. 了解音乐流水灯的工作原理和设计方法。

2. 掌握音乐流水灯电路的搭建和调试方法。

3. 熟悉音乐信号处理技术,实现音乐与LED流水灯的同步。

三、实验原理音乐流水灯的原理是利用音乐信号处理技术,将音乐信号转换为控制LED灯的亮度、颜色和闪烁模式的信号。

具体步骤如下:1. 将音乐信号输入到音乐处理器中。

2. 音乐处理器对音乐信号进行采样、滤波、放大等处理,提取出音乐信号的频率、振幅等特征。

3. 根据音乐信号的频率和振幅,控制LED灯的亮度、颜色和闪烁模式。

四、实验器材1. Arduino UNO开发板2. LED灯珠(数量根据实际需求而定)3. 电阻(阻值根据LED灯珠的额定电流而定)4. 面包板5. 音频信号发生器6. 万用表7. 烧录器五、实验步骤1. 搭建音乐流水灯电路:将Arduino UNO开发板、LED灯珠、电阻、面包板等元件连接在一起,形成音乐流水灯电路。

2. 编写程序:使用Arduino IDE编写程序,实现音乐信号处理和LED灯控制功能。

3. 烧录程序:将编写好的程序烧录到Arduino UNO开发板中。

4. 连接音频信号发生器:将音频信号发生器的输出端连接到Arduino UNO开发板的A0引脚。

5. 连接耳机:将耳机连接到Arduino UNO开发板的3.5mm音频接口。

6. 调试电路:检查电路连接是否正确,确保电路工作正常。

7. 播放音乐:播放音乐,观察LED灯的亮度、颜色和闪烁模式是否随音乐节奏变化。

六、实验结果与分析1. 实验结果:通过实验,成功实现了音乐流水灯的功能。

当播放音乐时,LED灯的亮度、颜色和闪烁模式会随音乐节奏变化,达到一种动态、立体的视觉效果。

流水灯控制实验报告

流水灯控制实验报告

流水灯控制实验报告一、引言流水灯是一种常见的电子实验和电路设计项目,它通过控制一组LED灯的亮灭顺序和时间间隔来呈现出一种流动的效果。

本实验旨在通过搭建一个流水灯电路,学习并掌握流水灯的原理和控制方法。

二、实验原理1.流水灯电路的组成本实验采用的流水灯电路是由多个LED灯组成的,LED灯的正极与电源相连,负极通过电阻连接到单片机的输出端口。

通过控制单片机输出高低电平来控制LED灯的亮灭。

2.流水灯的工作原理流水灯电路通过单片机的输出端口控制LED灯的亮灭顺序和时间间隔,实现流动的效果。

在一个循环中,每个LED灯按顺序依次亮起,然后熄灭,接着下一个LED灯亮起,如此循环往复,形成了流水灯的效果。

三、实验器材和元件1.单片机:选用STC89C52RC型单片机;2. LED灯:选用红色5mm直径的共阳极LED灯4个;3.电阻:选用220Ω的电阻4个;4.面包板、导线等。

四、实验步骤1.连接电路将单片机、LED灯和电阻等元件按照电路图,通过面包板和导线连接起来。

2.编写程序使用C语言编写程序,在单片机上控制LED灯的亮灭顺序和时间间隔。

通过设置单片机输出端口的高低电平,控制LED灯的亮灭。

3.烧写程序将编好的程序通过编程器烧写到单片机中,使其能够执行程序。

4.测试实验将电路连接到电源,并接通电源。

观察LED灯的亮灭情况,检查流水灯效果是否符合预期。

五、实验结果分析经过反复测试,流水灯电路能够正常工作,LED灯按照预设的顺序亮灭,形成了流动的效果。

六、实验总结通过本次实验,我学习了流水灯电路的原理和控制方法,并成功搭建了一个流水灯电路。

通过编写程序,我掌握了如何通过单片机控制LED灯的亮灭。

在实验过程中,我深刻理解了流水灯电路的工作原理,培养了动手实践和问题解决的能力。

七、实验改进措施1.可以通过调整LED灯的亮灭顺序和时间间隔,改变流水灯的效果和速度;2.可以使用其他颜色的LED灯,增加流水灯的变化效果;3.可以将流水灯电路与其他电子元件结合,设计更复杂的电路和效果。

流水灯显示实验报告

流水灯显示实验报告

流水灯显示实验报告流水灯显示实验报告一、实验目的本实验旨在通过单片机控制LED灯的亮灭,实现流水灯的显示效果。

通过本实验,旨在巩固学生对单片机基本理论知识的理解,掌握流水灯显示的基本原理与设计方法,提高实践操作能力。

二、实验原理流水灯是一种常见的LED显示效果,通过控制LED灯的亮灭顺序和时间间隔,使LED灯以一定的速度逐次点亮或熄灭,形成流水般的效果。

本实验采用单片机控制LED灯的亮灭,通过编程实现流水灯的显示。

三、实验步骤1.准备实验材料(1)单片机开发板(2)LED灯若干(3)杜邦线若干(4)面包板(5)镊子、电烙铁等工具2.搭建硬件电路(1)将LED灯按照一定的顺序连接到单片机开发板的GPIO口上。

(2)使用杜邦线将电源连接到LED灯的正极和负极。

(3)连接单片机开发板与电脑的串口。

3.编写程序(1)打开单片机开发板的编程软件,如Keil uVision。

(2)编写程序代码,实现流水灯的显示效果。

程序代码包括初始化、延时、循环点亮和熄灭LED灯等部分。

(3)将程序代码下载到单片机开发板中。

4.调试与测试(1)打开电源,观察LED灯的亮灭情况,检查是否实现了流水灯效果。

(2)调整程序代码中的延时参数,改变LED灯的亮灭速度。

(3)检查程序代码中的语法错误和逻辑错误,确保程序的正确性。

四、实验结果与分析1.实验结果通过本次实验,我们成功地实现了流水灯的显示效果。

当电源接通后,LED灯按照设定的顺序逐次点亮或熄灭,形成流水般的效果。

同时,通过调整程序代码中的延时参数,我们还可以改变LED灯的亮灭速度。

2.结果分析本次实验的成功得益于正确的实验方法和步骤。

首先,我们准确地搭建了硬件电路,确保LED灯与单片机的连接正确;其次,我们合理地编写了程序代码,实现了流水灯的显示效果;最后,我们对实验结果进行了仔细的观察和调试,确保实验结果的正确性。

通过本次实验,我们不仅提高了实践操作能力,还巩固了对单片机基本理论知识的理解。

流水灯实验报告

流水灯实验报告

流水灯实验报告引言:流水灯实验是电子学基础课程中的一项重要实践,在学习数字电路与逻辑设计的过程中起着至关重要的作用。

通过实验可以加深对数字电路的理解,以及学会使用固定数量的电子元件来构建复杂的电路。

一、实验目的本次实验的目的是利用数字电路中的逻辑门电路和时序电路来实现一个流水灯。

通过流水灯的演示,学生们将能够理解和掌握多位二进制计数的原理以及基本的逻辑门的用途。

二、实验器材与方法1. 实验器材:- 逻辑门芯片(如与门、或门、非门)- 时钟芯片- 集成电路取线板- LED灯- 电压源2. 实验方法:a. 将逻辑门芯片、时钟芯片和LED灯插入集成电路取线板;b. 使用导线连接逻辑门的输入端和输出端;c. 调整电压源,给电路供电;d. 观察LED灯的亮灭情况,检查流水灯的效果。

三、实验过程与结果在实验过程中,我们选择了两种不同的方法来实现流水灯的效果,分别是基于与门电路和基于时钟芯片控制。

1. 基于与门电路的实现a. 首先,我们准备了四个与门芯片、一个非门芯片和一个LED灯。

b. 将四个与门芯片的输出依次与非门芯片的输入相连。

c. 通过控制与门芯片的输入,使得流水灯的效果能够正确实现。

d. 观察LED灯随着输入变化而灯亮的情况,确保实验成功。

2. 基于时钟芯片控制的实现a. 我们使用了一个时钟芯片、一个非门芯片和四个LED灯。

b. 将时钟芯片的输出连接到非门芯片的输入端。

c. 将非门芯片的输出分别连接到四个LED灯。

d. 通过控制时钟芯片的频率,我们可以实现流水灯效果。

通过以上实验,我们成功实现了基于与门电路和基于时钟芯片控制的流水灯效果。

通过这些实验我们可以得出以下结论:结论:1. 利用逻辑门芯片可以实现多位二进制计数,从而实现流水灯的效果;2. 时钟芯片的输入信号能够控制流水灯的亮灭情况,实现了流水灯的自动化效果;3. 实验过程中LED灯的亮灭情况与输入信号的变化是一一对应的,验证了实验的正确性。

单片机跑马灯(流水灯)控制实验报告

单片机跑马灯(流水灯)控制实验报告

单片机实验报告姓名: 学号:一、 实验实现功能:1:计数器功能2:流水灯二、 具体操作:1、计数器功能数码管的动态显示。

每按一次K2键计数器加1通过数码管显示出来,计数器可以实现从0计数到9999。

2、流水灯当在计数器模式下的时候按下K3键时程序进入跑马灯模式,8个小灯轮流点亮每次只点亮一个,间隔时间为50ms 。

三、 程序流程图开始 定时器T0 设置初值,启动定时器,打开中断复位 Key2按下 中断关闭 计数器模式 计数器加1 Key3按下 流水灯模式 数码管显示数字加1 跑马灯点亮间隔50ms Key1按下中断打开四、程序#include <reg51.h>typedef unsigned char uint8;typedef unsigned int uint16; //类型定义sbit P2_1 = P2^1;sbit P2_2 = P2^2;sbit P2_3 = P2^3;sbit P2_4 = P2^4; //位声明四个数码管开关sbit Key2 = P3^2;sbit Key3 = P3^3; //位声明2个按键K2和K3sbit Ledk = P2^0 ; //LED 开关void delay(uint16 i); //延时函数声明void refresh (); // 数码管刷新函数声明void liushuideng(); //流水灯函数声明uint8 number[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//数码管的真值表uint8 out[4] = {0}; // 数组变量uint16 counter=0; //用作计数器的变量uint16 Time_counter=0; //用作定时器的变量void main() //主函数{TMOD = 0x01; //定时器0,工作方式一TH0 = 0xFC;TL0 = 0x18; //定时器初值使每次循环为1msTR0 = 0; //定时器0开始作ET0 = 0; // 定时器中断关EA = 0; // 关中断while(1) //计数器模式{Ledk =1 ; //led开关关out[0]=number[counter%10]; //取个位out[1]=number[counter%100/10]; //十位out[2]=number[counter%1000/100]; //百位out[3]=number[counter/1000]; //千位if (!Key2) //计数器加1{++counter; //自加out[0]=number[counter%10]; //取个位out[1]=number[counter%100/10]; //十位out[2]=number[counter%1000/100]; //百位out[3]=number[counter/1000]; //千位while(!Key2) //等待键盘抬起refresh(); //刷新数码管}refresh(); //刷新数码管if (!Key3) // 进入跑马灯模式liushuideng();}} //主函数结束/*******************延时*************/void delay(uint16 i){uint8 j; // 定义局部变量for(i;i>0;i--) //循环i*240 次for(j=240;j>0;j--);}/************数码管刷新******************/void refresh (){uint8 j;for (j=0;j<4;j++) //四次循环刷新数码管{switch(j){case 0: P2_1=1;P2_2=1;P2_3=1;P2_4=0;break;case 1: P2_1=1;P2_2=1;P2_3=0;P2_4=1;break;case 2: P2_1=1;P2_2=0;P2_3=1;P2_4=1;break;case 3: P2_1=0;P2_2=1;P2_3=1;P2_4=1;break;//每次循环只选中一个数码管default:break;}P0 = out[j]; // 位选,给数码管送值delay (20); //延时消抖}}/*************定时器的中断服务函数**************/void Timer0_Overflow() interrupt 1 //定时器0溢出中断,这个语句1ms执行一次{TH0 = 0xFC;TL0 = 0x18; //每1ms重新赋定时器初值Time_counter++; //计数,看经过了几个1ms}/***********************流水灯子函数****************************/ void liushuideng(){uint8 j = 0 ; //定义局部变量P0 = 0xff; // 小灯全关TR0 = 1; //定时器1开始计时EA = 1; //中断开放ET0 = 1; //定时器0中断开while(1){Ledk = 0 ; //打开LED开关P2 = P2|0x1E; //关掉数码管if(50 == Time_counter) //50个毫秒{P0=~(1<<j++); //控制小灯Time_counter = 0; //清零开始下一次循环定时}if (8==j) //移完8次再重新移{j=0;}}}。

创意流水灯实验报告(3篇)

创意流水灯实验报告(3篇)

第1篇一、实验背景随着科技的不断发展,电子技术已经渗透到我们生活的方方面面。

其中,LED流水灯作为一种新型照明产品,因其节能、环保、色彩丰富等特点,在装饰照明、广告宣传等领域得到了广泛应用。

为了深入了解LED流水灯的工作原理,提高我们的动手实践能力,我们设计并完成了一项创意流水灯实验。

二、实验目的1. 了解LED流水灯的工作原理。

2. 掌握LED流水灯的电路连接方法。

3. 通过创意设计,提高LED流水灯的观赏性和实用性。

三、实验原理LED流水灯是通过将多个LED灯珠串联或并联,通过控制电路的通断来实现流水效果的。

实验中,我们采用PWM(脉冲宽度调制)技术来控制LED灯的亮度,从而实现流水灯的动态效果。

四、实验器材1. LED灯珠:红、绿、蓝各50颗2. 马达:1台3. 电阻:若干4. 线路板:1块5. 电源:9V直流电源6. 剪刀、胶带等辅助工具五、实验步骤1. 设计电路图:根据LED灯珠的参数,设计出合适的电路图,确保电路连接正确。

2. 制作电路板:按照电路图,将LED灯珠、电阻、马达等元器件焊接在电路板上。

3. 连接电源:将电路板与9V直流电源连接,确保电路板供电正常。

4. 制作流水灯外壳:根据设计要求,制作流水灯外壳,确保内部电路布局合理。

5. 测试流水灯效果:接通电源,观察LED灯珠的流水效果,检查电路是否正常工作。

6. 优化设计:根据实验效果,对流水灯的设计进行优化,提高观赏性和实用性。

六、实验结果与分析1. 实验结果:经过多次测试,我们成功制作出了一款具有流水效果的LED流水灯。

在实验过程中,LED灯珠的流水效果稳定,颜色鲜艳,马达运行正常。

2. 结果分析:通过本次实验,我们掌握了LED流水灯的工作原理和电路连接方法。

在实验过程中,我们了解到PWM技术在控制LED灯亮度方面的应用,以及马达在流水灯中的驱动作用。

3. 优化建议:为了提高流水灯的观赏性和实用性,我们可以在以下几个方面进行优化:(1)增加LED灯珠的种类和数量,丰富流水灯的色彩效果。

流水灯的实验报告

流水灯的实验报告

流水灯的实验报告流水灯的实验报告引言:流水灯是一种常见的电子实验装置,通过控制电流的开关,使得灯光在一串LED灯中依次流动,形成一种流动的效果。

本次实验旨在通过搭建流水灯电路并观察其工作原理,加深对电路原理的理解。

实验材料:1. LED灯:共计8个,颜色可根据实际情况而定。

2. 电阻:共计9个,阻值可根据实际情况而定。

3. 开关:1个,用于控制电流的开关。

4. 面包板:用于搭建电路。

5. 连接线:用于连接电路中的各个元件。

实验步骤:1. 将面包板放在平稳的桌面上,确保面包板上的连接孔没有损坏。

2. 将8个LED灯均匀地插入面包板上的连接孔中,注意将LED的正极连接到面包板上的正极线路,负极连接到负极线路。

3. 在每个LED灯的正极和负极之间插入一个电阻,以限制电流的流动。

4. 在面包板的一端插入一个开关,用于控制电流的开关。

5. 使用连接线将LED灯、电阻和开关依次连接起来,确保连接线的接触牢固。

6. 将实验电路连接到电源,注意正负极的连接。

7. 打开开关,观察LED灯的亮灭情况。

实验结果:在实验过程中,我们观察到以下现象:1. 当开关打开时,电流开始流动,第一个LED灯点亮。

2. 随着时间的推移,电流依次流过每个LED灯,使其依次点亮。

3. 当电流流过最后一个LED灯时,电流会重新回到第一个LED灯,循环往复。

实验分析:通过实验结果的观察,我们可以得出以下结论:1. 流水灯的工作原理是基于电流的流动和开关的控制。

2. 当电流通过一个LED灯时,LED灯会发光。

而当电流通过下一个LED灯时,前一个LED灯会熄灭。

3. 通过合理的电路设计和控制开关的开闭,可以实现LED灯的流动效果。

实验应用:流水灯作为一种简单的电子实验装置,具有广泛的应用前景:1. 教育领域:流水灯可以用于教学实验,帮助学生理解电路原理和开关控制。

2. 娱乐领域:流水灯可以作为装饰灯具,增加房间的氛围和趣味性。

3. 工业领域:流水灯可以应用于指示灯、广告灯箱等领域,起到提示和宣传的作用。

实验三 流水灯控制实验

实验三  流水灯控制实验

实验三流水灯控制实验一、实验目的1.熟练掌握单片机控制系统硬件电路的设计、测试;单片机监控程序的编写、调试及运行。

二、实验设备1.PC计算机;2.NEC全系列微控制器(单片机)开发工具EM/EZ-1系统;3.实验系统。

三、实验内容1.参考附录中的“LED灯控制电路原理图”及“实验DEMO程序”,编写并运行单片机监控程序,观察在实验板上实现对每个LED灯(LED1~LED12)的亮、灭控制。

2.编写程序实现流水灯功能(方案自行设计)。

四、实验要求1. 实验完成后,应请老师确认后再离开实验室,同时将实验报告写好,填写上班级和姓名后交实验教师。

2. 实验报告中要有完成实验内容2的实验步骤、过程、程序流程图、源程序代码清单、实验结果等内容,并对实验结果进行分析和总结。

1附录:1. LED灯控制电路原理图:2. LED灯控制单片机DEMO程序:#pragma sfrvoid delay( void ) /*软件延时函数*/{int i,j;for(i=0;i<=20000;i++)for(j=0;j<=200;j++);}void main( void ){/* initialize the port registers */P13 = 0x0; /*接在P130~P133上的LED灯熄灭*/P14 = 0x0; /*接在P140~P143上的LED灯熄灭*/P15 =0x0; /*接在P150~P153上的LED灯熄灭*//* initialize the mode registers */2PM13 = 0xf0; /*P00~P03为输出口*/PM14 = 0xf0; /*P20~P23为输出口*/PM15 = 0xf0; /*P50~P07为输出口*/while(1){P13 = 0x0f; /*接在P130~P133上的LED灯点亮*/ delay(); /*延时*/P13 = 0x0; /*接在P130~P133上的LED灯熄灭*/ P14 = 0x0f; /*接在P140~P143上的LED灯点亮*/ delay(); /*延时*/P14 = 0x0; /*接在P140~P143上的LED灯熄灭*/ P15 = 0x0f; /*接在P150~P153上的LED灯点亮*/ delay(); /*延时*/P5 = 0x0; /*接在P150~P153上的LED灯熄灭*/ }}3。

流水灯测试实验报告

流水灯测试实验报告

流水灯测试实验报告一、实验目的本实验旨在通过设计并搭建流水灯电路,并进行测试,验证电路设计的正确性和流水灯效果实现的可行性。

二、实验材料- Arduino开发板- 面包板- LED发光二极管- 杜邦线三、实验原理流水灯是一种常见的LED灯效,其通过一组LED灯依次点亮和熄灭,形成一个像水流般流动的效果。

本实验中,使用了Arduino开发板作为控制器,通过Arduino的数字IO口与LED发光二极管相连。

利用Arduino的高低电平输出和延时函数,我们可以控制LED的点亮和熄灭。

四、实验步骤1. 将Arduino开发板插入面包板的相应位置,并连接好电源。

2. 将LED发光二极管连接到面包板上,并与Arduino的数字IO口相连。

注意将正极连接到IO口,负极连接到GND。

3. 打开Arduino开发环境,新建一个项目。

4. 在项目中编写代码,利用Arduino的`digitalWrite()`函数控制IO口的高低电平,从而控制LED的点亮和熄灭。

代码示例如下:cint ledPin = 2; 定义LED灯所连接的IO口void setup() {pinMode(ledPin, OUTPUT); 将LED灯所连接的IO口设置为输出模式}void loop() {digitalWrite(ledPin, HIGH); 点亮LED灯delay(500); 延时500msdigitalWrite(ledPin, LOW); 熄灭LED灯delay(500); 延时500ms}5. 将Arduino开发板与计算机通过USB线连接,并上传代码到开发板中。

6. 测试LED灯是否按照预期效果点亮和熄灭。

若效果符合要求,则实验成功。

五、实验结果与分析经过实验,我们成功实现了流水灯的效果。

LED灯依次点亮和熄灭,形成了一个流动的效果。

通过调整延时函数的参数,我们可以改变LED灯点亮和熄灭的速度。

实验结果表明,所设计的电路和代码能够正确地控制LED灯的点亮和熄灭,实现了流水灯效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三流水灯控制实验
姓名专业通信工程学号成绩
一、实验目的
1.掌握Keil C51 软件与protues软件联合仿真调试的方法;
2.掌握如何使用程序与查表等方法实现流水效果;
3.掌握按键去抖原理及处理方法。

二、实验仪器与设备
1. 微机1台
2. Keil C51集成开发环境
3. Proteus仿真软件
三、实验内容
1.用Proteus设计一流水灯控制电路。

利用P1口控制8个发光二级管L1—L8。

P3.3口接一按
键K1。

参考电路如下图所示。

其中74LS240为八反响三态缓冲器/线驱动器。

2.用中断或查询方式编写程序,每按动一次K1键,演示不同的流水效果。

若用KEY表示按键的
次数,则其对应的流水效果如下:
① KEY=0: L1-L8全亮;
② KEY=1: L1-L8先全灭,然后自右向左单管点亮,如此循环;
③ KEY=2: L1-L8先全灭,然后自右向左依次点亮,如此循环;
④ KEY=3: L1-L8先全亮,然后自左向右依次熄灭,如此循环;
⑤ KEY=4: L1-L8先全灭,然后整体闪烁,如此循环;
⑥ KEY=5:自行设计效果。

以上移位及闪烁时间间隔均设置为0.3秒,按动5次按键后,再按键时,流水效果从头开始循环。

四、实验原理
1.按键去抖原理:通常按键所用的开关为机械弹性开关,当机械触点断开、闭合时,电压信号
波形如下图所示。

由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定的接通,在断开时也不会一下子断开。

因而在闭合及断开的瞬间均伴随有一连串的抖动。

抖动时间的长短由按键的机械特性决定,一般为5~10ms。

按键抖动会引起一次按键被误读多次。

为了确保CPU对键的一次闭合仅做一次处理,必须去除按键抖动。

在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。

按键的抖动,可用硬件或软件两种方法消除。

常用软件方法去抖动,即检测到按键闭合后执行一个5~10ms延时程序;让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有按键按下。

当检测到按键释放后,也要给5~10ms的延时,待后延抖动消失后,才能转入该键的处理程序。

2.74LS240:八反相三态缓冲器/线驱动器
引脚排列图:
3.中断原理:当某种内部或外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程
序,转而去进行中断事件的处理,中断处理完毕后,又返回被中断的程序处,继续执行下去。

每次按键是一次外部中断,按下按键后,CPU利用switch case语句跳转到相应语句执行。

五、实验步骤
1. 用Proteus设计流水灯控制电路;
2. 在Keil C51中编写流水灯控制程序,编译通过后,与Proteus联合调试;
3. 按动K1键,观察是否达到演示效果;
4. 试用中断和查询两种方式编写程序,比较二者区别。

六、电路设计及调试
1. 实验电路
2.程序设计与调试
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar i=0,j,k,m,n;
uchar code table1[]={0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};//自右向左单个点亮二极管的代码
uchar code table2[]={0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//自右向左依次点亮二极管的代码
uchar code table3[]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//自左向右依次熄灭二极管的代码
uchar code table4[]={0x00,0x03,0x06,0x0c,0x18,0x30,0x60,0xc0};//双灯循环右移
void delay(uint a);
void INT_1() interrupt 2
{
EX1=0;
delay(20);
EX1=1;
i++;
if(i==6)
i=0;
}
void main()
{
EA=1; //打开总中断
EX1=1; //打开外部中断1
IT1=1; //设置中断触发方式为下降沿触发方式
while(1)
{
switch(i)
{
case 0:P1=0xff;
break;
case 1:P1=table1[j];delay(500);j++; if(j==10) j=0;
break;
case 2:P1=table2[k];delay(500);k++; if(k==10) k=0;
break;
case 3:P1=table3[m];delay(500);m++; if(m==10) m=0;
break;
case 4:P1=0x00;delay(300);P1=~P1;delay(300);
break;
case 5:P1=table4[n];delay(500);n++; if(n==10) n=0;
break;
default:break;
}
}
}
void delay( uint a)
{
uchar b;
for(a; a > 0; a--) //循环600*255次机器在这里执行需要一段时间也就达到了延时效果
for(b = 255; b > 0; b--);
}
在“Options for target”的“debug”里选中“Proteus VSM Simulator”并选择输出“hex”文件进行联合调试。

分别进行全速调试与单步调试,看是否出现编程所想要实现的效果。

3.实验结果
按下不同的按键次数,执行不同的流水效果,自行设计效果为双灯循环右移。

七、实验总结及问题
通过本次流水灯控制实验,进一步掌握了Keil C51软件与proteus联合仿真调试的方法,逐步熟练了单步调试的方法。

自己用中断方法完成了本次实验,也尝试用查询方法编写程序,知道中断方法是在有中断请求时CPU再去处理,之前可一直忙于其他事情,而查询方法需一直查询标志位,CPU 不能做其他事情,中断方法效率要比查询方式高而且较简单。

第一次用按键控制电路,学习了按键的去抖原理及使用方法。

在实验中,会出现未知效果,总体看来原因不明,只要进行单步调试就可找到问题所在。

思考:如果不进行去抖处理,CPU可能会误判,按下后认为按键松开,多次执行相应程序,得不到想要的控制效果。

相关文档
最新文档