流水灯灯的制作流程

合集下载

用单片机设计流水灯的方法和程序编写

用单片机设计流水灯的方法和程序编写

用单片机设计流水灯的方法和程序编写-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIANS51增强型单片机实验板上有8个高亮度发光二极管(见图1所示),可以用来做单片机流水灯、跑马灯。

等实验,电路原理图见下图3。

图3单片机流水灯设计方法从原理图可以看出,如果我们想让接在口的LED1亮起来,那么我们只要把口的电平变为低电平就可以了;相反,如果要接在口的LED1熄灭,就要把口的电平变为高电平就可以;同理,接在~口的其他7个LED的点亮和熄灭方法方法同LED1。

因此,要实现流水灯功能,我们只要将LED2~LED8依次点亮、熄灭,依始类推,8只LED变会一亮一暗的做流水灯了。

实现8个LED流水灯程序用中文表示为:低、延时、高、低、延时、高、低、延时、高、低、延时、高、低、延时、高、低、延时、高、低、延时、高、低、延时、高、返回到开始、程序结束。

从上面中文表示看来实现单片机流水灯很简单,但是我们不能说你变低,它就变低了。

因为单片机听不懂我们的汉语的,只能接受二进制的“1、0......”机器代码。

我们又怎样来使单片机按我们的意思去工作呢为了让单片机工作,只能将程序写为二进制代码交给其执行;早期单片机开发人员就是使用人工编写的二进制代码交给单片机去工作的。

今天,我们不必用烦人的二进制去编写程序,完全可以将我们容易理解的“程序语言”通过“翻译”软件“翻译”成单片机所需的二进制代码,然后交给单片机去执行。

这里的“程序语言”目前主要有汇编语言和C语言两种;在这里我们所说的“翻译”软件,同行们都叫它为“编译器”,将“程序语言”通过编译器产生单片机的二进制代码的过程叫编译。

前面说到,要想使LED1变亮,只需将对应的单片机引脚电平变为低电平就可以了。

现在让我们将上面提到的8只LED流水灯实验写为汇编语言程序。

在上面主程序中用到了五条汇编语言指令:CLR、ACALL、SETB、LJMP、EN D。

CLR:是将其后面指定的位清为0,程序中使对应端口输出低电平ACALL:是子程序调用指令,程序中调用了DELAY延时子程序SETB:是将其后面指定的位置成1,程序中使对应端口输出高电平AJMP:是无条件跳转指令,意思是:跳转到指定的标号处继续运行END:是程序结束的伪指令,意思是告诉编译器,程序到此结束。

流水灯实验报告

流水灯实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

心形流水灯课程设计之流水灯制作方法(含CD4017电路)

心形流水灯课程设计之流水灯制作方法(含CD4017电路)

心形流水灯课程设计之流水灯制作方法(含CD4017电路)
此作品特别适合初学者制作,其本质就是用数字芯片CD4017构成的流水灯,显示方式根据自己的喜好、创意就OK。

动手制作这样的礼物,送给ta绝对会是再好不过了。

首先,我们了解一下该作品的五脏六腑:
1. 杜邦线(若干)
2. 万能板X2
3. 电位器X2
4. 470uF电容X1
5. 二极管X4
6. 变压器X1
7. 104电容(若干)
8. LM7809芯片X1
9. 散热片X1
10. 各色LED灯(若干)
11. 100uF电容X1
12.2K电阻X1
13. 680欧电阻(若干)
14. 共阴数码管X4
15. NE555和CD4017 (各一片)
16. 芯片底座X2(有利于芯片的二次利用)
17. 木板5块加包装纸2张(尺寸大小根据自己情况而定)
所需器件如下图所示:
我把作品电路分为3个部分,这3个部分都是以我的实物为依据的,你当然可以有更好的。

