单片机音乐控制流水灯
基于单片机AT89C51控制的键控流水灯_课程设计报告
图3-5流水灯模块图
3.3
图3-6 键控流水灯图
4
#include<reg51.h>
#define smg1 P0
#definelsd1P1
#define smg2P2
unsignedinti=1,u=7,j,n,c,k,h=7,s=1;
voidsjms3(void);
voidsjms4(void);
voidsjms5(void);
voidmsms1(void);
voidmsms2(void);
voidmsms3(void);
voidmsms4(void);
voidmsms5(void);
voidzd1(void);
voidzd2(void);
3.2.5
发光二极管就是LED,是一种由磷化镓等半导体材料制成的、能直接将电能转换成光能的发光显示器件。当其内部有一定电流通过时,就是发光。发光二极管具有功耗低、体积小、可靠性高、寿命长和相应快等优点。
流水灯模块采用16个LED发光二极管,通过代码的编写,实现五种流水移动,其中电阻的作用是保护二极管,向它提供较小的电流,防止二极管因为电流过大而烧毁。
1
单片机控制系统能够取代以前利用复杂电子线路或者数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。现在的单片机的控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。
2
2.1
随着经济的发展、科技的突飞猛进,芯片业得到了迅速的发展,是单片机技术在各种民用和工业控制等领域得到更广泛的应用。单片机凭借其低成本、高性能的不可代替优势已经成为了微电脑 控制的主力军。学习单片机的有效方法是将理论与实践并重,因此通过对单片机可控流水灯的设计和研究,鼓励学生在熟悉基本原理的前提下,与实际应用相联系,提出自己的方案,来完善设计,使得他们更好的掌握单片机的应用。
单片机跑马灯(流水灯)控制实验报告
单片机跑马灯(流水灯)控制实验报告实验目的:本实验旨在通过使用单片机对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 口的使用有了更深入的了解。
基于单片机的音乐流水灯设计
基于单片机的音乐流水灯设计音乐流水灯在现代生活中越来越受到人们的喜爱,它将音乐与灯光相结合,创造出一种独特的视听效果。
而更是将这一创意发挥到了极致。
本文将围绕这一主题展开深入研究,探讨单片机技术在音乐流水灯设计中的应用。
首先,我们需要了解什么是单片机。
单片机是一种集成在一块芯片上的微处理器,具有中心处理器、存储器、输入输出端口等功能。
在嵌入式系统设计中,单片机被广泛应用于各种领域,包括家电、汽车电子、医疗设备等。
在音乐流水灯设计中,单片机可以控制灯光的亮度、颜色、闪烁效果,并实现与音乐的同步播放。
音乐流水灯设计的关键是如何实现音乐与灯光的同步效果。
传统的音乐流水灯主要通过模拟电路来实现,但是这种设计存在灵活性低、难以控制等问题。
而基于单片机的音乐流水灯设计则可以通过编程控制灯光效果,实现更加精确的同步效果。
单片机可以根据音乐的节奏和节拍,控制灯光的亮度和闪烁频率,达到视听效果的最佳匹配。
在实际的音乐流水灯设计中,我们可以选择不同的单片机芯片和周边器件,根据需求设计相应的硬件电路。
同时,我们还需要编写相应的控制程序,实现音乐与灯光的同步效果。
在程序设计中,我们可以利用单片机的定时器、中断、串口通信等功能,实现复杂的灯光效果。
除了硬件设计和程序编写,我们还需要考虑音乐流水灯的外观设计。
灯光的颜色、形状、布局等都会影响整体效果。
在外观设计中,我们可以采用不同的灯珠、灯管、灯带等灯具,搭配适当的灯罩或反光板,创造出独特的视觉效果。
此外,我们还可以设计出不同的灯光变换模式,如呼吸灯、闪烁灯、渐变灯等,增加灯光效果的多样性。
在音乐流水灯设计中,音乐的选择也是至关重要的。
不同类型的音乐会带来不同的视听感受。
我们可以选择流行歌曲、古典乐曲、电子音乐等不同类型的音乐,根据音乐的节奏和情感色彩,设计出相应的灯光效果。
此外,我们还可以考虑加入声控功能,让灯光根据声音的大小和频率进行变化,增加互动性和趣味性。
在实际应用中,基于单片机的音乐流水灯设计可以广泛应用于家庭装饰、商业展示、演艺舞台等场合。
单片机控制左右循环的流水灯设计
单片机控制左右循环的流水灯设计单片机是一种微型计算机芯片,可以用于控制和管理各种电子设备。
流水灯是一种经典的电子元件,通过依次点亮或熄灭一组LED灯来形成流动效果。
本文将设计一个使用单片机控制的左右循环流水灯。
设计思路:1.硬件设计:a.先准备一个单片机开发板、一组LED灯和与LED灯串联的电阻。
b.将LED灯按照循序连接,连接方式可以为并联或串联。
c.通过引脚和外部电路将LED灯与单片机的IO口相连。
每个LED灯与一个IO口相连,并且通过电阻限流。
2.软件设计:a.在单片机上编写控制流水灯的程序。
这可以使用C语言或汇编语言进行编写。
b.程序主要通过循环结构来实现流水灯的效果。
编写一个循环函数,用于控制LED灯的点亮和熄灭。
c.在循环函数中,通过控制IO口输出高电平或低电平来控制LED灯的亮灭。
每次循环,根据需要逐个点亮或熄灭LED灯。
d.为了实现左右循环的效果,可以通过改变点亮或熄灭的顺序来改变流水灯的方向。
可以使用一个变量来控制点亮和熄灭的顺序,每次循环后改变该变量的值。
示例代码:以下是一个使用C语言编写的简单示例代码,来控制左右循环流水灯。
```c#include <reg52.h>//定义LED灯使用的IO口sbit LED1 = P1^0;sbit LED2 = P1^1;sbit LED3 = P1^2;sbit LED4 = P1^3;//控制流水灯循环void lightFlowint i;int direction = 1; // 控制流水灯的方向,1表示向右,-1表示向左//流水灯循环while(1)//控制LED灯的点亮和熄灭LED1=0;LED2=1;LED3=1;LED1=1;LED2=0;LED3=1;LED4=1;LED1=1;LED2=1;LED3=0;LED4=1;LED1=1;LED2=1;LED3=1;LED4=0;//根据方向改变控制顺序if(direction == 1)//向右direction = -1;}elsedirection = 1;}}void mainlightFlow(;```这个示例代码中,使用P1口上的4个IO口来控制4个LED灯的点亮和熄灭。
音乐流水灯的单片机控制研究
音乐流水灯的单片机控制研究摘要在音乐流水灯控制中,单片机更有取代齿轮调节延迟时间的发展快,更是以后系统中的核心部分。
本设计系统是基于单片机的音乐流水灯系统,具有实用观赏性。
通过8个led作为显示电路完成简单的音乐流水灯的模拟运作。
关键词单片机音乐流水灯音频图分类号:tp273 文献标识码:a1 基本原理通过控制单片机的内部定时器的定时时间产生各种不同频率的脉冲,从而使蜂鸣器发出不同调的音节声音,利用演示子程序来控制节拍。
为了在编程时的方便,通常会吧检点的音符和节拍转换成定时常数和延时常数,这个时候利用查表法得到定时常数,分别有脉冲频率的持续时间和控制定时器产生相应的脉冲频率,当时间到时,程序会自动查找下一个音符的定时常数和延时常数,最后能播放出好听的歌声。
不同的频率会产生不同的音调,而且每个音调都有一个音符和节拍组成,音符决定音调的高低,节拍决定音调的拍数。
根据音符字节产生次数的演示,声音输出口取反,就能得到该音调的高低音。
控制播放音乐的速度能通过设置延时的大小。
单片机的i/0端脚为声音输出端,在限定的节拍上,音符字节的不同产生延时,把声音输出端不断的取反,就能出现音调。
正确选择单位节拍延时,就能播放出悦耳的歌声。
内部定时器t0产生简谱中各音符相对应的脉冲频率,在此通过延时常数来控制脉冲频率的延续时间。
在此同时在电路板p0-p8脚接上8个led灯,播放音乐的同时增加了观赏性和实用性,音乐流水灯就这样来了。
2 设计电源采用at89c51芯片,它需要的电源是5v直流电源,因为家用电压为220v50赫兹,所以需要交流电220v转5v直流电源的变压器,单片机控制系统和外围芯片供电都采用7805系列的三端稳压器件,先通过全波整流,然后滤波整压,最后电容过滤交流。
3 音符频率do re mi fa so la si分别编码是1~7,重音do为8,停顿为0。
播放以十六分音符为单位,即一拍为四分音符,编为4,最后以0xff为结束标志。
单片机音乐流水灯程序
#include <reg52.h>sbit speaker = P1^6;sbit key1=P1^5;sbit key2=P1^7;unsigned char kk=0;unsigned long t3;unsigned char timer0h, timer0l, time,n;code char led[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x00,0x55,0xaa,0x00,0x55,0xaa,0x7f,0xbf,0xdf,0 xef,0xf7,0xfb,0xfd,0xfe,0x7e,0x3c,0x18,0x00,0x18,0x3c,0x7e,0x00,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x00,0x55,0 xaa,0x00,0x55,0xaa,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x7e,0x3c,0x18,0x00,0x18,0x3c,0x7e,0x00,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x00,0x55,0 xaa,0x00,0x55,0xaa,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x7e,0x3c,0x18,0x00,0x18,0x3c,0x7e,0x00,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x00,0x55,0 xaa,0x00,0x55,0xaa,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x7e,0x3c,0x18,0x00,0x18,0x3c,0x7e,0x00,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x00,0x55,0 xaa,0x00,0x55,0xaa,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x7e,0x3c,0x18,0x00,0x18,0x3c,0x7e,0x00}; //灯亮数组//--------------------------------------//单片机晶振采用11.0592MHz// 频率-半周期数据表高八位本软件共保存了四个八度地28个频率数据code unsigned char FREQH[] = {0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8, //低音12345670xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC,//1,2,3,4,5,6,7,i0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE, //高音2345670xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF}; //超高音1234567// 频率-半周期数据表低八位code unsigned char FREQL[] = {0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6, //低音12345670x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, //1,2,3,4,5,6,7,i0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D, //高音2345670x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16}; //超高音1234567//--------------------------------------//世上只有妈妈好数据表要想演奏不同地乐曲, 只需要修改这个数据表code int shengrikuaile[] = {5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4, //生日快乐5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4,5,1,1, 5,1,1, 5,2,2, 3,2,2, 1,2,2, 7,1,2, 6,1,2,4,2,1, 4,2,1, 3,2,2, 1,2,2, 2,2,2, 1,2,4,0,0,0};code int tonghua[]={5,1,2, 5,2,2, 4,2,2,3,2,4, 3,2,2, 4,2,1, 3,2,1, 3,2,4, 3,2,2, 4,2,2,3,2,2, 4,2,2, 3,2,2, 2,2,1, 1,2,1, 1,2,2, 1,2,2, 3,2,2, 5,2,2,6,2,4, 6,2,2, 6,2,1, 5,2,1, 5,2,2, 2,2,2, 2,2,2, 4,2,2,3,2,8, 1,2,2, 3,2,2, 5,2,2,6,2,4, 6,2,2, 6,2,1, 5,2,1, 2,2,2, 2,2,2, 4,2,2,3,2,2, 4,2,2, 3,2,2, 2,2,1, 1,2,1, 1,2,4, 2,2,2, 3,2,2,6,1,4, 6,1,2, 1,2,2, 1,2,2, 7,1,2, 7,1,2, 1,2,1, 1,2,16, 0,0,0};//童话//一个音符有三个数字.前为第几个音、中为第几个八度、后为时长(以半拍为单位).//6, 2, 3 分别代表:6, 中音, 3个半拍;//5, 2, 1 分别代表:5, 中音, 1个半拍;//3, 2, 2 分别代表:3, 中音, 2个半拍;//5, 2, 2 分别代表:5, 中音, 2个半拍;//1, 3, 2 分别代表:1, 高音, 2个半拍;code unsigned int nuannuan []={5,2,2, 6,2,2, 7,2,2, 1,3,2, 7,2,1, 1,3,1, 1,3,1, 5,2,1, 6,2,2, 6,2,4, 5,2,2, 4,2,1, 3,2,1,3,2,2, 3,2,2, 3,2,2, 3,2,1, 2,2,1, 2,2,2, 5,2,2, 6,2,2, 7,2,2, 1,3,2, 7,2,1, 1,3,1, 1,3,1, 5,2,1, 6,2,2, 6,2,4, 6,2,2, 1,3,1, 1,3,1,1,3,2, 1,3,2, 1,3,2, 1,3,1, 2,3,1, 2,2,2, 5,2,1, 6,2,2, 7,2,2, 1,3,2, 7,2,1, 1,3,1, 1,3,1, 3,3,2, 6,3,2, 5,3,1, 5,3,2, 4,3,2,3,3,4, 3,3,2, 2,3,2, 2,3,2, 6,2,2, 7,2,2, 1,3,4, 1,3,2, 2,3,1, 1,3,1, 1,3,2, 1,3,1, 7,2,1, 1,3,2, 2,2,1,2,3,4, 1,3,2, 7,2,2, 1,3,8,//平凡之路0,0,0};code unsigned int zanmenjiehunba[]={2,2,4, 1,2,4, 6,2,8, 6,2,2, 5,2,2, 3,2,2, 3,2,2, 3,2,2, 2,2,2, 2,2,4, 1,2,2, 2,2,2, 5,2,2,5,2,2, 5,2,2, 5,2,2, 5,2,2, 5,2,4, 2,2,2, 3,2,2,2,2,4, 1,2,4, 6,2,8, 6,2,2, 5,2,2, 3,2,2, 3,2,2, 3,2,2, 2,2,2, 2,2,4, 6,1,2, 1,2,2,2,2,2, 1,2,2, 2,2,2, 1,2,2, 2,2,4, 5,2,2, 3,2,2,2,2,4, 3,2,4, 6,2,8, 6,2,2, 5,2,2, 3,2,2, 5,2,2, 5,2,2, 5,2,2, 5,2,4, 2,2,2, 2,2,2, 5,2,2,5,2,2, 5,2,2, 5,2,2, 5,2,2, 5,2,4, 2,2,2, 3,2,2, 3,2,8, 6,1,2, 1,2,2, 3,2,4, 2,2,4, 1,2,4, 2,2,2, 3,2,2, 3,2,2, 2,2,2, 2,2,8, 3,2,2, 2,2,4, 1,2,4, 2,2,4, 3,2,2, 6,1,2, 6,1,8,0,0,0}; //咱们结婚吧code unsigned int haojiubujian[]={6,2,2, 5,2,2, 5,2,2, 3,2,2, 5,2,8, 6,2,2, 5,2,2, 3,2,2, 2,2,1, 1,2,1, 1,2,8,6,1,2, 1,2,2, 2,2,2, 3,2,2, 5,2,8, 3,2,2, 2,2,2, 1,2,2, 3,2,1, 2,2,1, 2,2,8,6,2,2, 5,2,2, 5,2,2, 3,2,2, 5,2,8, 6,2,2, 5,2,2, 3,2,2, 2,2,1, 1,2,1, 1,2,8,6,1,2, 1,2,2, 2,2,2, 3,2,2, 5,2,8, 3,2,2, 2,2,2, 1,2,2, 6,1,2, 1,2,2, 2,2,2, 1,2,2, 1,2,2,0,0,0};//你若成风code unsigned int tianshidechibang[]={3,2,2, 5,2,2, 6,2,2, 5,2,1, 6,2,1, 6,2,2, 3,2,1, 2,2,1, 2,2,8,5,2,2, 3,2,1, 5,2,1, 5,2,2, 1,2,1, 2,2,1, 1,2,8,3,2,2, 2,2,1, 3,2,1, 3,2,2, 6,1,2, 2,2,2, 1,2,1, 2,2,1, 2,2,1, 5,2,2, 3,2,1,3,2,2, 3,2,2, 3,2,8, 3,2,2, 5,2,2,6,2,2, 5,2,1, 6,2,1, 6,2,2, 3,2,1, 2,2,1, 2,2,8,5,2,2, 3,2,1, 5,2,1, 5,2,2, 2,2,1, 1,2,1, 1,2,4, 6,1,2, 1,2,2,3,2,2, 2,2,1, 3,2,1, 3,2,2, 6,1,2, 2,2,2, 1,2,1, 2,2,1, 2,2,2, 7,1,1, 6,1,1,6,1,2, 6,1,2, 6,1,8,0,0,0}; //天使地翅膀code unsigned int zuijinhaoma[]={5,1,2, 6,1,2, 1,2,2, 2,2,2, 3,2,2, 1,2,2, 3,2,2, 2,2,12,2,2,2, 2,2,2, 2,2,2, 2,2,2, 1,2,2, 1,2,2, 6,1,2, 6,1,2, 6,1,4,5,1,2, 6,1,2, 1,2,2, 2,2,2, 3,2,2, 5,2,2, 3,2,2, 2,2,12,2,2,2, 2,2,2, 2,2,2, 2,2,2, 1,2,2, 1,2,2, 6,1,2, 3,2,2, 3,2,2, 3,2,8,6,2,2, 6,2,2, 6,2,2, 6,2,2, 5,2,2, 5,2,2, 3,2,2, 2,2,12,2,2,2, 2,2,2, 2,2,2, 2,2,2, 1,2,2, 1,2,2, 5,2,2, 3,2,12,6,2,2, 6,2,2, 6,2,2, 1,3,2, 3,2,2, 2,2,2, 3,2,2, 2,2,12,2,2,2, 2,2,2, 2,2,2, 2,2,2, 1,2,2, 6,1,2, 1,2,2, 1,2,2, 1,2,2, 1,2,8, //滴答0,0,0};code unsigned int shinian []={1,2,1, 2,2,1, 5,2,1, 3,2,1,3,2,2, 3,2,1, 3,2,1, 4,2,1, 5,2,1, 6,2,1, 2,2,2, 2,2,2, 2,2,1, 4,2,1, 3,2,1, 2,2,1,1,2,2, 3,1,1, 3,1,1, 2,2,1, 1,2,1, 7,1,1,1,2,1, 6,1,1, 6,1,2, 1,2,1, 7,1,1, 6,1,1, 7,1,2, 4,2,1, 3,2,1, 2,2,2, 7,1,1, 1,2,1,1,2,4, 1,2,1, 2,2,1, 3,2,1,6,2,2, 3,2,1, 4,2,2, 5,2,1, 3,2,1, 3,2,2, 2,2,2, 1,2,1, 2,2,1, 5,2,1, 3,2,1,3,2,2, 3,2,1, 3,2,1, 4,2,1, 5,2,1, 6,2,1,2,2,2, 2,2,1, 2,2,1, 4,2,1, 3,2,1, 2,2,1,1,2,2, 3,1,1, 3,1,1, 2,2,1, 1,2,1, 7,1,1, 1,2,1, 6,1,1, 6,1,1, 1,2,1, 7,1,1, 6,1,1,7,1,2, 4,2,1, 3,2,1, 2,2,2, 3,2,1, 2,2,1,0,0,0 //十年};//-------------------------------------- ,void t0int() interrupt 1 //T0中断程序,控制发音地音调{TR0 = 0; //先关闭T0speaker = !speaker; //输出方波, 发音TH0 = timer0h; //下次地中断时间, 这个时间, 控制音调高低TL0 = timer0l;TR0 = 1; //启动T0}//--------------------------------------void delay(unsigned char t) //延时程序,控制发音地时间长度{unsigned char t1;unsigned long t2;if(kk==1){t3=6000;}if(kk==2){t3=6000;}if(kk==3){t3=5000;}if(kk==4){t3=3000;}if(kk==5){t3=6000;}if(kk==6){t3=4000;}if(kk==7){t3=6000;}if(kk==8){t3=5000;}for(t1 = 0; t1 < t; t1++) //双重循环, 共延时t个半拍for(t2 = 0; t2 < t3; t2++); //延时期间, 可进入T0中断去发音TR0 = 0; //关闭T0, 停止发音}//--------------------------------------void song() //演奏一个音符{TH0 = timer0h; //控制音调TL0 = timer0l;TR0 = 1; //启动T0, 由T0输出方波去发音delay(time); //控制时间长度}void delaytime (){unsigned char e,f;for(e=0;e<100;e++)for(f=0;f<30;f++);}//--------------------------------------void main(void){unsigned char k, i;TMOD = 1; //置T0定时工作方式1ET0 = 1; //开T0中断EA = 1; //开CPU中断while(1) {i = 0;time = 1;P0=P2=P3=0x0;while(time){if (key1==0){delaytime();while(!key1);kk=kk+1;}if (key2==0){delaytime();while(!key2);kk=kk-1;}if(kk==1){k = shengrikuaile[i] + 7 * shengrikuaile[i + 1] - 1; //第i个是音符, 第i+1个是第几个八度if(n==8){n=0;}{P0=P3=P2=led[n]; } //控制灯亮timer0h = FREQH[k]; //从数据表中读出频率数值timer0l = FREQL[k];n=n+1; //实际上, 是定时地时间长度time = shengrikuaile[i + 2]; //读出时间长度数值i += 3;song();}if(kk==2){k = tonghua[i] + 7 * tonghua[i + 1] - 1; //第i个是音符, 第i+1个是第几个八度if(n==8){n=0;}{P0=P3=P2=led[n]; } //控制灯亮timer0h = FREQH[k]; //从数据表中读出频率数值timer0l = FREQL[k];n=n+1; //实际上, 是定时地时间长度time = tonghua[i + 2]; //读出时间长度数值i += 3;song();}if(kk==3){k = nuannuan[i] + 7 * nuannuan[i + 1] - 1; //第i个是音符, 第i+1个是第几个八度if(n==8){n=0;}{P0=P3=P2=led[n]; } //控制灯亮timer0h = FREQH[k]; //从数据表中读出频率数值timer0l = FREQL[k];n=n+1; //实际上, 是定时地时间长度time = nuannuan[i + 2]; //读出时间长度数值i += 3;song();}if(kk==4){k = zanmenjiehunba[i] + 7 * zanmenjiehunba[i + 1] - 1; //第i个是音符, 第i+1个是第几个八度if(n==8){n=0;}{P0=P3=P2=led[n]; } //控制灯亮timer0h = FREQH[k]; //从数据表中读出频率数值timer0l = FREQL[k];n=n+1; //实际上, 是定时地时间长度time = zanmenjiehunba[i + 2]; //读出时间长度数值i += 3;song();}if(kk==5){k = haojiubujian[i] + 7 * haojiubujian[i + 1] - 1; //第i个是音符, 第i+1个是第几个八度if(n==8){n=0;}{P0=P3=P2=led[n]; } //控制灯亮timer0h = FREQH[k]; //从数据表中读出频率数值timer0l = FREQL[k];n=n+1; //实际上, 是定时地时间长度time = haojiubujian[i + 2]; //读出时间长度数值i += 3;song();}if(kk==6){k = tianshidechibang[i] + 7 * tianshidechibang[i + 1] - 1; //第i个是音符, 第i+1个是第几个八度if(n==8){n=0;}{P0=P3=P2=led[n]; } //控制灯亮timer0h = FREQH[k]; //从数据表中读出频率数值timer0l = FREQL[k];n=n+1; //实际上, 是定时地时间长度time = tianshidechibang[i + 2]; //读出时间长度数值i += 3;song();}if(kk==7){k = zuijinhaoma[i] + 7 * zuijinhaoma[i + 1] - 1; //第i个是音符, 第i+1个是第几个八度if(n==8){n=0;}{P0=P3=P2=led[n]; } //控制灯亮timer0h = FREQH[k]; //从数据表中读出频率数值timer0l = FREQL[k];n=n+1; //实际上, 是定时地时间长度time = zuijinhaoma[i + 2]; //读出时间长度数值i += 3;song();}if(kk==8){k = shinian[i] + 7 * shinian[i + 1] - 1; //第i个是音符, 第i+1个是第几个八度if(n==8){n=0;}{P0=P3=P2=led[n]; } //控制灯亮timer0h = FREQH[k]; //从数据表中读出频率数值timer0l = FREQL[k];n=n+1; //实际上, 是定时地时间长度time = shinian[i + 2]; //读出时间长度数值i += 3;song();}if(kk>8){unsigned int c;unsigned int d=40000;for(c=0;c<50;c++)while(d--)P0=P2=P3=led [n]; delaytime();delaytime();}} //发出一个音符} }版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.Users may use the contents or services of this article for personal study, research or appreciation, and othernon-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任.Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.。
音乐流水灯
单片机控制流水灯音乐播放设计【摘要】本设计采用体积小、重量轻、功能强大、使用方便而且可靠性高的单片机为硬件电路的设计主体,即以89S52芯片为中心。
硬件电路设计由4*4键盘控制播放、停止和选曲实现不同音乐之间的转换的选曲电路、89S52单片机系统、YM12864R液晶显示电路、流水灯电路等,最终实现音乐播放控制流水灯的的功能,并在YM12864液晶显示器上显示音乐名称.【关键词】89S52单片机 YM12864R液晶汇编语言音乐流水灯 4*4键盘扬声器Base on Microcontroller Control Streamline Lights With Music design【Abstract】This Design introduces the microcontroller which is small ,light,high dependable and conveniently used .Its function is very strong.It is the principal part of the hardware circuit design.That is to say that 89S52microcontroller is the center of the hardware circuit design. The hardware circuit design is composed of 4*4keyboard ,whice can control playing ,stoping to play and selecting music to achieve conversion between different musics,89S52 Microcontroller System,the liquid crystal display of YM12864 circuit and the Streamline Lights circuit etc..The system finally realize playing music and control the streamline lights and display the name of the music whichis playing on the liquid crystal display of YM12864.【Key words】89S52 Microcontroller YM12864R LCD Assemble Language Streamline Lights With Music 4*4 Keyboard Loudspeaker第一章绪论1.1引言现当今单片机的应用无处不在.利用单片机控制音乐播放也多不胜举.音乐芯片也相当之多,而利用单片机存储音乐,控制播放最为广泛.它有功能多﹑价格优﹑外围电路简单的特点,备受音乐爱好者及音乐芯片制造商的青昧.用89S52单片机及少数外围电路控制MUSIC播放,就可以产生美妙的音乐,又有流水灯设计即显得美观大方又经济实惠。
基于单片机的带流水灯的音乐盒设计解析
前言本次课程设计是一个基于AT89C51系列单片机的音乐盒的设计,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个音乐盒。
该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器和led显示电路组成。
使用两个按键控制音乐盒,一个用来切换歌曲,另一个用来切换8路led的变化花样。
本音乐盒共有两首歌曲,花样灯花样共计3种。
播放歌曲时,蜂鸣器发出某个音调,与之对应的led亮起。
本设计利用keil编程软件对音乐盒源程序进行编程并调试,配合proteus仿真软件对硬件进行仿真调试。
该音乐盒使用c语言编程和汇编语言相结合,程序段使用C语言,歌曲音谱和led显示花样使用汇编语言。
目录绪论 (1)1.设计题目要求 (2)1.1课题意义 (2)1.2设计目的 (2)1.3设计要求 (2)2 方案设计及硬件设计及其原理 (2)2.1方案设计和硬件设计 (2)2.1.1系统总体方案设计 (2)2.1.2音乐盒设计 (3)2.1.3硬件总体设计 (3)2.1.4硬件仿真图及功能 (4)2.2相关知识,原理和理论介绍 (5)2.2.1 AT89C52简介 (5)2.2.2 LED显示电路设计与原理 (5)2.2.3 时钟振荡电路 (5)2.2.4 花样灯3种花样图 (6)3软件设计 (7)3.1音调、节拍以及编码的确定方法 (7)3.1.1音调的确定 (7)3.1.2节拍的确定 (8)3.1.3编码 (9)3.2软件程序设计 (10)3.2.1主程序流程图 (10)3.2.2播放音乐子程序设计 (13)3.3调试成果 (15)4心得体会 (15)参考文献 (17)附录 (18)绪论21世纪,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
随着科学技术的进步和社会的发展,人类所接触的信息也在不断增加并且日益复杂。
单片机原理流水灯实验
单片机原理流水灯实验单片机原理流水灯实验是一种十分基础的单片机实验,在学习单片机的初级阶段非常重要。
流水灯可以通过多个灯依次亮起,再逐个熄灭,形成灯光流动的效果。
下面将详细介绍单片机原理流水灯实验的步骤和实现原理。
首先,我们需要准备的材料和工具有:1. 单片机主板:例如STC89C52RC型号。
2. LED灯:我们需要7个LED灯,可以选择不同颜色和尺寸的。
3. 面包板:用于连接电路。
4. 连接线:用于连接单片机主板和面包板以及连接LED灯。
接下来,我们开始进行单片机原理流水灯实验的步骤:第一步:连接电路1. 将7个LED灯连接到面包板上,按照流水灯的顺序连接,可以使用杜邦线连接。
2. 在面包板上连接7个电流限制电阻,以保护LED灯,限制电流的大小根据具体LED灯的要求确定。
3. 将面包板的VCC和GND引线分别连接到单片机主板的VCC和GND引脚上。
第二步:编写程序1. 打开Keil C51编译器,新建一个项目。
2. 编写C语言程序,实现流水灯的效果,代码如下:c#include <reg52.h>声明I/O口函数void delay(unsigned int t);void ledFlow(void);程序入口void main(void){主循环while (1){LED流水灯效果ledFlow();}}延时函数void delay(unsigned int t)unsigned int i, j;for (i = 0; i < t; i++)for (j = 0; j < 120; j++);}LED流水灯效果函数void ledFlow(void){unsigned int i;unsigned char flowData = 0x01;for (i = 0; i < 8; i++){P0 = flowData; 将数据输出到P0口delay(500); 延时500msflowData <<= 1; 左移一位}delay(500); 延时500msflowData = 0x80; 数据复位for (i = 0; i < 8; i++){P0 = flowData; 将数据输出到P0口delay(500); 延时500msflowData >>= 1; 右移一位}delay(500); 延时500ms}第三步:烧录程序1. 将单片机主板连接到电脑上,并打开STC-ISP烧录软件。
基于单片机的音乐流水灯设计
摘要随着科技和经济的快速发展,人们对生活质量和生活环境的要求不断的提高,多彩多样的彩灯成了现今装饰和美化的时尚和潮流。
千姿万态的流水灯能给人一种视觉冲击。
拟采用单片机AT89C51去实现这种千变万化的流水灯。
单片机技术是一种传统和典型的技术,具有智能化、体积小、集成度高和价格低廉等许多独特的优点。
而且单片机明显优越于其他电子电路,其硬件电路和软件方面都不是特别复杂。
本设计将所学的单片机的理论和动手实践结合起来,主要利用AT89C51单片机设计并制作一个音乐流水灯。
首先设计一个稳定的直流电源电路,然后设计一个复位电路,为单片机的正常工作提供条件,然后再设计时钟电路和声音驱动电路,可以使单片机能够更好的控制与编译音乐部分,另外还设计一个通信电路以方便单片机和PC机的连接与通信,最后还需要设计按键电路用来控制音乐流水灯。
为了使蜂鸣器能够正常的发生还需设计一个音频电路。
硬件电路设计后要将各模块连接起来进行仿真和调试。
软件设计部分则需要将各电路模块进行编译,并设计音乐频率程序、流水灯程序和按键程序,同时将其进行仿真调试和组合调试。
以实现在播放音乐时LED 灯有千变万化的效果,以满足对视觉上的享受。
关键词:单片机;音乐;流水灯;仿真;ABSTRACTWith the science and technology and the economy the rapid development, people pairs quality of life and living environment the requirements of continuously improve, colorful and diverse of the lantern became a nowadays decorative and beautify's fashion and trend. Zi million-state of flowing water lamp can give a person one kinds visual impact. Intends to adopt AT89C51 microcontroller to go achieve such kaleidoscopic of flowing water lights. MCU technology is a kind of tradition and typical technical, with intelligent, the volume is small, high integration and price inexpensive and so on many unique advantages. Moreover single-chip obviously superior to other electronic circuit, its hardware circuits and software aspects of are not particularly complicated.The single-chip design will combine theory and practice, the main use AT89C51 single-chip design of a musical water lights. First, design a stable DC power supply circuit, and then design a reset circuit for the microcontroller to provide normal working conditions, and then design a clock circuit and sound driver circuit, will enable MCU to better control and compile music part, in addition to design a to facilitate communication circuit chip and PC connectivity and communication, and finally also need to design the circuit to control the music keys light water. In order to make the buzzer to normal design an audio circuit needs to happen. After the hardware circuit design to connect the modules for simulation and debugging. Software design will need to be compiled each circuit module, and the design frequency of the music program, water lights and key procedures, and its combination of simulation debugging and debugging. When playing music in order to achieve a kaleidoscopic effect LED lights to meet the visual enjoyment.Key words:MCU; Music; Light water;Simulation目录摘要 (I)ABSTRACT (II)目录 (1)1. 绪论 (1)1.1 单片机的概念 (1)1.2 单片的历史、发展和应用 (4)2. 总体设计 (6)2.1 设计要求 (6)2.2 设计方案选择 (6)2.3 整体设计思路 (6)3. 系统硬件设计与部分电路说明 (8)3.1 硬件设计框图 (8)3.2 部分电路说明 (8)3.2.1 电源及启动电路 (8)3.2.2 复位电路 (9)3.2.3 时钟电路 (10)3.2.4 通信电路 (10)3.2.5 键盘电路 (11)3.2.6 流水灯电路 (11)3.2.7 音频电路 (12)3.3 电路原理图及说明 (12)4. 系统软件电路设计与分析 (13)4.1 音乐程序设计 (13)4.1.1 音乐程序流程图 (14)4.2 流水灯设计 (16)4.2.1 流水灯程序流程图 (16)4.2.2 流水灯程序 (16)4.3 音乐流水灯程序 (16)4.3.1 音乐流水灯程序流程图 (16)4.3.2 音乐流水灯程序 (17)5. 系统调试与仿真 (19)5.1 硬件调试 (19)5.2 软件调试 (19)5.3 软件仿真 (19)总结 (22)致谢 (23)参考文献 (24)附录一 (25)附录二 (26)附录三 (31)附录四 (32)1. 绪论1.1 单片机的概念单片机是在一块芯片上超大规模集成技术集中了中央处理单元(CPU)、随机存储器(RAM)、只读存储器(ROM)、特殊功能寄存器(SFR)和各种输入/输出(I/O)接口(定时/计数器、中断系统接口、并行和串行I/O接口以及A/D转换接口等)的微型计算机,又称微控制器。
51单片机音乐流水灯程序
#include <reg52."h>sbitspeaker = P1^6;sbitkey1=P1^5;sbitkey2=P1^7;unsigned char kk=0;unsigned long t3;unsigned char timer0h, timer0l, time,n;codecharled[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x00,0x55,0xaa,0x00,0x5 5,0xaa,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x7e,0x3c,0x18,0x00,0x18,0x3c,0x7e,0x00,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x 7f,0x00,0x55,0xaa,0x00,0x55,0xaa,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x7e,0x3c,0x18,0x00,0x18,0x3c,0x7e,0x00,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x 7f,0x00,0x55,0xaa,0x00,0x55,0xaa,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x7e,0x3c,0x18,0x00,0x18,0x3c,0x7e,0x00,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x 7f,0x00,0x55,0xaa,0x00,0x55,0xaa,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x7e,0x3c,0x18,0x00,0x18,0x3c,0x7e,0x00,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x 7f,0x00,0x55,0xaa,0x00,0x55,0xaa,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0x7e,0x3c,0x18,0x00,0x18,0x3c,0x7e,0x00}; //灯亮数组//--------------------------------------//单片机晶振采用11."0592MHz//频率-半周期数据表高八位本软件共保存了四个八度的28个频率数据code unsigned char FREQH[] = {0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8,//低音0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC,//1,2,3,4,5,6,7,i0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE,//高音2345670xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF};//超高音//频率-半周期数据表低八位code unsigned char FREQL[] = {0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6,//低音0x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, //1,2,3,4,5,6,7,i0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D,//高音2345670x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16};//超高音//--------------------------------------//世上只有妈妈好数据表要想演奏不同的乐曲,只需要修改这个数据表codeint shengrikuaile[] = {5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4,//生日快乐5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4,5,1,1, 5,1,1, 5,2,2, 3,2,2, 1,2,2, 7,1,2, 6,1,2,4,2,1, 4,2,1, 3,2,2, 1,2,2, 2,2,2, 1,2,4,0,0,0};code int tonghua[]={5,1,2, 5,2,2, 4,2,2,3,2,4, 3,2,2, 4,2,1, 3,2,1, 3,2,4, 3,2,2, 4,2,2,3,2,2, 4,2,2, 3,2,2, 2,2,1, 1,2,1, 1,2,2, 1,2,2, 3,2,2, 5,2,2,6,2,4, 6,2,2, 6,2,1, 5,2,1, 5,2,2, 2,2,2, 2,2,2, 4,2,2,3,2,8, 1,2,2, 3,2,2, 5,2,2,6,2,4, 6,2,2, 6,2,1, 5,2,1, 2,2,2, 2,2,2, 4,2,2,3,2,2, 4,2,2, 3,2,2, 2,2,1, 1,2,1, 1,2,4, 2,2,2, 3,2,2,6,1,4, 6,1,2, 1,2,2, 1,2,2, 7,1,2, 7,1,2, 1,2,1, 1,2,16,0,0,0};//童话//一个音符有三个数字。
音乐流水灯实验报告(3篇)
一、实验背景随着科技的不断发展,LED灯的应用越来越广泛。
LED流水灯作为一种新型照明设备,具有节能、环保、美观等特点。
为了进一步丰富LED灯的应用,本实验旨在设计一款音乐流水灯,使LED灯的亮度、颜色和闪烁模式随音乐节奏变化,达到一种动态、立体的视觉效果。
二、实验目的1. 了解音乐流水灯的工作原理和设计方法。
2. 掌握音乐流水灯电路的搭建和调试方法。
3. 熟悉音乐信号处理技术,实现音乐与LED流水灯的同步。
三、实验原理音乐流水灯的原理是利用音乐信号处理技术,将音乐信号转换为控制LED灯的亮度、颜色和闪烁模式的信号。
具体步骤如下:1. 将音乐信号输入到音乐处理器中。
2. 音乐处理器对音乐信号进行采样、滤波、放大等处理,提取出音乐信号的频率、振幅等特征。
3. 根据音乐信号的频率和振幅,控制LED灯的亮度、颜色和闪烁模式。
四、实验器材1. Arduino UNO开发板2. LED灯珠(数量根据实际需求而定)3. 电阻(阻值根据LED灯珠的额定电流而定)4. 面包板5. 音频信号发生器6. 万用表7. 烧录器五、实验步骤1. 搭建音乐流水灯电路:将Arduino UNO开发板、LED灯珠、电阻、面包板等元件连接在一起,形成音乐流水灯电路。
2. 编写程序:使用Arduino IDE编写程序,实现音乐信号处理和LED灯控制功能。
3. 烧录程序:将编写好的程序烧录到Arduino UNO开发板中。
4. 连接音频信号发生器:将音频信号发生器的输出端连接到Arduino UNO开发板的A0引脚。
5. 连接耳机:将耳机连接到Arduino UNO开发板的3.5mm音频接口。
6. 调试电路:检查电路连接是否正确,确保电路工作正常。
7. 播放音乐:播放音乐,观察LED灯的亮度、颜色和闪烁模式是否随音乐节奏变化。
六、实验结果与分析1. 实验结果:通过实验,成功实现了音乐流水灯的功能。
当播放音乐时,LED灯的亮度、颜色和闪烁模式会随音乐节奏变化,达到一种动态、立体的视觉效果。
[设计]80C51控制流水灯
80C51单片机控制流水灯1使用汇编语言编写程序,8个LED灯接在P0口,显示出流水灯效果2用mov指令移位3用查表法显示流水灯4将P1口拨码开关设置状态读出,作为流水灯设置显示模式5在4的基础上加入控制功能,K0为低电平时,LED停止移动,K0高电平时,LED开始移动;K1为低电平时,LED左移,K1高电平时,LED 右移。
接线如下图:(一)用mov指令编写ORG 0000H ;定义程序初始地址JMP MAIN ;跳转至MAINORG 0030HMAIN: MOV A,#0FEH ;MOV R0,#08H ;设置移动8位LOOP1:MOV P0,A ;点亮第一个灯CALL DELAY ;调用延时程序RL A ;左移DJNZ R0,LOOP1 ;循环左移MOV R1,#08H ;设置移动8位LOOP2:RR A ;右移MOV P0,A ;输出CALL DELAY ;调用延时程序DJNZ R1,LOOP2 ;循环右移JMP MAIN ;跳转至MAIN DELAY:MOV R3,#20 ;延时程序定义D1: MOV R4,#100D2: MOV R5,#230DJNZ R5,$DJNZ R4,D2DJNZ R3,D1RETEND(二)用查表法ORG 0000H ; 定义程序地址从0000H开始存放JMP MAIN ;跳转至主程序ORG 0030H ;设置主程序地址MAIN:MOV DPTR,#TABLE ;将TABLE的地址赋给DPTRONE: CLR A;累加器清零MOVC A,@A+DPTR ;取出表中的数据CJNE A,#0FFH,TWO ;判断是不是表中最后的0FFH,如果不是则跳转至TWOJMP MAIN ;如果是表中最后的0FFH,则跳转至main,重新运行TWO: MOV P1,A ;将数据输出至p1口CALL DELAY ;调用延时程序INC DPTR ;修改指针DPTR,指向表中下一个数据JMP ONE ;跳转至oneDELAY:MOV R3,#20 ; 延时子程序定义D1: MOV R4,#100D2: MOV R5,#230DJNZ R5,$DJNZ R4,D2DJNZ R3,D1RETTABLE: ; 花样流水灯的表,可以自由定义DB 01111111BDB 10111111BDB 11011111BDB 11101111BDB 11110111BDB 11111011BDB 11111101BDB 11111110BDB 11111110BDB 11111101BDB 11111011BDB 11110111BDB 11101111BDB 11011111BDB 01111111B DB 11100111B DB 11011011B DB 10111101B DB 01111110B DB 10111101B DB 11011011B DB 11100111B DB 11100111B DB 11011011B DB 10111101B DB 01111110B DB 10111101B DB 11011011B DB 11100111B DB 01010101B DB 10101010B DB 00110011B DB 11001100B DB 11110000B DB 00001111BDB 0FFH ;用作表的结尾的标志,可自由定义END(三)拨码开关控制ORG OOOOH ;JMP MAINORG 0030H ;MAIN:MOV P1,#0FFH ;准双向口,先写1再读,防止读取出错MOV A,P1 ;读取P1的状态MOV P0,A ;将p1的状态输出到P0CALL DELA Y ;调用延时子程序JMP MAIN ;跳转到MAINDELAY:MOV R3,#20 ;延时子程序定义D1: MOV R4,#100D2: MOV R5,#230DJNZ R5,$DJNZ R4,D2DJNZ R3,D1RETEND(四)在(三)的基础上加上控制功能ORG 0000HJMP MAINORG 0030HMAIN: MOV P1,#0FFH ;准双向口,先写1再读,防止出错MOV A,P1 ;读取P1的状态MOV R0,A ; 保存A的状态TEST: JB P2.0,MOVING ;判断P2.0的电平,高电平时跳转至MOVINGJMP DISPLA Y ;跳转到DISPLA YMOVING:JB P2.1,RIGHT ;判断P2.1的状态,高电平时右移LEFT: RL A ;A左移一位JMP DISPLA Y ;跳转至DISPLA YRIGHT:RR A ;A右移一位JMP DISPLA Y ;跳转至DISPLA YDISPLA Y:MOV P0,A ;输出到P0口MOV R1,A ;保存A的状态CALL DELAY ;调用延时程序MOV A,R0 ;将R0保存的状态存到A中XRL A,P1 ;判断P1口的状态是否变化JNZ MAIN ;P1口状态变化,跳转至MAIN重新显示MOV A,R1 ;P1口状态不变,继续当前的状态显示JMP TEST ;跳转至TESTDELAY:MOV R3,#20 ; 延时程序定义D1: MOV R4,#100D2: MOV R5,#200DJNZ R5,$DJNZ R4,D2DJNZ R3,D1RET。
单片机控制流水灯
程序框架设计
01
主程序框架
主程序是单片机程序的核心,负 责程序的启动、初始化、中断处 理等任务。
02
中断服务程序框架
03
功能模块框架
中断服务程序用于处理外部中断 事件,如按键按下、定时器溢出 等。
功能模块是实现特定功能的程序 块,如LED灯控制、定时器计数 等。
程序功能模块设计
LED灯控制模块
该模块负责控制LED灯的亮灭状态, 可以通过编程实现流水灯效果。
物联网技术的应用
未来,单片机可能会更多地应用于物联网领域, 与互联网结合,实现更广泛的控制和应用。
3
人工智能与单片机的结合
未来,人工智能技术可能会与单片机结合,实现 更智能的控制和应用。
THANKS
[ 感谢观看 ]
02
包括主程序和中断服务程序,主程序负责循环控制LED灯,中断
服务程序负责处理外部中断。
调试过程
03
通过串口调试工具或示波器等工具对程序进行调试,确保程序
正确运行。
实际运行效果展示
流水灯效果
通过单片机控制LED灯的亮灭,实现流水灯效果 。
速度控制
通过程序延时控制LED灯亮灭的时间间隔,实现 流水灯的速度变化。
硬件连接
将单片机与LED灯连接,通过GPIO口控制LED灯的亮灭。
控制逻辑
通过编写程序控制单片机GPIO口的输出,实现LED灯的顺序亮 灭,形成流水灯效果。
延时控制
通过程序延时控制LED灯亮灭的时间间隔,实现流水灯的速度变 化。
控制程序编写及调试
编程语言
01
使用C语言或汇编语言编写单片机程序。
程序结构
电源管理优化
采用高效的电源管理方案,降 低流水灯的能耗。
基于单片机的音乐流水灯设计
单片机原理及系统课程设计专业:电气工程及其自动化班级:电气1003班*名:***学号:指导教师:兰州交通大学自动化与电气工程学院2013 年 3 月 7 日基于单片机的音乐流水灯设计摘要本设计是一种基于AT89C52单片机音乐控制彩灯的方案,实现单片机演奏音乐,并且对LED彩灯随音符频率的不同而闪烁发光。
本方案以AT89C52单片机作为主控核心,通过三极管放大电流使蜂鸣器播放音乐,利用编程实现循环点亮24个太极图案的LED彩灯,根据用户需求可以编写若干种亮灯模式.,蜂鸣器可以根据用户需求改写编程播放各种音乐。
本方案具有电路结构简单、体积小、元器件少、能耗低等优点。
在美丽的都市夜晚音乐彩灯为我们的生活增添了无限光彩。
音乐彩灯具有更广阔的发展天地。
关键字:AT89C51;LED彩灯;音乐AbstractThe design is based on AT89C52 microcontroller music control lantern program microcontroller playing music, and note the frequency of different flashing light LED Lantern with. Program AT89C52 microcontroller as the master core through the transistor amplifier to the current buzzer play music programming cycle LED lantern lit 24 Taiji patterns can write certain kinds of lighting modes according to user needs, beep can rewrite the program play a variety of music based on user demand. The program has a simple circuit structure, small size, fewer components and lower energy consumption. Add unlimited glory for our lives in the beautiful city night music Lantern. Music lantern has a broader development world.Keywords: AT89C51,LED Lantern,music1引言1.1设计目的:设计是学生理论联系实际的重要实践教学环节,是对学生进行的一次综合性专业设计训练。
基于单片机的音乐流水灯设计
基于单片机的音乐流水灯设计AbstractIn this paper, we present the design and implementation of a music flowing light system using a microcontroller-based platform. The system is designed to provide visual effects that are synchronized with music. The system utilizes ATmega328P microcontroller, LEDs, and a microSD card. The microcontroller is programmed to read the audio data from the microSD card, process it, and control the LED lighting pattern to produce a visual display that follows the musical tempo of the audio input. The system is capable of producing an impressive visual display that is adjustable to fit the requirements of different music genres. The system has been extensively tested to verify its performance, and the results are discussed in this paper.IntroductionLighting effects have become an essential element of entertainment and live performances, and they cansignificantly enhance the audience's experience. A lighting system that responds to music can add another dimension to such experiences. Flowing light or chasing light systems have been used for several years to provide rhythmic visualeffects that follow music tempo. These systems can be foundin dance clubs, concerts, and stage performances, among others. Traditionally, light systems for music have relied on simple analog circuits, which are limited in terms of their functionality, performance, and flexibility. However, with the advancement of technology, it is possible to designcomplex lighting systems that utilize microcontrollers to control the lights' behavior.The purpose of this paper is to describe the design and implementation of a music flowing light system using a microcontroller-based platform. The system's primary goal isto provide visual feedback that follows the tempo of the music, creating a compelling visual display that enhances the musical experience.Design and ImplementationThe proposed music flowing light system comprises three main components: a microcontroller, a set of LEDs, and a microSD card. The ATmega328P microcontroller is used as the main control unit for the system. The microcontroller is responsible for reading the audio data from the microSD card, processing it, and controlling the LED lighting pattern.The microcontroller is programmed to read stereo audio data from the microSD card in WAV format. The data is processed to calculate the average amplitude of the audio signal as well as the beat duration. The beat duration is calculated by analyzing the frequency of the audio signal. By analyzing the duration and amplitude of the signal, thesystem can determine the length of each beat and theintensity of the light display.Once the duration and the amplitude of the signal are determined, the system generates a lighting pattern using the LED lights. The lighting pattern mimics the flow of the music, with the LEDs lighting up and fading out in synchronization with the music. The system uses high-brightness LEDs with a variety of colors to provide a range of effects that enhance the experience.The LEDs are arranged in a linear pattern and arecontrolled using the Pulse Width Modulation (PWM) technique. PWM allows the system to vary the intensity of the LED lighting, creating a smooth transition between differentlevels of light intensity. The LED outputs are connected to the PWM pins of the microcontroller.ResultsThe performance of the music flowing light system was extensively tested using different music tracks. The system was able to produce a visually stunning display that follows the tempo and rhythm of the music. The system was testedusing different music genres, including pop, rock, and electronic music. The lighting pattern was adjustable to produce different effects that go along with the music genre.The system was tested using different audio inputs, and the result was found to be consistent across the board. The system's performance was found to be stable, and the system operated well even when subjected to high noise environments.ConclusionIn this paper, we have presented a design and implementation of a music flowing light system using a microcontroller-based platform. The system utilizes the ATmega328P microcontroller, LEDs, and a microSD card to provide visually compelling feedback synchronized with the tempo and rhythm of the music. The system's performance was extensively tested, and the results showed that it performed consistently, producing stunning visual effects that follow a wide range of music genres.Overall, the proposed system offers numerous benefits over traditional analog light systems. It is flexible, adjustable, and can be customized to fit different music genres, providing a unique and enjoyable experience for theaudience. The system's performance, stability, and ease of use make it an ideal platform for designing lighting effects that enhance musical performances.。
基于单片机的可调速音乐流水灯
第 30 卷第 5 期
王鹏勋:等离子体技术对雷达目标隐身的探析
41
乙 乙乙 乙乙 p(z0)=p0exp -4Im k(z)dz
(9)
这里 p0 是电磁波入射时 z=0 处的能量。
电磁波的双程衰减为(dB):
乙乙 乙 Att=
101g p(z0) p0
=
17.37Im
k(z)dz
(10)
作为例子,考察等离子体电子密度均匀分布时的情
生更加纯正的音色。
关键词:单片机;多功能;调速;音乐;流水灯
中图分类号:TP337
文献标识码:A
文章编号:1006-8937(2011)05-0037-01
The adjustable speed music water lamp based on SCM DU Yi
(Tianhe College of Guangdong Technical Normal College,Guangzhou,Guangdong 510540,China)
此系统的原理图如图单片机多模式音乐流水灯系统原理框图晶振模块复位模块按键模块电源模块51发声模块电阻模块数码管模块流水灯模块软件设计通过扫描p22口判断是否有按键按下确定应执行的闪烁功能
第 30 卷第 5 期 第Vo3l0.3卷0 第N5o.5期
企业技术开发 TECHNOLOGICAL DEVELOPMENT OF ENTERPRISE
也能达到 20 dB 以上。
1.2
1.0
0.8
0.6
①等离子体隐身技术运用主动控制技术实现隐身, 改变了传统隐身技术被动的劣势,更有利于隐身系统的 维护。
②它并不涉及飞行器本身的空气动力系统及其外 形设计,也就不会影响飞行器的飞行及战术性能。不仅 如 此 ,在 不 影 响 飞 行 器 技 术 性 能 的 同 时 ,等 离 子 体 隐 身 技术还能有效降低飞行器的可探测性。
单片机音乐控制流水灯审批稿
单片机音乐控制流水灯 YKK standardization office【 YKK5AB- YKK08- YKK2C- YKK18】摘要本设计是一种基于AT89C51单片机音乐控制彩灯的方案,实现单片机演奏音乐,并且对LED彩灯随音符频率的不同而闪烁发光。
本方案以AT89C51单片机作为主控核心,利用三极管和蜂鸣器,通过三极管放大电流使用蜂鸣器播放音乐,利用编程实现亮灯循环模式,在有8个LED彩灯,根据用户需求可以编写若干种亮灯模式.例如左右闪烁,隔几个亮灭,蜂鸣器可以根据用户需求改写编程播放各种音乐。
本方案具有设计简单、体积小、元器件少、电路结构简单等优点。
该设计方案设计及其简单,典型的89c52单片机,亮灯模式多,播放各种类型的音乐,具有体积小、价格低、低能耗等优点。
在美丽的都市夜晚,彩灯的循环亮灭,播放动人的音乐,衬托出美丽的氛围,音乐彩灯具有更广阔的发展天地。
1、设计要求(1)、用8个发光二极管作为显示电路。
(2)、蜂鸣器播放音乐。
(3)、能够循环的显示灯的亮灭。
2、基本原理通过控制单片机的内部定时器的定时时间来产生不同的脉冲频率,以驱动蜂鸣器发出不同音节的声音,利用延时子程序来控制音调的节拍。
为了编程方便,通常是将简单的音符和相应的节拍转换成为定时常数和延时常数,利用查表法得到定时常数,分别控制定时器产生相应的脉冲频率和脉冲频率的持续时间,当持续时间到时,程序自动查找下一个音符的定时常数和延时常数,这样就可以听到悦耳动听的歌声。
音调是由不同的频率产生的,而每一个音调都是有一个音符和一个节拍组成,音符决定该音调的高低,节拍决定了该音调是多少拍。
因此,一个音调是由两个字节组成的。
根据音符字节产生该大小次数的延时,声音输出口取反,就可以得到该音调的高低音。
根据设置单位的延时大熊啊,可以控制音乐演唱速度。
因此算法很简单:定义单片机的一个I/O端脚为声音输出口,在规定的节拍内,根据音符字节的大小产生延时,将声音输出口不断的至置高置低(即取反),就可以得到该音调。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要本设计是一种基于AT89C51单片机音乐控制彩灯的方案,实现单片机演奏音乐,并且对LED彩灯随音符频率的不同而闪烁发光。
本方案以AT89C51单片机作为主控核心,利用三极管和蜂鸣器,通过三极管放大电流使用蜂鸣器播放音乐,利用编程实现亮灯循环模式,在有8个LED彩灯,根据用户需求可以编写若干种亮灯模式.例如左右闪烁,隔几个亮灭,蜂鸣器可以根据用户需求改写编程播放各种音乐。
本方案具有设计简单、体积小、元器件少、电路结构简单等优点。
该设计方案设计及其简单,典型的89c51单片机,亮灯模式多,播放各种类型的音乐,具有体积小、价格低、低能耗等优点。
在美丽的都市夜晚,彩灯的循环亮灭,播放动人的音乐,衬托出美丽的氛围,音乐彩灯具有更广阔的发展天地。
关键字:AT89C51 LED彩灯音乐AbstractThis design is a musical based on AT89C51 microcontroller control program Lantern,realize MCU playing music,And the LED lights on the frequency of different notes with the light flashing。
The program for AT89C51 microcontroller as the control center, use of transistor and buzzer, the current through the transistor amplification using the buzzer to play music,Using programming lighting cycle mode, with 8 LED Lantern, according to user needs to write some kind of switch-mode. For example, flashing around, every few light off, the buzzer can be adapted according to user requirements play a variety of music programming . The program is simple in design, small size, less components, and simple circuit structure. The design and simple design, the typical 89c51 microcontroller, a switch-mode and more, playing all types of music, has a small size, low price and low power consumption and so on. In the beautiful city at night, lanterns light off cycle, play beautiful music, brings out the beautiful atmosphere,music Carnival with the development of a broader world.Keywords: AT89C51 LED Lantern music目录绪论------------------------------------------------------------- 41音乐流水灯方案设计与选择--------------------------------------- 41、1 设计要求-------------------------------------------------51、2 基本原理------------------------------------------------- 51、3 设计电源------------------------------------------------- 5-61、4 频率音符------------------------------------------------- 62 音乐流水灯设计过程---------------------------------------------- 7 2、1 元件选择------------------------------------------------- 7 2、2 电路设计------------------------------------------------- 7 2、2、1 元器件介绍------------------------------------------7-9 2、2、2 音乐流水灯构思---------------------------------------9-11 2、3 软件设计-------------------------------------------------11 2、3、1 编程介绍--------------------------------------------11-13 2、3、2 设计程序-------------------------------------------14-15 参考文献---------------------------------------------------------- 16绪论目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC 卡,民用豪华轿车的安全保障系统,摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1.在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。
采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。
例如精密的测量设备(功率计,示波器,各种分析仪)。
2.在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。
例如工厂流水线的智能化管芯片理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
3.在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子称量设备,五花八门,无所不在。
4.在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
5.单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。
1、音乐流水灯方案设计与选择1、1设计要求本次毕业设计要求设计一个音乐流水灯,其设计要求如下:(1)、用8个发光二极管作为显示电路。
(2)、播放八月桂花香的音乐。
(3)、能够循环的显示灯的亮灭。
1、2 基本原理通过控制单片机的内部定时器的定时时间来产生不同的脉冲频率,以驱动蜂鸣器发出不同音节的声音,利用延时子程序来控制音调的节拍。
为了编程方便,通常是将简单的音符和相应的节拍转换成为定时常数和延时常数,利用查表法得到定时常数,分别控制定时器产生相应的脉冲频率和脉冲频率的持续时间,当持续时间到时,程序自动查找下一个音符的定时常数和延时常数,这样就可以听到悦耳动听的歌声。
音调是由不同的频率产生的,而每一个音调都是有一个音符和一个节拍组成,音符决定该音调的高低,节拍决定了该音调是多少拍。
因此,一个音调是由两个字节组成的。
根据音符字节产生该大小次数的延时,声音输出口取反,就可以得到该音调的高低音。
根据设置单位的延时大熊啊,可以控制音乐演唱速度。
因此算法很简单:定义单片机的一个I/O端脚为声音输出口,在规定的节拍内,根据音符字节的大小产生延时,将声音输出口不断的至置高置低(即取反),就可以得到该音调。
只要选取合适的单位节拍延时,就可以输出动听的音乐。
用内部定时器T0方式产生简谱中各音符飞对应脉冲频率,同时通过延时常数来控制脉冲频率的持续时间。
为了加强观赏和实用性在上面P0-P8脚接了LED灯,这样在音乐播放的同时也有灯的闪烁对音符有直观的感觉。
1、3设计电源AD89c51单片机需要的电源是5v直流电源,我们所用的电是220v50赫兹,这要需要交流电源220v转换5v直流电源,利用变压器的原理220v进行降压,单片机控制系统以及外围芯片供电采用7805系列三端稳压器件,通过全波整流,然后进行滤波稳压,使用电容滤去交流。
电路图如下1.4频率音符单片机的震荡频率为12MHz,乐曲的音符、频率及定时常数三者的对应关系如下图列表所示2音乐流水灯设计过程2.1元器件选取单片机stc89c52 三极管8050 电阻470R 10R 4.7R 电容104 30pf 电解电容10uf 3300pf 变压器整流桥 7805 发光二极管蜂鸣器晶体振荡器 12MHz2、2电路设计2、2、1 元器件介绍7805介绍H7805系列为3端正稳压电路,TO-220封装,能提供很多种固定的输出电压,应用范围广。
内涵过流、过热和过载保护电路。
带散热片时,输出电流可达1A.。
虽然是固定稳压电路,但是用外接元件,可获得不同的电压和电流。
主要特点:1、输出电流可达1A2、输出电压有5V3、过热保护4、短路保护5、输出晶体管SOA 保护单片机介绍单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。