按键控制流水灯设计报告
流水灯实验报告总结

流水灯实验报告总结一、实验目的本次流水灯实验的主要目的是通过实际操作,深入理解数字电路中时序逻辑电路的工作原理,掌握基本的硬件电路设计和编程方法,提高我们对电子电路的实践操作能力和问题解决能力。
二、实验原理流水灯是通过控制一系列发光二极管(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、排查过程:首先检查电源是否正常,然后使用万用表测量芯片引脚的电压,发现计数器芯片没有正常工作。
【精品】PLC流水灯报告

【精品】PLC流水灯报告一、项目概述本项目是一个基于PLC的流水灯控制系统,可以实现多个LED灯条之间的交替闪烁,使得整个装置呈现出流水灯的效果。
本项目的目的是通过实际设计和制作流水灯控制系统,深入了解PLC的工作原理和控制方法。
二、系统设计2.1 系统组成本系统共由PLC控制器、LED灯带、电源和外部按钮组成。
PLC控制器作为系统的核心部件,通过编写控制程序来控制LED灯条的亮灭。
LED灯条连接在PLC的数字输出端口上,当输出口输出高电平时,LED灯条亮起;输出低电平时,LED灯条熄灭。
外部按钮连接到PLC的数字输入端口上,通过读取输入端口的状态来判断按钮是否被按下。
当按钮按下时,PLC会接收到一个信号,然后根据控制程序的设置来改变LED灯的亮灭状态。
本系统的流程如下:1. 初始化:PLC控制器启动,并将LED灯条的状态全部设为熄灭。
2. 检测按钮状态:PLC读取输入端口的状态,判断按钮是否按下。
3. 改变LED灯状态:如果按钮被按下,PLC将改变LED灯的状态,从而实现流水灯的效果。
4. 等待一段时间:为了使流水灯效果更加明显,PLC在改变LED灯的状态后会暂停一段时间。
5. 回到检测按钮状态:系统回到第二步,继续检测按钮状态。
2.4 功能点设计本系统共有三个功能点:开始、停止和复位。
开始功能点用于启动流水灯效果,按下按钮后,流水灯将开始交替闪烁。
复位功能点用于将系统状态还原为初始状态。
三、系统实现3.1 硬件设计本系统采用的PLC型号为S7-200系列,并搭配了4根LED灯条,每根LED灯条上都有10个LED灯,共40个LED灯。
外部控制按钮采用常开型按钮和通断型按钮,分别连接到PLC的数字输入端口上。
电源采用5V直流稳压电源,用于为LED灯提供电源。
本系统的控制程序采用Ladder图编写,共分为三个模块:开始、停止和复位。
开始模块:采用了一个双边沿触发器,用于检测外部按钮是否被按下,如果检测到按钮按下,则改变LED灯的状态,使其开始交替闪烁。
基于单片机AT89C51控制的键控流水灯课程设计报告

基于单片机AT89C51控制的键控流水灯课程设计报告————————————————————————————————作者:————————————————————————————————日期:宁波技师学院课程设计报告论文题目键控流水灯专业班级 ___学生姓名指导教师 _____宁波技师学院电气技术系二零一三9年21月摘要:单片机是一种集成电路芯片,采用超大规模技术,把具有数据处理能力的微处理器、随机存取数据存储器、只读程序存储器、输入输出电路、可能还包括定时计数器、串口通信口、显示驱动电路,脉宽调制电路、模拟多路转换器及A/D转换器等电路集成到一块芯片上,构成一个最小而完善的计算机系统.这些电路在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务.键控流水灯设计通过编写代码实现16个LED灯5种流水灯显示方式。
在设计中主要采用AT89C51这款芯片作为控制主体,用按钮来切换流水灯的发光方式来显示流水灯的发光模式。
系统通过P1口外接16个发光二极管,P3口接2个按键,一个按键进行方式选择,数码管显示方式编号;用一个键来控制流水灯流动的速度。
数码管接在AT89C51的P0和P2口上,而流水灯的发光二极管经过电阻接在P1口上。
设计中辅以简单的设备和必要的电路,设计了一款流水灯,最终达到预期的目的。
目录概述 .......................................................................................................... 错误!未定义书签。
1引言 ......................................................................................................... 错误!未定义书签。
2课题综述 .................................................................................................................... 错误!未定义书签。
多按键花样流水灯设计实习报告

中国电子科技大学实习总结报告实习类型生产实习实习单位电子科学学院实习基地实习起止时间 201X年7月X日至202X年6月X日指导教师所在院(系)电子科学学院班级电信X班学生姓名学号202X年 6月 20日多按键花样流水灯设计一、设计目的与要求通过学习51单片机开发软件及其实验箱掌握51单片机与外部扩展芯片连接方式和外部芯片的初始化编程方法。
进一步学习掌握8031内部计数器的使用和编程方法。
进一步掌握中断处理程序的编程方法。
利用74LS273扩展8031的I/O口通过编程实现流水灯实验。
1、设计目的(1)掌握51系列单片机的基本硬件结构及工作原理;(2)掌握51系列单片机的汇编语言及基本程序设计方法;(3)学习并掌握使用51系列单片机开发控制系统的基本步骤及方法。
2、设计要求(1)选择一个I/O口控制八只流水灯。
(2)设置四个按键K1—K4,按下K1跑马灯,K2流水灯,K3鸳鸯戏水,K4则循环三种控制方式。
(3)跑马灯:共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后关闭。
(4)流水灯:共8个LED逐次点亮,每隔100ms点亮一个LED,点亮100ms后下一个LED点亮,当所有LED灯全部点亮后,延时100ms,然后全灭;然后继续上次操作。
(5)鸳鸯溪水灯:共8个LED,第一次1、3、5、7号灯点亮,延时100ms,关闭,延时100ms,2、4、6、8号灯点亮,延时100ms,关闭,延时100ms。
然后继续上次操作。
二、单片机开发板原理整个系统工作由软件程序控制运行,根据需要,可以上电后系统经过初始化,进入用户设定模式状态。
基于AT89C52单片机的彩灯控制方案,实现对LED彩灯的控制。
本方案以AT89C52单片机作为主控核心,与驱动等模块组成核心主控制模块。
在主控模块上设有晶振电路和8个LED显示二极管,根据需要编写若干种亮灯模式,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号。
流水灯控制实验报告

《电子与控制系统设计》实验报告实验项目名称:LED灯的移动控制指导老师:元泽怀完成时间:2015年9月22日姓名:刘文开班级:12 电气 1班学号:201224122116成绩:电子信息与机电工程学院编制实验项目LED 灯的移动控制验证实验项目类型演示综合设计其他*一、实验目的1.熟悉 IO 接口的设置与应用;2.进一步熟悉编译软件和下载软件的使用;3.熟悉单片机 C 语言中移位、延时、数组等语句的应用;4.熟悉单片机 C 语言开发过程。
二、实验内容1.编写一程序,实现如下功能:每按一次S1 键,8 个发光二极管顺序点亮1 个;同样每按下 S2 键一次, 8 个发光二极管逆序点亮 1 个,实验电路原理图如下图 1所示。
实现发光二极管循环点亮的按键控制。
2. 设计一个完整程序(另建一个project),实现8个led灯的自动顺序(加法)点亮和逆序(减法)点亮。
图 1 实验原理图三、使用仪器设备及材料1、安装 windows xp 操作系统的微型计算机 1 台2、AVR单片机 C语言集成开发环境ICCAVR6.31A3、单片机仿真平台proteus7.54、AVR单片机下载软件progisp5、AVR单片机实验板 1 套(含下载器)四、实验过程原始记录1、硬件仿真电路( 1)在实验室电脑 E 盘“ 12 电气 1 班刘文开”文件夹里新建一个文件名为“ test1 ”的文件夹。
(2)打开 protues 仿真软件,根据图 1 设计出试验仿真图,命名为“test1.DSN ”保存到上述“ test 的文件夹里”。
U19RESET PC0/SCL 22 23PC1/SDA1224XTAL1PC2/TCK1325XTAL2PC3/TMS26PC4/TDO4027PA0/ADC0PC5/TDI3928PA1/ADC1PC6/TOSC13829PA2/ADC2PC7/TOSC237PA3/ADC33614PA4/ADC4PD0/RXD3515PA5/ADC5PD1/TXD3416PA6/ADC6PD2/INT03317 U2PA7/ADC7PD3/INT118PD4/OC1B 120119PB0/T0/XCK PD5/OC1A 219220PB1/T1PD6/ICP1 318321PB2/AIN0/INT2PD7/OC2 4174PB3/AIN1/OC05165PB4/SS6156PB5/MOSI714732PB6/MISO AREF 813830PB7/SCK AVCC9121011ATMEGA16LED-BARGRAPH-RED图 2实验仿真电路图9U122 RESET PC0/SCL23PC1/SDA1224XTAL1PC2/TCK1325XTAL2PC3/TMS26PC4/TDO4027PA0/ADC0PC5/TDI3928PA1/ADC1PC6/TOSC13829PA2/ADC2PC7/TOSC237PA3/ADC33614PA4/ADC4PD0/RXD3515PA5/ADC5PD1/TXD3416PA6/ADC6PD2/INT03317 U2PA7/ADC7PD3/INT118PD4/OC1B 120119PB0/T0/XCK PD5/OC1A 219220PB1/T1PD6/ICP1 318321PB2/AIN0/INT2PD7/OC24174PB3/AIN1/OC05165PB4/SS6156PB5/MOSI714732PB6/MISO AREF 813830PB7/SCK AVCC9121011ATMEGA16LED-BARGRAPH-RED图 3 实验仿真电路图2、程序流程图(1) .LED 控制移动流程图:开始初始化、定义I/O 端口YNS1 按下?Y计数器 counter++Counter>8?Y第一个 LED灯点亮是否有按键按Y下?S2 按下?Y计数器 counter--Counter<0?N Y最后一个下一个 LED灯点亮LED 灯点亮N上一个 LED灯点亮2).LED 自动循环流程图:开始初始化、定义I/O 口i = 0i = i+1Ni<8?YPORTB=~(1<<i)3、软件主要程序及注解(1).移动控制程序:#include <iom16v.h>#define uchar unsigned char#define uint unsigned intuchar temp;//*******延时函数 ********//void delay_ms(uint k){i = i - 1Ni>0?Y PORTB=~(1<<i-1)uint i,j;for(i=0;i<k;i++){for(j=0;j<1140;j++);}}//*****************端口设置函数********************// void port_init(void) {DDRB = 0xFF; //B端口设置为输出PORTD = 0XFF; //输出高电平DDRD = 0x00;//D PORTD = 0XFF; //端口设置为输入输出高电平}//*********主函数 *********//void main(void){char counter=0; // port_init();while(1)计数器//调用端口函数{if((PIND&0x10)==0){if(++counter>8) counter=1; delay_ms(300);}if((PIND&0x20)==0){counter = counter--;if(--counter<1) counter=8; delay_ms(300);}switch(counter){case 1: PORTB=0xfe;break;case 2: PORTB=0xfd;break;case 3: PORTB=0xfb;break;case 4: PORTB=0xf7;break;case 5: PORTB=0xef;break;case 6: PORTB=0xdf;break;case 7: PORTB=0xbf;break;case 8: PORTB=0x7f;break;default:break;}}}(2).自动循环程序:#include <iom16v.h>#define uchar unsigned char#define uint unsigned int//**********延时函数 **********//void delay_ms(uint k){uint i,j;for(i=0;i<k;i++){for(j=0;j<1140;j++);}}//*****************端口设置函数********************// void port_init(void) {DDRB = 0xFF; //B端口设置为输出PORTD = 0XFF; //输出高电平DDRD = 0x00;//D PORTD = 0XFF; //端口设置为输入输出高电平}//*********主函数 *********// void main(void){unsigned char i;char counter=0; // port_init(); //计数器调用端口函数while(1){for(i=0;i<8;i++){PORTB =~(1<<i);delay_ms(200);}for(i=8;i>0;i--){PORTB =~(1<<i-1);delay_ms(200);}}}五、实验结果及分析先使用 ICCAVR编译修改老师的程序,由移动控制到自动循环控制,程序的主旨不改变,大家一起交流,相互改进。
多功能流水灯设计实验报告

