ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:992.24KB ,
资源ID:10154701      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10154701.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(测控系统课程设计02.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

测控系统课程设计02.docx

1、测控系统课程设计02摘要在工业生产控制过程中,压力是一个很重要的参数。比如利用测量大气压力来间接测量海拔高度,在工业生产中测量压力参数来判断反应的过程,在气象预测中,也需要测量大气压力来判断阴雨天气等等。所有这些都需要掌握测量压力,所以压力表的设计拥有广阔的市场前景。本课题就是基于此原因设计的一个简单压力计。本课程设计用mpx4115传感器来检测压力参数,adc0808进行模数转换后,利用AT89C52进行数据处理后,由键盘设置测量量程,用发光二级管显示当前测量量程送液晶显示压力值。本系统可根据需要进行功能扩展。由于adc0808支持8路信号采集,可以对8个压力点参数进行检测。可以手动设置采集

2、哪一路,或者循环采集。还可以进行压力上下限报警。在设计系统的时候,立足于界面友好性、性价比,可以在简单压力检测的时候使用。关键词:AT89C52单片机、MPX4115压力传感器、液晶显示器、adC0808转换器1 系统总体介绍.3 1.1系统功能介绍.3 1.2功能介绍.31.3 AT98C52简介.31.4 ADC0808简介.32 系统软件设计.52.1系统程序整体流程图.52.2按键子程序流程图.52.3 T0中断服务程序流程图.52.4外部中断INT0流程图.63 系统硬件设计.73.1系统总体框图.73.2压力测量电路.73.3系统总体仿真电路.7 4 软硬件仿真调试及性能分析.94

3、.1数字量到压力值的标度变换.94.2系统protues仿真运行图.94.2.1开机显示画面.94.2.2两位数正常显示.104.2.3两位数超量程显示.11 4.2.4 三位数正常显示1.114.2.5 三位数正常显示2.115 总结.136 参考资料.137 参考程序.141 系统功能要求介绍1.1 系统总体设计压力计以AT89C52为核心,进行数据的处理和显示,并进行显示量程的切换。压力测量采用mpx4115,利用adc0808实现A/D转换,由键盘设置量程转换,并且用发光二极管显示当前的量程。1.2 功能介绍压力计的测量量程在10kpa100kpa,精度在0.5级。利用16x1字符型L

4、CD显示和提示操作。利用按键进行量程转换。具体为xxxx kpa和xxxx kpa 。压力测量使用摩托罗拉公司的mpx4115传感器,采集电路以此为核心,为了克服干扰,在mpx4115输出电路中增加了RC滤波电路。Mpx4115压力传感器检测的范围是10kpa-100kpa,输出电压信号0.2v-4.8v。adc0808的参考电压Vref+=5v,Vref-=0v。则0v-5v)对应(0-255),(0.2v-4.8v)对应(10-246)。1.3 AT89C52简介AT89C52是51系列单片机的一个型号,它是ATMEL公司生产的。AT89C52为40 脚双列直插封装的8 位通用微处理器,采

5、用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义。1.4 ADC0808简介ADC0808是

6、采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0808是ADC0809的简化版本,功能基本相同。一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。ADC0808芯片有28条引脚,采用双列直插式封装,如右图所示。各引脚功能如下: 15和2628(IN0IN7):8路模拟量输入端。 8、14、15和1721:8位数字量输出端。 22(ALE):地址锁存允许信号,输入,高电平有效。 6(START): AD转换启动脉冲输入端,输入一个

