基于AT89C51单片机的数据采集系统及频谱分析电路.docx
- 文档编号:509925
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:34
- 大小:375.13KB
基于AT89C51单片机的数据采集系统及频谱分析电路.docx
《基于AT89C51单片机的数据采集系统及频谱分析电路.docx》由会员分享,可在线阅读,更多相关《基于AT89C51单片机的数据采集系统及频谱分析电路.docx(34页珍藏版)》请在冰点文库上搜索。
基于AT89C51单片机的数据采集系统及频谱分析电路
基于AT89C51单片机的数据采集系统及频谱分析电路
摘要
本毕业设计数据采集部分采用的是单片机AT89C51和模数转换芯片ADC0808采集系统。
用电位器模拟输入电压,经过AT89C51控制ADC0808将输入模拟电压转换成数字信号,频谱分析部分是基于外差原理的数字式频谱分析,系统采用XlinxVIRTEX-II100万门的FPGA,将本振扫频、混频、放大、低通滤波、提取峰值等工作全部通过数字化实现。
控制方面,有凌阳16位单片机SPCE061A作为控制核心,实现人机接口和最后频谱图的模拟示波器显示。
本论文主要描述了硬件设计部分和软件设计部分,硬件部分更是详细分析了本数据采集及其频谱分析的各个部分的电路原理,以及各个模块之间的线路连接。
并列出了所有的元器件,以及实现数据采集和频谱分析功能的相应程序。
该设计出了一个简单实用的数据采集及其频谱分析电路,具有成本低,可靠性高,扩展功能强等优点。
关键词:
数据采集频谱分析AT89C51AD0808凌阳16位单片机SPCE061A
Abstract
ThedataacquisitionpartofthisgraduationisAT89C51microcontrollerandanalogtodigitalconversionchiptheADC0808collectionsystem.Potentiometeranaloginputvotagle,AT89C51controlADC0808inputanalogvoltagetoconvertthedigitalsignal,spectrumanalysispartisbasedonthedigitalspectrumoftheheterodyneprinciple,thesystemusesamilliongatesFPGAXlinxVIRTEX-II100,thevibrationfrequencysweep,mixing,amplification,allthedigitalrealizationoflow-passfiltering,toextractpeak.Control,havetheSunplusthe16themicrocontrollerSPCE061Aascontrolcore,toachievetheman-machineinterfaceandanalogoscilloscopedisplayofthefinalspectrogram.Thispaperdescribesthehardwaredesignandsoftwaredesign,hardwarepartisadetailedanalysisoftheconnectionsbetweenthevariouspartsofthecircuitschematicofthedataacquisitionandspectrumanalysis,andeachmodule.Andlistsallofthecomponents,aswellasthecorrespondingproceduresfordataacquisitionandspectrumanalysiscapabilities.Thedesignhasasimpleandpracticaldataacquisitionandspectrumanalysiscircuit,lowcost,highreliability,extendedfunctionality,andotheradvantages.
Keywords:
dataacquisitionspectrumanalysisAT89C51AD0808Sunplus16-bitmicrocontrollerSPCE061A
1.绪论
1.1设计数据采集及其频谱分析电路的意义
数据采集及其频谱分析电路是一种具有现场实时数据采集、处理功能、频谱分析自动化电路。
具备实时采集、自动存储、实时显示、即时反馈、自动处理、自动传输以及频谱分析功能。
为现场数据的真实性、有效性、实时性、可用性提供了保证。
数据采集及其频谱分析电路在各个领域中都有广泛的运用,以后有可能接触到这些设备,有必要深入地分析其工作原理、电路原理,同时设计一个简单、实用的数据采集及其频谱分析电路。
完成这个毕业设计也是让我们在学习了模拟电路、数字电路、微机原理、单片机等相关课程理论知识有一个融会贯通的过程。
加深对理论知识的理解,以及学会理论知识实际应用的处理方法。
为设计一个电子系统吸取经验,为今后的自动化综合设计和工作实践打下坚固的基础。
同时也是为了培养动手能力,在即将毕业的前期积累宝贵的实践经验。
为以后工作培养良好的工作态度。
1.2数据采集及其频谱分析的主要功能
数据采集及其频谱分析电路的数据采集部分采用的主要元件是AT89C51和ADC0808模数转换芯片。
其主要功能是模拟采集信号,并对信号进行处理,最终显示出来采集结果。
首先我们的模拟信号采用电位器产生,供给ADC0808,ADC0808有8路数据输入,也就是8路模拟电压信号。
在AT89C51的控制下,实现按键转换要求通道的电压值。
频谱分析部分主要元件是凌阳16位单片机SPCE061A为核心控制器件,配合XilinxVirtex-IIFPGA及Xilinx公司提供的硬件DSP高级设计工具SystemGenerator,制作完成本数字式外差频谱分析仪。
前端利用高性能A/D对被测信号进行采集,利用FPGA高速、并行的处理特点,在FPGA内部完成数字混频,数字滤波等DSP算法。
SPCE061A单片机是整个设计的核心控制器件,根据从键盘接受的数据控制整个系统的工作流程,包括控制FPGA工作以及控制双路D/A在模拟示波器屏幕上描绘频谱图。
人机接口使用128×64液晶和4×4键盘。
本系统运行稳定,功能齐全,人机界面友好。
2.数据采集硬件电路设计
数据采集及其频谱分析系统通常使用高速数据采集到的被测信号,送入处理器处理,最后将得到的各频率分量幅度值数据送入到显示器显示,其组成的框图如图2.1
图2.1组成框图
2.1方案选择及设计思想
在查阅资料的时候,重点查阅了两个方案的资料。
方案一:
在AT89C51的控制下,指定某通道将电压信号发生器产生的输入电压信号输入ADC0808转换器,转换成数值信号输入到AT89C51进行数据处理,然后输出并行信号,通过MAX232将并行信号转换成串行信号,再经过串口RS232输入到上位计算机。
通过计算机显示出采集模拟稳定信号的数值。
方案二:
在AT89C51的控制下,指定某通道将电位器产生的输入电压信号输入ADC0808转换器,转换成数值信号后输入AT89C51进行数据处理,然后输出并行信号。
使用四位数码显示管来做独立的显示设备将输出信号显示出来。
两套方案的比较,在模拟信号部分,两套方案均产生0-5V的可调电压,方案一采用的是电压信号发生器,方案采用电位器产生可变电压(0-5v),我个人觉得用电位器较电压信号更加简单,具有很强的可操作性,可在后期工作中将电位器集成在电路板上,使模拟信号有良好的可移动性。
在控制器和模数转换芯片上,两套方案均采用相同的设计思想。
两套方案最大的区别在于显示电路上,方案一采用计算机作为上位机,将单片机输出的并行好通过通信芯片MAX232转换成串行信号后,显示在计算机上。
方案二则采用独立的显示设备四位数码显示管。
可以采用并行动态扫描的方式接入单片机直接读取并行信号。
方案一中的需要设计单独的通信模块,使得电路较方案二更加复杂,而且需要在计算机上编写相应的程序,工作量之大。
不符合我们简单实用的设计思想。
综上所述,我们选择了方案二。
在本次课程设计中,根据设计要求,我们组的出发点是设计简单实用的数据采集器,将各个部分模块化,以此为设计思想,尽可能的简化电路设计,使其具有很强的可操作性和可移动性。
方案二电路简单实用,成本低,完全符合我们的设计初衷。
因此我们选择了方案二。
2.2设计方案的框图
图2.2设计方案的框图
2.3工作原理
模拟信号有电位器产生0-5V的可调电压。
上电以后,AT89C51输出启动信号给ADC0808,ADC0808开始转换第一通道的模拟信号。
转换完成以后发出完成信号给AT89C51,转换后的并行数据由P1口输入单片机,单片机接收数据后由程序按温度值T(˚C)与电压U(V)对应关系:
T=15.4V完成换算,最后由P0口输出显示数据,由四位数码显示管显示。
ADC0808内部自带8路数据选择器,由单片机控制片选信号,完成按键选择信号的功能。
2.4电路中主要芯片的引脚对应的功能
2.4.1主控芯片AT89C51
图2.4主控芯片AT89C51
AT89C51与AT89S52相仿,具有如下特点:
40个引脚,8kBytesFlash片内程序存储器,256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
VCC:
供电电压。
GND:
接地。
PO口:
PO口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门流。
当PI口的管脚第一次写入1时,被定义为高祖输入。
PO能够用于外部程序数据存储器,他可以被定义为数据/地址的第八位。
在FIASH编程时,PO作为原码输入口,当FIASH进行校验时,PO输出原码,此时PO外部必
须被拉高。
P1口:
P1口是一个内部提供上拉电阻的八位双向I/O口,P1口缓冲器能接受输出4TTL门电流。
P1口管教写入1时,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接受。
P2口:
P2口为一个内部上拉电阻的8为双向I/O口,P2口缓冲器可接受,输出4个TTL门电流,当P2口被写1时,其管脚内部上拉电阻被拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,并输出电流,这是由于内部上拉的缘故,P2口作为外部程序存储器或16位地址外部存储器进行存取时,P2口输出地址的高八位。
在给出地址1时,他利用内部上拉优势,当对外部8位存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接受高八位地址信号和控制信号。
P3口:
P3口管脚时八个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入1后,他们被内部上拉为高电平,并用做输入,作为输入由于外部下拉位低电平,P3口将输出电流这是由于上拉的缘故。
P3口也可作为AT89S52的一些特殊功能口,P3口同时为闪烁编程和编程校验接受一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡频率的1/6.因此它可用作对外部输出地脉冲或用于定时目的。
然而要注意的是:
每当用做外部数据存储器时,将跳一个ALE脉冲。
而想禁止ALE脉冲的输出可在SFR8EH地址上置0.此时ALE只有执行MOVX,MOVC指令是ALE才起作用。
另外该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号,再由外部程序存储器取值期间,每个机器周期两次/PSEN有效。
但在访问外部存储器时,这两次有效地/PSEN信号将不出现。
EA/VPP:
当EA低电平时,则在此期间外部存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA保持高电平时,此间内部程序存储器,在FLASH编程器件,此引脚也用于施加12v编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器输出。
2.5原理图及连接关系
2.5.1数据输入模块
图2.4数据输入模块
本次采集器设计的输入的模拟信号比较简单,采用滑动变阻器,外接+5V电压作为输入模拟信号,标示为RV1分别接入模数转换芯片ADC0808的IN0-IN7(26,27,28,1,2,3,4,5号管脚)。
完全符合输入模拟信号0-5V的调节范围,有效可靠的模拟电压信号。
2.5.2模数转换模块
图2.5模数转换模块
模拟信号通过输入端IN0~IN7:
8路模拟量输入端。
ADDA,ADDB,ADDC三个是数据选择控制端输入片选信号与P3.1,P3.2,P3.3连在一起,由A,B,C和IN0-IN7构成3-8数据器,通过AT89C51中的按键程序控制片选信号。
START是A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0808复位,下降沿启动A/D转换)。
ALE是地址锁存允许信号,输入,高电平有效。
将ALE和START连在一起与P3.4相连,在A/D转换完成后正脉冲的处于高电平,即可控制地址锁存器。
该脉冲依靠编写的单片机中断程序模拟一个正脉冲控制。
OE端口是数据输出允许信号,由单片机输入高电平控制。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
OUT1-OUT8是A/D转换的输出数字端口,与P1口相连。
连接方式是OUT1-OUT2和P1.7-P1.0。
12和16号管脚是接基准电压分别接VCC和GND。
另外10号端口是时钟频率大小不得超过640KHZ。
本次设计中我们采用终端输出脉冲来模拟这个时钟脉冲,但是效果不好,所以采用外接500KHZ的信号。
2.5.3主控电路
图2.6主控电路
这是单片机部分的复位电路和时钟脉冲电路。
复位电路采用电平复位的方式,晶振的频率为11.0592MHZ。
连接方式如图分别连到单片机的19,18,9好脚。
图2.7复位电路连接方式图
这是AT89C51单片机主控部分的接法,其中P3.1到P3.7与A/D转换芯片相连,做控制口。
在A/D部分已经详细介绍了连法。
P2.0-P2.3是四位数码显示管的控制端。
P2.5和P2.6是按键的控制端。
P0.0-P0.7是显示的数据输出端与四位数码管的A-G相连。
图2.8按键的控制端
这个是简单的按键部分,P2.4按键选通转换那一路,执行的方式是按一下显示下一路,按0-7路的方式循环。
3.数据采集软件设计
3.1系统模块层次图
图3.1系统模块层次图
3.2程序流程
否
是
图3.程序流程图
3.3程序源代码
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
//#defineinputP1
//#defineTTP0
sbitSTART=P3^4;
sbitCLK=P3^5;
sbitOE=P3^6;
sbitEOC=P3^7;
sbitE=P3^0;
sbitAA=P3^1;
sbitBB=P3^2;
sbitCC=P3^3;
sbitK1=P2^4;
sbitP07=P0^7;
uchart1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchara,b;
//voiddelay1();
voiddisplay(uinttemp1);
/*******延时1*******/
voiddelay1(void)
{
for(a=248;a>0;a--);
for(b=248;b>0;b--);
}
/******延时2*****/
voiddelay2()
{
inti;
for(i=5000;i>0;i--);
}
/********A/D转换程序********/
ucharAD()
{
uchardat;
if(!
EOC)
{
START=1;
START=0;
}
while(!
EOC);
START=1;
START=0;
dat=input;
returndat;
}
/********加地址,选择模拟通道*******/
voidget_add(ucharadd)
{
CC=add/4;
BB=add%4/2;
AA=add%2;
delay2();
}
/******动态扫描程序******/
voiddisplay(uinttemp1)
{
uintaa,bb,cc,dd;
aa=temp1%10;
temp1/=10;
bb=temp1%10;
temp1/=10;
cc=temp1%10;
dd=temp1/10;
P2=0xf1;
P0=t1[dd];
delay1();
P2=0xf2;
P0=t1[cc];
delay1();
P2=0xf4;
P0=t1[bb]&0X7F;
delay1();
P2=0xf8;
P0=t1[aa];
delay1();
}
/*****电压显示转温度显示函数*****/
voidc_u(intaa)
{
aa=aa*15.4*5*10/255;
display(aa);
}
/*****主程序****/
voidmain(void)
{
ucharrr,tt;
TMOD=0x02;
TR0=1;
ET0=1;
IT0=1;
EX0=1;
EA=1;
tt=0;
while
(1)
{
get_add(tt);
AD();
rr=input;
c_u(rr);
if(!
K1)
{
while(!
K1);
tt++;tt=tt%8;
}
}
}
/****中断时钟脉冲*****/
voidtimer()interrupt1
{
CLK=~CLK;
}
4.频谱分析硬件电路设计
4.1方案论证
按照对信号处理方式的不同,频谱分析可以分为以下三种。
(1)基于FFT技术的数字频谱电路
这种频谱仪利用快速傅里叶变化可以将被测信号分解成独立的频谱分量,达到与传统频谱分析仪同样的结果。
这种新型的频谱分析仪采用数字方法直接由模拟/数字转化器(ADC)对输入信号采样,再经FFT处理后获得频谱分布图。
FFT技术的数字式频谱分析仪在速度上明显超过传统的模拟式频谱分析仪,能够进行实时分析。
但由于FFT所取的是有限长度,需要对信号加窗截取,因此,实现高扫频宽度和高频率分辨率需要高速A/D转化器和高速数字器件的配合。
(2)基于数字滤波法的数字频谱仪
这种频谱仪原理上等同于模拟频谱仪中的并行滤波器法或可调滤波器,通过设置多个窄带带通数字滤波器,或是中心频率可变的带通数字滤波器,提取信号经过数字滤波器的幅度值,实现测量信号频谱的目的,该方法受到数字器件资源的限制,无法设置足够多的数字滤波器,从而无法实现高频率分辨率和高扫频宽度。
(3)基于外差原理的数字式频谱仪
“数字式外差”原理是把模拟外差式频谱分析仪中的各模块利用数字可编程器件实现,其原理框图如图所示。
图4.1“数字式外差”原理框图
信号经高速A/D采样送入处理器,通过硬件乘法器与本地由DDS产生的本振扫频信号混频,下变频后信号不断移入低通数字滤波器,然后提取通过低通滤波器的信号幅度,根据当前频率和提取到的幅度值,绘制当前信号频谱图。
利用数字器件实现传统方式上的外差式扫频仪,不但提高了速度,同时还可以对频率信息实现存储和分析。
理论上,只要数字滤波器的阶数足够高。
频率分辨率可以做到很小,相比FFT数字频谱仪方案和数字滤波法,系统中只要使用一个固定截止频率的低通滤波器,消耗资源少,同时可以省去大容量的存储器,这就在保证系统精度的前提下提高了系统集成度,节省了宝贵的片内资源。
系统采用XILINXVIRTEX-II100万门的FPGA,将本振扫频,混频,放大,低通滤波,提取峰值等工作全部数字化实现。
控制方面,由凌阳单片机SPCE061A作为控制核心,实现人机接口和最后频谱图的模拟示波器显示,系统构成框图如图4.2:
图4.2系统构成框图
1.理论分析与参数设计
(1)A/D采样频率
受到现有器件的限制,本系统使用的A/D转换器最高工作频率仅为65MHZ,根据奈奎斯特采样定律,被测信号的最高频率可达30MHZ。
(2)扫频步进
在下变频外差式频率仪中,与检波后输出的信号幅度相对相对应的输入信号频率,即是本地扫频信号源的频率。
理论上DDS的频率步进能够达到无限小,在本系统中仅将步进设计为10KHZ,以验证功能。
2.FIR低通滤波器参数设计
频率分辨率不仅与扫频源的频率步进有关,而且还与低通滤波器的截止频率有关。
含有多种频率分量的信号与本地扫频源输出的信号混频后,经过低通滤波器,在零频率附近检出的幅度即为对应频率下的幅度谱。
但是,由其受到频率器的通带限制,不可避免地使零频以外的幅度也通过检波器输出。
为分率出间隔10KHZ的谱线,低通滤波器的通带必须小于10KHZ。
在数字滤波器设计中,当采样率较高时,要求的滤波器阶数会变得较大。
本设计使用MATLAB中的“Filterdesigntoolbox”对数字滤波器进行设计及参数计算。
为提高频率分辨率,采样时钟f=65MHZ,通带为5HZ,阻带为100KHZ,通带增益-3dB,阻带增益-20dB.阶数为378阶。
3.示波器先显示相关参数设计
要在模拟示波器上稳定的显示出图像,每一屏图像的扫描间隔必须小于人眼的最小反应时间。
人的视觉暂留在10-50ms之间。
对于小于次间隔的变化,人眼都无法辨别出来。
本系统使用单片机来控制外部的双路D/A实现频谱图的显示,在程序中设定间隔为20ms的中断,每次中断都将存储在频谱显示存储区的数据输出显示一次,实现了频谱分析稳定的显示。
4.数字检波
为实现数字检波,通过设定一个寄存器,在每一个对应频点保存FIR滤波器输出信号的最大值。
信号的一个周期之后该寄存器中的值即为滤波器后信号的
峰值。
4.2频谱分析硬件电路设计
4.2.1数据采集
数据采集部分内容已经在第2章节和第三章节论述过,在本小节不再论述。
4.2.2运算核心设计
本系统以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89C51 单片机 数据 采集 系统 频谱 分析 电路