多功能流水灯的设计一.设计要求:1.设计一8盏彩灯控制电路,使彩灯可以向左,向右流动、全亮、全灭四种功能。
功能变换可以手控也可以自控。
2.自动功能变换时间10秒。
二.总体方案构思:用Verilog语言来为单片机编程,通过编程来控制单片机各引脚在不同时间输出的不同的电平,进而控制个发光二级管的亮灭,以及控制流水灯的流速和流动方向。
1.使用按钮(auto)来控制手动或自动。
2.因为需要向左,向右,全亮,全灭四种功能,所以需要两个开关(btn1和btn2),分别用开和关两种状态表示,即(00,01,10,11)。
3.使用clk时钟来记时和触发事件。
三.实验器材:电脑和LED设备四.程序如下:module LED(clk,auto,btn1,btn2,led);input clk;input auto;input btn1;input btn2;output reg [7:0] led;reg [29:0] count;//1ns的计数器reg [3:0] count_10;//10秒的计数器reg [1:0] status;//记录当前LED灯流动的情况:"00左到右,01右到左,10全亮,11全灭"reg [1:0] type;reg second_1;//1秒的标志reg second_10;//10秒的标志initialbeginstatus<=2'b00;type<=2'b00;count<=30'b0;count_10<=4'b0;second_1<=1'b0;second_10<=1'b0;endalways@(posedge clk)//给出1s的标志和10s的标志beginif(count<25000000)//等待1s的到来begincount<=count+1;second_1<=0;second_10<=0;endelsebegincount<=0;second_1<=1;count_10<=count_10+1;if(count_10>=4'd10)beginsecond_10<=1;endendendalways@(posedge clk)//当自动的情况时,每10s变化一次流动状态beginif(auto==1 && second_1==1)beginif(second_10==1)beginif(status==2'b11)beginstatus<=2'b00;endelsebeginstatus<=status+1;endendendendalways@(posedge clk)//设置总变化状态等于手动或自动的状态beginif(second_1==1)beginif(auto==1)//自动begintype<=status;endelse//手动begintype<={btn1,btn2};endendendalways@(posedge clk)//根据type设置LED灯情况beginif(second_1==1)beginif(type==00)//左到右beginif(led==8'b00000000 || led==8'b11111111)beginled<=8'b10000000;endelsebeginled<=led>>1;endendelse if(type==01)//右到左beginif(led==8'b00000000 || led==8'b11111111)beginled<=8'b00000001;endelsebeginled<=led<<1;endendelse if(type==10)//全亮beginled<=8'b11111111;endelse//全灭beginled<=8'b00000000;endendendendmodule五.测试图如下:六.个人体会:在这次实验中收货颇丰,我学会了使用简单的Verilog语言,更加深入的学习了数字逻辑,还有更多的,我学会和同学们合作,讨论,去解决问题。
按键控制数码管和流水灯设计报告实验报告

