实验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)简单 I/O 引脚的输出2)掌握软件延时编程方法3)简单按键输入捕捉判断二、实验实现的功能1)开机是点亮 12 发光二极管,闪耀三下2)依据顺时针循环挨次点亮发光二极管3)经过按键将发光二极管的显示改为顺逆时针方式三、系统硬件设计流水灯原理图四、系统软件设计演示程序按键正转闪耀反转五、实验过程中碰到的问题及解决方法1) 每次循环不论正转仍是反转程序,总先是先履行P1 口的 8 位 led 灯。

原由:在利用 KEIL 自带的库函数中的 _crol_ 和_cror_ 时,在正转和反转程序中应当调动次序的,开始没注意到。

更正后显示正常。

2)在开始实验的时候推行的是向来循环的方式,利用按键嵌套。

以后发现不理想,每次按键按到三次以上后进入死循环。

解决方案:利用一个按键,显示一次。

并加入按键开释,防备误动作。

指导老师署名:日期:实验一程序 :/******************************************************************** **************工程说明:本工程主要达成了一下功能:1,复位后演示全部功能2,灯闪耀三次3,流水灯正转4,流水灯反转函数说明:yanshi() :演示程序dengss() :闪耀程序right():正转程序left():反转程序scankey() :按键扫描********************************************************************* **************/#ifndef _led_h#define _led_h#define uint unsigned int#define uchar unsigned charuchar i,j,a,b,c,d;uchar flag=0;//亮灯判断标记uchar aa,bb,cc,dd,ss;sbit H1=P3^6;sbit key1=P0^5;sbit key2=P0^6;sbit key3=P0^7;void delay(uint);//1ms 延时void yanshi(void);//演示全部亮灯方式void dengss(void);//闪耀三次void left(void); //左循环亮灯void right(void);//右循环亮灯void scankey(); //按键扫描#endif#include"stc10.h"#include<intrins.h>#include<led.h> //包含各样变量定义及函数申明main(){yanshi();delay(2000); //两秒后进入可控大循环while(1){scankey();if(flag==0)right();if(flag==1)left();if(flag==2)dengss();}}void delay(uint x){uint i,j;for(i=110;i>0;i--)for(j=x;j>0;j--);}void yanshi(){dengss();right();left();P2=0XFF;P3=0XFF;}void dengss(){for(ss=3;ss>0;ss--)P2=0;P3=0xc3;delay(1000);P2=0xff;P3=0xff;delay(1000);}flag+=3;//退出小循环,只亮一次,增大按键扫描频次}void right(){aa=0xfe;for(a=8;a>0;a--){P2=aa;aa=_crol_(aa,1);delay(500);}bb=0xfb;P2=0xff;//熄灭循环后亮着的for(b=4;b>0;b--){P3=bb;bb=_crol_(bb,1);delay(500);}//D12 保存发亮flag+=3;//退出小循环,只亮一次,增大按键扫描频次}void left(){cc=0xdf;for(c=4;c>0;c--){P3=cc;cc=_cror_(cc,1);delay(500);P3=0xff;// 熄灭 D9dd=0x7f;for(d=8;d>0;d--){P2=dd;dd=_cror_(dd,1);delay(500);}//D1 保存发亮flag+=3;//退出小循环,只亮一次,增大按键扫描频次}void scankey(){H1=0;if(key1==0){delay(10);if(key1==0){flag=0;while(!key1);//等候按键开释}}if(key2==0){delay(10);if(key2==0){flag=1;while(!key2);//等候按键开释}}if(key3==0){delay(10);if(key3==0){flag=2;while(!key3);//等候按键开释}}}实验二准时器或实不时钟实验一、实验目的1)数码管动向显示技术2)准时器的应用3)按键功能定义二、实验实现的功能1) 经过按键能够设定准不时间,启动准时器,准不时间到,让12 个发光二极管闪耀,达成准时器功能。

发光二极管流水灯实验报告

发光二极管流水灯实验报告

实验一发光二极管流水灯实验
一、实验目的:
1.通过AT89C51单片机控制8个发光二极管,八个发光二极管分别接在单片机的P0.0-P0.7接口上,输出“0”时,发光二极管亮。

