基于AT89S52的压力测控系统设计.docx

上传人:laozhun 文档编号:4148062 上传时间:2023-04-07 格式:DOCX 页数:11 大小:293KB
返回 下载 相关 举报
基于AT89S52的压力测控系统设计.docx_第1页
第1页 / 共11页
基于AT89S52的压力测控系统设计.docx_第2页
第2页 / 共11页
基于AT89S52的压力测控系统设计.docx_第3页
第3页 / 共11页
基于AT89S52的压力测控系统设计.docx_第4页
第4页 / 共11页
基于AT89S52的压力测控系统设计.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《基于AT89S52的压力测控系统设计.docx》由会员分享,可在线阅读,更多相关《基于AT89S52的压力测控系统设计.docx(11页珍藏版)》请在三一办公上搜索。

1、东北大学秦皇岛分校自动化工程系 过程控制系统 课程设计 设计题目:单片机压力测控系统设计 学生姓名:童思普专 业:测控技术与仪器班级学号:5080820指导教师:王军伟设计时间:2010.6.27-2010.7.9目录一、设计题目与设计任务11.设计题目:单片机压力测控系统设计12.设计任务1二、前言1三、主体设计11、系统设计12、系统框图23、设计思路24、压力传感器和A/D转换芯片选择3(1)压力传感器1210030 G3 S3(2)AD模数转换芯片ADC08094四、参考文献5五、结束语5六、完整程序5七、仿真结果8一、设计题目与设计任务1.设计题目:单片机压力测控系统设计 2.设计任

2、务1、本设计是微机控制的制氧机压力测控系统。单片机系统通过压力传感器和检测比较器测得气缸内压力达到某一上限值(176 kPa)和下限值(64 kPa)时,单片机系统控制执行相应的动作(达到上限值时打开放气阀放气,达到下限值关闭放气阀进行充气)。如此反复循环,不断将氧气提供给需氧者。在此过程中若充气或放气10 s仍达不到设定值(176 kPa和64 kPa)则进行光报警。2、写出压力测量过程,绘制压力控制系统结构图。3、(1)系统硬件电路设计。 单片机采用89S52;选择适合上述测量范围的压力传感器,设计数据采集及信号调理电路,设计键盘显示电路及报警电路。 (2)编制压力测量程序。 二、前言 本

3、设计为基于AT89S52单片机的气缸压力测量与控制系统,压力传感器选择1210030G3S,能够在0207kPa范围内有效测量气缸供氧系统的压力,并进行实时压力(LED)显示。单片机控制部分实现当压力超出上限值176kPa时,放气阀打开进行放气,当压力低于下限值64kPa时,放气阀关闭,气缸充气;压力在正常范围(64176kPa)时,压力改变不影响放气阀的状态。报警功能实现当压力超出设定的压力范围(64176kPa)10S时,发光二极管点亮进行报警。关键词:AT89S52单片机、1210030G3S型压力传感器、LED显示、报警。三、主体设计1、系统设计考虑到过程控制系统的一般组成及本次设计的

4、任务要求,本设计主要由以下几部分组成:被控对象(气缸及附带的进气阀和放气阀)、压力传感器FT、A/D转换(ADC0808)、AT89S52单片机、LED显示、报警电路和放气阀驱动电路。2、系统框图基于AT89S52的压力测控系统3、设计思路 压力传感器(1210030G3S)测量气缸中的压力(0207kPa)输出电流信号(75150mA),经A/D模数转换(结果为0000000011111111即0255)后给单片机,单片机进行算法处理将传感器的输出信号和测量的压力对应起来并实时显示在LED上,当所测压力大于176kPa时,放气阀打开进行放气,当所测压力小于64kPa时,放气阀关闭,进气阀给气

5、缸充气。此过程中若放气或充气10S任没达到正常的压力范围则进行1S报警。当然A/D转换的启停、压力大小的判断、10S延时都由单片机来控制。4、压力传感器和A/D转换芯片选择(1)压力传感器1210030 G3 S 网上查找了很多压力传感器,其中较为典型常用的是上海名动公司生产的MDPS系列和MDGA高精度绝压传感器,但是由于二者都不适合本次课程设计的压力范围(0200kPa),最终选择1210030G3S压力传感器,它的测压范围为30*6.895=207kPa,输出电流范围是75150mA,性能参数如下:典型应用电路如下:设计仿真时由于PROTEUS中没有传感器,因此用一个范围为75150分压

