实验1 流水灯实验
流水灯实验·

实验一发光二极管流水灯实验一、实验要求利用单片机及8个发光二极管等器件,制作一个单片机控制的流水灯系统。
单片机的P0.0~P0.7接有8个发光二极管,运行程序,则8个发光二极管进行流水灯操作,流水灯从上到下依次点亮,反复循环。
二、实验目的1.掌握单片机最小系统的构成。
2.掌握P0口作为基本I/O口使用时,外部电路的连接方法。
3.如何控制I/O口来驱动LED发光二极管。
4.学会用PROTEUS 设计电路原理图,并进行仿真的方法。
5.学会使用Keil C编程。
三、实验步骤(一)电路原理图设计1.启动PROTEUS ISIS仿真工具。
参照实验指导书P24页2.5节的方法,设计电路原理图。
2.在元器件模式下,单击选取元器件,在Keywords一栏中输入元器件名称,如AT89C51,双击所匹配的元器件,便可将其加入到对象选择器中。
本实验需要选取的元器件有单片机AT89C51、发光二极管LED-BIRG、瓷片电容CAP、电解电容CAP-ELEC、电阻RES、上拉排阻RESPACK-8、晶振CRYSTAL、按钮BUTTON、双极性晶体管ST5771-1。
3.按图一电路原理图,在编辑区放置相应元器件,单击选择终端模式,放置电源和地,并连线。
4.设置元器件参数值,本实验中晶振X1频率为12MHz,瓷片电容C1、C2的值为30pF,电解电容C3的值为10uF,电阻R1为470,R2、R3的值为10K,电阻R4~R11的值为470,单片机AT89c51的时钟频率12MHz。
5. 设计完成电路后,单击电气检测按钮,会出现检查结果窗口,若有错,会给出详细的说明。
如没有错,将设计保存到自己的工作目录中。
(二)编写源程序,并生成.HEX文件。
1.启动KEIL Uvision4。
2. 按照实验指导书P50页4.1节的方法输入源程序并生成.HEX文件。
(注意:程序设计时考虑到实验学习板上的电路的设计,要使P2.7 = 0; 关闭液晶使能位,防止液晶数据口输出干扰P0口; 使P3.7 = 0, 选通WS 系列实验板的LED 流水灯的电源控制端)(三)仿真回到PROTEUS ISIS环境,并按照实验指导书P60页4.2节的方法加载.HEX文件进行仿真。
流水灯的实验原理及步骤

流水灯的实验原理及步骤流水灯(也称为跑马灯)是一种由多个LED灯组成的电子显示器件,常常被用于电子实验、电子产品展示等场合中。
流水灯可以通过变化发光的方式来传递信息或者装饰环境,具有简单、实用、灵活的特点。
下面将详细介绍流水灯的实验原理及步骤。
实验原理:流水灯的实现原理是通过控制每个LED灯的点亮与熄灭来形成一种连续而有序的动画效果,使得LED灯看起来像是在“流水”一样运动。
一般来说,流水灯采用的是LED的时分多路复用技术,即通过定时器控制每个LED点亮和熄灭的时刻,使得它们按照一定的顺序依次发光。
实验步骤:1. 准备材料:LED灯(数量根据需要决定)、电阻(限流电阻,选择合适的阻值)、电路板、导线、面包板或焊接工具等。
2. 连接电路:根据所需的LED数量,设计电路图,按照图上的连线方式将LED 连接到电路板上,注意保持连线的正确性。
3. 添加电阻:根据LED的工作电压和电流需求,计算每个LED对应的限流电阻的阻值,将电阻依次与LED进行串联连接。
4. 供电测试:将电路板连接到电源上,确认电源电压是否符合LED的工作电压要求。
注意检查整个电路的连线是否正确,电阻是否接在了正确位置。
5. 编写程序:使用单片机或其他控制芯片来控制LED的点亮和熄灭。
根据所采用的开发平台和编程语言,编写相应的代码,控制每个LED的状态和时间间隔。
6. 调试程序:将编写好的程序下载到控制芯片中,并连接到电路板上。
通过电脑或其他输入设备控制程序运行,观察LED的点亮和熄灭效果。
根据需要调整程序中每个LED的点亮时间和顺序,使得LED灯看起来像是在流水一样运动。
7. 完善电路:根据实际需求,可以设计并添加其他功能模块,如按键控制、调节亮度等。
总结:流水灯实验是一种常见的电子实验,通过控制LED灯的点亮和熄灭来形成一种连续的流动效果。
实验的原理是利用LED的时分多路复用技术和控制芯片的编程来实现。
实验步骤包括准备材料、连接电路、添加限流电阻、供电测试、编写程序、调试程序和完善电路等。
流水灯实验报告

