微机化压力检测系统设计_第1页
微机化压力检测系统设计_第2页
微机化压力检测系统设计_第3页
微机化压力检测系统设计_第4页
微机化压力检测系统设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、 专业课课程设计 微机化压力检测系统设计2 15微机化压力检测系统设计2设计说明书目 录一 绪论.1 1.1设计目的.1 1.2技术要求.1 1.3实用价值.1二 系统设计方案.1 2.1设计总体思路.2 2.2硬件设计与实现.2 2.2.1压力传感器.2 2.2.2转换电路部分.3 2.2.2.1放大电路.4 2.2.2.2信号解调电路.4 2.2.2.3模数转换器.5 2.2.3单片机部分.7 2.2.4 LED显示电路.8 2.3软件编程与实现.8 2.3.1软件流程图.8 2.3.2程序代码.9三 结论与体会.14参考文献.15微机化压力检测系统设计2摘要本文主要介绍了一种测量和检测压

2、力的系统。在实际应用中,许多非电量如:位移、流量、加速度等都可以转换为压力进行检测。通过传感器感应被测压力,并经过电路的转换传输到单片机部分实现压力参数的检测,并由LED进行显示。关键词:微机化;压力传感器;转换电路;51单片机;LED显示一绪论1.1设计目的压力传感器是一种将被测压力转换成电压或电流输出的装置。在实际应用中,许多非电量如:位移、流量、加速度等都可以转换为压力进行检测。压力检测的方法很多,如:电阻变化型,电容变化型及自生电型压电式压力传感器等。本设计要求学生采用MCS-51系列单片机实现压力参数的检测。通过这一设计,掌握一般微机化检测系统的设计方法,达到专业课综合训练的目的。此

3、外要求学生复习 传感器、测控电路、单片机、智能仪器等专业课知识,训练综合所学知识解决实际问题的能力。1.2技术要求测量范围:0500kg(相当于50MPa)分辨力: 50g(相当于5KPa)显示:LED1.3实用价值此次设计的压力检测装置可用在各种压力测量场合中,例如可用于小型地秤系统中,小型轿车等的超载检测,升降电梯的超重测量等,此外,还可将位移,加速度,流量等非电量转换成压力进而用此压力检测系统进行测量,如天然气石油管道等的流量检测等。根据其量程和较高的分辨率可应用于多种场合中,实现对被测量的实时监测。二系统设计方案2.1设计总体思路整个系统主要由五部分组成:压力传感器部分,测控电路部分,

4、51单片机部分,LED显示电路以及相应的报警设备。压力传感器将感应到的压力信号转换为电压信号或电流信号输出,输出的电信号经过放大整流滤波及A/D转换器形成数字型号进入单片机系统,最后由单片机编程控制LED显示出相应的数字,若被测压力超过量程,则由单片机程序控制发出报警信号。系统总体框图如1所示:超过量程量程内LED显示A/D转换器51单片机放大整流滤波电路压力传感器 发出报警图1 系统总体设计框图2.2硬件设计与实现2.2.1压力传感器 根据设计的技术参数要求,最终选择了空调压力传感器PT707。其生产厂家有长沙拓力电子仪器公司和佛山贺迪电子仪器有限公司PT707属于变极距型电容式传感器,其工

5、作原理如下:由绝缘介质分开的两个平行金属板组成的平板电容器, 如果不考虑边缘效应, 其电容量为 图1.1平行板电容器为电容极板间介质的介电常数,=0·r,其中0为真空介电常数,r为极板间介质相对介电常数;A为两平行板所覆盖的面积;d为两平行板之间的距离。当被测参数变化使得上式中的A,d或发生变化时, 电容量C也随之变化。如果保持其中两个参数不变, 而仅改变其中一个参数, 就可把该参数的变化转换为电容量的变化, 通过测量电路就可转换为电量输出。PT707采用进口机芯,内螺纹7/16-20UNF机械接口,内带顶针,适用于空调压力的测量与控制。其主要参数如下:量  &#

