数字压力计的仿真设计.

上传人:最**** 文档编号:117163571 上传时间:2019-11-18 格式:DOC 页数:15 大小:448KB
返回 下载 相关 举报
数字压力计的仿真设计._第1页
第1页 / 共15页
数字压力计的仿真设计._第2页
第2页 / 共15页
数字压力计的仿真设计._第3页
第3页 / 共15页
数字压力计的仿真设计._第4页
第4页 / 共15页
数字压力计的仿真设计._第5页
第5页 / 共15页
点击查看更多>>
资源描述

《数字压力计的仿真设计.》由会员分享,可在线阅读,更多相关《数字压力计的仿真设计.(15页珍藏版)》请在金锄头文库上搜索。

1、目录目录 1. 概述 1.1 压力传感器简介2 1.2 总体设计方案2 2.硬件电路的设计 2.1 传感器的选型3 2.2 传感器接口电路设计3 2.3 最小系统设计4 2.4 模数转换电路设计5 2.5 显示电路设计6 2.6 电源电路设计7 3.软件部分的设计 3.1 程序设计及分析7 4.仿真及结果 4.1 仿真图12 5.设计小结 14 6.参考文献 15 1.概述 1.1 压力传感器简介 压力传感器是工业实践中最为常用的一种传感器,其广泛应用于各种工业自 控环境,涉及水利水电、铁路交通、智能建筑、生产自控、航空航天、军工、石 化、油井、电力、船舶、机床、管道等众多行业,而我们通常使用

2、的压力传感器 主要是利用压电效应制造而成的,这样的传感器也称为压电传感器。 压电传感器中主要使用的压电材料包括有石英、酒石酸钾钠和磷酸二氢胺。 其中石英(二氧化硅)是一种天然晶体,压电效应就是在这种晶体中发现的,在一定 的温度范围之内,压电性质一直存在,但温度超过这个范围之后,压电性质完全 消失(这个高温就是所谓的“居里点”)。由于随着应力的变化电场变化微小(也就说压 电系数比较低),所以石英逐渐被其他的压电晶体所替代。而酒石酸钾钠具有很大 的压电灵敏度和压电系数,但是它只能在室温和湿度比较低的环境下才能够应用。 磷酸二氢胺属于人造晶体,能够承受高温和相当高的湿度,所以已经得到了广泛 的应用。

3、 压电效应是压电传感器的主要工作原理,压电传感器不能用于静态测量,因为经过外力 作用后的电荷,只有在回路具有无限大的输入阻抗时才得到保存。 现在压电效应也应用在 多晶体上,比如现在的压电陶瓷,包括钛酸钡压电陶瓷、PZT、铌酸盐系压电陶瓷、 铌镁酸铅压电陶瓷等等。 1.2 总体设计方案 压力传感器主要是用来测量压力并将相应的压力值转换为可直接读取的值, 因此,需要一个能智能显示的压力计,本设计方案本着低碳、绿色的理念设计, 将成本缩减到最小。压力传感器主要由压力传感器,AD 转换器,单片机 AT89C51,LED 显示器构成,分别对应着信息采集,数据转换,信息处理和数据显 示四个模块。其间关系与

4、操作流程如下两图所示: 2.硬件电路的设计 2.1 传感器的选型 MPX4115系列压电电阻传感器是一个硅压力传感器。这个传感器结合了高级 的微电机技术,薄膜镀金属。还能为高水准模拟输出信号提供一个均衡压力。在 0-85的温度下误差不超过1.5%,温度补偿是-40-125。 MPX4115压力传感器检测的范围是15KPA-115KPA,输出电压信号0.2V- 4.8V。ADC0808的参考电压 VREF+=5V,VREF-=0V。则(0V-5V)对应(0-255), (0.2V-4.8V)对应。其线性对应关系如下图所示: 系统最小分辨率: 2.2 传感器接口电路的设计 采用 C1=47PF 的

5、电容作滤波电路,以及内部原理图如 下图所示: 内部原理图 滤波电路 2.3 单片机最小系统设计 选用的单片机为 AT89C51 系列芯片, 该芯片的最小系统由时钟电路、复位电 路、片选信号构成。在最小系统构成的 基础上,将 P1 口作为模拟量的转换为数 字量的接收端,P0 口作 LED 显示屏的数 据发送端,P2 口作 LED 显示屏的控制端 口,同时作为过压及欠压的报警电路使 用。具体最小系统设计如右图所示: 2.4 模数转换电路设计 ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道 A/D 转换芯 片。由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎,其目前 已

6、经有很高的普及率。学习并使用 ADC0832 可是使我们了解 A/D 转换器的原理, 有助于我们单片机技术水平的提高。8位分辨率双通道 A/D 转换输入输出电平与 TTL/CMOS 相兼容5V 电源供电时输入电压在05V 之间工作频率为250KHZ,转换时间 为32S ADC0832 为8位分辨率 A/D 转换芯片,其最高分辨可达256级,可以适应一般的模 拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在 05V 之间。芯片转换时间仅为32S,据有双数据输出可作为数据校验,以减少数 据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理 器控制变的更加方便

