压力峰值检测_第1页
压力峰值检测_第2页
压力峰值检测_第3页
压力峰值检测_第4页
压力峰值检测_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、 西南科技大学城市学院课程设计设计题目:压力峰值检测器系 别:机电工程专 业:自动化班 级:1001姓 名:刘守勋 刘科鹏 黄雪芝 冯浩指导老师:陈亮组长:黄雪芝目录任务与要求.3设计的初步分析.3设计的系统框图.3运算放大器部分.4A/D转换部分7单片机部分与数据处理.11数码管显示部分.14实验心得体会.17压力信号峰值检测器的设计一·任务与要求设计一个压力信号峰值检测器,具体要求如下:1) 测量结果用4位数字显示,显示范围为00001999Kg。2) 传感器输出在实验室时用05mv的信号源模拟传感器。3) 要求检测仪能稳定的保持输入信号的峰值。设计的初步分析由于传感器输出电压在

2、05mv之间电压很小,所以先用运算放大器将传感器输出电压放大1000倍,放大后电压范围变为05v,然后通过A/D转换,将模拟信号转换为数字信号,数字信号通过单片机进行处理,单片机通过逐次比较检测出峰值及最大值并显示在四位数码管上。设计的系统框图A/D转换数码管显示单片机数据处理运算放大器压力传感器 运算放大器部分差分放大器属于一种特殊的仪表放大器,通常被设计用于需要较大的直流或交流共模干扰的场所。这其中包括通用的电流检测应用,如电机控制、电池充电和电源转换;另包括大量高共模电平的汽车电流检测应用,如电池电平监测、传动控制、燃油喷射控制、发动机管理、悬挂控制、电控转向、电控刹车、以及混合动力驱动

3、和混合动力电池控制。因这此控制大多通过放大负载电路上分流电阻两端的电压差以获取电流,所以也常被称作电流分流放大器。集成运算放大器的原理由运放构成的高阻抗差分放大电路图为高输入阻抗差分放大器,应用十分广泛.从仪器测量放大器,到特种测量放大器,几乎都能见到其踪迹。从图中可以看到A1、A2两个同相运放电路构成输入级,在与差分放大器A3串联组成三运放差分防大电路。电路中有关电阻保持严格对称,具有以下几个优点:(1)A1和A2提高了差模信号与共模信号之比,即提高了信噪比;(2)在保证有关电阻严格对称的条件下,各电阻阻值的误差对该电路的共模抑制比KCMRR没有影响;(3)电路对共模信号几乎没有放大作用,共

4、模电压增益接近零。因为电路中R1=R2、 R3=R4、 R5=R6 ,故可导出两级差模总增益为:通常,第一级增益要尽量高,第二级增益一般为12倍,这里第一级选择100倍,第二级为10倍。则取R3=R4=R5=R6=10K,要求匹配性好,一般用金属膜精密电阻,阻值可在10K几百K间选择。则Avd=(RP+2R1)/RP先定RP,通常在1K10K内,这里取RP1K,则可由上式求得R1=99RP/2=49.5K取标称值51K。通常RS1和RS2不要超过RP/2,这里选RS1 RS2510,用于保护运放输入级。A1和A2应选用低温飘、高KCMRR的运放,性能一致性要好。集成运算放大器的整体仿真效果图:

5、A/D转换部分ADC0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在05V之间。芯片转换时间仅为32S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI 数据输入端,可以轻易的实现通道功能的选择。单片机对ADC0832 的控制原理正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和D

6、I 并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK 输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第1 个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2 位数据用于选择通道功能,其功能项见官方资料。 如资料 所示,当此2 位数据为“1”、“0”时,只对CH0 进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单

7、通道转换。当2 位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2 位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行 输入。到第3 个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出 DC0832封装以及各端子完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATA0。随后输出8

8、位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。 作为单通道模拟信号输入时ADC0832的输入电压是05V且8位分辨率时的电压精度为19.53mV。如果作为由IN+与IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。但值得注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压则转换后的数据结果始终为00H。 A/D转换的程序设计:uchar ADC0832(void) /AD转换,返回结果 uchar i=0; uchar j; uint dat=0; uchar

9、 ndat=0; ADDI=1; _nop_(); _nop_(); ADCS=0;/拉低CS端 _nop_(); _nop_(); ADCLK=1;/拉高CLK端 _nop_(); _nop_(); ADCLK=0;/拉低CLK端,形成下降沿1 _nop_(); _nop_(); ADCLK=1;/拉高CLK端 _nop_(); _nop_(); ADCLK=0;/拉低CLK端,形成下降沿2 _nop_(); _nop_(); ADCLK=1;/拉高CLK端 ADDI=1; _nop_(); _nop_(); ADCLK=0;/拉低CLK端,形成下降沿3 _nop_(); _nop_();

