先从音乐信号处接一个电压比较器。。转换成方波,,用单片机的PWM捕捉采集频率。,,再从音乐信号处接一个ADC采集。。。可以将幅度显示出来。。。通过采集频率的大小来控制ADC的使能。。从而实现分段采集。。。。。至于滤波可以采用阻容耦合滤波。。。。或者程序采用卡尔曼滤波算法。
对于液压设备中的8个待测参数选用相应的传感器来来检测,试验时选取应变式传感器作为测试现场的工具。这些选用的检测元件输出都是标准的4-20mA微弱的电流信号,电流信号又经过由LM324组成的放大转换电路转换成0-5V的电压信号输入到C8051F020的模拟输入端,如图2所示,经内部集成的A/D转换器转换成相应的数字量。C8051F020将8路采样值作为液压设备现场的状况存入相应的内存单元。
32 LCD显示
为了使数据采集系统小巧美观,同时又获得较高的性价比,选用德彼克公司生产的DMF-50174蓝屏液晶显示器,该显示器是320×240点阵式液晶,图形和文本都可以显示。显示驱动控制芯片采用EPSON 公司的一种高性能LCD 控制器SED1335。硬件电路采用间接接法,如图3所示。用单片机的P50~P57口作为SED1335的DB0~DB7数据总线的输入通道。P45作为SED1335的片选信号, 配合地址信号A0实现SED1335 通过数据总线接收来自单片机的指令和数据。当A 0= 0, P46(WR)=0,P47(RD)= 1时, 实现指令的写入和从SED1335 中读取数据。当A 0= 1, P46(WR)= 0, P47(RD)=1时, 则是显示数据的写入,该功能通过软件实现。
33 数据通讯
单片机C8051F020的TX0、RX0及P02通过MAX485与上位机相连,进行串行通信,如图3所示。P02控制MAX485的状态或发送,用软件控制。RX0为单片机的串行输入端,接收上位机通过MAX485向单片机发送的数据。TX0为单片机的串行输出端,通过MAX485发送给上位机。
4 系统软件设计
41 软件设计总体上由两部分组成:一部分为单片机C8051F020
主程序设计,一部分为LCD液晶显示程序设计。由于用C语言编程可以降低程序的复杂度,提高程序的可读性和可修改性,所以本软件采用C51进行编程,keil μVision2编译器进行编译。
最普通的方法:高电平计时t1 ,低电平计时t2,(可用定时器进行定时),周期就是(t1+t2),频率就是1/(t1+t2);如果时间允许的话可以进行多次检测,然后取平均值或用其它算法;
另一方法就是用单片机的脉宽扑捉功能了,avr pic都有这个模块的,占用一个定时器,51没有这个功能可用外部中断+定时器来做,只是资源占用有点多,不过51有两个外部中断,也不为过。。。用中断估的话不点mcu还会有大把空闲去处理其它的事情,如按键,显示等,比起上种可用性强些;
如果脉宽变化不大的话,有种简单的,如:你的显示500MS刷新一次,就是500MS为一下时间段,计算这时时间段时有多少次电平变化,再计算会方便些,不过这个误差可能来得比较大,特别是你的0~20HZ的频率。。。。
仅供参考!
以上就是关于基于单片机的音乐信号采集系统全部的内容,包括:基于单片机的音乐信号采集系统、单片机如何进行数据采集、单片机方波信号采集等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)