6、160;   程: 050(MPa)  综合精度: 0.2%FS、0.5%FS、1.0%FS 输出信号: 420mA(二线制)、05V、15V、010V(三线制) 供电电压: 24DCV(936DCV) 介质温度: -2085150环境温度: 常温(-2085) 负载电阻: 电流输出型:最大800;电压输出型:大于50K 绝缘电阻: 大于2000M (100VDC 密封等级: IP65 长期稳定性能: 0.1%FS/年 振动影响: 在机械振动频率20Hz1000Hz内,输出变化小于0.1%FS 电气接口:四芯航接插(标件)机械连接: 7/16-20UNF2.2.2

7、转换电路部分单片机要求输入数字信号,因此需要对传感器输出的模拟信号进行处理,即对其进行放大、解调滤波、模数转换。整体电路图如图2所示:图2 测控电路部分原理图测控电路实质上是由三部分组成的:放大电路,解调电路和模数转换器。下面分别对这三部分进行详细介绍。2.2.2.1放大电路传感器输出的信号较小,并且伴随着很大的共模电压,考虑到压力检测系统所需精度较高,电路中选用三运放高共模抑制比放大电路,如图3所示。图3 三运放高共模抑制比放大电路三运放高共模抑制比放大电路由三个集成运算放大器组成,U1、U2为两个相同的同相输入通用集成运算放大器构成对称平衡差动放大输入级,提高了电路的输入阻抗;U3构成双端

8、输入单端输出的输出级,用来进一步抑制U1、U2的共模信号并适应接地负载的需要。为了消除U1、U2偏置电流的影响,同时获得高共模抑制比,在电阻选择时应满足R1=R2、R3=R4、R5=R6;在电路设计时注意将输入级的增益设计得大些,输出级的增益小一些,同时将输出级的外部电阻取得较小以提高电阻的匹配程度,进而提高整个电路的共模抑制比,通常情况下CMRR120dB,共模输入电压范围为+6到-10V。此电路设计的优点在于:U1、U2的性能一致,输入级的差动输出及其差模增益只与输入电压有关,其共模输出、失调及漂移均在R0两端相互抵销,因此电路具有良好的共模抑制能力,达到同时不要求外部电阻的匹配;此电路具

9、有增益调节能力,调节电位器R0的大小可以改变增益而不影响电路的对称性。缺点在于:U1、U2性能不可能完全一致,再加上外界其他因素的影响,不可能保证共模抑制比完全相同,因此可能会引入附加的共模误差,使电路共模抑制能力下降;各级电阻不匹配也可能引入共模误差。2.2.2.2信号解调电路前面采用的T2高性能压力传感器属于电容式传感器,它采用交流电源供电,除了是本身需要之外,同时还是为了调制,因此需要对其输出信号进行解调。解调电路主要有以下两种:包络检波电路和相敏检波电路。在包络检波电路中存在两个问题:一是无法从检波器的输出鉴别出调制信号的相位,二是不具有区分不同载波频率信号的能力,为了使检波电路具有判

10、别信号相位和选频的能力,需采用相敏检波电路。其中相乘式和相加式相敏检波电路中开关器件导通时的等效电阻和截止时的漏电流的变化和存在会引起一定误差,为减小开关器件的不理想带来的误差,可以采用如图4所示的精密整流型全波相敏检波电路。图4 精密整流型全波相敏检波电路在Uc为正的半周期,V1截止,V2导通,N1用作反相放大器,Ua为Us的反相信号;在Uc为负的半周期,V1导通,V2截止,N1的输出Ua为零。这样,Ua的波形为一半波整流信号。取R1=R2,R'3=2R3,N2对Ua的放大倍数比对Us的放大倍数大一倍,在不接电容C的情况下Uo的波形为全波整流信号。电容C滤去经全波检波后Us中的高频成

11、分,获得调制信号Ux。此电容的引入可以省略了信号分离环节,达到同样的滤波效果。2.2.2.3模数转换器 微机化压力检测系统要求的检测范围是0-500kg,分辨力是50g,500kg/50g=10000,需要14位以上的A/D转换器,又考虑到系统的精度要求较高,因此选择分辨率较高、线性度好、易集成、成本低的16位-A/D转换器AD7705。AD7705内部主要由模拟多路转换器、输入缓冲器和可编程增益放大器PGA、-调制器、可编程数字滤波器、串行SPI接口、状态/控制寄存器及时钟发生器等组成,如图5所示;芯片如图6所示。 AD7705在使用时考虑以下几点:基准电压:AD7705的基准电压UREF由

12、REF(+)和REF(-)引入,数字输出是模拟输入相对于其基准的比率,因此基准电压的稳定性直接影响测量精度,其大小决定了模拟输入的最大范围。与模拟输入的连接:输入为经过放大、解调、滤波之后的测量信号,所用电压源与基准电压相同,保证电压源有所波动时两个电压源所受影响比例相同,从而降低对电压基准源电压稳定性的要求。与单片机的连接:AD7705采用SPI/QSPI兼容的三线串接口,能够方便的与各种微控制器相连,比并行接口方式节省了CPU的I/O口的占用。本测量电路中,AD7705的片选端接到低电平,DIN、DOUT引脚连接在一起,与单片机的P1.0通信;SCLK与P1.1相连,为传输数据提供时钟信号

13、,无数据传送时,P1.1闲置为高电平;转换结束信号DRDY/连接至P3.2,单片机可通过查询或者中断方法实现对AD7705转换数据的读取。图5 AD7705内部组成图6 AD7705芯片2.2.3单片机部分通过比较各种单片机的性能,最终选择了ATmega128芯片。ATmega128为基于AVR RISC结构的8位低功耗CMOS微处理器。由于其先进的指令集以及单周期指令执行时间,ATmega128 的数据吞吐率高达1 MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。(1)ATmega128芯片的性能参数如下: 工作电压 :2.7 - 5.5V ATmega128L; 4.5 -

14、5.5V ATmega128 速度等级 :0 - 8 MHz ATmega128L;0 - 16 MHz ATmega128(2)ATmega128芯片的主要特点如下: 它是高性能低功耗的具有128K系统内可编程Flash的8位微处理器; 先进的 RISC 结构; 非易失性的程序和数据存储器; JTAG 接口( 与IEEE 1149.1 标准兼容);外设特点:两个具有独立的预分频器和比较器功能的8 位定时器/ 计 数器;两个具有预分频器、比较功能和捕捉功能的16 位定时器/ 计数器; 具有独立预分频器的实时时钟计数器;两路8 位PWM;6路分辨率可编程 (2 到16 位)的PWM;输出比较调制

15、器等;特殊的处理器特点:上电复位以及可编程的掉电检测;片内经过标定的 RC 振荡器;片内/ 片外中断源;6种睡眠模式;可以通过软件进行选择 的时钟频率;通过熔丝位可以选择ATmega103 兼容模式;全局上拉禁止 功能;I/O 和封装:53个可编程I/O 口线;64引脚TQFP 与 64 引脚 MLF 封装。(3) 将ATmega128 接入电路中,如图7所示。图7 ATmega1282.2.4 LED显示电路LED由若干个发光二极管按一定规律排列而成,当某一个发光二极管导通时,相应的一个点或一个笔画被点亮,控制不同组合的二极管导通,就能显现出不同的字符。其结构有两种形式,即共阴极和共阳极。我

16、们采用的是共阴极LED。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。 2.3软件编程与实现2.3.1软件流程图是否超重发出报警声LED显示处理控制电路传输代码读取输入信号初始化LED显示屏,并复位输入信号示值在0500kg范围内开始 2.3.2程序代码根据上述程序框图,可利用C语言编写程序代码,实现用LED显示所测压力数值和提示超载功能。部分代码如下:#include <reg52.h> #includ

17、e <stdio.h> #include <intrins.h>#define uchar unsigned char#define uint unsigned intunsigned int LedOut6;Unsigned char code Disp_Tab = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40; /段码控制sbit AdDrdy = P32; sbit AdDin = P11; sbit AdDout = P11; /*AD7705 input & output*/sbit Ad

18、Clk = P10; /*AD7705时钟脉冲*/sbit Ad_CS = P33; /*AD7705片选*/sbit dula=P26;sbit wela=P27;sbit led=P27;unsigned long ADC=0; unsigned int intj0; /*延时程序*/void delay(unsigned int x) /延时 X msunsigned int i,j;for(i = x;i > 0;i-)for(j = 110;j > 0;j-);/* 向AD7705写入一个字节 */void WriteByte7705(unsigned char x)un

19、signed char a;AdClk = 1;for (a=0; a<8; a+)AdClk=0;if(x & 0x80)AdDin=1;elseAdDin=0;_nop_();_nop_();_nop_();_nop_();AdClk=1; _nop_();_nop_();_nop_();_nop_();x<<=1;AdDin=1;/* 从AD7705读一个字 */unsigned int ReadWord7705(void)unsigned char b;unsigned long y=0; WriteByte7705(0x38);/设置AD7705数据寄存器通

20、道1AdClk = 1 ;for(b=0;b<16;b+)y<<=1;AdClk=0;_nop_(); _nop_();_nop_();_nop_();if(AdDout = 1)y+;AdClk=1;_nop_();_nop_();_nop_();_nop_(); AdDin=1; AdClk=1;return y; /*ad7705通信端口复位*/ void reset7705(void) uchar c; for(c=0;c<35;c+) AdClk=0; _nop_(); _nop_(); _nop_(); AdDin=1; AdClk=1; _nop_();

21、_nop_(); _nop_(); delay(1); void AdStart(void) /初始化 uchar i; delay(1); AdClk=1; AdDin=1; for(i=0;i<40;i+)AdClk=1;AdClk=0; WriteByte7705(0X20); WriteByte7705(0X00); WriteByte7705(0X10); WriteByte7705(0X44); delay(100);void int0 () interrupt 0 /AD7705中断0读取AD intj0 = 1;Ad_CS=0; ADC = ReadWord7705();

22、ADC = (2.5 * ADC) / 65535;ADC=123;delay(20);AdDrdy = 1;/*显示程序*/void display(unsigned char A,unsigned char B,unsigned char C,unsigned char D,unsigned char E,unsigned char F)/显示程序 P2=0x1f; P0=Disp_TabA;/显示百位 delay(5); P2=0x2f; P0=Disp_TabB; delay(5); P2=0x37; P0=Disp_TabC; delay(5); P2=0x3b; P0=Disp_T

23、abD; delay(5); P2=0x3d; P0=Disp_TabE; delay(5); P2=0x3e; P0=Disp_TabF; delay(5);/*/void main(void) EX0 = 1; /允许外部中断0中断IT0 = 0; /外部中断0为跳变触发方式 EA = 1; /开中断 reset7705();AdStart(); delay(10);while(1)if(intj0) LedOut1=(ADC % 1000000) /100000; LedOut2=(ADC % 100000) /10000; LedOut3=(ADC % 10000) /1000; /千位 LedOut4=(ADC % 1000) /100|0x80; /百位带小数点 LedOut5=(ADC % 100) /10; /十位 LedOut6=ADC % 10; /个位 display(LedOut1,LedOut2,LedOut3,LedOut4,LedOut5,LedOut6); led=1; delay (100); intj0 = 0; if(intj0) display(LedOut1,LedOut2,Le

温馨提示

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

评论

0/150

提交评论