基于51单片机的压力测控系统设计(共19页).docx
-
资源ID:14328896
资源大小:432.48KB
全文页数:19页
- 资源格式: DOCX
下载积分:20金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于51单片机的压力测控系统设计(共19页).docx
精选优质文档-倾情为你奉上××大学××学院过程控制系统课程设计 设计题目:智能化压力控制系统设计 学生姓名: 专 业:测控技术与仪器班级学号:指导教师:设计时间:2014.6.23-2014.7.6专心-专注-专业目录 4、单片机处理模块.2 7、地址锁存器74LS273.6102一、设计题目与设计任务1.设计题目:单片机压力测控系统设计 2.设计任务1、本设计是微机控制的压力测控系统。单片机系统通过压力传感器和检测比较器测得气缸内压力达到某一上限值(176 kPa)和下限值(64 kPa)时,单片机系统控制执行相应的动作(达到上限值时打开放气阀放气,达到下限值关闭放气阀进行充气)。在此过程中若充气或放气10 s仍达不到设定值(176 kPa和64 kPa)则进行光报警。2、写出压力测量过程,绘制压力控制系统结构图。3、(1)系统硬件电路设计。 单片机采用at89c51;选择适合上述测量范围的压力传感器,设计数据采集及信号调理电路,设计键盘显示电路及报警电路。 (2)编写压力测量程序。 二、前言 本设计为基于AT89C51单片机的气缸压力测量与控制系统,压力传感器选择1210030G3S,能够在0207kPa范围内有效测量气缸的压力,并进行实时压力(LED)显示。单片机控制部分实现当压力超出上限值176kPa时,放气阀打开进行放气,当压力低于下限值64kPa时,放气阀关闭,气缸充气;压力在正常范围(64176kPa)时,压力改变不影响放气阀的状态。报警功能实现当压力超出设定的压力范围(64176kPa)10S时,发光二极管点亮进行报警。关键词:AT89C51单片机、1210030G3S型压力传感器、LED显示、报警。三、主体设计1、系统设计考虑到过程控制系统的一般组成及本次设计的任务要求,本设计主要由以下几部分组成:被控对象(气缸及附带的进气阀和放气阀)、压力传感器FT、A/D转换(ADC0809)、AT89C51单片机、LED显示、报警电路和放气阀驱动电路。2、系统框图基于AT89C51的压力测控系统3、设计思路 压力传感器(1210030G3S)测量气缸中的压力(0207kPa)输出电流信号(75150mA),经A/D模数转换(结果为即0255)后给单片机,单片机进行算法处理将传感器的输出信号和测量的压力对应起来并实时显示在LED上,当所测压力大于176kPa时,放气阀打开进行放气,当所测压力小于64kPa时,放气阀关闭,进气阀给气缸充气。此过程中若放气或充气10S任没达到正常的压力范围则进行1S报警。当然A/D转换的启停、压力大小的判断、10S延时都由单片机来控制。4、单片机处理模块 AT89C51是一种带4KFLASH(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位,俗称。AT89C2051是一种带2K闪存可编程可擦除的。的可擦除可以反复擦除1000次。该器件采用ATMEL高密度非易失制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪速组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51为很多提供了一种灵活性高且价廉的方案。外形及排列如图所示。(1)AT89c51主要特点·与MCS-51 兼容·4K字节可编程FLASH·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24MHz·三级锁定·128×8位内部RAM·32可编程I/O线·两个16位/计数器·5个·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路(2)引脚结构VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为输入。P0能够用于外部程序数据,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部或16位地址存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据进行读写时,P2口输出其的内容。P2口在FLASH编程和校验时接收高八位地址信号和。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(计时器0外部输入)P3.5 T1(计时器1外部输入)P3.6 /WR(写选通)P3.7 /RD(读选通)P3口同时为闪烁编程和编程校验接收一些。RST:复位输入。当振荡器复位器件时,要保持RST脚两个的高电平时间。ALE/PROG:当访问外部时,允许的用于锁存地址的低位字节。在FLASH期间,此用于输入脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该被略微拉高。如果在外部执行状态ALE禁止,置位无效。/PSEN:外部的选通信号。在由外部程序取指期间,每个两次/PSEN有效。但在访问存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。5、压力传感器1210030G3S 网上查找了很多压力传感器,其中较为典型常用的是上海名动公司生产的MDPS系列和MDGA高精度绝压传感器,但是由于二者都不适合本次课程设计的压力范围(0200kPa),最终选择1210030G3S压力传感器,它的测压范围为30*6.895=207kPa,输出电流范围是75150mA,性能参数如下:典型应用电路如下:设计仿真时由于PROTEUS中没有传感器,因此用一个范围为75150分压电路代替传感器的输出电流,使的仿真得以进行。6、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转换结束信号。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 通道选择表7、 地址锁存器74LS273工作原理:(1)1脚是复位/MR,低电平有效,当1脚是低电平时,输出脚Q1、Q2、Q3 、Q4 、Q5 、Q6 、Q7全部输出0,即全部复位;(2)当1脚是高电平时,脚11(即CP)是锁存器控制端,属于上升沿触发;当11脚有一个上升沿,立即锁存输入端的电平信号,并立即呈现在输出脚Q1、Q2、Q3 、Q4 、Q5 、Q6 、Q7上。其引脚图及真值表如下: 四、参考文献1.谢宜仁. 单片机硬件接口电路与工程实践 电子工业出版社。 2. 单片机原理与接口技术第二版 马淑华等 北京邮电大学出版社。3. 微型计算机原理与接口技术第二版 冯博琴 吴宁 清华大学出版社。4.彭伟. 单片机C语言程序设计实训100例-基于8051+Proteus仿真。5.数字电子技术基础 阎石主编。五、结束语 本次课程设计历时一周,除键盘电路外基本完成了所要求的设计任务。本课设是基于AT89C51单片机的测量与显示,通过压力传感器将压力转换为电信号,再经过运算放大器进行信号放大,送至ADC0809,将模拟信号转换成单片机可以识别的数字信号,再经过单片机转换成LED显示器可以识别的信息,显示输出。本次课设,我学会了使用proteus软件进行单片机系统仿真,我们组内成员通过仪器讨论,分工合作,从找元器件开始学起,讨论并研究解决一个一个问题,我们从中学会了很多知识。该课设用到学过的单片机的知识,有些芯片我们之前没接触过,通过查阅资料,熟悉芯片管脚以及芯片引脚功能。此次的课程设计的顺利完成,离不开我们大家的团结合作和共同努力,在此感谢大家的辛苦付出,也感谢老师给我们这次宝贵的锻炼机会。六、完整程序#include<reg51.h>#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-);delay1(uint c) /循环间隔延时C毫秒子程序 uchar a,b; for( ;c>0;c-) for(b=142;b>0;b-) for(a=2;a>0;a-);void fun1(uint i) /AD转换及数据处理子程序 uint P; extern uint PP; /定义全局变量PP START=1; START=0; while(i>0) /fun1只执行i次 if(i>0) OE=1; /转换结束输出使能 P=P0; /AD转换结果赋给P P=P*1.0/255*207; /完成75150mA到0207kPa的转换 OE=0; /停止输出 P2=0xfe; /个位位选 P1=tableP%10; /个位段选 delay(500); /个位显示延时约1ms P2=0xfd; /十位位选 P1=tableP/10%10; /十位段选 delay(500); /十位显示延时约1ms P2=0xfb; /百位位选 P1=tableP/100%10; /百位段选 delay(500); /百位显示延时约1ms if(P>176)ONOFF=1; /打开放气阀 if(P<64)ONOFF=0; /打开放气阀 i=i-1; delay1(100); /每次转换后延时100ms(0.1s) START=1; /启动下一次转换 START=0; void main() /主程序 ONOFF=0; /初始时放气阀关闭 START=0; /初始时不进行AD转换 ALARM=0; /初始时不报警 OE=0; while(1) /死循环 fun1(1); /调用一次转换子程序 PP=P; /转换处理结果(压力值)给PP if(PP>176|PP<64) /判断压力是否超限 fun1(100); /压力超限则调用转换子程序100次,用时约0.1*100=10s PP=P; if(PP>176) ALARM=1; delay1(1000); if(PP<64) ALARM=1; delay1(1000); if(64<PP<176) ALARM=0; delay1(1000); else if(64<PP<176)ALARM=0; /10s后压力正常则不报警 七、仿真结果正常压力范围,放气阀关闭压力超出上限,放气阀打开压力超出上限10S后仍未恢复正常报警八、程序流程图NNY开始初始化P<64|P>176?打开放气阀启动A/D转换采集模拟信号转化成0-207KPa压力扫描数据并进行LED动态显示P>176?NP<64?Y10S后任成立报警关闭出气阀Y10S后任成立报警