按键控制数码管和流水灯设计报告实验报告摘要单片机自20世纪70年代以来,以其极高的性价比,以及方便小巧受到人们极大的重视和关注。
本设计选用msp430f249芯片作为控制芯片,来实现矩阵键盘对LED数码管显示的控制。
通过单片机的内部控制实现对硬件电路的设计,从而实现对4*4矩阵键盘的检测识别。
用单片机的P3口连接4×4矩阵键盘,并以单片机的P3.0-P3.3口作键盘输入的列线,以单片机的P3.4-P3.7口作为键盘输入的行线,然后用P0.0-P0.7作输出线,通过上拉电阻在显示器上显示不同的字符“0-F”。
在硬件电路的基础上加上软件程序的控制来实现本设计。
其工作过程为:先判断是否有键按下,如果没有键按下,则继续检测整个程序,如果有键按下,则识别是哪一个键按下,最后通过LED数码管显示该按键所对应的序号。
关键字:单片机、流水灯、数码管、控制系统SCM since the nineteen seventies, with its high price, and a convenient compact attention and great concern. Thisdesign uses msp430f249 chip as the control chip, to realize the control of the LED digital tube display matrix keyboard. Through the internal control single chip to realize the hardware design of the circuit, so as to re alize the detection and recognition of 4*4 matrix keyboard. 4 * 4 matrix keyboard connected with the MCU P3 port, and the MCU P3.0 P3.3 port for a keyboard input, MCU P3.4P3.7 port as the lines of keyboard input, and then use theP0.0 P0.7 as the output line, by a pull-up resistor display different characters "0F on display". Control with software programs based on the hardware circuit to realize the design. The working process is: first to determine whether a key is pressed, if no key is pressed, it will continue to test the whole procedure, if a key is pressed, the Keywords: SCM, water lights, digital tubes, control system键盘控制流水灯和数码管实验报告目录一设计的目的 (2)二任务描述及方案设计 (3)1. 任务描述 (3)2. 方案设计 (3)三硬件设计方案 (3)1. Msp430f149单片机的功能说明 (3)2. 显示器功能 (4)3. 复位电路 (4)4. 按键的部分 (4)5. 74HC573的特点 (4)6. 流水灯和数码管电路原理图 (4)7. 元器件清单 (4)四程序设计方案 (5)1. 用IAR Embedded Workbench软件编程序 (5)2. 仿真电路图 (6)五实物实验 (7)1. 实物图 (7)2. 测试结果与分析 (7)六结论 (11)八参考文献 (16)一、设计目的1、进一步巩固和加深学生所学一门或几门相关专业课理论知识,培养学生设计、计算、绘画、计算机应用、文献查阅、报告撰写等基本技能;2、培养学生实践动手能力及独立分析和解决工程实践问题能力;3、培养学生的团队协作精神、创新意思、严肃认真的治学态度和严谨求实的工作作风。
流水灯设计报告