开始时P0.0→P0.1….→P0.7,实现亮点以1HZ频率循环移动。

2.用PROTEUS 设计,仿真以AT89C51为核心的发光二极管流水灯实验装置。

3.掌握发光二极管的控制方法。

二、PROTEUS电路设计:
三、实验仪器和设备
PC机、PROTEUS软件或W-A-51综合开发学习板
四、源程序设计:
1.程序
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV R1,#08H ;8个发光二极管,循环8次点亮
MOV A,#0FEH ;共阳接法,低电平点亮
LOOP: ;循环依次点亮
MOV P0,A ;输出到P0口点亮二极管
RL A
ACALL DELAY ;调用延时
DJNZ R1,LOOP ;判断8个二级管是否都点亮过
SJMP MAIN ;若8个二极管都循环点亮一次,则重新依次点亮
DELAY:MOV R2,#10 ;延时1S
DEL3:MOV R3,#200
DEL2:MOV R4,#125
DEL1:NOP
NOP
DJNZ R4,DEL1
DJNZ R3,DEL2
DJNZ R2,DEL3
RET
END。

单片机流水灯实验

单片机流水灯实验
3、用wave软件对程序进行调试、编译,生成目标文 件(XX.hex);
4、打开编程软件PROGISP(Ver1.6.6),按要求设定 (见1.4);
5、调入目标文件; 6、对目标板(实验板)编程; 7、检查运行结果,若没有达到实验要求,重复
3、4、5、6、7步。
实验一:流水灯实验
七、思考题 1、彩灯右移一位循环,请编程? 2、彩灯多位循环,请编程?
J700、J800开路。
绿色 黄色 红色 绿色 黄色 红色 绿色 黄色 J500 VCC VCC
D501 D502 D503 D504 D505 D506 D507 D508
LED LED LED LED LED LED LED LED
1 2
R501 R502 R503 R504 R505 R506 R507 R508
SJMP Start
实验二:交通信号灯实验
延时主程序: DEL1: MOV R7,#10 DEL2: MOV R6,#200 DEL3: MOV R5,#250 DJNZ R5,$ DJNZ R6, DEL3 DJNZ R7, DEL2 RET
END
实验二:交通信号灯实验
六、实验步骤
1、按要求选择目标板(实验板)的电源由计算机 USB提供电源(J1短路),选择P0口彩灯功能电 路(J500短路);
三、要求: 1、学生实验前预习实验并完成预习报告;
2、学生实验中认真记录程序的修改过程;
3、学生实验中要完成规定的思考题;
4、学生实验后要按要求完成实验报告。
实验一:流水灯实验
四、实验电路
1、P0口采用灌电流的方式来驱动LED发光管; 2、根据电路的特点,P0口输出低电平点亮LED
发光管,高电平熄灭LED发光管; 3、跳线J500用短路帽短路接通电源,跳线J600、

流水灯实验报告

流水灯实验报告

流水灯实验报告
今天,我们进行了一个有趣的实验 - 流水灯实验。

首先,让我们来谈一谈流水灯的原理。

简单来说,流水灯是一
组LED灯,它们像水一样从一端流向另一端,每个灯的状态依次
更改。

然后,我们开始制作流水灯。

首先,我们需要一块电路板和一
些LED灯。

我们将LED灯焊接在电路板上,并使用一些导线连接它们。

然后,在一端添加一个电缆,以便将电路板连接到电源。

接下来,我们需要使用一个可编程芯片来控制LED灯的闪烁
模式。

我们使用了Atmel AVR芯片作为我们的控制器,并编写了
一些简单的程序来控制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灯的亮灭情况与输入信号的变化是一一对应的,验证了实验的正确性。

创意流水灯实验报告(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灯珠的种类和数量,丰富流水灯的色彩效果。

实验1_流水灯实验

实验1_流水灯实验

实验1 流水灯实验一、实验目的1) 简单I/O 引脚的输出2) 掌握软件延时编程方法 3) 简单按键输入捕获判断 二、实验实现的功能1) 开机是点亮全部12个发光二极管,闪烁三下;2) 按下不同的按键12个发光二级管按照不同的方式显示。

