流水灯控制实验

合集下载

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

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

单片机跑马灯(流水灯)控制实验报告实验目的:本实验旨在通过使用单片机对LED灯进行控制,实现跑马灯(流水灯)的效果,同时熟悉单片机编程和IO口的使用。

实验器材:1)STC89C52单片机2)最基本的LED灯3)面包板4)若干跳线实验过程:1.硬件连接:将单片机的P2口与面包板上的相应位置连接,再将LED灯接入面包板中。

2.编写程序:按照题目要求编写所需程序。

3.单片机烧录:将程序烧录进单片机中,即可实现跑马灯效果。

程序详解:1. 由于LED灯是呈现亮灭效果,我们要编写程序来控制LED的亮灭状态。

2. 在程序中,我们通过P2口控制LED灯的亮灭状态。

例如,若要让LED1亮,我们就将P2口的第一个引脚设置为低电平(0),此时LED1就会发光。

同样地,若要LED2,LED3等依次点亮,则需要将P2口的第二个、第三个引脚设置为低电平,依此类推即可。

3. 接下来,我们要实现每个LED灯的亮灭时间间隔,并实现跑马灯的效果。

4. 在本实验中,我们采用了计时器中断的方式来实现灯光的控制,即在定时器中断函数中对P2口进行控制,这样可以方便地控制灯亮灭时间和亮度。

通过改变定时器中断的时间,可以改变LED灯的亮灭时间;通过改变P2口的控制顺序,可以实现跑马灯效果。

5. 整个程序比较简单,具体的代码实现可以参考以下程序:#include <REG52.H>#include <intrins.h>#define uint unsigned int #define uchar unsigned char void Delay1ms(uchar _ms); void InitTimer0();sbit led1=P2^0;sbit led2=P2^1;sbit led3=P2^3;sbit led4=P2^4;sbit led5=P2^5;sbit led6=P2^6;sbit led7=P2^7;void InitTimer0(){TMOD=0x01;TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1;}void Timer0() interrupt 1 {static uint i;TH0=(65536-50000)/256; TL0=(65536-50000)%256;i++;if(i%2==0){led1=~led1;}if(i%4==0){led2=~led2;}if(i%6==0){led3=~led3;}if(i%8==0){led4=~led4;}if(i%10==0){led5=~led5;}if(i%12==0){led6=~led6;}if(i%14==0){led7=~led7;}}void Delay1ms(uchar _ms){uchar i;while(_ms--){i=130;while(i--);}}实验总结:通过本次实验,我们掌握了单片机控制跑马灯(流水灯)的方法,对单片机编程和IO 口的使用有了更深入的了解。

流水灯控制实验PLC综合实训报告

流水灯控制实验PLC综合实训报告

流水灯控制实验PLC综合实训报告前言随着工业自动化的不断发展,PLC(Programmable Logic Controller)已经成为了工业控制系统中的重要组成部分,并被广泛应用于工业、建筑、冶金等领域。

PLC 具有编程方便、可靠性高、易于维护等优点,因此受到了广大工程技术人员的欢迎。

本次实训以流水灯控制为例,让我们学习如何使用PLC,实现简单电路的控制。

一、实验目的1、了解PLC的基本概念和工作原理;2、学习PLC的编程方法和语言;3、掌握PLC控制电路的设计方法;4、练习PLC的实际应用。

二、实验器材1、PLC:三菱 FX2N-32MR;2、继电器模块:三菱 FX2N-16ER;3、开关按钮:三菱 XP2-ER;4、灯泡:AC220V 60W;5、导轨、端子台、导线等。

三、实验原理PLC(可编程逻辑控制器)是一种专门用于工业控制的数字电子计算机,它通过控制输入/输出设备的信号,实现对工业生产过程的控制。

PLC具有以下特点:1、可编程性:PLC采用可编程的程序控制,可以根据具体要求编制程序,灵活可变。

2、可靠性高:PLC拥有强大的自我检测和故障保护机制,能够快速发现并隔离故障,保证工业生产的可靠性。

3、易于维护:PLC采用模块化设计,模块之间互相独立,更换维修时非常方便。

4、安全性好:PLC具有严密的硬件和软件安全保护机制,能够有效避免工作过程中的安全事故。

本次实验所控制的流水灯,是由多个信号输出交替控制的。

