毕业论文:单片机的音乐喷泉制作-DIY分享 全部设计资料 源代码
因为最近忙着考试,所以都没时间更新博客了,在后台有个小姐姐给我留言说自己对单片机很感兴趣,但是又不知道从哪里开始学起,是先学硬件好还是先学软件好,其实在我们复杂的电子学里,硬件和软件是分不开的,硬件就像是我们的心脏和四肢,软件就像我们的大脑,如果只有软件没有硬件,那我们的系统就是一个没用的程序,不能执行任何操作,而如果只有硬件没有软件那么整个系统就是一个行尸走肉,是一个没有“大脑”的躯壳,我说到现在大家也应该明白了,硬不离软,软不离硬,只有软硬兼修,方能大成!好了,回到刚才的问题,我建议先从硬件开始学起,先理解了硬件的架构和各部分的工作原理,然后再去看软件,这样能更好的理解原理,就像我推荐大家先用汇编后用C一样 好了,写了这么多,如果你有不同意见或者想法欢迎留言和私信。
今天送给大家一个比较简单的小项目吧,如果你有兴趣的话可以试着做一下呦!
好了老规矩先上实物图
正面图:
焊接好的成品背面图:
电路原理图:
PCB图:
音乐喷泉的项目元器件清单:
音乐喷泉单片机C语言参考源代码如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit out=P3^7;
sbit led1=P0^7;
sbit led2=P0^6;
sbit led3=P0^5;
sbit led4=P0^4;
sbit led5=P0^3;
sbit led6=P0^2;
sbit led7=P0^1;
sbit led8=P0^0;
sbit SCL=P1^2; //SCL定义为P1口的第3位脚,连接ADC0832SCL脚
sbit DO=P1^3; //DO定义为P1口的第4位脚,连接ADC0832DO脚
sbit CS=P1^0; //CS定义为P1口的第4位脚,连接ADC0832CS脚
uchar h1,date;
unsigned char adval;
void delay(uint z)
{
uchar y;
for(;z>0;z--)
for(y=120;y>0;y--);
}
以下是模数转换部分
/***********读数模转换数据********************************/
//请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的
// 1 1 0 通道
// 1 1 1 通道
unsigned char ad0832read(bit SGL,bit ODD)
{
unsigned char i=0,value=0,value1=0;
SCL=0;
DO=1;
CS=0; //开始
SCL=1; //第一个上升沿
SCL=0;
DO=ODD;
SCL=1; //第二个上升沿
SCL=0;
DO=SGL;
SCL=1; //第三个上升沿
DO=1;
for(i=0;i<8;i++)
{
SCL=1;
SCL=0; //开始从第四个下降沿接收数据
value<<=1;
if(DO)
value++;
}
for(i=0;i<8;i++)
{ //接收校验数据
value1<<=1;
if(DO)
value1+=0x01;
SCL=1;
SCL=0;
}
if(value==value1) //与校验数据比较,正确就返回数据,否则返回0
return value;
return 0;
}
void penquan() //PWM调压
{
date=ad0832read(1,0);
h1=(255-date);
out=0;
delay(h1);
if(h1>30) led1=1; else led1=0;
if(h1>70) led2=1; else led2=0;
if(h1>100) led3=1; else led3=0;
if(h1>130) led4=1; else led4=0;
if(h1>160) led5=1; else led5=0;
if(h1>180) led6=1; else led6=0;
if(h1>200) led7=1; else led7=0;
if(h1>220) led8=1; else led8=0;
out=1;
delay(date);
}
……………………
鉴于篇幅所限代码只能写到这里,由于平台不能上传附件,如果需要设计文件请留言或者私信,如果你有什么意见和建议欢迎大家交流,让我们共同学习,一起进步!
喜欢请转发留言加关注,谢谢!
单片机实例分享,打造音乐频谱时钟
(此处已添加圈子卡片,请到今日头条客户端查看)电路原理
下面我们按各功能模块逐一给大家介绍一下这个制作的电路原理吧。
图25.1 时钟显示效果
图25.2 频谱显示效果
1.电源部分
电源电路如图25.3所示。
图25.3 电源部分的电路
电源模块采用了一支很常见的7805稳压芯片,再加一大一小两个电容进行滤波,输入端直接买了个9V/1A的电源适配器,方便省事。7805额定输出电流1A,对于这样的小系统来说,已经完全够用了。实际使用下来,7805发热不太大,无需加装散热片。为了使用方便,我在7805的输入端加装了一个开关和一个红色LED,分别作为系统电源开关和指示灯。
2.时钟、温度部分
这部分电路如图25.4所示。单片机采用的是STC89C52RC,考虑到成本和功能性问题,时钟部分我没有单独买时钟芯片,直接使用内部定时器中断作为时钟源,这直接导致的结果就是时钟误差稍大。经测试,每24小时误差在1分钟左右,作为一个功能性的DIY作品,就饶了它吧,呵呵……温度传感器采用的也是常用的DS18B20,相信大家都很熟悉。3个功能按键分别是时钟(闹铃)小时调整、时钟(闹铃)分钟调整和时钟/闹铃切换。
图25.4 时钟、温度部分的电路
为了跟“频谱”切题,时钟、温度的显示没有采用传统的数字表示,而是分别把时钟的小时、分钟的十位和个位分别用点来表示,每两列表示一位,每行表示一点,左下角是时钟,右上角是温度。是不是有点晕乎呢?其实只要你看了实物就会觉得很简单,文字的确不是很好表达。时钟没有单独设置“秒”的显示,为了增强显示效果,我特地在右下角设置了沙漏下落效果,每一秒钟下落一行。
3.频谱分析部分
电路如图25.5所示。这部分的制作跟“五色LED频谱”是一样的原理,都是把音频信号经AD采样,用快速傅里叶变换求出频点的幅值,再根据幅值大小来驱动相应的LED。只不过我设计的是每次采128个点,最后十六分频而已。单片机采用的是STC12C5A60S2,已经在信号输入端加了47pF的电容滤波,但还是发现有噪声。可能是因为使用的是洞洞板,还有就是走线过长的缘故。我试着加大了电容再次滤波,但直接导致低频响应变差,鉴于噪声不是很严重,最后只好作罢,将就一下了。
图25.5 频谱分析部分的电路
4.WAV 音乐播放部分
电路如图25.6所示。这部分应该是整个系统里面最复杂的了,WAV音乐播放部分是在数码之家论坛hit00版主的“WAV播放器”的基础上修改而来的。单片机选用的是STC12C5616AD,虽然该单片机自带有SPI接口,在一定程度上已经简化了程序,但SD卡文件的操作确实有难度。原来的程序里带有语音,受到单片机存储空间的限制,语音质量太差,没有“暂停”及”上一曲”功能。我去掉了语音,增加了暂停及上一曲功能。其中暂停功能的实现花了我不少时间,本来想当暂停的时候就让单片机进入死循环,开始的时候再跳出来,结果试了以后发现完全不是那么回事。单片机PWM信号的输出本来就用的中断,单片机进不进入死循环,中断还是一样的工作。要不就让它在暂停的时候掉电或是待机什么的呢?好吧,查STC12C5616AD的手册。一看手册我笑了,PCON电源控制寄存器不正是我想找的吗,单片机进入掉电模式,单片机状态维持当前值,呵呵……问题解决。功放部分采用了LM386功放芯片,直接引用了网上LM386的典型应用电路。
图25.6 WAV音乐播放部分的电路
5.显示部分
电路如图25.7所示。为了能有好的显示效果,显示部分用的是32×16的高亮度聚光蓝色LED组成的点阵屏,1kΩ电阻限流。全过程手工焊接,可能我焊得慢,整整焊了一晚上。焊接状态与电路细节如图25.8、图25.9所示。
图25.7 显示部分的电路
由于时钟部分跟频谱分析部分共用点阵屏,所以必须考虑两路信号的隔离分时显示。还有就是32列LED的列驱动问题。信号的隔离分时显示我用的是74HC573锁存器,通过控制OE端口将需要显示的信号线路的74HC573选通,而将另外一组信号通过74HC573的高阻态实现隔离。LED的列驱动选用的是74HC154(4线—16线译码器),只需一组I/O口就可实现32列LED的列驱动了。
到此,整个系统的介绍就完了,在这里特别感谢数码之家论坛的hit00版主在制作过程中给予的大力帮助。图25.10就是这个实物作品的全家福。
为了尽量减少干扰和连线,整个板子电源全是用焊锡走的线。信号线采用杜邦线和插针连接,方便调试。
虽然制作时觉得挺累,但当看到自己做的东西“跑”起来那一刻,就什么都值了,我相信每一个DIY爱好者都会有这种感觉吧,也许这就是DIY的乐趣。相关源程序可到qq群657864614进行下载。
图25.8 焊接状态
图25.9 电路细节
图25.10 完成的电路板实物
划重点:现收集整理了1300G电子技术资料,一口价68元,需要的朋友可以私聊我!
相关问答
单片机音乐 设计目的与意义?它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S...
单片机 speaker是什么?单片机speaker是一种用于输出声音的装置,它通常由一个电磁线圈和一个振动膜组成。当单片机通过控制电流流过电磁线圈时,线圈会产生磁场,进而使振动膜振动,从...
单片机 蜂鸣器播放 音乐 只哒哒得响是怎么回事-ZOL问答再换用需要的音乐驱动程序,如果不能正常播放音乐,就要仔细调整程序了。重新在...首先单片机出来输出到蜂鸣器上的是什么东西?是PWM?看你说的情形,应该是出来...
利用 单片机 做一个让灯随着 音乐 节奏闪烁的系统?纯地做一个呼吸灯并不厉害,买个开发版,接上几个灯泡,最后程序写进去,这用不了多长时间。难的是把呼吸灯做成一款产品。我大学期间和搭档也做过呼吸灯,大概...
自己做 单片机音乐盒 ,开始用蜂鸣器,声音很小。后用lm386驱动...单片机的IO驱动能力将对来说较弱,驱动蜂鸣器需要加三极管放大输出。单片机好像不能直接接lm386,最好也加一级三极管隔离输出。用三极管8550或8050驱动,还有就...
如何做出汽车用 音乐 节奏来控制LED灯闪烁?LED随着音乐节奏闪烁吗?用不着单片机来做,用简单的RC电路就可以了。1、驱动信号来源于音乐声源,无论是前级还是后级都可以;2、加入RC电路,形成音乐信号的...
51 单片机 的应用方向?单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1.在智能仪器仪表上的应用...单片...
肿么使用 单片机 控制蜂鸣器发声-ZOL问答1)看封装,如果引脚端为PCB板的,一般为无源的,引脚端为树脂灌封的,一般为有源的...两种蜂鸣器用单片机的控制方法是一样的,对于无源的,要求单片机送出一组断续的...
音乐 芯片原理?这个电子报等书刊以前有介绍过内部框图,首先有一个音色发生器,用来产生特定音频信号,一般都是方波信号,有个节拍发生器,用来产生节拍,还有一个存储器,用来...
单片机 数字钟毕业中期检查表中的一个问题 - 沈禾欣子 的回答...详细2113点???你问什么问题??淮安信息职5261业技术学院综合毕业实践说明4102书(论文1653)2009-2010学年系专业摘要:数字电子时钟电路设计系统,以AT8...