压力测量器设计报告概要Word下载.docx
- 文档编号:21020980
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:14
- 大小:138.24KB
压力测量器设计报告概要Word下载.docx
《压力测量器设计报告概要Word下载.docx》由会员分享,可在线阅读,更多相关《压力测量器设计报告概要Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
目的和意义
压力测量仪被广泛应用于国防领域、工业领域、医疗领域以及我们日常家庭生活中。
其中的核心元件就是压力传感器,它在监视压力大小、控制压力变化以及物理参量的测量等方面起着重要作用。
本系统设计的数字压力测量仪采用单片机控制,具有使用方便、精度高、显示简单和灵活性等优点,而且可以大幅提高被控气压的技术指标,从而能够大大提高产品的质量。
1:
设计整体思想
基于MPX4115的数字气压计包括软硬件的设计与调试。
软件部分通过对C语言的学习和对单片机知识的了解,根据系统的特点编写出单片机程序。
硬件部分分为四大块,包括非电信号数据的采集、转换、处理以及显示:
。
通过对设计的了解,选择适合的器件,画出原理图。
搭建实物连接,实物的仿真测试,画出PCB板。
2:
系统总体框图
信息处理模块
硬件部分由四部分构成,它们分别是:
信息采集模块,数据转换模块,和数据显示模块。
三:
硬件电路设计及描述
数字压力测量仪设计意义
其中的核心元件就是压力传感器,它在监视压力大小、控制压力变化以及物理参量的测量等方面起着重要作用。
本系统设计的数字压力测量仪采用单片机控制,具有使用方便、精度高、显示简单和灵活性等优点,而且可以大幅提高被控气压的技术指标,从而能够大大提高产品的质量
2:
数据采集模块的芯片选择
压力传感器对于系统至关重要,需要综合实际的需求和各类压力传感器的性能参数加以选择。
一般要选用有温度补偿作用的压力传感器,因为温度补偿特性可以克服半导体压力传感器件存在的温度漂移问题。
本设计要实现的数字气压计显示的是绝对气压值,同时为了简化电路,提高稳定性和抗干扰能力,要求使用具有温度补偿能力的压力传感器。
MPX4115可以产生高精度模拟输出
电压。
数据采集模块由压力传感器MPX4115构成。
其中1脚是输出信号端,输出的是与气压值相对应的模拟电压信号。
数据采集模块的原理如图、
气压传感器MPX4115的原理
MPX4115系列压电电阻传感器是一个硅压力传感器。
这个传感器结合了高级的微电机技
术,薄膜镀金属。
还能为高水准模拟输出信号提供一个均衡压力。
在0℃-85℃的温度下误
差不超过1.5%,温度补偿是-40℃-125℃。
测量范围是由15KPa~115kPa。
3:
单片机控制模块
由AT89C51单片机、时钟电路、复位电路组成AT89C51是一种带4K字节闪烁可编程可
擦除只读存储器(FPERO—MFalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存
储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
U1
AT89C51
图四单片机原理图
4:
A/D转换模块
ADC0832是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。
由于它体积小,兼容性,性价比高而深受单片机爱好者欢迎,其目前已经有很高的普及率。
学习并使用ADC0832可是使我们了解A/D转换器的原理,有助于我们单片机技术水平的提高。
ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。
其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。
芯
片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。
独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。
通过DI数据输入端,可以轻易的实现通道功能的选择。
正常情况下ADC0832与单片机的接口应为4
条数据线,分别是CS、CLK、DO、DI。
但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。
当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进行单通道转换。
当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,一个字节的数据输出完成。
也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATA0。
随后输出8位数据,到第19个脉冲时数据输出完成,也标志着一次A/D转换的结束。
最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可
以了。
图五ADC0832原理图
5:
显示模块
采用LED动态扫描显示原理如下:
(1)P2.0、P2.1控制数码管的段选和位选,通过P2.0,P2.1控制P0口输出信号到位,段锁存器中;
(2)显示个位——首先位选置1,把要显示的数据送到P0口,位选置0,段选置1,把要显示的位置数据送到P0口,段选置0,延时(时间不能太长,否则数码管会闪烁),跳出程序;
(3)同理显示百位,十位,十分位;
(4)以此顺序循环,把它做成子程序,在主循环中调用。
四:
系统总体电路图
19
RP1
RESPACK-8
123
45
C1
20pF
C2
X1
XTAL2
CRYSTAL
R1
10k
C3
293031
12345678
RST
ALE
EA
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
Q0
Q1
Q2
Q3
241311116758
Q4
Q5
Q6
Q7
D1
D2
D3
D4
D5
D6
D7
11
LE
OE
74HC
U2
D0
D6Q6
D7Q7
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
图六总体电路连接图
五:
软件设计
流程图
图七系统总流程图
图八A/D转换程序流程图
图九显示流程图
图十主函数流程图
程序(c语言)
#include<
reg51.H>
intrins.h>
#defineuintunsignedint#defineucharunsignedchar//ADC0832的引脚
sbitADCS=P2^7;
//ADC0832chipseclectsbitADDI=P3^7;
//ADC0832kinsbitADDO=P3^7;
//ADC0832koutsbitADCLK=P3^6;
//ADC0832clocksignalsbitdula=P2^0;
//位.段
sbitwela=P2^1;
ucharcodetable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F};
unsignedchardispbuf[4];
ucharyiwei=0xfe;
uinttemp;
uchargetdata;
//获取ADC转换回来的值
voiddelay(ucharz)
{
ucharx,y;
for(x=z;
x>
0;
x--)
for(y=110;
y>
y--);
转换,返回结果
}
unsignedintAdc0832(unsignedcharchannel)//AD{
uchari=0;
ucharj;
uintdat=0;
ucharndat=0;
if(channel==0)channel=2;
if(channel==1)channel=3;
ADDI=1;
_nop_();
ADCS=0;
ADCLK=1;
ADCLK=0;
ADDI=channel&
0x1;
ADDI=(channel>
>
1)&
dat=0;
for(i=0;
i<
8;
i++)
dat|=ADDO;
dat<
<
=1;
if(i==7)dat|=ADDO;
j=0;
j=j|ADDO;
j=j<
7;
ndat=ndat|j;
if(i<
7)ndat>
ADCS=1;
ADDO=1;
=8;
dat|=ndat;
return(dat);
//returnadk
voidmain(void)
while
(1)
{unsignedinttemp;
floatpress;
getdata=Adc0832(0);
if(14<
getdata<
243)
intvary=getdata;
//y=(115-15)/(243-13)*X+15kpapress=((10.0/23.0)*vary)+9.2;
temp=(int)(press*10);
dispbuf[3]=temp/1000;
dispbuf[2]=(temp%1000)/100;
dispbuf[1]=((temp%1000)%100)/10;
dispbuf[0]=((temp%1000)%100)%10;
yiwei=_cror_(yiwei,1);
switch(yiwei)
case0xfe:
wela=1;
P0=yiwei;
wela=0;
dula=1;
P0=table[dispbuf[3]];
dula=0;
delay(20);
break;
case0xfd:
P0=table[dispbuf[2]];
case0xfb:
P0=table[dispbuf[1]];
case0xf7:
P0=table[dispbuf[0]];
六:
仿真调试
图十
仿真调试图
实物效果图
图十二实物连接图
PCB板
图十三PCB板
七:
课程设计总结心得体会
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
回顾起此次单片机课程设计,从理论到实践,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对开发板不太了解,对单片机汇编语言掌握得不好,通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次实习让我受益匪浅,无论从知识上还是其他的各个方面。
上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。
但在实习中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。
在这次课程设计中又让我体会到了合作与团结的力量,当遇到不会或是设计不出来的地方,我们就会讨论或者是同学之间相互帮助。
团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。
八:
参考文献
[1]谭浩强.C程序设计(第三版)[M].北京.清华大学出版社.2005(2007重印)
[2]张毅刚,彭喜元等.MCS-51单片机应用设计(第3版)[M].哈尔滨.哈尔滨工业大学出版社.2001.
[3]徐琤颖.Protel99SEEDA技术及应用.[M].北京.机械工业出版社.2009.1重印
[4]古辉,刘均等.微型计算机接口及控制技术.[M].北京.机械工业出版社.2009.1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 压力 测量器 设计 报告 概要