PLC将输入的信号,通过编程控制,实现了信号输出的自动交替。

因此,我们可以在PLC编程后,通过控制输入按钮,实现流水灯的开启和关闭。

四、实验步骤1、器材准备实验器材准备:PLC、继电器模块、开关按钮、灯泡等。

2、电路设计及接线设计电路,灯泡连接在继电器上,继电器连接在端子台上。

3、PLC编程(1)打开PLC编程软件GX Developer,创建新项目,并指定PLC型号为FX2N-32MR。

3-流水灯控制实验需打印

3-流水灯控制实验需打印

实验三、流水灯控制实验一、实验目的1.掌握keilc51软件与protues软件联合硬仿的调试方法。

2.掌握如何应用程序与查表等方法实现流水灯效果。

3.掌握按键去抖原理及处理方法。

二、实验仪器与设备1、微机一台2、keilc51开发环境,protues软件。

三、实验内容1.用protues设计一流水灯控制电路。

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

P3.3口接一按键K1。

参考电路下面给出。

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

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

若用KEY表示按键的次数,则其对应流水效果如下:1.KEY=0:L1—L8全亮;2.KEY=1:L1—L8先全灭,然后自右向左单管点亮,如此循环;3.KEY=2:L1—L8先全灭,然后自右向左依次点亮,如此循环;4.KEY=4:L1—L8先全亮,然后自右向左依次熄灭,如此循环;5.KEY=5:自行设计效果;以上移位及闪烁时间均设置为0.3秒,按动5次按键后,再按键时,流水灯效果从头开始循环。

四、实验原理及步骤1.用protues设计流水灯控制电路;2.在keilc51中编写流水灯控制程序,编译通过后,与protues联调;3.按动K1键,观察是否达到演示效果;4.利用终端和查询两种方式编写程序,比较二者的区别;五、电路设计及调试:(1)实验电路(2).程序设计及调试#include<reg51.h>#define uint unsigned int#define uchar unsigned charuchar i,m=0xfe,n=0xfe,p=0x7f,temp=0; void delay(uint c ){uchar i,j;for(i=0;i<125;i++)for(j=0;j<c;j++);}void main(){IT1=1;EX1=1;EA=1;while(1){if(temp==0){P1=0x00;}if(temp==1){P1=0xff;for(i=0;i<8;i++){m=((m<<1)|(m>>7));P1=m;delay(200);}}if(temp==2){P1=0xff;delay(200);P1=0xfe;for(i=0;i<8;i++){P1=n<<i;delay(200);}}if(temp==3){P1=0x00;delay(200);for(i=0;i<8;i++){P1=(p>>i);delay(200);}}if(temp==4){P1=0xff;delay(200);P1=P1;delay(200);}if(temp==5){P1=0xf0;delay(200);P1=P1;delay(200);}}}void int_1() interrupt 2{EA=0;delay(5);EA=1;temp++;if(temp>=6){temp=0;}}(3)实验调试中遇到的问题:为什么要按键去抖?按键如果不去抖,按键抖动会引起一次按键被误读多次,程序执行效果变乱,导致程序执行没有次序。

流水灯控制的实验报告

流水灯控制的实验报告

流水灯控制的实验报告流水灯控制的实验报告引言:流水灯是一种常见的电子实验装置,通过一系列LED灯的闪烁顺序,形成流动的效果。

本实验旨在通过控制流水灯的亮灭顺序,探索电子元件的控制原理和应用。

实验目的:1. 了解流水灯的基本原理和工作方式;2. 掌握流水灯控制电路的搭建方法;3. 熟悉流水灯控制电路的编程方法;4. 实现不同的流水灯效果。

实验器材与材料:1. Arduino Uno开发板;2. 面包板;3. Jumper线;4. LED灯;5. 220欧姆电阻。

实验步骤:1. 将Arduino Uno开发板连接到电脑上,并打开Arduino IDE软件;2. 在面包板上插入LED灯和电阻,按照电路图连接;3. 将面包板上的电路与Arduino开发板上的数字引脚相连;4. 在Arduino IDE软件中编写代码,控制流水灯的亮灭顺序;5. 上传代码到Arduino开发板,并观察流水灯效果。

实验结果与分析:通过编写不同的代码,可以实现不同的流水灯效果。