7、正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 7(EOC): AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 9(OE):数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 10(CLK):时钟脉冲输入端。要求时钟频率不高于640KHZ。 12(VREF(+)和16(VREF(-):参考电压输入端。11(Vcc):主电源输入端。 13(GND):地。2 系统软件设计系统主程序在初始化后只进行按键扫描,利用定时器T0定时5s启动ad转化,即采样周期是5s。当a

8、d转换完成后进入外部中断INT0服务程序,进行数据的处理,刷新显示的压力值;当采用两位量程时,若检测到压力值大于等于100,提示超过量程“over!”,需要转换量程。2.1系统程序整体流程图系统的整体程序流程图如下所示:主程序在完成开机logo显示、压力值初始化显示、TO及INT0中断初始化后进入死循环,在循环中进行按键扫描,切换量程。等待T0中断启动ad转换;转换完成后进入外部中断INT0进行数据的处理、分析、显示。2.2 按键子程序流程图按键子程序进入后首先对显示模式进行修改,即在两位整数和三位整数显示之间进行切换。若是两位整数模式则先判断是否超过量程(压力值是三位数整数),超过量程则显示

9、“over!”提示转换量程。若是三位整数模式则直接刷新数据后显示。2.3 T0中断服务程序流程图T0中断服务子程序如下图所示: T0定时器定时50ms,即每50ms进入T0中断,在中断中增加time5s_count计时器,每次进入T0中断后time5s_count加1,当加到100后表示5s到,清零同时启动ad转换。2.4 外部中断INT0流程图外部中断INT0服务程序流程图如下所示:当adc0808完成ad转换后,eoc变高,经反相器后接单片机int0口,下降沿启动int0中断。在中断中首先读取转换后的数字量,再进行标度换算成压力值,完成数据的刷新。3 系统硬件电路设计3.1系统总体框图以A

10、T89C52为核心,外围电路有信号采集mpx4115,ad转换电路adc0808、按键和显示液晶模块。总体框图如下:3.2 压力测量电路压力测量使用摩托罗拉公司的mpx4115传感器,采集电路以此为核心,为了克服干扰,在mpx4115输出电路中增加了RC滤波电路。如下图所示:3.3 系统总体仿真电路压力计检测系统在protues仿真的硬件电路如下所示:图3.1 系统总体仿真图mpx4115的输出的电压信号0.2V-0.5v送至adc0808的0通道,ad转化后的8位数字信号送给单片机P1口,经单片机分析处理数据后经P0口送液晶显示。按键控制量程的转换,00.00-10.00kpa和10.0-1

11、00.0kpa两个量程,显然整数是两位时的现实精度高。红色LED亮表示此时的量程为00.00-10.0kpa,黄色LED亮表示此时的量程为10.0-100.0kpa。显示界面利用16x1的字符型液晶LM020L进行显示,相比LED显示能显示更多的内容,人机界面更友好,而且节省单片机硬件资源。 4 软硬件仿真调试及性能分析4.1数字量到压力值的标度变换Mpx4115压力传感器检测的范围是10kpa-100kpa,输出电压信号0.2v-4.8v。adc0808的参考电压Vref+=5v,Vref-=0v。则(0v-5v)对应(0-255),(0.2v-4.8v)对应(10-246)。如下图所示:4

12、.1.1系统最小分辨率即当压力值变换了0.424kpa系统便能检测到。4.2系统protues仿真运行图4.2.1 开机logo画面,显示“welcome! Good!”图4.1 开机显示图4.2.2 两位整数模式压力值正常显示:图4.2 两位数正常显示4.2.3 两位整数模式超量程显示:图4.3 两位数超量程显示4.2.4 三位整数模式显示1:图4.4 三位数显示14.3.4三位整数模式显示2:图4.5 三位数显示2 5 总结通过这次测控系统课程设计,我不仅加深了对测控系统理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新能力,从而不断地战胜自己,超越自己。创新可以

13、是在原有的基础上进行改进,使之功能不断完善,成为自己的东西。 在确定课题后,设计有要求量程切换,这是在以前书本中都不曾提过的应用,我们根据现实生活中,和在实验室接触的仪表中,将量程切换定义为:小量程(xxXx)现实到小数点百分位,大量程(xxx.x),虽然整数可以显示到百位,但是只能够显示到小数点十分位,这样就没有小量程显示准确了。在按键子程序中要达到量程转换的目的,定义一个位变量,key_count,每次按键后,key_count先取反,再判断key_count的值,若是0表示的是两位整数显示模式,1则表示三位整数显示的模式。通过这次课程设计,我学到了许多知识,这些知识都是在实践中才能够点滴

14、积累的。在做该课程设计过程中遇到困难的时候,不要忘记学习除了一个人独自琢磨外还应多与同学切磋,一个人学习容易走进死胡同,而且进入死胡同后会大大的打击做设计的积极性,这时候应与同学多交流,从一个新的角度去看待问题、分析问题、解决问题,会有耳目一新的感觉。再做起设计来事倍功半,最主要的是,从课程设计中学会了把课本上的理论知识实践化。.6 参考资料1王福瑞等单片微机测控系统设计大全北京航空航天大学出版社,19992现代测控技术与系统 韩九强 清华大学出版社 2007.93智能仪器 程德福,林君主编 机械工业出版社 2005年2月4测控仪器设计浦昭邦,王宝光主编 机械工业出版社 20015Keil C

15、51帮助文档7 参考程序源程序如下:/*/* 基于MPX4115的压力计设计 */* 输入压力信号10100kpa,输出0.24.8v电压信号 */* ad转换采用adc0808,05v对应00hffh */* 0.24.8v对应ah(10)f5h(246) */* 标度变换pressure=(100-10)/(246-10)*(B-10)+10 */* version:0.01 */*/#include#include#define uchar unsigned char#define uint unsigned int#define dataport P0 /数据端口sbit busy=P

16、07;sbit adc_cs=P20;sbit lcd_rs=P21;sbit lcd_rw=P22;sbit lcd_e=P23;sbit led1=P24;/两位数,xx.xx,默认两位数sbit led2=P25;/三位数,xxx.xsbit key=P26; /量程转换sbit adc_oe=P27;bit key_count;/量程表示,0两位,1三位uchar time5s_count;uchar press_bai;uchar press_shi;uchar press_ge;uchar press_dot1;/十分位uchar press_dot2;/百分位uchar k;/量

17、程转换的放大倍数,两位10,三位100uint temp;float press;uchar code str0_0=welcome! good!;/开机logo(15)uchar code str0_1=press: kpa!;/正常显示检测(14)uchar code str1=over!;/超过了满量程void delay(uchar x)uchar y,z;for(y=x;y0;y-)for(z=110;z0;z-);/*=注意:后8个字符的地址是从80+40开始的=*/检测lcd忙函数void check_busy()dodataport=0xff;lcd_rs=0;lcd_rw=1

18、;lcd_e=0;lcd_e=0;/相当于_nop_()lcd_e=1;while(busy=1);/LCD写命令void write_com(uchar com)dataport=com;lcd_rs=0;/命令lcd_rw=0;/写lcd_e=0;check_busy();/判断LCD是否忙碌lcd_e=1;delay(1);/lcd_e=0;/LCD写数据void write_data(uchar date)dataport=date;lcd_rs=1;/数据lcd_rw=0;/写lcd_e=0;check_busy();lcd_e=1;delay(1);/写显示一个字符函数void w

19、rite_number(uchar dat,uchar add)/形参:显示数据,显示地址write_com(0x80+add);/显示数据的地址write_data(0x30+dat); /送数字ASCII码 void disp_init()uchar i;adc_oe=0;write_com(0x01);/清屏并光标复位write_com(0x30);/设置8位、2行、5*7点阵/write_com(0x0f);/显示开,允许闪烁write_com(0x0c);/光标不显示,不闪烁write_com(0x14);/文字不动,光标自动右移write_com(0x80);/显示起始地址for(i=0;i15;i+)/开机logowrite_data(str0_0i);/显示welcome! good!for(i=0;i100;i+)/开机logo延时时间delay(100);write_com(0x01);/清屏并光标复位write_com(0x80);/显示的起始地址for(i=0;i=100)/超过了满量程,显示over!write_com(0x80+6);/显示的起始地址for(i=0;i=100)/超过了满量程,显示over!writ

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1