单片机实例分享,打造音乐频谱时钟
(此处已添加圈子卡片,请到今日头条客户端查看)电路原理
下面我们按各功能模块逐一给大家介绍一下这个制作的电路原理吧。
图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元,需要的朋友可以私聊我!
单片机音频信号采集电路
音频话筒有两种:
一、动圈式话筒,他是利用电池感应现象制成的,当声波使膜片振动时连在膜片的线圈随着以前振动,音圈在磁场里振动产生感应电流,感应电流的大小和方向都是变化的,变化的振幅和频率由声波决定。如图所示
动圈式话筒
二、驻极体话筒,话筒由单面涂有金属的驻极体薄膜与一个上面有若干个小孔的金属电极构成。驻极体面与背电极相对中间有一个极极小的空气间隙两电极构成平板电容。如图所示
驻极体话筒
所以如果所用的话筒型号不一样电路也会不一样。也就是动圈式要并联一个电阻使线圈有电流回路,驻极体要有电源也就是要串联一个分压电阻。
原理图分析:如图所示
单片机音频信号采集电路
运用常见的运放LM358,两路运放都有2.5V的偏置电压,利用电容隔直流通交流。然后两路反向放大电路进行信号放大最后信号方向不变,然后用电位器进行型号调节,防止信号过大信号饱和,但然如果信号振幅落差比较大,又要自动调节增益,那就得用到模拟开光进行档位原则,这里就不做介绍了。还有电路上有滤出高频信号的电容。接到单片机电源是3.3V
所以也可以接ESD防止单片机引脚击穿。如图所示。
相关问答
单片机 蜂鸣器音乐代码怎么编写?单片机蜂鸣器音乐代码的编写主要包括以下几个步骤:确定音符的频率:根据所需播放的音符,查阅音符对应的频率值。计算定时器溢出值:根据音符的频率和单片机...
单片机 音乐设计目的与意义?它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S...
自己做 单片机 音乐盒,开始用蜂鸣器,声音很小。后用lm386驱动...单片机的IO驱动能力将对来说较弱,驱动蜂鸣器需要加三极管放大输出。单片机好像不能直接接lm386,最好也加一级三极管隔离输出。有用(0)回复zhuangwenzhao001...
用51 单片机 实现音乐播放的原理是什么?通过将音乐作为数字信号编码储存在闪存中,然后通过51单片机的PWM输出模块将该信号转化成模拟信号输出,驱动音频放大器放大后输出到喇叭上,从而实现音乐播放的...
利用 单片机 做一个让灯随着音乐节奏闪烁的系统?单纯地做一个呼吸灯并不厉害,买个开发版,接上几个灯泡,最后程序写进去,这用不了多长时间。难的是把呼吸灯做成一款产品。我大学期间和搭档也做过呼吸灯,大概...
蜂鸣器怎么发声?和 单片机 怎样连接?-ZOL问答和单片机怎样连接?共7条回答6113浏览有源蜂鸣器给上电源它就会响。无源蜂鸣器需要输入音频信号才会响,如果是单片机的话就是输入一定频率脉冲。和单片机...
buzzer 单片机 介绍?buzzer单片机蜂鸣器是一种一体化结构的电子讯响器,本文介绍如何用单片机驱动蜂鸣器,他广泛应用于计算机、打印机、复印机、报警器、电话机等电子产品中作发声...
为什么8051叫做 单片机 ?8051没有反馈电路只是个音频输入放大元件所以又叫单片机。8051没有反馈电路只是个音频输入放大元件所以又叫单片机。
DSP和 单片机 的区别?1、存储器结构不同单片机使用冯.诺依曼存储器结构。这种结构中,只有一个存储器空间通过一组总线(一个地址总线和一个数据总线)连接到处理器核。大多数DSP采...
单片机 控制这个蜂鸣器电路,怎么响出和消防车一样的声音?可以使用PWM直接肛,前提要求是你的PWM频率足够高(之前测试用的上兆的效果差不多了,同时音频采样率别忘记弄上去了),否则的话音质会特别呵呵哒。三极管建议...