例如,可以设置流水灯从左到右依次亮灭,然后从右到左依次亮灭。

还可以设置流水灯的亮灭间隔时间,调节流水灯的闪烁速度。

实验中,我们发现流水灯的控制原理是通过改变LED灯的正负极连接状态来实现的。

当LED灯的正极与Arduino开发板上的数字引脚相连时,流水灯对应的LED灯会亮起;当LED灯的负极与数字引脚相连时,LED灯熄灭。

通过控制不同引脚的高低电平,可以实现流水灯的控制。

此外,我们还观察到流水灯的亮灭效果与代码中的循环次数和延时时间有关。

通过调节循环次数和延时时间,可以改变流水灯的亮灭速度和频率。

这一点对于设计不同的流水灯效果非常重要。

实验总结:通过本次实验,我们深入了解了流水灯的控制原理和应用。

通过编写代码和搭建电路,我们成功实现了多种流水灯效果。

这个实验不仅帮助我们理解了电子元件的控制原理,还培养了我们的动手能力和创造力。

在今后的学习和工作中,我们可以将流水灯的控制原理应用到更复杂的电子装置中,如交通信号灯、广告牌等。

流水灯实验报告

流水灯实验报告

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

流水灯实验报告

流水灯实验报告

流水灯实验报告流水灯实验报告引言:流水灯是一种常见的电子实验,通过控制电路中的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灯的亮灭时间和顺序可以根据程序的编写进行调整。

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

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

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

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

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

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

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

流水灯控制实验

流水灯控制实验

综合实验:流水灯控制一、实验要求:根据开关状态选择八个流水灯的工作方式,且在任何状态下如有开关状态发生改变,则能立即转入最新开关状态所对应方式工作。

模式一:顺序点亮八个灯,一直循环,直到开关状态改变。

模式二:八个灯闪烁,即八盏灯全亮后全灭,一直循环,直到开关状态改变。

模式三:间隔点亮八个灯,如对八盏灯编号为L1、L2、L3、L4、L5、L6、L7、L8 ,则灯亮的方式为:L1 L3 L5 L7 ,L2 L4 L6 L8 ,L1 L3 L5 L7 ,L2 L4 L6 L8(从左往右循环)。

二、实验内容:开关S1、S2 分别与P3.1、P3.0连接,用于流水灯工作方式控制,开关组合为00、01、02、03,其中00为无效状态,01、02、03分别对应连续方式点亮灯、闪烁、间隔点亮。

八盏灯L1、L2、L3、L4、L5、L6、L7、L8分别与P1.0~P1.7连接,八盏灯为共阴极连接,即高电平点亮。

由于灯的状态改变时间间隔小于肉眼能分辨的最小时间间隔,所以在程序实现的时候必须在灯两种状态之间引入延时处理,以便肉眼能够分辨。

