脉搏波波形检测系统设计(模拟低通高通滤波,放大,陷波,单片机,VC++上位机)_第1页
脉搏波波形检测系统设计(模拟低通高通滤波,放大,陷波,单片机,VC++上位机)_第2页
脉搏波波形检测系统设计(模拟低通高通滤波,放大,陷波,单片机,VC++上位机)_第3页
脉搏波波形检测系统设计(模拟低通高通滤波,放大,陷波,单片机,VC++上位机)_第4页
脉搏波波形检测系统设计(模拟低通高通滤波,放大,陷波,单片机,VC++上位机)_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、脉搏波测血流速度前期系统设计报告一 实验目的及要求(1)能够合理的选用相应的模拟电路对传感器信号进行调理(1)能够使用8位模数转换器ADC0809实现对调理后信号的采集(2)能够使用STC89C52单片机控制ADC0809对模数转换后数据的读取和处理(3)能够单片机将处理后的数据通过串口方式,发送到计算机,能够用VC+编写波形采集软件,能正确接收下位机发来的数据并能进行相应处理,并尽可能使软件做到稳定,美观(4)能够利用伟福仿真器辅助单片机系统调试,观察各个寄存器和I/O口数据的变化(5)在实验中增强分析问题解决问题的能力,提高设计及调试微机系统的能力二 实验设备及仪器信号发生器,数字示波器,

2、线性直流稳压电源,计算机,伟福仿真器,及一系列制板工具三 实验原理该检测系统采用压电式压力脉搏波传感器和光电容积式脉搏传感器,这两款脉搏信号传感器,能分别采集手腕桡动脉压力脉搏波和手指端血液容积脉搏波,前者是采用PVDF压电片采集手腕桡动脉血管搏动时的压力波,后者是采用光电容积法,在人体心脏跳动过程中,手指端血液容积会随着心脏收缩,舒张做出相应变化,因此通过发射一定频率的光信号,在接收信号端检测光信号的变化,进而间接反映出脉搏波信号。这两种方式采用两种不同脉搏信号获取原理,采集不同人体部位的脉搏波,对于了解脉搏波的传输特性和波形特征将很有帮助,并为进一步研究脉搏波与相关血流参数及血流速度的关系

3、打下了坚实的基础。如下图1,2,3所示分别为压电式压力脉搏波传感器实物图,压电式脉搏波传感器位于桡动脉的绑缚方法,光电容积脉搏波传感器实物图 图1.压电式脉搏波传感器图2.压电式脉搏波传感器绑缚方法图3.光电容积式脉搏波传感器在通过脉搏传感器获取原始脉搏信号后,本设计中运用了信号调理电路将脉搏信号进行滤波放大,其中放大电路采用两级放大,并且前级采用差分输入方式,滤波电路中采用了一个50Hz的陷波电路和0.2Hz45Hz的带通滤波电路(由45Hz低通与0.2Hz低通串联组成),以最大程度的减少工频及人体干扰;另外,在调试过程中发现通过压力脉搏波传感器检测时,信号中包含有一定量的负电压成份,故后来

4、在电路中增加了一个电压抬升电路,抬升电压在05V可调。最终经过调理电路后,使脉搏波信号在05V范围内,满足ADC0809输入电压要求。如下图4,为信号调理电路框图。压电式/光电式脉搏传感器前级放大(差分式输入)50Hz限波电路(滤除工频干扰)0.2Hz-45Hz带通滤波电路后级放大及升压电路(抬升脉搏信号中的负电压)图4.信号调理电路框图将调理后的信号送给ADC0809进行模数转换,由于脉搏波信号95%能量集中在06Hz,另根据采样定理,采样频率必须大于等于2倍信号频率,才能保证使还原信号不失真,并根据上位机调试时观察,最终确定下位机采样周期在3ms左右。经过STC89C52单片机采集后的数据

