版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西南科技大学城市学院课程设计设计题目:压力峰值检测器系 别:机电工程专 业:自动化班级: 1001姓名:刘守勋刘科鹏黄雪芝冯浩指导老师:陈亮组长:黄雪芝1 / 17压力峰值检测设计基于单片机目录3.3.3.4A/D7 .11.14.172 / 17压力峰值检测设计基于单片机压力信号峰值检测器的设计一·任务与要求设计一个压力信号峰值检测器,具体要求如下:1) 测量结果用 4 位数字显示,显示范围为00001999Kg。2) 传感器输出在实验室时用05mv 的信号源模拟传感器。3) 要求检测仪能稳定的保持输入信号的峰值。设计的初步分析由于传感器输出电压在 05mv 之间电压很小,所以先用
2、运算放大器将传感器输出电压放大 1000 倍,放大后电压范围变为 05v,然后通过 A/D 转换,将模拟信号转换为数字信号, 数字信号通过单片机进行处理, 单片机通过逐次比较检测出峰值及最大值并显示在四位数码管上。设计的系统框图压力传感器运算放大单片机数据处理A/D 转换数码管显示运算放大器部分差分放大器属于一种特殊的仪表放大器, 通常被设计用于需要较大的直流或交流共模干扰的场所。 这其中包括通用的电流检测应用, 如电机控制、 电池充电和电源转换; 另包括大量高共模电平的汽车电流检测应用, 如电池电平监测、 传动控制、燃油喷射控制、发动机管理、悬挂控制、电控转向、电控刹车、以及混合动力驱动和混
3、合动力电池控制。 因这此控制大多通过放大负载电路上分流电阻两端的电压差以获取电流,所以也常被称作电流分流放大器。3 / 17压力峰值检测设计基于单片机集成运算放大器的原理由运放构成的高阻抗差分放大电路图为高输入阻抗差分放大器 ,应用十分广泛 .从仪器测量放大器 ,到特种测量放大器 ,几乎都能见到其踪迹。A1RS1R3R5Vi110K10K510R151KRpA31KVoR251KA2R4R6Vi2Rs210K51010K从图中可以看到 A1、A2 两个同相运放电路构成输入级,在与差分放大器 A3串联组成三运放差分防大电路。电路中有关电阻保持严格对称,具有以下几个优点 :(1)A1 和 A2 提
4、高了差模信号与共模信号之比,即提高了信噪比 ;(2)在保证有关电阻严格对称的条件下,各电阻阻值的误差对该电路的共模抑制比 KCMRR没有影响 ;(3)电路对共模信号几乎没有放大作用,共模电压增益接近零。因为电路中 R1=R2、 R3=R4、 R5=R6 ,故可导出两级差模总增益为:A vduoRp 2R1R5ui1ui2R PR3通常,第一级增益要尽量高,第二级增益一般为12 倍,这里第一级选择100 倍,第二级为 10 倍。则取 R3=R4=R5=R6=10K ,要求匹配性好,一般用金属膜精密电阻,阻值可在 10K几百 K间选择。则Avd=(RP+2R1)/RP先定RP, 通常在1K 10K
5、内,这里取RP 1K,则可由上式求得R1=99RP/2=49.5K取标称值 51K。通常 RS1 和 RS2 不要超过 RP/2 ,这里选 RS1 RS2510,用于保护运放输入级。A1 和 A2 应选用低温飘、高KCMRR的运放,性能一致性要好。集成运算放大器的4 / 17压力峰值检测设计基于单片机5 / 17压力峰值检测设计基于单片机整体仿真效果图:6 / 17压力峰值检测设计基于单片机A/D 转换部分ADC0832 为 8 位分辨率A/D 转换芯片,其最高分辨可达256 级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在05V 之间。芯片转换时间仅
6、为32 S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过 DI数据输入端,可以轻易的实现通道功能的选择。单片机对ADC0832 的控制原理正常情况下ADC0832 与单片机的接口应为4 条数据线,分别是 CS、CLK、DO、 DI 。但由于DO端与 DI 端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和 DI并联在一根数据线上使用。当ADC0832未工作时其 CS输入端应为高电平, 此时芯片禁用, CLK 和 DO/DI 的电平可任意。当要进行A/D 转换时,须先将CS使能端置于低
7、电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端 CLK 输入时钟脉冲, DO/DI 端则使用 DI 端输入通道功能选择的数据信号。在第1 个时钟脉冲的下沉之前DI 端必须是高电平,表示启始信号。在第 2、 3个脉冲下沉之前DI 端应输入2 位数据用于选择通道功能,其功能项见官方资料。如资料 所示,当此2 位数据为“ 1”、“ 0”时,只对 CH0 进行单通道转换。当 2 位数据为“1”、“ 1”时,只对CH1进行单通道转换。当2 位数据为“ 0”、“ 0”时,将CH0作为正输入端IN+ , CH1作为负输入端IN- 进行输入。当 2 位数据为“0”、“
8、1”时,将 CH0 作为负输入端 IN- , CH1 作为正输入端IN+ 进行输入。到第3 个脉冲的下沉之后DI 端的输入电平就失去输入作用,此后 DO/DI 端则开始利用数据输出DO进行转换数据的读取。从第4 个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11 个脉冲时发出最低位数据DATA0,一个字节的数据输出7 / 17压力峰值检测设计基于单片机DC0832封装以及各端子完成。也正是从此位开始输出下一个相反字节的数据,即从第11 个字节的下沉输出 DATA0。随后输出 8 位数据,到第 19 个脉冲时数据输出完成,也标志着一次 A/D
9、转换的结束。最后将 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 ndat=0;ADDI=1
10、;_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端,形成下降沿38 / 17压力峰值检测设计基于单片机_nop_();_nop_();dat=0;for(i=0;
11、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;/拉低 CS端ADCLK=0;/拉低 CLK端ADDO=1;/ 拉高数据端
12、 ,回到初始状态dat<<=8;dat|=ndat;return(dat);9 / 17压力峰值检测设计基于单片机10 / 17压力峰值检测设计 基于单片机单片机部分与数据处理单片机选用 ATC89C51AT89S51 是一个低功耗,高性能 CMOS 8 位单片机 ,片内含 4k Bytes ISP (In-system programmable) 的可反复擦写 1000 次的 Flash 只读程序存储器, 器件采用 ATMEL 公司 的高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系统及 80C51 引脚结构,芯片内集成了通用 8 位中央处理器和 ISP Flash
13、存储单元 , AT89S51 在众多嵌入式控制应用系统中得到广泛应用。11 / 17压力峰值检测设计 基于单片机单片机程序#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,
14、0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;/显示 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)12 / 17压力峰值检测设计 基于单片机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;elseshuma(b);整体仿真效果图:13 / 17压力峰值检测设计 基于单片机数码
15、管显示部分显示原理 :数码管首先从上到右, 到下到左,到中间,最后到小数点分别标记为a b c de f g dp 八段其中小数点位DP 为最高位, a 段为最低位,要想显示什么字符只需要使对应的段发光即可, 一般的习惯是单片机的端口的最低位接a 段,次低位接 b 段, .最高位(如 p0.7 )接 dp ,显示码从高往低表示为为 dp g f e d c b a 如要显示 “1,”只需要将 b 、c 段点亮即可,若是共阴极,片选是低电平选中,某一段输出高电平点亮,即显示码为 00000110 即 0x06 ,其他的依照该方法类推单片机的电流很小,所以加上拉电阻,提供驱动电流,电阻大小为1k。
16、数码管选用共阳数码管,0 到 9 的编码为:0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90数码管的示意图如下图所示仿真图如下:数码管显示程序14 / 17压力峰值检测设计 基于单片机/*数码管显示函数 */uchar code seg=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff;/显示 0-9 段码voidshuma(uint a)uint qian,bai,shi,ge,i;qian=a/1000;/ 千位bai=a%1000/100;/ 百位shi=a%1000%100/1
17、0; / 十位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(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);15 / 17压力峰值检测设计 基于单片机P0=0xff;S3=0;S4=1;P0=segge;delay(20);P0=0xff;
18、S4=0;整体仿真效果图:16 / 17压力峰值检测设计 基于单片机压力峰值检测器实验心得体会这次我们小组做的压力峰值检测器实验,我们实验的实验思路是:测量结果是用4 位数字显示,显示范围是在00001999Kg 之内,而要求是传感器输出,在实验室时用 05mv 的信号源模拟传感器,但是传感器输出电压在 05mv 之间电压很小,所以需要对其进行放大,放大一千倍后,传感器输出电压为0 5v,然后再通过模数转换,将模拟信号转换成数字信号,再通过单片机的处理,比较,输出最大的压力值。这次实验,我们运用了以前所学的模拟电子技术和数字电子技术,同时结合单片机来完成的, 这次实验中,我们小组四个人每个人负责不同的版块共同来完成这个实验: 冯浩负责单片机部分, 刘科鹏负责数码管显示部分, 刘守勋负责放大器部分, 而我负责模数转换部分, 每个人负责把自己的那部分做好后, 再合在一起来调试,通过不断的调整 ,修改,我们才完成了这个实验。在做实验前,一定要将课本上的知识吃透,因为这是做实验的基础,否则你做实验的难度就会加大, 也会浪费做实验的时间, 比如做做我们这个实验时模数转换部分时,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论