1.延时子程序(条件转移侧N,竖Y此页有效)四、程序代码:ORG 0000HSJMP MAINORG 0030HMAIN:MOV SP,#60HRESCAN:MOV A,#00HMOV P1,A ;灯全灭LCALL SCAN ;扫描P3口状态CJNE R0,#01H,NEXT1AJMP MODE1 ;如果P3=FDH,则转入MODE1执行(灯连续点亮)NEXT1: CJNE R0,#02H,NEXT2AJMP MODE2 ;如果P3=FEH,则转入MODE2执行(灯闪烁)NEXT2: CJNE R0,#03H,NEXT3AJMP MODE3 ;如果P3=FFH,则转入MODE3执行(间隔点亮灯)NEXT3: SJMP RESCAN ;如果P3=FCH(无效状态),则不停的对P3口扫描MODE1: ;灯连续点亮,从左往右(MODE1), P3=FDH MOV A,#00HMOV P1,AMOV R2,#80H ;R2=1000,0000LOOP1: MOV A,R2MOV P1,ARR AMOV R2,A ;A向右移一位后回送R2LCALL DEL200 ;调用200Ms延时子程序LCALL SCAN ;扫描P3口状态CJNE R0,#01H,NEXT01SJMP LOOP1 ;如果P3状态没变,跳到LOOP1执行NEXT01:CJNE R0,#02H,NEXT02AJMP MODE2 ;如果P3变为P3=FEH,跳到MODE2执行NEXT02: CJNE R0,#03H,NEXT03AJMP MODE3 ;如果P3变为P3=FFH,跳到MODE3执行NEXT03: AJMP RESCAN ;如果P3=FCH(无效状态),则不停的对P3口扫描MODE2: ;灯闪烁(MODE2), P3=FEHMOV A,#00HLOOP2: MOV P1,ACPL ALCALL DEL200 ;延时200MsPUSH ACC ;扫描P3状态前,保护现场LCALL SCAN ;扫描P3口POP ACC ;恢复现场CJNE R0,#02H,NEXT001SJMP LOOP2 ;如果状态没变,转到LOOP2执行NEXT001: CJNE R0,#01H,NEXT002AJMP MODE1 ;如果模式改变,P3=FEH,跳到MODE2NEXT002: CJNE R0,#03H,NEXT003SJMP MODE3 ;如果模式改变,P3=FFH,跳到MODE3NEXT003: AJMP RESCAN ;如果P3=FCH(无效状态),则不停的对P3口扫描MODE3:MOV A,#00H ;间隔点亮灯(MODE3),R0=03HMOV P1,AMOV R3,#04H ;R3,R4都用来控制当前趟第一个灯亮的初始位置MOV R4,#04HMOV A,#80H ;准备给P1送1000,0000LOOP3 :MOV P1,ARR ARR ALCALL DEL200 ;延时200MsDJNZ R3,LOOP3 ;判断当前(从第一个开始亮)趟结束MOV R3,#04H ;如果此趟结束,重设计数,为下一次做准备MOV A,#40H ;设置下一趟灯亮的初始位置(第二个)LOOP4: MOV P1,ARR ARR ALCALL DEL200 ;延时200MsPUSH ACC ;保护现场LCALL SCAN ;扫描P3口POP ACC ;现场恢复CJNE R0,#03H,NEXT21DJNZ R4,LOOP4 ;如果模式不变,且该趟没结束,则到LOOP4MOV R4,#04H ;如果此趟结束(模式没变),则重置计数,为下一次做准备MOV A,#80HSJMP LOOP3 ;执行当前模式的第二次亮灯NEXT21:CJNE R0,#01H,NEXT22AJMP MODE1 ;模式改变为MODE1则装到对应位置执行NEXT22: CJNE R0,#02H,NEXT23AJMP MODE2 ;模式改变为MODE2则装到对应位置执行NEXT23: AJMP RESCAN ;如果R0=00H(无效状态),则不停的对P3口扫描DEL200: ;如果晶振频率f=6MHz,误差为0MOV R7,#13HDL1: MOV R6,#14HDL0: MOV R5,#82HDJNZ R5,$ ;R5-1<>0时重复执行此句DJNZ R6,DL0DJNZ R7,DL1RETSCAN:JB P3.0,MM ;P3口状态扫描子程序JB P3.1,VVMOV A,#00HMOV R0,ARETVV:MOV A,#02HMOV R0,ARETMM:JB P3.1,NNMOV A,#01HMOV R0,ARETNN:MOV A,#03MOV R0,ARETEND五、实验分析1、误差分析:假如晶振频率f = 6MHz,那么一个机器周期t = 0.002Ms。