流水灯实验报告实验目的,通过搭建流水灯电路,了解流水灯的工作原理,并掌握基本的电路连接方法和元器件的使用。
实验仪器与设备,LED灯、电阻、导线、面包板、电源等。
实验原理,流水灯是一种常见的LED灯效应,通过控制LED灯的亮灭顺序,形成灯光流动的效果。
在电路连接方面,我们需要使用电阻来限制LED灯的电流,以保护LED灯不受损坏。
实验步骤:1. 将LED灯和电阻连接到面包板上,按照电路图连接好各个元器件。
2. 将面包板连接到电源上,注意接线的正确性和稳定性。
3. 打开电源,观察LED灯的亮灭顺序,确认流水灯效果是否正常。
实验结果与分析:经过实验,我们成功搭建了流水灯电路,并且观察到LED灯按照一定的顺序亮灭,形成了流水灯的效果。
这说明电路连接正确,元器件工作正常。
在实验过程中,我们发现电阻的作用是非常重要的,它可以限制LED灯的电流,防止LED灯受损。
同时,电源的稳定性也对流水灯的效果有着重要的影响,稳定的电源可以保证LED灯的正常工作。
实验总结:通过本次实验,我们对流水灯的工作原理有了更深入的了解,也掌握了搭建流水灯电路的基本方法。
在今后的学习和实践中,我们可以运用这些知识,进行更多有趣的电路搭建和实验。
实验中还需要注意安全问题,避免短路和触电等意外情况的发生。
在实验过程中,要严格按照操作规程进行,确保实验的顺利进行。
最后,希望通过这次实验,大家能够对电路连接和LED灯效应有更深入的理解,为今后的学习和科研打下坚实的基础。
结语,本次实验结束,谢谢大家的参与和配合,希望大家能够从中收获知识,不断提高自己的实验能力和动手能力。
流水灯的实验原理及步骤

流水灯的实验原理及步骤流水灯是一种用于电子电路实验的简单电路。
它由一组LED灯组成,灯珠逐个点亮,呈现出流水的效果。
以下是流水灯的实验原理及步骤:实验原理:流水灯的实验原理是借助555计时器和数个逻辑门实现的。
555计时器产生的方波信号通过逻辑门的组合,控制LED灯的亮灭顺序,从而实现流水的效果。
实验步骤:1.准备材料和工具:一块实验面板、555计时器、几个逻辑门(如74LS04等)、一组LED灯、几个电阻、导线等。
2.将555计时器、逻辑门、LED灯等器件按照连线图连接在实验面板上。
具体连接方式如下:- 将VCC引脚连接到正电源。
- 将GND引脚连接到地线。
- 连接一个电阻和电容来设置555计时器的频率。
电阻连接到引脚7(DISCHARGE)和引脚8(VCC)之间,电容连接到引脚6(THRESHOLD)和引脚2(TRIGGER)之间。
同时将电容的另一端连接到地线。
- 将555计时器的引脚3(OUTPUT)连接到逻辑门1的一个输入端,再将逻辑门1的输出端连接到一个电阻,电阻的另一端连接到LED灯1的正极。
LED 灯1的负极连接到地线。
- 将LED灯1的负极连接到逻辑门2的一个输入端,再将逻辑门2的输出端连接到一个电阻,电阻的另一端连接到LED灯2的正极。
LED灯2的负极连接到地线。
- 依此类推,将其他LED灯也连接起来,形成流水灯的效果。
3.检查连接是否正确,确保没有短路或接触不良的地方。
4.将正电源接入电路,调整电阻和电容的值,以控制流水灯的速度和亮度。
5.观察LED灯的亮灭顺序,若亮灯顺序与预期不符,可能需要调整逻辑门的输入连接方式。
6.实验完成后,断开电源,注意安全。
以上是流水灯的实验原理及步骤,希望对你有帮助。
流水灯实验报告

实验一流水灯实验一、实验目的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、掌握应用KEIL软件编辑、编译源汇编程序的操作方法。
4、掌握应用仿真器的操作方法。
二、实验内容在实验箱上实现8个发光LED“流水”的现象,并通过编写程序控制流水现象。
三、实验器材PC机一台, 仿真器一台, 实验箱一台, 导线若干。
四、实验说明当AT89C51的P1口有低电平输出时,相应的发光二极管就会点亮。
应用这一原理我们可以容易的点亮一个数码管,例如令P1口输出0111 1111时D1就会点亮。
若再把0111 1111向右循环一位,利用P1口输出,就会点亮D2。
在发光二极管两次点亮的间隔中加延时程序,让每次点亮停留一段时间,像这样人眼就可以看到“流水”的现象。
五、实验原理图单片机的P1口为准双向口,每一位均可独立定义为输入或输出,若要将P1口的某一位所对应的灯熄灭,则需要向该端口写“0”。
电路图如下:图3-1 接线图六、实验步骤1.按照实验一中的建立工程的步骤,建立本实验内容相应的工程;2.单片机的P1口接8个发光二极管L0~L7;3.运用调试工具,调试软件,观察现象;4.调试计算延时子程序DELAY定时时间。
七、参考程序。
#include<reg51.h>#include<intrins.h>int temp;void delay(){int i,j;for(i=0;i<200;i++)for(j=0;j<110;j++);}void main(){temp=0x01;P1=temp;delay();while(1){temp=_crol_(temp,1);P1=temp;delay();}}八、实验现象当程序监测无误后,通过translate,build生成hex文件,并将文件烧入单片机中,点击全速运行,会发现P1口连接的LED灯轮流闪烁。
流水灯的实验报告