5、,经过简单处理后,通过串口将数据发送给计算机,并由编制的上位机软件进行处理,显示,而上位机软件则采用VC+编写,本软件能实现上位机对下位机的控制,能进行部分数据处理功能并能完整显示脉搏波波形。如下图5,为信号采集及处理电路框图经滤波放大调理后信号ADC0809模数转换微处理器(MCU)STC89C52串口MAX232PC机上位机界面显示 图5.信号采集及处理电路框图四 实验内容一个完整的测试系统,一般需要将某一模拟信号,转换为数字信号,并通过处理器处理得到的数字信号,以实现某一检测需求。本设计中脉搏波的检测也不例外,设计中选用了压电式压力脉搏波传感器(HK-2000B)(桡动脉)和光电容积式脉

6、搏波传感器(手指端)两种脉搏波获取方式。针对传感器输出的信号,采用差分式输入的方式耦合进信号调理电路,采用差分输入方式,能有效地抑制共模信号,提高共模抑制比,这里差分放大器采用AD620专用仪表放大器。50Hz限波电路主要滤除脉搏检测中的工频50Hz干扰,设计中采用了由双T网络和运算放大器组成的有源双T带阻滤波电路。0.2Hz45Hz带通滤波电路是由截止频率45Hz的低通滤波电路和截止频率0.2Hz的高通滤波电路组成,其中低通滤波电路采用压控电压源二阶低通滤波电路,该电路由R,C滤波电路和同项比例放大电路组成,高通滤波采用无限增益多路反馈高通滤波电路。由于实际调试中发现压电式压力脉搏波传感器输

7、出的信号还有一定量的负电压,因此在电路中增加了升压的电路,该升压电路模块采用了简单的加法运算电路,将05V可调电压,同调理后信号,进行加法运算,即可使原信号抬升一定电压值,在实际调试中发现定为1.5V较为合适。这样就使调理后信号满足ADC0809输入电压在05V的要求了。如下图6,为使用PROTEUS仿真软件做的信号调理仿真电路 图6.信号调理仿真电路(PROTEUS仿真软件)模数转换芯片采用了美国国家半导体公司生产的ADC0809,这款模数转换器是一个CMOS工艺8通道,8位逐次逼近式的A/D转换器。它具有以下主要特性:1)8路输入通道,8位AD转换器,即分辨率为8位 2)具有转换起停控制端

8、3)转换时间为100s(时钟为640kHz时),130s(时钟为500kHz时) 4)单个5V电源供电 5)模拟输入电压范围05V,不需零点和满刻度校准 6)工作温度范围为-4085摄氏度 7)低功耗,约15mW五 硬件电路设计本设计分为模拟电路部分和数字电路部分,模拟电路和数字电路在电路板中被有效分开,并通过一个0欧电阻进行隔离,0欧电阻具有很窄的电流通路,能有效地限制环路电流,使噪声得到一定抑制。1.数字电路部分设计在数字处理电路中,主要包括STC89C52单片机系统,ADC0809模数转换电路,MAX232串口通信电路。(1).单片机与ADC0809连接电路单片机是整个数字电路的控制中心

9、,完成对ADC0809开始转换,停止转换,数据读取的控制。如下图7为,ADC0809与单片机的硬件连接电路图7.ADC0809与单片机硬件连接电路ADC0809有8个输入通道,但设计中只使用了IN-0通道,通道的选择是由管脚ADDA,ADDB,ADDC的值来决定的。通过CPU控制这3个输入可以任意切换模拟信号输入通道,进而达到8通道复用的目的。设计中把这三个管脚都接地,即都为0,对应输入通道就是IN0通道了。由ADC0809的工作时序,可以很方便的知道模数转换的过程,如下图8,为ADC0809的工作时序图图8.ADC0809的工作时序单片机控制ADC0809进行数据采集的过程是这样的:首先,单

