我的账户
中国电子DIY

科技成就未来

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

基于STC12C5A60S2的音乐频谱显示

[复制链接]
思慕丫头 发表于 2019-5-19 08:07:34 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
本帖最后由 思慕丫头 于 2019-5-25 16:47 编辑

基于STC12C5A60S2的音乐频谱显示[少女时代]
声明:本帖使用程序及原理图均来自本论坛
一、原理图

图1 控制模块原理图
二、频谱图鉴

图2  图鉴1

图3 显示模块
      如图3所示,显示模块与控制模块采用飞线连接,略显杂乱,只为实现积木式组合。

图4 频谱显示
    显示模块采用8050贴片二极管焊接的,比较麻烦。

图4 无信号输入显示
程序设定的是无信号输入时底部有一行灯常亮的。
三、程序说明
#include "src\STC12C5A.h"   
#include <intrins.h>      //51基本运算(包括_nop_空函数)
#include <math.h>
#include "src\Define.h"

///////全局变量///////
uchar data DelayTime=9;   //<=8效果最好;
uchar data INTTime=0x40;  //0x40;
uchar data gain=6;
uchar data Menu=0;   //显示模式选择 0-2
uchar idata refreshflag[40];
uchar  data LEDBuf[35];   //15列;从左到右;亮的位为真(1);
uint32  data TouchKey=0;
uchar data CBeep=0;

要说明的是该频谱显示有三种显示模式,有变量Menu控制,初始赋值为0,硬件部分对应P1.6和P1.7间的按键,逻辑是判定按键P1.6是否为“真”,
如果为1,P14=0蜂鸣器响,显示模式变量Menu自加1次。程序部分如下
while(P16==1)        //依据:脉冲 干扰持续时间短;
   {
   if(CBeep)P14=0;
   if(++TouchKey>0x0000FF00)break;
   }
   P14=1;
     Menu=0;  //默认只选择一种模式,屏蔽掉按键选择
  if(P16==1)
      {
   if(++Menu==4)Menu=0;
   P14=0;
   P47=1;
   Delays(7000);   
   P14=1;
   P47=0;  
   }
四、附件
     附件部分包括程序原理图及程序


IMG_20190519_063802.jpg
IMG_20190514_232733.jpg
IMG_20190514_232241.jpg
IMG_20190514_232101.jpg

音乐频谱1.rar

6.66 MB, 下载次数: 0, 下载积分: 下载币 -5

精彩评论5

 楼主| 思慕丫头 发表于 2019-5-19 15:02:35 来自手机 | 显示全部楼层
论坛的人很少了啊!
回复

使用道具 举报

 楼主| 思慕丫头 发表于 2019-5-25 16:49:08 来自手机 | 显示全部楼层
为什么一直在审核中?
回复

使用道具 举报

shiyien 发表于 2019-6-12 15:39:32 | 显示全部楼层

做的太好了!佩服啊!
回复

使用道具 举报

shiyien 发表于 2019-6-12 15:40:07 | 显示全部楼层

做的太好了!佩服啊!
回复

使用道具 举报

shiyien 发表于 2019-6-12 16:05:53 | 显示全部楼层

谢谢分享,学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关注0

粉丝2

帖子5

发布主题
最新发布
推荐阅读
关注我们
中国电子DIY官方微信

客服电话:000-000-0000

客服邮箱:776513803@qq.com

周一至周五 9:00-18:00

公司地址:深圳市南山区美丽湾大厦B座

Powered by Discuz! X3.4@ 2001-2013 Comsenz Inc.