10、dat=0; for(i=0;i<8;i+) dat|=ADDO;/收数据 ADCLK=1; _nop_(); _nop_(); ADCLK=0;/形成一次时钟脉冲 _nop_(); _nop_(); dat<<=1; if(i=7)dat|=ADDO; for(i=0;i<8;i+) j=0; j=j|ADDO;/收数据 ADCLK=1; _nop_(); _nop_(); ADCLK=0;/形成一次时钟脉冲 _nop_(); _nop_(); j=j<<7; ndat=ndat|j; if(i<7)ndat>>=1; ADCS=1;/拉

11、低CS端 ADCLK=0;/拉低CLK端 ADDO=1;/拉高数据端,回到初始状态 dat<<=8; dat|=ndat; return(dat); 单片机部分与数据处理单片机选用ATC89C51AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,AT89S51在众多嵌入

12、式控制应用系统中得到广泛应用。单片机程序#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit ADCS =P24; sbit ADDI =P26; sbit ADDO =P27; sbit ADCLK =P25; sbit S1=P20;sbit S2=P21;sbit S3=P22;sbit S4=P23;uchar code seg=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x

13、ff;/显示0-9段码void delay(unsigned char t) uchar j,i; for(i=0;i<t;i+) for(j=0;j<20;j+); void main(void) uint a=0,b=0;double c;shuma(a);while(1) a=ADC0832( ); c=a*2000.0/255; a=c; if(a>=b) shuma(a); b=a; else shuma(b); 整体仿真效果图:数码管显示部分显示原理:数码管首先从上到右,到下到左,到中间,最后到小数点分别标记为a b c d e f g dp八段其中小数点位DP为

14、最高位,a段为最低位,要想显示什么字符只需要使对应的段发光即可,一般的习惯是单片机的端口的最低位接a段,次低位接b段,.最高位(如p0.7)接dp,显示码从高往低表示为为 dp g f e d c b a如要显示“1”,只需要将b、c段点亮即可,若是共阴极,片选是低电平选中,某一段输出高电平点亮,即显示码为00000110 即0x06,其他的依照该方法类推单片机的电流很小,所以加上拉电阻,提供驱动电流,电阻大小为1k。数码管选用共阳数码管,0到9的编码为:0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90数码管的示意图如下图所示仿真图如下:数码管

15、显示程序/*数码管显示函数*/uchar code seg=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;/显示0-9段码void shuma(uint a)uint qian,bai,shi,ge,i;qian=a/1000; /千位bai=a%1000/100; /百位shi=a%1000%100/10; /十位ge=a%1000%100%10; /个位if(qian=0) /屏蔽最高位 为“0”的情况qian=10;if(bai=0)bai=10;if(shi=0)shi=10;S1=0;S2=0;S3=0;S4=0;for

16、(i=0;i<10;i+) S1=1; P0=segqian; delay(20); P0=0xff; S1=0; S2=1; P0=segbai; delay(20); P0=0xff; S2=0; S3=1; P0=segshi; delay(20); P0=0xff; S3=0; S4=1; P0=segge; delay(20); P0=0xff; S4=0;整体仿真效果图: 压力峰值检测器实验心得体会这次我们小组做的压力峰值检测器实验,我们实验的实验思路是:测量结果是用4位数字显示,显示范围是在00001999Kg之内,而要求是传感器输出,在实验室时用05mv的信号源模拟传感器

17、,但是传感器输出电压在05mv之间电压很小,所以需要对其进行放大,放大一千倍后,传感器输出电压为05v,然后再通过模数转换,将模拟信号转换成数字信号,再通过单片机的处理,比较,输出最大的压力值。 这次实验,我们运用了以前所学的模拟电子技术和数字电子技术,同时结合单片机来完成的,这次实验中,我们小组四个人每个人负责不同的版块共同来完成这个实验:冯浩负责单片机部分,刘科鹏负责数码管显示部分,刘守勋负责放大器部分,而我负责模数转换部分,每个人负责把自己的那部分做好后,再合在一起来调试,通过不断的调整,修改,我们才完成了这个实验。 在做实验前,一定要将课本上的知识吃透,因为这是做实验的基础,否则你做实验的难度就会加大,也会浪费做实验的时间,比如做做我们这个实验时模数转换部分时,你得了解该用什么芯片和这个芯片的功能

温馨提示

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

评论

0/150

提交评论