7、。通过 DI 数据输入端,可以轻易的实现通道功能的选择。正 常情况下 ADC0832 与单片机的接口应为4条数据线,分别是 CS、CLK、DO、DI。但 由于 DO 端与 DI 端在通信时并未同时有效并与单片机的接口是双向的,所以电路 设计时可以将 DO 和 DI 并联在一根数据线上使用。当 ADC0832未工作时其 CS 输入 端应为高电平,此时芯片禁用,CLK 和 DO/DI 的电平可任意。当要进行 A/D 转换 时,须先将 CS 使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开 始转换工作,同时由处理器向芯片时钟输入端 CLK 输入时钟脉冲,DO/DI 端则使 用 DI 端输入

8、通道功能选择的数据信号。在第1 个时钟脉冲的下沉之前 DI 端必须 是高电平,表示启始信号。在第2、3个脉冲下沉之前 DI 端应输入2 位数据用于选 择通道功能,其功能项见官方资料。 如资料 所示,当此2 位数据为“1”、“0”时,只对 CH0 进行单通道转换。当2 位数据为“1”、“1”时,只对 CH1进行单通道转换。当2 位数据为“0”、“0”时,将 CH0作为正输入端 IN+,CH1作为负输入端 IN-进行输入。当2 位数据为“0”、“1”时, 将 CH0作为负输入端 IN-,CH1 作为正输入端 IN+进行 输入。到第3 个脉冲的下沉之后 DI 端的输入电平就失去输入作用,此后 DO/

9、DI 端则开始利用数据输出 DO 进行转换数据的读取。从第4个脉冲下沉开始由 DO 端输出转换数据最高位 DATA7,随后每一个脉冲下沉 DO 端输出下一位数据。直 到第11个脉冲时发出最低位数据 DATA0,一个字节的数据输出完成。也正是从此位 开始输出下一个相反字节的数据,即从第11个字节的下沉输出 DATA0。随后输出8 位数据,到第19 个脉冲时数据输出完成,也标志着一次 A/D 转换的结束。最后将 CS 置高电平禁用芯片,直接将转换后的数据进行处理就可以了。 作为单通道模拟信号输入时 ADC0832的输入电压是05V 且8位分辨率时的电压 精度为19.53mV。如果作为由 IN+与

10、IN-输入的输入时,可是将电压值设定在某一 个较大范围之内,从而提高转换的宽度。但值得注意的是,在进行 IN+与 IN-的输 入时,如果 IN-的电压大于 IN+的电压则转换后的数据结果始终为00H。 其硬件引脚如图所示: 2.5 显示电路设计 显示界面利用 16X1 的 LM016L 的字符型液晶 LM020L 进行显示,相比 LED 显示 能显示更多的内容,人机界面更友好,而且节省单片机硬件资源。其引脚接线以 及驱动电路如下图所示: 如上图所示: RS、RW、E 分别接至 P2.0、P2.1、P2,2作为显示器的控制端口, D0、D1、D2、D3、D4、D5、D6、D7与 P0口直接相连,

11、同时使用驱动电路 RESPACK-8来提供足够的 LCD 电源。 2.6 电源电路设计 此设计的所有硬件电路均可有5V 的直流电源驱动,因此使用标准的5V 的电 压源作为电路电源。 3.软件部分的设计 #include #include #include /包含必要的头文件 #define uint unsigned int #define uchar unsigned char #define delay4us() _nop_();_nop_();_nop_();_nop_(); #define NOP _nop_() sbit HIGH=P23 ; sbit LOW=P24 ; sbit

12、AD_CS =P10; sbit SCK=P11; sbit DO =P12; sbit DI =P12; sbit RS = P20; sbit RW = P21; sbit E = P22; /必要的位定义 unsigned char adval; uchar Display_Buffer = “000.0KPa“; uchar code Line1 = “Current Press:“; /初始化所显示的字符 uchar adc0832(uchar channel) /读 ADC0832 函数,采集并返回 uchar i=0; uchar j; uint dat2=0; uchar nd

13、at=0; if(channel=0)channel=2; if(channel=1)channel=3; AD_CS=0;NOP; NOP; /拉低 CS 端,AD 片选 DI=1;NOP; NOP; /在第一个脉冲下降之前 DI 必须是高电平,表示启始信号 SCK=1;NOP; NOP; SCK=0;NOP; NOP; SCK=1; DI=channelNOP;NOP; /在第二和第三个脉冲下降之前 DI 输入两位表示通道 SCK=0;NOP; NOP; SCK=1; DI=(channel1)NOP; NOP; SCK=0; /写命令完成,DI 失去输入作用 DI=1;NOP;NOP;

14、dat2=0; for(i=0;i=1; AD_CS=1; SCK=0; DO=1; dat2=8; dat2|=ndat; return(dat2); /返回数据 void DelayMS(uint ms) /延时程序,相应数值为相应毫秒数 uchar i; while(ms-) for(i=0;i120;i+); /1mS 延时 uchar Read_LCD_State() /检测 LCD 是否“忙” uchar state; RS=0;RW=1;E=1;DelayMS(1); state=P0; /返回 P0 的值 E= 0;DelayMS(1); return state; /返回状态 void LCD_Busy_Wait() while(Read_LCD_State() DelayMS(5); void LCD_Write_Command(uchar cmd) /写命令函数 LCD_Busy_Wait(); RS = 0; RW =

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号