基于MSP430F6638的信号采集与分析系统实验..docx

基于MSP430F6638的信号采集与分析系统实验..docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于MSP430F6638的信号采集与分析系统实验.

信号采集与分析系统实验实验目的本实验目的是利用实验箱构建一个信号采集和分析系统。实验内容实验步骤1、键盘及LED的设计与制作–编写单片机程序,控制按键,控制灯的亮灭,测试所有能控制的按键和LED 2、液晶屏显示的设计与制作–测试在液晶屏上显示波形和数据3、以信号发生器输入单频正弦波,以16个指示灯代表16个单频点,频点在200Hz ~ 10kHz任选,信号发生器每次产生一种频点正弦波,AD采集,对应频点的指示灯会亮;4、把指示灯显示频点改成用液晶显示5、液晶屏同时显示频谱和时域波形四、实验原理1、AD采样模块在这个模块中,每过一段时间,AD采样器采集一个数据存入数组中,并将存储的二进制数转换成对应的电压值,通过代码:collect0[t].real = ADC12MEM0*3.0 / 0x03ff;实现。采集满N个值之后,令标志变量flag=1,表示一组数据采集完毕,进入下一模块,即FFT变换。我们将信号发生器输出的模拟电压范围设定为0V~2V ,这是因为:若电压值太大,会导致结果波形失真;若出现负电压,则因为AD模块不支持负电压的采集,结果可能会出现错误。2、FFT处理模块该模块将采集进来的数据进行FFT变换,变换后的实部即为频谱,用于LCD的频谱绘制。绘制时,以各频点的幅频值与最大幅频值的相对大小进行绘制;变换后模值最大的频点对应的频率即为待测频率,用fre表示,便于屏幕及LED频率显示;根据求得的fre,可求得若干函数值,用于LCD的时域波形绘制。3、 LCD液晶屏显示模块该模块用于显示时域波形、频谱、学号、所测频率等内容。关键语句:清屏:etft_AreaSet(0,0,239,319,0);//清屏显示:sprintf(buffer, Frequency: %5d Hz,fre);etft_DisplayString(buffer, 0, 32, 0xFFFF, 0x0000);//显示频率同时,在模块中加入了延时语句,使得波形可以保持一定的时间。时间到后,LCD会进行刷新,重新显示波形和数据。4、LED灯显示模块LED1作为采样指示灯,ADC模块每采一次样闪烁一次,由于采样频率极高,但中断调用间隔较长,实际显示为每次进入ADC采样中断LED1闪烁一下。使用LED2、LED3、LED4、LED5显示频率,标号分别为5.7、4.7、4.6、4.5。受LED灯数目的限制,当用LED显示频率时(二进制表示),只能精确到1kHz。如当1500=fre2500时,用2kHz表示,灯显示为0010;当5500=fre6500时,用6kHz表示,灯显示为0110,其余类似。通过以上模块,可以实现以下功能:AD模块采集N个数据后,FFT模块对数据进行处理,FFT变换后,实部为频谱,用于LCD的频谱绘制;模值最大的频点为所求频率,在LED和LCD上显示;再求得一些采样点的函数值,在LCD上绘制时域波形。最终,频率显示在LED灯和LCD上,波形和频谱显示在LCD上。图像保持一段时间后,LCD会进行刷新,重新显示波形和数据。附录:键盘及LED的设计与制作#include msp430.h#include stdint.h#include stdio.h#include dr_i2c.h#include dr_tft.h#define TEMP_ADDR 0x2A#define TEMP_LOCAL 0x00#define TEMP_REMOTE 0x01#define TEMP_CONFIG1 0x09#define TEMP_CONFIG2 0x0A#define TEMP_NCORR 0x21#define BATT_ADDR 0x55#define BATT_VOLTAGE 0x04#define BATT_CURRENT 0x10#define BATT_SOC 0x1C#define BATT_CAPA 0x0C#define BATT_FLAG 0x06int TEMP_LOCAL_INDEX;int TEMP_REMOTE_INDEX;int BATT_VOLTAGE_INDEX;int BATT_CURRENT_INDEX;int BATT_SOC_INDEX;int BATT_CAPA_INDEX;int BATT_FLAG_INDEX;typedefstruct{const volatile uint8_t* PxIN;volatile uint8_t* PxOUT;volatile uint8_t* PxDIR;volatile uint8_t* PxREN;volatile uint8_t* PxSEL;} GPIO_TypeDef;constGPIO_TypeDef GPIO4 ={ P4IN, P4OUT

文档评论(0)

jiulama + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档