10、片机给START引脚(电路中将START与ALE连到一起了)发出一个高电平,以启动ADC0809开始模数转换,这时EOC端输出低电平,当转换完成后,EOC端变成高电平,单片机获知EOC的电平变化,是通过查询方式实现的,当获知EOC变为高电平时,单片机就进行数据读取的工作了,这时,单片机给数据读取使能引脚OUTPUT ENABLE高电平,这样就能把一次模数转换的数据传送给单片机了,在数据传送结束后要将OUTPUT ENABLE引脚变为低电平,这样一次模数转换过程就结束了。完成一次模数转换的最短时间约为120us,因此可以在程序中通过适当增加延时来改变采样周期以使采样过程满足采样定理,又可以避免因

11、采样频率过大,给单片机带来过大负担。在电路中可以看到ADC0809的采样时钟信号CLOCK是由单片机的ALE端通过2个D触发器4分频而产生的。ALE的输出时钟频率是六分之一的单片机晶振频率,所以可以知道ADC0809的时钟频率为500KHz。(2).MAX 232电平转换电路设计RS232是实现计算机与各种硬件通信中应用最广泛的一种串行接口。RS232采取不平衡传输方式,即所谓的单端通信。典型的RS232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+ 5V到+ 15V之间,负电平在-5V到- 15V之间。由于单片机系统电平为TTL电平, PC机串口为232电平,故需要电平转换

12、电路。其转换过程是这样的:TTL/CMOS电平数据从T1IN或T2IN输入转换成RS-232电平数据,并从T1OUT或T2OUT送到电脑DP9插头,即实现将单片机系统数据发送给计算机;DP9插头的RS-232电平数据从R1IN或R2IN输入转换成TTL/CMOS电平数据后从R1OUT或R2OUT输出,进而实现对单片机系统的控制。如下图9,为MAX232电平转换电路图9.MAX232电平转换电路2.模拟电路部分设计及参数特性分析在设计模拟电路参数时,首先通过仿真软件,进行了仿真实验,本设计中用的是PROTEUS仿真软件,该软件可实现对大多数模拟和数字电路进行仿真,并且简单易学。通过翻阅模拟电子技

13、术课本及相关系统设计书籍,学会了计算并确定相关模拟电路的参数。通过多次仿真实验,最终确定了,两级放大电路,50HZ陷波电路,0.245Hz带通滤波电路,电压抬升电路,及四分频电路的外围元件参数。并通过使用PROTEUS仿真软件的图表模式功能,观察了各部分模拟电路的性能参数。通过生成的图表,可以清晰的观察到滤波电路和陷波电路的滤除效果。从生成的各部分图表中发现,各部分模拟电路较好地满足了设计要求,在通过信号发生器,示波器硬件调试过程中,在对电路中个别参数进行略微调整后,测得了一系列数据,通过对这些得到的实测数据,进行简单换算,与仿真图表进行比较后发现,实测数据与仿真效果是吻合的,从而间接验证了滤

14、波电路的滤除效果。如下图10,11,12为各部分模拟电路频率特性分析图表,分别为50Hz陷波电路,0.2Hz45Hz带通滤波电路,及整个信号调理电路频率特性图表。图10.50Hz陷波电路频率特性分析图表图11.0.245Hz带通滤波电路频率特性分析图表图12.信号调理电路频率特性分析图表六 软件设计1.下位机程序设计在下位机程序设计过程中,有个清晰的思路相当重要,因此做出一个程序编写及调试的流程图对于缩短工作时间很有帮助。如下图10,为下位机程序运行流程图串口初始化设置波特率9600b/sADC0809初始化While(1)串行中断,判断收到上位机数据是否为0xaa向上位机发送数据开始flag

15、=1否是ADC0809开始转换图13. 下位机程序运行流程图下位机程序:#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int#define MAX 1uchar flag,up_data; /flag-串口发送数据标志,up_data为收到上位机数据uchar ad_dataMAX; /AD转换后数据存储数组sbit ST=P20;sbit OE=P21;sbit EOC=P32;sbit P10=P10; /红指示灯sbit P11=P11;