流水灯的实验报告流水灯的实验报告引言:流水灯是一种常见的电子元件,它通过控制电流的流动,使灯光依次在一组灯泡之间流动,形成一种流水般的效果。
在本次实验中,我们将探索流水灯的工作原理,并通过自己动手搭建电路,观察流水灯的效果。
实验目的:1. 了解流水灯的工作原理;2. 学习使用电子元件搭建电路;3. 观察流水灯的效果。
实验材料:1. 流水灯电路板;2. 线缆;3. 电源;4. 灯泡。
实验步骤:1. 将流水灯电路板连接到电源上,确保电路板的正负极正确连接;2. 将灯泡依次连接到电路板上,确保灯泡的极性正确;3. 打开电源,观察流水灯的效果。
实验结果:当电源打开后,流水灯开始工作。
灯泡依次亮起,然后熄灭,再亮起下一盏灯泡,如此循环。
整个流水灯的效果就像水流般流动,非常美观。
实验分析:流水灯的实现原理是通过控制电流的流动方向和路径来实现的。
在流水灯电路板上,灯泡被连接成一条线,电流从一个灯泡流向下一个灯泡,依次循环。
每个灯泡都有一个开关,控制灯泡的亮灭。
当电流通过一个灯泡时,该灯泡亮起,当电流流向下一个灯泡时,前一个灯泡熄灭,下一个灯泡亮起,如此循环,形成流水灯的效果。
流水灯的原理与实际生活中的流水有些类似。
我们可以将每个灯泡看作是水流中的一个水滴,电流的流动就像水流一样,从一个水滴流向下一个水滴。
每个灯泡的亮灭就像水滴的存在和消失,整个流水灯的效果就像水流般流动。
流水灯不仅在实验中有应用,也在现实生活中有广泛的应用。
例如,在舞台演出中,流水灯常常被用来营造出动感和变幻的效果。
在夜店、酒吧等娱乐场所,流水灯也是常见的装饰元素之一。
流水灯的效果不仅美观,还能吸引人们的注意力,增加场景的氛围。
实验总结:通过本次实验,我们了解了流水灯的工作原理,并亲自搭建了一个流水灯电路。
实验结果显示,流水灯的效果非常美观,给人一种流动的感觉。
流水灯不仅在实验中有应用,也在现实生活中有广泛的应用。
通过这个实验,我们不仅学到了电子元件的使用方法,还培养了动手实践的能力,提高了对电路原理的理解。
流水灯实验原理