流水灯实验报告单(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. 在调整电阻阻值时,要注意观察灯光的变化,以便找到最佳的电阻阻值。

实验一流水灯控制实验

实验一流水灯控制实验

实验一流水灯控制实验
一、实验目的
1.了解51单片机的引脚结构,掌握单片机I/O的基本控制方法,延时时间的估算。

2.熟悉Keil开发环境,51单片机程序下载软件的使用。

3. 编写代码实现LED灯的流水功能,掌握蜂鸣器的打开和关闭方法。

4. 利用开发板下载hex文件后验证功能。

二、实验器材
PC机,CT107D单片机开发板
三、CT107D单片机开发板LED灯和蜂鸣器的电路接线图
注:流水灯的亮灭规律自行设计,要求说明控制流水灯亮灭规律的方法。

下图所示为74HC138译码器、LED灯、蜂鸣器及M74HC573锁存器的电路连接图。

说明:蜂鸣器的打开和关闭。

P06为高电平时,如果LE端有下降沿产生,锁存器会把P0口的数据锁存输出,使Q7引脚保持并输出高电平,再通过U10(ULN2003)反向逻辑驱动器件使N_BUZZ 输出为低,此时蜂鸣器就会鸣叫。

单片机流水灯实验报告

单片机流水灯实验报告

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

通过本实验,我们希望达到以下目的:1.深入理解单片机的I/O端口的工作原理和使用方法。

2.掌握单片机定时器/计数器的工作原理和使用方法。

3.学会编写简单的单片机程序,实现特定的LED灯控制。

4.通过实践操作,提高单片机软硬件的综合应用能力。

二、实验设备1.单片机开发板2.电脑一台3.八个LED灯4.杜邦线若干5.电阻、电容等电子元件三、实验原理本实验采用AT89C51单片机作为主控芯片。

八个LED灯分别连接到P1端口的P1.0到P1.7。

通过编程控制P1端口的每一个引脚,实现对LED灯的亮灭控制。

使用定时器/计数器实现延时,达到流水灯效果。

四、实验步骤和内容1.搭建硬件电路将八个LED灯、一个上拉电阻以及相应的杜邦线连接至单片机开发板。

确保电源正确连接,并注意LED灯的长脚为正极,短脚为负极。

2.编写程序使用Keil C51编写程序,实现如下功能:点亮每个LED灯一定的时间,然后熄灭。

重复此过程,形成流水灯效果。

代码如下:#include <reg51.h> //包含51单片机的头文件#define LED P1 //定义LED为P1端口void delay(unsigned int time) //延时函数{unsigned int i,j;for(i=0;i<time;i++)for(j=0;j<1275;j++);}void main() //主函数{while(1) //程序一直循环执行{unsigned char i=0; //定义一个变量i,用于循环控制LED灯while(i<8) //循环点亮每个LED灯{LED=~(0x01<<i); //点亮第i个LED灯delay(50000); //延时50ms(50*1275us)i++; //变量i加1,控制下一个LED灯}}}3.编译程序将程序编译为二进制文件,生成HEX文件。

最新流水灯控制实验报告

最新流水灯控制实验报告

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

通过实验,学习如何使用微控制器的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灯流水灯的效果,分析程序运行过程。

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

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

实验三流水灯控制实验姓名专业通信工程学号成绩一、实验目的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延时程序;让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有按键按下。

8255LED流水灯控制

8255LED流水灯控制

8255LED流水灯控制实验四8255led流水灯控制实验一、实验目的1、认识8255接口芯片、学习其在微机系统中的应用;2、学习8255编程原理;3.掌握LED水灯的汇编语言编程方法。

2、实验仪器1、dj-598kc开发系统1台2、pc机1台三、实验内容1.8086实验箱主系统电路组成★该流水灯系统采用8255芯片扩展连接“led灯”模块。

★ 测试仪包括12个发光二极管和相应的驱动电路,如下图所示。

LED控制信号输入端子l1-l12。

当输入端为低电平“0”时,LED点亮,否则LED熄灭。

2、8255编程要点指南8255是一种通用可编程并行接口芯片。

它提供三个I/O端口。

每个端口都可以编程以多种方式工作。

它广泛应用于中小型系统。

其组成结构如下图所示。

★三个i/o口,分别是pa口、pb口和pc口。

每个口提供八根数据线,如pa口线(pa0~pa7),用于连接外设。

★ dB、CB和ab总线用于连接三条CPU总线,dB用于接收来自CPU的控制命令字或数据,CB用于选择8255数据端口的读写操作,ab用于选择读写哪个端口。

★a组和b组控制电路用于编程控制pa口、pb口和pc口的工作方式选择。

见下图控制命令字格式。

如果端口a的模式0用于控制LED灯,则控制字为1000000B=80h。

★编程控制方法a、将控制命令字设置为使端口a在模式0下工作-将控制命令字写入控制端口。

b、输出要点亮的LED数据——将照明数据写入端口A。

c.8255基地址为0ff28h,则a口地址0ff28h,b口地址0ff29h,c口地址0ff2ah,控制口地址0ff2bh。

3.实验系统的建设和使用a.键盘显示器设置:jk开关置“系统”处,进入监控状态。

c、电路连接:8255A芯片a口pa0-pa7依次连接ll-l8,B口pb0-pb3依次连接l9-l12。

d.接通实验仪电源,+5vled指示灯正常发光,实验仪数码管显示闪动p.,说明实验仪初始化成功,处于待命状态。

流水灯控制实验报告

流水灯控制实验报告

流水灯控制实验报告一、引言流水灯是一种常见的电子实验和电路设计项目,它通过控制一组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.可以将流水灯电路与其他电子元件结合,设计更复杂的电路和效果。

实验三 流水灯控制实验

实验三 流水灯控制实验
{
P1=tab[0];
delay_ms(200);
keyscan();
P1=tab[9];
delay_ms(200);
keyscan();
}
}
void own()
{
char k;
for(k=1;k<5&&(num==5);k++)
{
P1=tab[k]|tab[9-k];
delay_ms(200);
keyscan();
(3)按动K1键,观察是否达到演示效果。
(4)试用中断和查询两种方式编写程序,比较二者的区别。
四、程序设计与调试:
1.实验电路图如图1所示。
2.实验源程序见附录。
图1
五、实验总结:
1.实验设计时注意按键电平抖动问题,可在检测到按键按下后延时5—10ms,待前沿抖动消失后,再检测按键状态,若发现仍保持闭合状态,则确真正有键按下。
附录1.查询方式程序
#include <REG52.H>
char code tab[10]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff};
char code tabunsigned char num=0;
sbit key=P3^3;
void keyscan()
{
unsigned char m,t;
{
P1=0xff;
delay_ms(200);
keyscan();for(t=8;t>0&&(num==3);t--)
{m=(~tab[t])&(P1);
P1=m;delay_ms(200);keyscan();}

创意流水灯实验报告(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. Arduino开发板2. 面包板3. LED灯(至少8个)4. 220欧姆电阻(至少8个)5. 连线材料三、实验步骤1. 将Arduino开发板连接到电脑上,并打开Arduino IDE软件。

2. 在Arduino IDE软件中,编写代码,实现流水灯的效果。

3. 将面包板连接到Arduino开发板上,确保连接稳固。

4. 将LED灯和电阻连接到面包板上,按照流水灯的顺序排列。

5. 将面包板上的电路与Arduino开发板上的引脚相连接。

6. 上传代码到Arduino开发板,观察流水灯的效果。

四、实验结果与分析经过实验,我们成功搭建了流水灯电路,并实现了流水灯的效果。

当代码上传到Arduino开发板后,LED灯按照设定的顺序依次亮灭,形成了流动的效果。

通过对实验结果的观察和分析,我们可以得出以下结论:1. 流水灯的实现依赖于Arduino开发板的控制,通过控制引脚的高低电平,来控制LED灯的亮灭。

2. 电阻的作用是限制电流的流动,保护LED灯免受过大电流的损害。

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。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DelayMS(150);}for(i=7i>0;i--){
P2=_cror_(P2,1);
DelayMS(150);
}
}
}
三、实验步骤
1、演示C51典型应用系统的开发过程
2、进入仿真组合软件的操作环境
3、在仿真组合软件环境中,编辑源程序;
4、源程序编辑好后,就可对源文件进行编译,生成目标代码并下载到Proteus环境下单片机中.



C






实验
实验一
一、实验目的
⑴了解C51典型应用系统的开发过程及仿真组合软件的使用。
⑵掌握扩展I/O接口的编程。
二、实验内容
编程实现LED按下列要求亮灭:左右来回循环的LED灯。
实验参考程序如下:
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
2、阅读仿真组合软件,掌握组合软件的进入、退出方法。
六、实验心得
#define uint unsigned int
void DelayMS(uint x)
{
uchar t;
while(x--)
{
for(t=120;t>0;t--);
}
}
void main()
{
uchar i;
P2=0x01;
while(1)
{
for(i=7;i>0;i--)
{
P2=_crol_(P2,1);
5、运行、调试程序和结果检查
6、设计更多的显示花样。
四、思考题
1、reg51.h头文件和reg52.h头文件有什么不同,为什么会有这些不同?
2、请用其它代码分别实现程序中P2=_crol_(P2,1)和P2=_cror_(P2,1)两个函数的功能。
五、预习要求
1、阅读教科书中附录A中Keil C51调试方法。
相关文档
最新文档