具体显示规则如下:1) 1号键按下,按照顺时针循环依次点亮发光二极管; 2) 2号键按下,按照逆时针循环依次点亮发光二极管;3) 3号键按下,按照顺时针间隔1个依次点亮发光二极管; 4) 4号键按下,按照逆时针间隔1个依次点亮发光二极管; 5) 5号键按下,按照顺时针间隔2个依次点亮发光二极管; 6) 6号键按下,按照逆时针间隔2个依次点亮发光二极管;三、系统硬件设计 1、系统原理框图2、系统硬件原理图D 1D 2D 3R N 11k123456789101112242322212019181716151413D 4D 5D 6D 7D 8D 9D 10D 11D 12P 22P 21P 20P 26P 25P 24P 23P 06P 05P 04P 27P 07V C CR 21kR 31kP 36S W 1S W 2S W 3S W 4S W 5S W 6P 32P 33P 37P 34R 1710k R 1810k R 1910kV C C80C51时钟部分电源与复位部分12个发光二极管键盘系统四、系统软件设计本次实验的主要部分是:确定发光二级管点亮规律和检测按键的动作。

其中发光二级管点亮规律通过给定的数组来确定,而检测按键,采用查询方式实现,详细程序如下:#include<stc10.h>#define uint unsigned int #define uchar unsigned char bit flag1=0; uchar f1,f=0; void main() {void Delay1ms(uint ms);uchar key(uchar f);uchar led[12]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xef,0xdf,0xb f,0x7f}; //表示各发光二级管 uchar key_value[6]={0,1,2,3,4,5}; uint num[6]={0,0,0,0,0,0};char type[6]={1,-1,2,-2,3,-3}; //分别表示顺时针、逆时针、间隔一个正逆时针、间隔两个正逆时针 uchar i;P2=0xff; //关闭D1——D8 P0=P0|0xf0; //关闭D9——D12Delay1ms(100); //延时方便清晰看到LED 闪烁现象 for(i=0;i<3;i++) //亮灭3次,中间间隔若干时间 { P2=0;//点亮D1——D8U 1S T C 10F 08XP S E N29A L E 30V C C 40E A 31X 119X 218R S T 9P 0.0/A D 039P 0.1/A D 138P 0.2/A D 237P 0.3/A D 336P 0.4/A D 435P 0.5/A D 534P 0.6/A D 633P 0.7/A D 732P 1.0/T 21P 1.1/T 2E X 2P 1.2/E C I 3P 1.3/C E X 04P 1.4/C E X 15P 1.5/C E X 26P 1.6/C E X 37P 1.7/C E X 48P 2.0/A 821P 2.1/A 922P 2.2/A 1023P 2.3/A 1124P 2.4/A 1225P 2.5/A 1326P 2.6/A 1427P 2.7/A 1528P 3.0/R X D 10P 3.1/T X D 11P 3.2/IN T 012P 3.3/IN T 113P 3.4/T 014P 3.5/T 115P 3.6/W R 16P 3.7/R D17C 330pC 430p X 111.0592MX 1X 2R 151kR 2010k单片机最小系统部分C 110u FD 13C 2104V C CV C CV C CC 510u FC M A XJ1C O N 28C12345678910111213141920212223242526272815161718P 02P 01P 00P 06P 05P 04P 03P 07P 23P 22P 21P 20P 27P 26P 25P 24D 5D 6D 7D 8D 1D 2D 3D 4W 1D 9W 4W 3W 2D 12D 11D 10P 23P 22P 21P 20P 25P 24P 31P 30P 27P 26P 35P 34P 33P 32P 37P 36P 03P 02P 01P 00P 07P 06P 05P 04P 13P 12P 11P 10P 15P 14X 2X 1P 17P 16P 11P 10R S T P 15P 14P 13P 12P 17P 16P 35P 34P 33P 32H 1H 2P 37P 36L 1L 2L 3EFG D P CBADV C CJ6C O N 40A 12345678910111213141516171819202122232425262728293031323334353637383940S W 8R S TP0=P0&0x0f; //点亮D9——D12Delay1ms(500); //延时P2=0xff; //关闭D1——D8P0=P0|0xf0; //关闭D9——D12Delay1ms(500); //延时}while(1){f1=key(f); //传递键值if((f1!=f)||(flag1))//判断是否有键按下,不管两次按键的键值是否相等,只要有键按下,都从D0重新开始循环{f=f1; //交换新键值num[f]=0; //从D0开始循环flag1=0; //标志位清零}if(num[f]%12<8) //先依次亮前8个{P2=led[num[f]%12];P0=P0|0xf0; //关闭D9——D12}else //再依次亮后4个{P0|=0xf0;P0&=led[num[f]%12];P2=0xff; //关闭D1——D8}Delay1ms(100);//num[f]=num[f]+type[f]; //点亮type[f]所对应模式的下一个LEDswitch(num[f]) //保证循环连续一致{case 65535:num[f]=65531;break;case 65534:num[f]=65532;break;case 65533:num[f]=65529;break;default: break;}}}void Delay1ms(uint ms) //@11.0592MHz {uchar i,j;uint k;for(k=0;k<ms;k++){i = 11;j = 190;do{while (--j);} while (--i);}}uchar key(uchar s) //按键扫描子函数{uchar flag=s;uchar k,i,p3;flag1=0;k=0x7f; //行扫描初值for(i=0;i<2;i++) //扫描行{P3=k;Delay1ms(5);p3=P3; //判断哪一列的键按下switch(p3&0x1c){case 0x18: flag=i*3;flag1=1;break;case 0x14: flag=i*3+1;flag1=1;break;case 0x0c: flag=i*3+2;flag1=1;break;default: break;}if(flag1)break;else k=k>>1|0x80;}return flag;}五、实验过程中遇到的问题及解决方法1.由于这个实验是第一个实验因此遇到了不少的问题。