流水灯设计报告一、引言流水灯是以LED灯珠为单元,手工焊接成流水形状的装饰灯。
此次设计的流水灯以循环变化颜色和闪烁效果为主要特点,可以在家庭和商业场所中作为装饰、展示之用。
二、设计原理与技术路线本设计的流水灯是以WS2812B灯珠为主要芯片,采用Arduino控制器为核心,配合程序实现颜色循环和闪烁效果。
主要技术路线为:1. WS2812B芯片原理图及说明WS2812B内置控制电路,电路中的每一个LED灯珠均可以接收之前灯珠传输给它的数据,这样就可以让多个LED灯珠组成一个串口线,以这样一些串口线组合起来,形成很多绚丽的效果。
2. Arduino控制器Arduino控制器以它可编程、通用性强等优点而受到广泛的欢迎。
本次设计采用的是Arduino Nano,它的体积小、成本低,可以满足流水灯的设计需求。
3. 程序设计实现本次设计采用的程序为“FastLED.h”库,它的使用非常方便,可以通过各种参数设置实现较为丰富的追踪、流水、跳跃等效果。
程序设计的实现可以在多个LED灯珠之间进行自由控制,实现多种不同的颜色、亮度、闪烁等效果。
三、硬件设计1. 硬件主要材料:Arduino Nano 控制器*1WS2812B LED 灯珠*18导线2. 硬件电路图及说明本次流水灯的电路方案非常简单,只需要将Arduino控制器和WS2812B灯珠连接即可。
其中,此次设计从Arduino控制器的引脚中、WS2812B灯珠的三个接口之中,分别连接“SDI”、“VCC”和“GND”即可。
本设计所需LED灯珠数量为18,分为3个串口,每个串口内串联6个LED灯珠。
连接电路如下图所示:四、软件设计1. 程序参数设置在程序方面,我们需要针对所需的运行效果选择一些参数,比如颜色、亮度、闪烁等特效、呼吸效果的周期等等。
本次设计中的参数设置如下:#define NUM_LEDS 18 //LED灯珠数量#define DATA_PIN 10 //WS2812B控制器从Arduino控制器中引脚的接口#define Brightness 64 //亮度设置#define DIN 10 //SDI接口连接引脚编号2. 主要程序代码程序代码部分非常简单,完整代码如下:#include<FastLED.h>#define NUM_LEDS 18#define DATA_PIN 10#define BRIGHTNESS 64CRGB leds[NUM_LEDS];五、成本预算及实现效果1. 成本预算本次流水灯的材料费用较为便宜,共耗费了约30元人民币。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
按键控制流水灯设计报告
一、项目名称:
按键控制流水灯
二、目的:
通过对按键控制发光二极管项目的改变,设计出自己的方案,来加深对硬件技术的理解,同时锻炼关于硬件的编程技术,掌握keil等软件的使用。
三、硬件原理:
数码管与发光二极管硬件电路图:
芯片引脚电路图:
按键与导航按键:
四、软件原理:
变量Key1,Key2,Key3分别代表第一个、第二个、第三个按键,值为零时表示按下了该按键。
那么可以写出一个判断条件,当这三个变量的值分别为1 时,就分别调用三个不同的函数,三个函数分别表示LED灯的三种不同的闪亮方式。
五、软件流程:
首先判断哪一个变量的值为1,即哪一个按键被按下,然后就调用相应的函数。
六、关键代码:
void main()
{
Init();
P0=0x00;
while(1){
//其他两个key通过中断实现
// if(Key3==0)
// {
// G_count=0;
// while(G_count!=200);//延时10ms
// while(!Key3)//等待直到释放按键
// {
// P0=0x33;
// }
// }
if(Key1==0)fun2();
if(Key2==0)fun3();
if(Key3==0)fun4();
}
}
七、操作说明:
当把软件下载到电路板以后,给它插上电源,然后按下不同的按键,可以观察到LED灯亮。
八、存在的问题:
原先的main()函数中只有KEY3,并没有Key1和Key2,所以暂时不清楚如何感应到按键一和按键二什么时候按下。
九、后续设计计划:
可以设计更炫酷的亮灯方式。