16、 /绿指示灯void delayms1(uint xms)uchar i;while(xms->0)for(i=0;i<125;i+) ;void init_com() /串口通信初始化SCON=0x50; /串口工作在方式1TMOD=0x20;TH1=0xfd; /波特率为9600TL1=0xfd; TR1=1; EA=1; /开总中断ES=1; /开串行中断void init_adc0809() /ADC0809初始化 ST=0; /AD未启动 OE=0; /不允许数据输出 EOC=1; /AD转换结束void adc0809() int n=0; while(n<MAX

17、) P0=0xFF; ST=0;ST=1; /启动AD转换ST=0; _nop_(); while(EOC=0); /等待AD转换结束 OE=1; /允许数据输出 ad_datan=P0;OE=0;/数据接收完毕 _nop_(); _nop_();delayms1(1); /1 delayms1(1); /2 -效果最好,移动速度适中,采用(1) /delayms1(1); /3 -效果较好,屏幕中有三个波形 /delayms1(1); /4 -效果一般,移动速度太慢 n+;n=0;P10=0;/红灯 /调试用void left7() /将P0口读到的数据左移7位,使与实际电压对应,/即将【a

18、bcdefgh】,变为【hgfedcba】 int k=0;uchar temp_a,temp_b,temp_c,temp_d,temp_e,temp_f,temp_g,temp_h; for(k=0;k<MAX;k+) temp_a=ad_datak&0x80; temp_b=ad_datak&0x40; temp_c=ad_datak&0x20; temp_d=ad_datak&0x10;temp_e=ad_datak&0x08;temp_f=ad_datak&0x04;temp_g=ad_datak&0x02;temp_h=a

19、d_datak&0x01; temp_a=temp_a>>7;temp_b=temp_b>>5;temp_c=temp_c>>3;temp_d=temp_d>>1;temp_e=temp_e<<1;temp_f=temp_f<<3;temp_g=temp_g<<5;temp_h=temp_h<<7;ad_datak=temp_a|temp_b|temp_c|temp_d|temp_e|temp_f|temp_g|temp_h;void com_data() /通过串口向上位机传送数据uint

20、 k;for(k=0;k<MAX;k+) ES=0; /关闭串口中断,开始传送数据 SBUF=ad_datak; while(!TI); /发送中断标志位,当有数据发送时,TI保持为0,发送完成后TI自动变为1 TI=0; /TI=1(此时信道空闲)才可以发送数据 ES=1; /数据传完再次打开串口中断 /flag=0; /调试用P11=0; /绿灯,调试用void main()init_com(); init_adc0809();while(1)if(flag=1) adc0809(); /开始AD转换,并保存MAX个数据到ad_data数组中 left7(); /纠正硬件电路中,数据