流水灯实验原理

流水灯实验原理

流水灯实验原理
流水灯实验原理:
流水灯实验是一种常见的电路实验,利用多个LED灯按照特
定的模式依次亮起并熄灭,形成像流水一样的效果。

实验材料:
- 电路板
- 电源
- 电阻
- 开关
- 透明LED灯
- 铜线
实验步骤:
1. 将电路板连接到电源上,注意确保电源正常工作。

2. 在电路板上安装一个开关,将其与电源连接。

3. 在电路板上设置多个透明LED灯,根据实验需要确定灯的
数量。

4. 通过铜线将LED灯串联在一起,确保灯之间有良好的连接。

5. 在电路中添加适当的电阻来限制电流,防止烧坏LED灯。

实验原理:
1. 当电路通电时,开关打开,电流从电源流入电路板。

2. 电流经过第一个LED灯,使其发亮。

3. 第二个LED灯连接在第一个LED灯的正极和电路板上,当
第一个LED灯发亮时,电流也会流过第二个LED灯,使其发
亮。

4. 按照同样的原理,当前一个LED灯发亮时,电流会依次流过所有的LED灯,使它们依次发亮。

5. 当电流流过最后一个LED灯后,它会返回电路板上的电源负极,然后流回电源。

通过以上步骤,LED灯会按照顺序亮起和熄灭,形成流水灯效果。

这是因为电流按照特定的路径流动,依次经过每个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. 工业领域:流水灯可以应用于指示灯、广告灯箱等领域,起到提示和宣传的作用。

流水灯测试实验报告

流水灯测试实验报告

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

二、实验材料- 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.1 掌握单片机基础操作1.2 熟悉单片机的I/O口的使用1.3 学会使用循环语句、延时函数等基础函数2. 实验原理在该实验中,通过单片机控制多个LED灯依次点亮、熄灭,形成一个类似“流水”的效果。

在AT89S52单片机中,I/O口具有输出功能,即可以将I/O口的电平控制为高电平或低电平。

通过控制不同的I/O口电平,可以控制不同的LED灯的点亮、熄灭状态。

而I/O口的状态变化可以使用循环语句、延时函数等来控制,从而实现流水灯的效果。