流水灯实验原理流水灯是一种常见的电子电路实验项目,通过这个实验可以让学生初步了解电子元件的连接和工作原理。
在实验中,我们会使用几个LED灯和一些电阻,通过不同的连接方式和信号输入,让LED灯呈现出流水般的效果。
下面我们将详细介绍流水灯实验的原理和操作步骤。
首先,我们需要准备一些材料和元件,包括LED灯、电阻、导线、面包板和电源。
LED灯是实验中的光源,电阻用于限制电流,导线用于连接各个元件,面包板用于搭建电路,电源则提供电能。
在选择LED灯和电阻时,需要根据实际情况计算电流和电压,以确保电路正常工作。
接下来,我们将LED灯和电阻连接在面包板上,根据实验要求进行合理的布局和连接。
一般来说,LED灯的长腿是正极,短腿是负极,而电阻没有正负之分。
我们需要根据电路图和实验要求,将它们正确地连接在一起。
在连接过程中,要注意导线的长度和连接方式,以避免出现短路或其他问题。
当电路连接完成后,我们需要接入电源,并根据实验要求输入信号。
在流水灯实验中,我们通常会使用计时器或者微控制器来产生信号,以控制LED灯的亮灭顺序。
通过调整信号的频率和占空比,我们可以让LED灯呈现出不同的流水效果,如单向流水、双向流水等。
在实验过程中,我们还需要注意一些问题,比如电路的稳定性、元件的工作温度和电源的安全性。
特别是在接入电源时,要确保电压和电流在安全范围内,以避免损坏元件或者造成安全事故。
此外,LED灯在工作时会产生一定的热量,需要注意散热和保护。
总的来说,流水灯实验是一种简单而有趣的电子电路实验项目,通过这个实验可以让学生初步了解电子元件的连接和工作原理。
在实验过程中,我们需要合理选择和连接元件,控制信号输入,同时注意电路的稳定性和安全性。
希望通过这个实验,学生们能够对电子电路有更深入的理解,为以后的学习和研究打下良好的基础。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理及应用
学院计算机与电子信息学院
专业电子信息工程班级电信11 -班
姓名学号 110340301 指导教师左敬龙
实验报告评分:_______
实验1 流水灯实验
一、实验原理及电路
单片机通过P0、P1口来分别控制8个LED灯,为了使它产生流水灯的效果,必须要对每个LED灯进行有规律的控制。
所以就要通过对P0、P1口进行赋值,来实现流水灯效果。
P0口的8个LED灯就相当于8位二进制,也可以用两位十六进制来代替,这样就会显得简洁、明亮。
根据不同的实验板,要使得LED灯亮起来,可能有些高电平有效,有些是低电平有效。
所以对P0、P1口进行编码是就需要注意。
而我的实验板是低电平有效的,换句话说也就是0代表亮、1代表灭。
接下来就要分别对P0、P1口进行编码,由于闪烁的方式比较多,为了使别人看起来简单、易懂,我就使用数组的方式来进行编码。
所需的代码编好之后,接下来还需要一个延时函数,其作用是控制每个LED灯亮的时间长短。
最后还要一个While语句使得P0P1口的编码不停地循环执行,这样就可以使得LED灯无间断地有规律地闪烁起来。
电路原理图
二、功能说明
该流水灯一共有种闪烁方式:第一种:两个两个轮流闪亮(从P0^0、P0^1开始);第二种:一个一个轮流闪亮直到最后一个然后接着又倒流回来(从P0^0开始);第三种:P0、P1口各三个轮流闪亮直到最后然后全亮全灭2次接着倒流回来(从P0^0-2、P1^0-2开始);第四种:一个接一个亮起来直到全亮然后一个接一个熄灭直到全灭,之后全亮全灭3次。
三、实验框图
四、实验代码
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code pattern_P0[]=
{ 0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0 xff,
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff ,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb ,0xfd,0xfe,
0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0xff,0x00,0xff,0x00,0x1f,0x8f,0xc7,0xe3 ,0xf1,0xf8,
0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8 ,0xfc,0xfe,
0x00,0xff,0x00,0xff,0x00,0xff
};
uchar code pattern_P1[]=
{ 0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0x f8,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf ,0xbf,0x7f,
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff ,0xff,0xff,
0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0xff,0x00,0xff,0x00,0x1f,0x8f,0xc7,0xe3 ,0xf1,0xf8,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0 ,0x80,0x00,
0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff,0xff,0xff,0xff,0xff ,0xff,0xff,
0x00,0xff,0x00,0xff,0x00,0xff
};
void delayms(uint x)
{ uchar i;
while(x--)
{ for(i=0;i<110;i++);
}
}
void main()
{ uchar i;
while(1)
{ for(i=0;i<100;i++)
{ P0=pattern_P0[i];
P1=pattern_P1[i];
delayms(300);
}
}
}
五、实验过程
第一步启动Keil,新建一个工程
第二步新建一个liushui.C,并加入到工程中,输入如下内容:
第三步编译并调试程序
第四步将单片机学习板与计算机连接,并将编译完成后生成的*.hex文件下载到开发板
第六步实验现象:将程序下载到学习板后,按下开发板的复位按钮,能够按照一开始设计的闪烁方式进行,没有出错。
六、实验小结
本次流水灯试验让我与单片机学习板亲密接触,并使我对学习板有了初步的了解,对每个器件也有了初步的认识。
它的神奇与奥妙深深地吸引了我,使我对它产生了极大的兴趣,这是学习单片机的好兆头。
本次编写流水灯程序,一开始我是用了一种写起来比较简单,看起来比较复杂的方法(因为闪烁的方式比较多,所以程序比较长)。
后来实验验收的时候老师一看,第一感觉就是:程序比较长,看起来比较复杂,就叫我改成数组的形式,把它简单化。
老师还给了我提示,再结合我平时看过的流水灯程序的事例,我有了一点思路。
然后我就按照老师的思路现场修改程序,经过一段时间,我修改好了。
老师看了之后,说了一句:“挺好的!”。
这是我前进的动力,遇到挫折时的鼓励,迷失方向时的一缕阳光!!!。