21、口连接的错误com_data(); /开始传送数据,将MAX个数据从ad_data数组中取出,发往上位机void ser()interrupt 4RI=0;up_data=SBUF; if(up_data=0xaa) flag=1; /接收到上位机的开始采集指令,给出采集标志flag=1 else flag=0;2.上位机软件设计上位机软件主要实现对收到的数据进行波形显示,数据保存,用户信息输入等功能。以下为上位机主要程序:(1)./坐标系及测量波形绘制CClientDC dc(this); CRect rect1(11,20,733,282);CBrush brush1(RGB(0,200,

22、100);dc.FillRect(rect1,&brush1);CPen hPenB(PS_SOLID,1,RGB(0,150,100); CPen hPenY;hPenY.CreatePen(PS_SOLID,3,RGB(255,0,200);CPen hPenR;hPenR.CreatePen(PS_SOLID,1,RGB(255,100,0);dc.SelectObject(&hPenR);dc.MoveTo(50,250);dc.LineTo(650,250);dc.MoveTo(50,70);/红色实横线int y1=70;for(int i1=0;i1<=5;

23、i1+)dc.LineTo(650,y1);y1+=30;dc.MoveTo(50,y1);dc.MoveTo(150,250); /红色实竖线int x1=150; for(int j1=0;j1<=5;j1+)dc.LineTo(x1,70);x1+=100; dc.MoveTo(x1,250);dc.SelectObject(&hPenB);dc.MoveTo(50,76);int y2=76; /大间隔内横虚线 for(int i3=0;i3<=5;i3+) for(int i2=0;i2<=3;i2+) dc.LineTo(650,y2); y2+=6; d

24、c.MoveTo(50,y2);y2+=6; dc.MoveTo(50,y2); dc.MoveTo(60,250); int x3=60; /大间隔内竖虚线 for(int i5=0;i5<=5;i5+) for(int i4=0;i4<=8;i4+) dc.LineTo(x3,70); x3+=10; dc.MoveTo(x3,250);x3+=10; dc.MoveTo(x3,250);CPen hPenH;hPenH.CreatePen(PS_DASH,2,RGB(255,100,0);dc.SelectObject(&hPenH);dc.MoveTo(50,220

25、);dc.LineTo(700,220);dc.MoveTo(700,220);/X轴箭头(700,220)dc.LineTo(680,216); dc.MoveTo(700,220);dc.LineTo(680,224);dc.MoveTo(50,250);/Y轴dc.LineTo(50,30); dc.MoveTo(50,30);/Y轴箭头(50,30)dc.LineTo(47,50); dc.MoveTo(50,30);dc.LineTo(53,50);dc.TextOut(20,35,"U(V)"); dc.TextOut(680,228,"T(s)&qu

26、ot;);dc.TextOut(36,240,"-1");dc.TextOut(40,213,"0");dc.TextOut(40,183,"1");dc.TextOut(40,153,"2");dc.TextOut(40,123,"3");dc.TextOut(40,93,"4");dc.TextOut(40,63,"5"); CString str="脉搏波检测装置设计"CFont font;font.CreateFont(36,1

27、8,0,45,FW_BOLD,0,0,0,DEFAULT_CHARSET,OUT_STROKE_PRECIS,CLIP_STROKE_PRECIS,DRAFT_QUALITY,FIXED_PITCH,"MyFont");dc.SetTextColor(RGB(0,0,255);dc.SelectObject(&font);dc.TextOut(190,27,str);CString str_name="学号:10210416 姓名:梁永波"CFont font1;font1.CreateFont(22,10,0,45,FW_BOLD,0,0,0,

28、DEFAULT_CHARSET,OUT_STROKE_PRECIS,CLIP_STROKE_PRECIS,DRAFT_QUALITY,FIXED_PITCH,"MyFont");dc.SetTextColor(RGB(0,0,255);dc.SelectObject(&font1);dc.TextOut(360,255,str_name); CFont font2;font2.CreateFont(14,7,0,45,FW_BOLD,0,0,0,DEFAULT_CHARSET,OUT_STROKE_PRECIS,CLIP_STROKE_PRECIS,DRAFT_QU

29、ALITY,FIXED_PITCH,"MyFont"); dc.SetTextColor(RGB(255,0,0);dc.SelectObject(&font2); dc.TextOut(20,310,".在检测期间要保持平静,将手臂平放于与胸口持平的桌面上"); dc.TextOut(20,330,".若出现波形幅值非常低、波形特征不明显,"); dc.TextOut(20,350,".请重新固定传感器的位置,并调整到脉搏最强的位置。"); dc.SelectObject(&hPenY);/根据采

30、集到的数据画图if(flag=1)int step=50;for(n=0;n<600;n+)/int y_temp1=250-(int)(m_radio_y*datan)/256; /两点线段的起点纵坐标int y_temp2=250-(int)(m_radio_y*datan+1)/256; /两点线段的终点纵坐标dc.MoveTo(step,y_temp1);step=step+m_radio;dc.LineTo(step,y_temp2);if(step>650)break; (2)./以下为串口接收数据void CVC232Dlg:OnOnCommMscomm1() / T

31、ODO: Add your control notification handler code hereVARIANT variant1;/定义VARIANT型变量,用于存放接收到得数据 COleSafeArray safearray;/定义safearray型变量LONG len,k;/定义长整形变量len,kBYTE rxdata2048; /定义BYTE型数组CString stremp1; /定义一个字符串 if(m_comm1.GetCommEvent()=2)/判断引起OnComm事件的原因-事件值为2表示接收缓冲区内有字符/如果是接收到特定个数字节,则读取接收到得数据 varia

32、nt1=m_comm1.GetInput();/把接收到得数据存放到VARIANT型变量里 -读缓冲区 safearray=variant1;/VARIANT型变量转换为ColeSafeArray型变量 len=safearray.GetOneDimSize(); for(k=0;k<len;k+) safearray.GetElement(&k,rxdata+k); /得到接收到得数据放到BYTE型数组rxdata里 for(k=0;k<len;k+)/将数组转换为Cstring型变量 BYTE bt=*(char*)(rxdata+k); /字符型 datak=(flo

33、at)bt; /实际转换结果(0-255) stremp1.Format("%d-%3.3f",bt,(5.00*bt)/256); /将字符送入临时变量stremp存放 SetDlgItemText(IDC_STATIC,("当前电压值为:"+stremp1+" V"); /更新静态文本控件 pbar -> SetPos(bt); /更新进度条的当前位置 strRXDdata+= stremp1; strRXDdata+= " Vrn"/字符串加单位V后换行 flag=1; if(flag=1) Inval

34、idate(true);CVC232Dlg:OnPaint();/flag=1时,开始根据采集到得数据画图 SetDlgItemText(IDC_EDIT1,strRXDdata);/更新文本控件的显示(3)./以下为实现数据保存功能的程序Void CVC232Dlg:OnButtonSaveData() /数据保存按钮/ TODO: Add your control notification handler code herechar fileBuffer5010; /自定义文件名缓冲数组定义CStdioFile dat;CFileDialog datDlg(FALSE,NULL,NULL,

35、NULL,_T("自定义文件类型(*.dat)|*.dat|所有文件(*.*)|*.*|"),NULL);datDlg.m_ofn.lpstrTitle=_T("脉搏数据保存");/设定保存对话框标题datDlg.m_ofn.lpstrFile=fileBuffer;/使用自定义的文件名缓存datDlg.m_ofn.lpstrDefExt="dat"/设定保存文件的默认后缀,如果自己有输入后缀,则是输入的后缀datDlg.m_ofn.nMaxFile=5000;/设定缓存大小if(datDlg.DoModal()=IDOK)/显示对话

36、框if(dat.Open(datDlg.GetPathName(),CFile:modeWrite|CFile:modeCreate) /得到文件名,并用创建和写入方式打开/在这里将要写入文件的内容写入缓存,CString str_data; for(int i=0;i<600;i+) str_data.Format("%ft",datai); /将float类型数组数据转换成字符串型,便于在文档中正确显示dat.WriteString(str_data); dat.WriteString("下一组nn");dat.Close();MessageB

37、ox("数据已成功保存","成功",MB_ICONEXCLAMATION|MB_OK);elseMessageBox("数据保存失败","失败",MB_ICONSTOP|MB_OK);如下图11,12,分别为压力脉搏波实测波形,指端容积脉搏波实测波形从测试波形看,在与典型脉搏波波形比较后发现,系统实际测试的脉搏波,很好的反映了脉搏的变化,脉搏的几个特征点,也都很明显的表现了出来,实际测试的效果很好,并且,还次波形中发现了一些新的信息,对于正确认识脉搏波提供了很好的平台。压力脉搏波与容积脉搏波存在的一些差异主要表现在

38、,首先,压力脉搏波的主波,潮波,重搏波,及重搏波谷,要比容积脉搏波明显的多;其次,压力脉搏波图形中,只包含了血管中的交流成分,使用压电式脉搏波传感器时,对于直流成分,在电路中一般不易获取,并且一般把直流成分当成干扰给滤除了,而容积脉搏波则很明显的表现出了直流成分,并且直流成分比交流成分更要明显。图14.压力脉搏波实测波形图15.指端容积脉搏波实测波形七 误差分析系统中存在误差是不可避免,但可以做到让其影响尽可能的减小。我们只要找到误差的来源,就能在试验中采用硬件和软件的手段去尽量消除。在对脉搏波性质,及整个系统进行分析后发现,误差主要来自两个方面: 一是原理性误差,这类误差不可消除。模拟信号,

39、在进行调理过程中,由于选用的运算放大器和其他元器件,本身就存在着一定的误差,而这些误差是通过改变硬件电路或软件处理是无法消除的,只能在选择芯片时尽可能筛选一下,以最大程度的降低这种误差,但不可能直接全部消除。另外,在模拟信号转换为数字信号的过程中,要经过取样、保持、量化及编码4个过程,这四个过程对试验误差影响最大的就在量化这个过程。在量化过程中,由于取样电压一般不能被量化单位整除,所以误差不可避免,属于原理性的误差,是无法消除的。要降低此类误差,只能提高模数转换器的位数,各离散电平之间的差值才能减小,从而减小量化误差,提高精度。二是外部噪声对系统的干扰。对于微弱模拟信号,在信号调理过程中,很容

40、易受到外界电磁场的干扰,并且很容易将50Hz工频干扰,通过供电系统引入检测系统中。对于此类干扰,已在硬件电路中加入了50Hz陷波电路进行滤除,对于外界电磁干扰,则只能通过合理布置电路板,来进一步降低了。对于数字电路部分,由于ADC0809为8位模数转换器,输入信号范围为0V到+5V,那么ADC0809能区分的输入信号的最小电压为:5V/25619.531 mV。所以其最大的量化误差为约20mV。但在测试中发现,信号中的误差要远大于这个值。产生误差的因素有很多:(1)供电电压不稳定,对信号的传输会有谐波干扰。由于ADC0809的基准电压接的是电路中VCC,所以很容易受到电源电压的波动,增大转换误

41、差。(2)数字地与模拟地相互间的干扰。对于这种干扰,电路中已通过0欧电阻进行隔离,但这种隔离方式,不可能消除两者之间的干扰。(3)单片机在串口通信时,也很容易受到外界干扰,导致上位机收到的数据存在一定的误码。此外上位机将得到的数据进行类型转换的时候也存在着一定误差,这也会给后面的波形绘制带来了一些影响。八 总结及体会通过这一年的研究生学习,我学习了很多以前比较模糊,有些以前从来没有学习过的东西,像模拟电子技术,数字电子技术,C语言,protel画图,这些在本科基本都学习过,但很少有动手应用过,所以感觉既熟悉又陌生,通过这一次的接口实验,将这些基本技能,打扎实了,对以后进入实验室课题将更容易上手

42、。正如李老师在上第一堂课时所说,上研究生,是得到文凭重要,还是学习东西重要,这让我思考了很多,我是因为喜欢电子专业才选择来到了这里,所以我想要得到的应不仅仅是一张文凭。虽然李老师只给我们上了一堂课,但我认为我已经知道如何去做了。在研一上半年的时间里,在得知李老师布置的接口实验的要求后,我发现很多知识,还很陌生,有些甚至从来没有接触过的。因此,在研一上学期,就利用较多的课余时间,跑图书馆,到网络上,查询,阅读相关书籍,记得,去年我利用一周时间把C语言书看了一遍,一有课余时间,就马上拿着C语言去图书馆,经过这样集中的学习,C语言很快就能上手了,这种效率在本科时,真是难以想象的。另外,我也从网上购买了51和AVR单片机学习板,利用课余时间,在学习板上编程练习,熟悉单片机的工作原理及编程环境,使我对单片机有了更亲近的感觉。由于在本科阶段没有学习过C+语言,也没接触过VC,因此刚开始的时候对于上位机的编写,感觉无从下手,但是最终还是一点一点的把C+语言的书看完了,但感觉还是懵懵懂懂的,在接下来翻阅了几本VC+6.0应用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论