3. 实验步骤3.1 硬件准备3.1.1 准备硬件:AT89S52单片机1块、LED灯5个、面包板1块、跳线若干。

3.1.2 连接电路:将AT89S52单片机引脚P0.0~P0.4连接到5个LED灯的阳极,将LED 灯的阴极连接到地,可以使用面包板和跳线完成电路连接。

3.2 编写程序流水灯实验程序如下:#include<reg52.h> //包含单片机寄存器的头文件sbit led1=P0^0; //定义led1~led5分别对应P0口的0~4引脚sbit led2=P0^1;sbit led3=P0^2;sbit led4=P0^3;sbit led5=P0^4;led1=0; //熄灭led1led2=1; //点亮led2led3=0; //熄灭led3led4=0; //熄灭led4led5=0; //熄灭led5delay(50000); //延时一段时间4. 实验结果将实验板连接电源并启动,运行程序后,可以看到LED灯依次点亮、熄灭,形成流水灯效果。

5. 实验思考题5.1 如何改变流水灯的速度?可以通过延时函数的参数设置来改变流水灯的速度,延时时间越短,LED灯的闪烁速度越快。

可以通过改变程序中LED灯点亮和熄灭的顺序和时间,实现不同的流水灯效果,比如5个LED灯两两同时点亮、相邻的LED灯同时点亮等效果。

实验一 花样流水灯

实验一 花样流水灯

实验报告一实验名称:花样流水灯实验目的:熟悉MCU组装及STC ISP和keil软件的使用;学习子程序的编写和使用。

实验原理:P1口相当于真正的双向口,输入时需先将口置1,每根口线可以独立输入或输出。

本实验延时子程序采用指令循环来实现系统板上硬件连线把“单片机系统”区域中的P2.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。

实验现象:每盏流水灯每隔0.1S自下往上,后又自上往下循环点亮流动. 实验原理图如下:流程图如下所示:程序如下:;-------------------------------------------------------; 流水灯(8个发光二极管循环点亮); 功能:流水灯(8个发光二极管循环以1S间隔点亮);------------------------------------------------------- ORG 0000H ;伪指令,指定程序从0000H开始存放LJMP MAIN ;跳转指令,程序跳转至MAIN处执行ORG 0030H ;伪指令,指定程序从0030H开始存放MAIN: MOV SP, #60H ;给堆栈指针赋初值LIGHT: MOV R4,#08 ;设置循环次数MOV A,#0FEH ;给A赋初值LOOP: RR A ;将A的值右移一位MOV P1,A ;将A的值赋给P1口LCALL DEL1S ;调用1S延时子程序DJNZ R4,LOOP;判断R4是否为0,不为0跳转,为0顺序执行 LJMP LIGHT ;跳转指令,跳转至LIGHT处继续执行;1S延时子程序(11.0592MHz,误差0)DEL1S: MOV R5, #089HDL1S0: MOV R6, #0A4HDL1S1: MOV R7, #013HDJNZ R7, $DJNZ R6, DL1S1DJNZ R5, DL1S0RETEND ;程序结束指令。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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文件下载到开发板
第六步实验现象:将程序下载到学习板后,按下开发板的复位按钮,能够按照一开始设计的闪烁方式进行,没有出错。

六、实验小结
本次流水灯试验让我与单片机学习板亲密接触,并使我对学习板有了初步的了解,对每个器件也有了初步的认识。

它的神奇与奥妙深深地吸引了我,使我对它产生了极大的兴趣,这是学习单片机的好兆头。

本次编写流水灯程序,一开始我是用了一种写起来比较简单,看起来比较复杂的方法(因为闪烁的方式比较多,所以程序比较长)。

后来实验验收的时候老师一看,第一感觉就是:程序比较长,看起来比较复杂,就叫我改成数组的形式,把它简单化。

老师还给了我提示,再结合我平时看过的流水灯程序的事例,我有了一点思路。

然后我就按照老师的思路现场修改程序,经过一段时间,我修改好了。

老师看了之后,说了一句:“挺好的!”。

这是我前进的动力,遇到挫折时的鼓励,迷失方向时的一缕阳光!!!。

相关文档
最新文档