实验三流水灯实验(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”,对应的外部引脚则输出“低电平”、“高电平”。

单片机实验LED流水灯实验

单片机实验LED流水灯实验

LED流水灯实验一、实验内容将LED灯逐个点亮,然后全亮,全灭。

二、实验原理8个LED发光二极管,分别对应单片机IO口的P0.0到P0.7口,8个单片机IO口组成一个字节,用一个八位二进制的左移和右移来确定灯的亮灭,并用定时器延时。

三、描述该实验中运用的理论知识1、LED的点亮:8个LED发光二极管,分别对应单片机IO口的P0.0到P0.7口,8个单片机IO口组成一个字节,在程序编写过程中,可以直接用P0来进行操作。

2、流水效果:C语言的8位二进制数代表了8个IO口,左移,最低位填0,然后按位取反,就可以将灯逐个点亮3、延时:特殊功能寄存器TMOD,如图T1和T0分别代表单片机两个计数器。

GATE:该位被置位时为门控位。

仅当TR1被置位并且INT1脚为高,定时器开始计数。

当该位被清零时,只要TR1被置位,定时器1马上开始计数。

C/T:该位为0的时候,用作定时器,该位为1的时候,用做计数器。

0.5秒的延时12 * (65536- x)/11059200 = 0.001四、实验步骤1、流程图2、结果程序:#include <reg52.h>typedef unsigned char uint8;typedef unsigned int uint16;sbit ENLED = P1^4;sbit ADDR0 = P1^0;sbit ADDR1 = P1^1;sbit ADDR2 = P1^2;sbit ADDR3 = P1^3;main(){uint8 counter;uint16 i,j;ENLED = 0;ADDR0 = 0; ADDR1 = 1; ADDR2 = 1; ADDR3 = 1;TMOD = 0x01;TH0 = 0xB8;TL0 = 0x00;TR0 = 1;while(1){if(1 == TF0){TF0 = 0;TH0 = 0xB8;TL0 = 0x00;counter++;}if(25 == counter){counter = 0;if(8 == j){P0 = 0X00;for(i=0;i<=38000;i++);P0 = 0XFF;for(i=0;i<=38000;i++);j = 0;}P0 = ~(1 << j++);}}}。

流水灯实验报告单(3篇)

流水灯实验报告单(3篇)

第1篇实验名称:流水灯实验实验日期:2021年10月25日实验地点:实验室实验者:张三一、实验目的1. 了解流水灯的原理和组成;2. 掌握流水灯的制作方法;3. 培养动手能力和团队合作精神。

二、实验原理流水灯是一种通过改变电路中各个灯泡的连接方式,实现灯光顺序变化的电子装置。

其原理是利用555定时器产生一个周期性的方波信号,通过控制方波信号的占空比,实现不同灯泡的顺序点亮。

三、实验器材1. 555定时器1个;2. 集成电路板1块;3. 灯泡4个;4. 电阻4个;5. 电池1节;6. 导线若干;7. 万用表1个;8. 电烙铁1把;9. 剪线钳1把。

四、实验步骤1. 制作电路板:将555定时器、电阻、灯泡等元件焊接在电路板上。

2. 连接电路:将电池的正负极分别连接到电路板的电源端,将555定时器的输出端分别连接到灯泡的正极,将灯泡的负极分别连接到电路板的GND端。

3. 测试电路:使用万用表测量555定时器的输出电压,确保输出电压在正常范围内。

4. 调整占空比:通过改变电阻的阻值,调整555定时器的占空比,实现不同灯泡的顺序点亮。

5. 验证实验:观察流水灯的运行情况,确认实验是否成功。

五、实验结果与分析1. 实验成功:通过调整电阻的阻值,实现了4个灯泡的顺序点亮,实验成功。

2. 分析:在实验过程中,我们发现调整电阻的阻值可以改变555定时器的占空比,从而改变灯光的顺序。

当电阻阻值增大时,占空比减小,灯光点亮速度变慢;当电阻阻值减小时,占空比增大,灯光点亮速度变快。

六、实验结论通过本次流水灯实验,我们掌握了流水灯的原理和制作方法,提高了动手能力和团队合作精神。

实验结果表明,通过调整电阻的阻值,可以实现不同灯泡的顺序点亮,达到流水灯的效果。

七、实验反思1. 在实验过程中,我们发现电路板焊接过程中容易出现短路现象,因此在焊接过程中要仔细检查,确保电路板焊接正确。

2. 在调整电阻阻值时,要注意观察灯光的变化,以便找到最佳的电阻阻值。

彩灯流水电路(流水灯)的设计

彩灯流水电路(流水灯)的设计

彩灯流水电路(流水灯)的设计对于彩灯流水电路的设计,我们一般采用LED流水灯的形式。

LED流水灯的原理是通过输入一个时钟信号,来控制LED灯的亮灭顺序,从而实现LED灯的流水效果。

下面就以一个8位LED流水灯电路为例,来分步骤介绍如何进行彩灯流水电路的设计。

1. 材料与元器件的准备该8位LED流水灯电路所需要的材料与元器件如下:(1)芯片:AT89C51(2)时钟:11.0592MHz(3)LED数码管:8款(4)电阻:九个330欧姆电阻(5)电容:两个22pF陶瓷电容(6)稳压管:7805(7)热熔胶枪(8)面包板2. 电路原理图设计接下来,我们需要根据电路的设计要求,来进行电路原理图的设计。

如下图所示,该电路原理图包含了AT89C51芯片、时钟、稳压管、电容以及LED数码管等元器件。

其中,AT89C51芯片作为电路的主控制芯片,时钟则用来控制电路的工作频率。

LED数码管则是用来实现LED灯的罗列效果。

3. 电路焊接装配电路原理图完成后,进入电路焊接与装配环节。

首先,我们需要将元器件逐一地焊接在面包板上。

这里,我们需要注意焊接的顺序和脚位。

接着,将电路连线固定在面包板上,然后接上电源线,即可启动LED数码管。

4. 代码编写最后,我们需要编写AT89C51芯片的代码。

该代码用来控制LED数码管的流水效果。

该代码的编写需要考虑以下几个方面:(1)如何将LED数码管控制程序放入芯片中?(3)如何实现不同的流水显示模式?(4)如何使用时钟来控制LED数码管的刷新速度?经过以上步骤的设计后,我们便可成功地制作出一款功能完善的彩灯流水电路产品。

如需实现更高级别的彩灯效果,还需不断探究和创新。

LED流水灯的设计与制作

LED流水灯的设计与制作

摘要本设计是一种基于AT89C52单片机的彩灯控制方案,实现对LED彩灯的控制。

本方案以AT89C52单片机作为主控核心,由编程实现亮灯循环模式。

由在显示模块上有8个LED彩灯,根据用户需要可以编写若干种亮灯模式.本系统具有体积小、硬件少、电路结构简单及容易操作和阅读等优点。

该LED彩灯控制器实际应用效果较好,亮灯模式多。

与其他LED彩灯相比,具有体积小、价格低、低能耗等优点。

在能源比较匮乏的今天,彩灯的循环控制在显示方面更表现出一种节约能源的魅力.这将使彩灯具有更广阔的发展天地。

关键字:AT89C51 循环 LED彩灯AbstractThe design is a project of the lantern control which based on a AT89c52 single-chip to achieve the control of the LED lanterns.The master core of the design is AT89c52 single-chip,the display module is formed with 8LEDS,the programme achieve the circle mode of the colour LEDS.The 8 LEDS on the display module can be compiled a lot of modes based on the needs of the users。

This system has some excellences of small bulk,few hardware,simple circuit frame,easy handle and read.The practice appliance effect of this colour lantern control is better and lots of modes of the colour lantern.This LED has some excellences of small bulk,low price, low energy consume compared with else LEDS.In lack energy today,the LED circle mode comports a charm of the economying energy on the display.This will lets LED has more amplitude heaven and earth to develop.Keywords: AT89C51 Circulate LED Lantern目录绪论------------------------------------------------------------- 31LED流水灯方案设计与选择--------------------------------------- 31、1 设计要求------------------------------------------------- 31、2 系统功能------------------------------------------------- 31、3 方案选择------------------------------------------------- 32 LED流水灯设计过程---------------------------------------------- 4 2、1 元件选取------------------------------------------------- 4 2、2 硬件设计------------------------------------------------- 4 2、2、1 单片机介绍------------------------------------------ 4 2、2、2 LED流水灯总图--------------------------------------- 5 2、3 软件设计------------------------------------------------- 6 2、3、1 编程介绍-------------------------------------------- 6 2、3、2 编程选择-------------------------------------------- 10 参考文献---------------------------------------------------------- 11绪论当今时代足一个新技术层出不穷的时代,在电子领域尤其足自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。

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

流水灯的制作流程
201400800657 唐宁
1·根据系统的需求设计需求设计单片机电路,本实验的目的是制一个流水灯,编写的程序使用中断电路和直接控制电路,下图为流水灯的电路:
2. 对单片机闪光电路的程序设计,本次编程采用了定时器来控制闪光灯,设计的周期为50ms,采用51单片机学习板为例(P1控制闪光灯),使用keil-c对单片机进行编程。

keil-c的安装使用如下:(1)点击keil-c软件,按默认位置安装,这是为使得程序中的头文件
reg51.h能够在默认位置调用,安装完成后运行软件。

(2)新建一个工程,保存在计算机的某一个文件夹下;在新建一个空
白文档,将所写的程序写完后,保存为c文件,关闭程序。

(3)找到所建工程的文件夹,打开project文件,将c文件添加到所在的工程中,对工程右键选中生成hex文件,然后对c文件进行编译,不断调试,然后选择重编译,直至编译通过。

表明所写的程序没有语法上的错误。

接下来就可以对程序进行模拟,在这里我们可以先利用软件自带的调试程序来查看运行是否正确,最终是下载到单片机上进行测试。

程序见下图:
#include <reg51.h>
main()
{
TMOD=0x01; /*初始化定时器,按方式一工作*/
TH0=0x3c;
TL0=0xb0; /*定时为50ms*/
ET0=1; /*开定时器的中断允许*/
EA=1; /*开CPU中断允许*/
TR0=1; /*打开定时器中断开关*/
TF0=0; /*溢出置为零*/
P1=0xfe; /*第一个灯亮*/
while(1); /*死循环,等待中断发生*/
}
void read() interrupt 1 /*定时器中断函数*/ {
TH0=0x3c;
TL0=0xb0; /*重赋初值*/
static int number=0; /*定义计数变量*/ number++;
if (number<8)
{
P1=~P1;
P1=~(P1<<1);
} /*流水灯挨个连续发光*/ else if(number<15)
{
P1=~P1;
P1=P1>>1;
P1=~P1;
} /*流水灯往回挨个亮灯*/ else if(number==15)
P1=0x00; /*灯全亮*/
else if(number==16)
P1=0xff; /*灯全灭*/
else if(number==17)
P1=0x00; /*灯全亮*/
else if(number==18)
P1=0xff; /*灯全灭*/
else
{
P1=0xfe;
number=0; /*重复亮灯*/
}
使用keil-c对上述程序进行编译以后,发现弹出的窗口提示:0错误,0警告,表明所编写的程序在语法没有错误,接下来可以利用软件自带的工具进行调试,最终通过下载程序到单片机执行即可,运行以确定是否存在逻辑错误。

注意:
1.在编写程序时注意static int number=0;语句的书写,当我们不
加上static的修饰词后,那么此程序运行将出错,原因是每次执行终端的时候会是number的值始终为0。

2.注意赋值符号与判断的是否等于的区别,如果出错,那么程序
也不会达到应有的效果。

3.“P1=P1>>1;P1=~P1;”可以用“P1=~(P1>>1)”来代替。

4.将程序下载到89C52的单片机中,在此之前,需要在电脑上安装一
个USB转串口CH340驱动安装包的程序驱动,以确保计算机能够识别到这个串口。

(1)打开程序点击安装,安装后单机确定,这时串口转USB驱动安
装完毕。

(2)打开设备管理器,以确定电脑随机为单片机分配的端口,记住
端口。

尽量使这个端口靠前,以便烧录程序时能够找到。

(3)打开烧录程序,选择好所记住的端口,并且打开编译过后的hex
文件,点击下载程序。

(4)将接在电脑上的单片机电源键打开后即可瞬间将程序下载下
来。

下载完成后即可运行所现在的程序,根据观察到的现象对程序进行不断的修正。

如果没有达到我们为你想要看到的现象,那么就可能上所写程序存在逻辑方面的错误。

这样,流水灯灯的开发就到此结束了。

相关文档
最新文档