6、电路代替传感器的输出电流,使的仿真得以进行。(2)AD模数转换芯片ADC0809ADC0809是目前广泛使用的逐位逼近型8位单片A/D转换芯片,片内含8 路模拟开关,可允许8路模拟量输入。主要由3部分组成:模拟输入选择部分、转换器部分、输出部分。ADC0809芯片为28引脚为双列直插式封装,ADC0809主要信号引脚功能说明如下:IN7IN0八路模拟量输入通道。ALE地址锁存允许信号。START转换启动信号。START=1转换启动。A、B、C地址线、 通道端口选择线。CLK时钟信号。ADC0809要求外接时钟频率为10kHz1.2MHz。通常使用频率为500KHz的时钟信号。EOC转换结束信号

7、。EOC=1,转换结束。D7D0数据输出线。OE输出允许信号。OE=1,输出转换得到的数据。Vcc +5V电源。Vref参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V, Vref(-)=-5V)。ADC0809与MCS-51单片机的连接主要涉及两个问题。一是8路模拟信号通道的选择,二是A/D转换完成后转换数据的传送。转换数据的传送有定时传送方式、查询方式、中断方式这三种方式。A、B、C的值与被选择的通道之间的关系如下表11所示:表11 通道选择表 实际画图时由于PROTEUS中没有ADC0809,因此用ADC0808代替。ADC080

8、8和ADC0809的使用接发相同,只是ADC0809的转换误差为1位,ADC0808为5位而已。四、参考文献1. 51单片机原理及应用基于Keil C与Proteus陈海宴 北京航空航天大学出版社。2. 单片机原理与接口技术第二版 马淑华等 北京邮电大学出版社。3. 微型计算机原理与接口技术第二版 冯博琴 吴宁 清华大学出版社。五、结束语 本次课程设计历时一周,除键盘电路外基本完成了所要求的设计任务。设计过程中参考了陈海宴老师编著的51单片机原理及应用基于Keil C与Proteus一书中数字电压表的设计。本设计的难点在于:考虑到现场传感器的气体压力测量与传感器输出是实时进行的,因此ADC08

9、08的模数转换必须时刻进行,至少两次转换之间的时间间隔不能太长。但是如果一次转换完成后立即进行下一次转换,则对应的转换子程序就是一个死循环,这样的话就不能进行报警,因为无法取出10S之后的转换数据。考虑到这个问题之后再转换之程序中做一个0.1S的延时,这样每次转换大约耗时0.1S,转换子程序进行多少次转换通过主程序来控制,这样调用转换子程序100次之后就可以得到10S以后的转换结果,将转换结果和压力上下限比较以后就可以决定是否进行报警了。当然,这样做的局限是使得LED的显示不那么连续了。因此,进一步想办法解决这个问题是我们以后应该继续做的。 设计过程中老师和同学给了我很多支持和帮助,这里一并致

10、谢!六、完整程序#include#define uint unsigned int#define uchar unsigned charuchar code table=0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e;/七段共阴数码管编码表sbit START=P30;sbit EOC=P31; sbit OE=P32;sbit ONOFF=P33; /控制放气门开或关sbit ALARM=P34; /报警显示void delay(uint m) /LED显示延时子程序 while(m-);d

11、elay1(uint c) /循环间隔延时C毫秒子程序 uchar a,b; for( ;c0;c-) for(b=142;b0;b-) for(a=2;a0;a-);void fun1(uint i) /AD转换及数据处理子程序 uint P; extern uint PP; /定义全局变量PP START=1; START=0; while(i0) /fun1只执行i次 if(i0) OE=1; /转换结束输出使能 P=P0; /AD转换结果赋给P P=P*1.0/255*207; /完成75150mA到0207kPa的转换 OE=0; /停止输出 P2=0xfe; /个位位选 P1=ta

12、bleP%10; /个位段选 delay(500); /个位显示延时约1ms P2=0xfd; /十位位选 P1=tableP/10%10; /十位段选 delay(500); /十位显示延时约1ms P2=0xfb; /百位位选 P1=tableP/100%10; /百位段选 delay(500); /百位显示延时约1ms if(P176)ONOFF=1; /打开放气阀 if(P176|PP176) /10s后压力任超出上限则进行报警 ALARM=1; delay1(1000); /报警显示延时1s if(PP64) /10s后压力任超出下限则进行报警 ALARM=1; delay1(1000); /报警显示延时1s if(64PP176) /10s后压力正常则不进行报警 ALARM=0; delay1(1000); else if(64PP176)ALARM=0; /10s后压力正常则不报警 七、仿真结果正常压力范围,放气阀关闭压力超出上限,放气阀打开压力超出上限10S后仍未恢复正常报警9

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号