ImageVerifierCode 换一换
格式:DOC , 页数:48 ,大小:1.06MB ,
资源ID:3326908      下载积分:14 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(基于单片机的温度及压力智能控制系统设计.doc)为本站上传会员【精***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于单片机的温度及压力智能控制系统设计.doc

1、基于单片机的温度及压力智能控制系统设计摘 要本文设计了以AT89C51单片机为核心的温度和压力控制系统的工作原理以及设计方法。温度信号由温度传感器PT100采集,再由变送器将信号变换为0-5V的信号给PCF8591芯片。单片机最后通过IIC总线将模拟量信号读回来或者发送出去。压力信号也是由压力传感器采集回来,再由变送器变换为0-5V的电压信号给PCF8591芯片。PCF8591芯片是支持4路模拟量输入,1路模拟量输出的8位芯片,并且支持IIC总线,最大可以同时接8个同样的芯片。单片机将采集回来的信号通过计算与解决后将温度和压力值显示在LCD1602液晶上,设计中介绍了控制系统的硬件电路,涉及:

2、温度、压力检测电路、温度控制电路、压力控制电路、电源电路、报警电路、显示电路、单片机最小系统电路、按键电路和其他一些单片机的接口电路。本设计中还介绍了软件程序编写部分,都采用模块化的结构编程。软件程序部分重要涉及:主程序、显示程序、温度和压力采集子程序、按键子程序、控制输出子程序等。关键词: A/D转换;单片机;温度及压力采集;智能控制AbstractIn this paper, the design of the working principle and designing method of AT89C51 microcontroller as the core to the tempe

3、rature and pressure control system. Temperature signal from the temperature sensor PT100 acquisition, and then by the transmitter signal into the 0-5V signal to the PCF8591 chip. SCM through IIC bus to analog signals read back or send out. The pressure signal is returned from the pressure sensor, th

4、e transmitter is converted to the 0-5V voltage signal to the PCF8591 chip. The PCF8591 chip is supported by 4 analog input, 8 bit chip 1 analog output, and support for IIC bus, the maximum can connect 8 of the same chip. SCM will the collected signals through the calculation and processing after the

5、 temperature and pressure values are displayed in the LCD1602 crystal, the design introduces the hardware circuit, control system includes: temperature, pressure detecting circuit, temperature control circuit, pressure control circuit, power supply circuit, alarm circuit, display circuit, MCU minimu

6、m system circuit, a key circuit and some other mcu. This design also describes the software programming, the programming modular structure. The software includes: main program, display program, temperature and pressure acquisition subroutine, subroutine keys, control output subroutine.Keywords: A/Dt

7、ransformation temperature and pressure acquisition intelligent control;目 录1 绪论1.1研究背景及现状单片机自从20世纪70年代产生以来,已经广泛地应用在工业自动化控制、自动检测、机电一体化设备、智能仪器仪表、家用电器、汽车电子等各个方面。单片机具有功能齐全,抗干扰能力强,应用可靠,前景广阔,简朴方便等优点。此外,单片机还具有体积小、应用灵活性强、性能价格比高等特点,在嵌入式微控制系统中具有非常重要的地位。从工业自动化、智能仪器仪表、自动控制、消费类电子产品等方面直到国防尖端技术领域,单片机都起着十分重要的作用。近些年来

8、,随着微机的发展,单片机的应用在人们的平常生活和工作中显得越来越重要。工业过程控制也是它的一个重要应用领域。由单片机而构成的嵌入式系统越来越受到世人的关注。因此,可以毫不夸张的说,没有单片机的仪器不能算是先进的仪器,没有单片机的过程控制系统不能称做是智能控制系统。温度控制是与人们平常生活息息相关的,在各个领域温度的控制都有不同的意义。很多控制领域中都有大量的用电来加热的设备,比如用于热解决的电加热炉,用于融化金属的电阻炉以及温度控制箱等。使用单片机来对它们进行控制不仅具有控制方便、灵活性大、简朴等一些特点,并且还可以大大提高产品的质量,通常单片机将采集到的温度数据与设定的温度上、下限进行比较,

9、并由此作出判断是否启动继电器来启动加热设备,在设计中通常还加入常用的LCD液晶显示或者LED显示等常用的显示电路,使得整个设计更加灵活、完全。国内外的温度控制系统发展都非常迅速,并在智能化、参数自整定、自适应等方面取得了不同的成果。目前的温度控制大多都是采用智能调节器,国产调节器的精度和分辨率比较国外的较低,温度的控制效果也不是很抱负但价格非常便宜,国外的调节器精度和分辨率都比较高,价格较贵。德国、美国、日本、瑞典等技术领先,都生产出了商品化的,性能优异的温度控制器以及仪器仪表,并在各个行业已经广泛应用。压力的测量对于实时监测以及安全生产都具有非常重要的意义。在工业应用中,为了高效并且安全的生

10、产,就必须要有效的控制生产过程中的一些重要数比诸如压力、温度、流量等重要参数。由于压力的控制在一般生产过程中都起着决定性的安全作用,因此更有必要准确的测量压力。为了测得不同位置的压力数据,本设计的压力测量系统。通过压力传感器将需要测量的压力信号转变为电信号,再由变送器最终转换为0-5V的电压信号给PCF8591AD-DA芯片。单片机通过IIC总线将模拟数据读回来再根据变换公式做数据解决,最终将温度和压力值显示在LCd1602上。芯片转换时间受IIC总线速率影响,可以最大支持8个相同的PCF8591芯片,即最大支持32路模拟量输入,8路模拟量输出。键盘输入是单片机控制系统常用的实现人际对话的输入

11、设备。通过键盘,向单片机控制系统输入各种数据或者命令,也可以通过键盘,设立单片机控制系统工作于预定的模式。1.2 实现温度及压力智能控制的意义温度、压力都是过程生产中非常重要的参数,它们是生产过程中判断设备是否正常运营的关键因素。在生产过程中对于温度和压力的控制也就显的极为重要。比如在化工生产过程中,压力能影响物料平衡,也能影响化学的反映速度,是标志着生产过程是否可以正常进行的极为重要的参数。从安全生产的角度,压力的检测也是很重要的。如:保证压力容器内的压力值要在安全的指标之内,保证易燃易爆等介质的压力不能超标等等。总之,温度与压力的检测是通常是生产过程中不可缺少的环节,只有严格按照生产工艺的

12、规定来保持温度及压力的稳定,才干保证生产的正常进行。因此温度及压力准确测量与控制在现实生活中是非常重要的。2 系统方案设计及论证2.1温度、压力采集方案选择2.1.1温度采集方案比较1.使用DS18B20模块本方案的优点是:采集温度精度较高,接线简朴;缺陷:单总线方式,当系统需要扩容时要此外占用单片机管脚资源。并且远距离传输时,由于是单总线方式,不能传到太远。2.普通热敏电阻优点:价格低廉缺陷:电路设计相对较为复杂些,精度低。3.PT100铂电阻方式优点:精度高,使用方便,配合专用的变送器能远距离传输。缺陷:价格较为低廉2.1.2压力采集方案1.压力传感器配合变送器方式优点:价格相对低廉,可靠

13、性高,能较远距离传输,精度较高缺陷:相对带通信功能的压力模块,扩容是需要占用AD通道2.压力采集带通信专用模块优点:采集精度高,更智能,扩容时不需要占用任何硬件资源缺陷:造价高。本设计中温度采集选用PT100铂电阻的测温方式,PT100铂电阻传感器会根据温度的不同,自身阻值也会有相应的变化,专用的变送器只需要街上PT100铂电阻及电源就可以输出标准的4-20mA或者是0-20mA信号,本设计选用输出0-20mA信号,选用电流信号是由于当较远距离传输时变送器相称于恒流源输出,减小线路阻值带来的误差,当接到本设计中的控制板时,再通过串接250欧姆的电阻来将电流信号转换为0-5V的电压信号。压力采集

14、方案选用压力传感器配合变送器方式,压力采集原理也是如此,不同的是前端传感器不是PT100而是压力传感器。接线示意图如图2-1所示。设计温度控制输出采用开关量的输出方式,控制原理为当温度实际值大于等于温度上限值时停止加热,当温度实际值小于等于下限值时,开始加热。压力控制方式采用外接变频器控制电机,进而控制管道压力的方式,原理为当压力实际值小于等于下限值时,控制板将电机的供电,并给变频器输入相应的控制值,控制算法采用建议的模糊控制算法,即在一定的时间内检测到前后两次的压力值变化的大小,假如变化很小,说明给出的值小了,需要加大此值,假如变化一般,说明给出的值合适,假如变化很大,说明给出的值大了,需要

15、减小此值。本设计默认分为6档判断。即压力差值的6个档位分别为小于等于0.05MPa;大于0.05MPa并且小于等于0.1MPa;大于0.1MPa并且小于等于0.15MPa;大于0.15MPa并且小于等于0.2MPa;大于0.2MPa并且小于等于0.25MPa;大于0.25MPa并且小于等于0.3MPa;图2-1 接线示意图2.2系统结构总框图 本控制系统的主控部分由单片机AT89C51构成。通过按键电路可以进行温度及压力的上、下限值的设定,温度及压力的实际值通过PCF8591AD-DA芯片采集,模拟量的输出也是通过PCF8591芯片输出的。当压力超过报警限值时,有蜂鸣器报警。显示部分用的重要期

16、间是LCD1602液晶屏。按键部分采用四按键的方式进行设定,温度及压力的开关量输出方式使用继电器。电源需要外接+5V的干净电源。图2-2系统结构总框图2.3 单片机的选择单片机AT89C51是美国的ATMEL公司生产的一款低电压、高性能的CMOS的8位单片机,芯片内部具有4K字节的可擦写的只读程序存储区以及128个字节的数据存储器,该芯片是采用高密度和非易失性存储技术生产的,兼容了以往标准的MCS-51产品的指令系统,单片机片内具有通用的8位中央解决器,AT89C51单片机具有不错的性价比以及可靠性和应用性,此单片机可以灵活的应用在各种控制领域之中。AT89C51芯片提供以下一些标准的功能:(

17、1).4K字节的闪存(2).128字节的内部数据存储区(3).32个I/O口线,可以输入或者输出(4).两个16位定期或者计数器(5).一个5向量两级的中断结构(6).有一个全双工的串行口单片机(AT89C51)的工作可以降至0HZ的静态的逻辑操作,并且还支持两种可以通过软件来选择节约电能的工作模式:(1).空闲工作方式:停止单片机的工作,但是允许数据存储器(RAM)、定期或者计数器、通信口以及中断程序的工作。(2).掉电的方式:保存数据存储器(RAM)中的内容,但是单片机的晶振电路停止工作并且严禁其它所有部件的工作一直到下一个硬件复位。AT89C51引脚图如图2-3所示。图2-3 AT89C

18、51单片机引脚图引脚功能说明:Vcc:电源电压正 GND:电源电压负 P0口:P0口是8位的漏极开路型的双向I/O口,即地址或者数据总线的复位口。假如P0口作为输出端口时,每个端口能驱动8个逻辑门电路,假如对端口写“1”时,可以作为高阻抗输入端口来使用。假如在访问外部数据存储器或者程序存储器的时候,这组口线分时转换地址(低8位)和数据总线复用,此时的P0端口激活内部的上拉电阻。 P1口:P1端口是带有内部上拉电阻的8位的双向口。P1端口的输出可以驱动(输入或输出)4个TTL逻辑门电路。假如对端口写“1”时,通过内部的上拉电阻把端口拉到高电平,此时可以当作输入端口使用。由于内部存在上拉电阻,假如

19、某个引脚被外部信号拉低时会输出一个电流。P2口:P2端口是带有内部上拉电阻的8位的双向口,P2端口可以驱动(输入或输出电流)4个TTL逻辑门电路。假如对端口写“1”,通过内部的上拉电阻把P2端口拉到高电平,此时P2端口可以作为输入口。P3口:P3端口是带有内部上拉电阻的8位的双向口。P3端口输出缓冲级可以驱动(输入或输出)4个TTL逻辑门电路。假如P3端口写入“1”时,他们被内部上拉电阻拉高并可作为输入口。此时,被外部拉低的P3端口将用上拉电阻输出电流。P3端口还接受一些用于闪存编程和程序校验的控制信号。 RST:复位。当单片机工作时,复位引脚假如有两个机器周期以上的高电平信号就可以让单片机复

20、位。 XTAL1、XTAL2:振荡器输入端。 2.4 温度传感器pt100是铂热电阻,铂电阻的阻值会随着温度的不同而改变。PT字符后的100即表达此电阻在0时的阻值为100欧姆,当它在100时它的阻值大约为138.5欧姆。工作原理:当PT100铂电阻在0的时候它的阻值大约为100欧姆,它的阻值会随着温度上升而近似匀速的增长。但是它们之间的关系却并不是简朴的正比的直线关系,而是更趋近于一条抛物线。铂电阻阻值随温度变化的计算公式如下:-200t0 Rt=R01+At+Bt*t+C(t-100)t*t*t (1) 0t850 Rt=R0(1+At+Bt2) (2) Rt为当t时的铂电阻的电阻值,R0

21、为当0时的铂电阻的阻值。公式中的A,B,系数都是实验测定的。标准的 DIN IEC751系数:A=3.9083E-3、 B=-5.775E-7、 C=-4.183E-12 。根据韦达公式求得阻值大于等于100欧姆的Rt -t的换算公式: 0t850 t=(sqrt(A*R0)2-4*B*R0*(R0-Rt)-A*R0)/2/B/R0 PT100铂电阻温度传感器器是一种以白金(Pt)作成的电阻式的温度检测器,属于正阻系数,它的电阻和温度变化的关系式如下:R=Ro(1+T)式中=0.00392,Ro为100(在0的电阻值),T为摄氏温度因此白金作成的电阻式温度检测器,又称为PT100。 2.5 压

22、力传感器液压压力传感器是工业中最为常见的一种压力传感器,它广泛应用于各种工业自控的环境中,涉及石油管道、铁路交通、水利水电、生产自控、智能建筑、航空航天、石化、军工、电力、油井、船舶、管道送风、机床、锅炉负压等等众多的行业。工作原理:液压压力传感器的工作原理为压力直接作用在传感器的薄膜片上,使膜片产生与介质压力成正比的微小位移,让传感器的电阻发生了变化,再用电子线路检测这一变化,并且转换输出一个相应于这个压力的标准的电信号。常见参数:全密封、平膜型不锈钢焊接结构、高灵敏度、小体积、零点满度可调节。 应用领域:液压、中央空调系统 、压铸、恒压供水、机械、机车制动系统轻工、冶金、环保、石化、空压机

23、等其他自动控制系统 。实物图如图2-4所示。图2-4 平模传感器量 程: -0.1011000(MPa) 输出信号: 420mA(二线制)、05V、15V、010V(三线制) 综合精度: 0.1%FS、0.25%FS、0.5%FS供电电压: 24DCV(936DCV) 介质温度: -2085150 环境温度: 常温(-2085) 量程温度漂移: 0.05%FS 零点温漂移: 0.05%FS补偿温度: 070 安全过载: 150%FS 极限过载: 200%FS 响应时间: 5 mS(上升到90%FS) 绝缘电阻: 大于2023M (100VDC) 负载电阻: 电流输出型:最大800;电压输出型:

24、大于5K 密封等级: IP65 长期稳定性能: 0.1%FS/年 振动影响: 在机械振动频率20Hz1000Hz内,输出变化小于0.1%FS 机械连接(螺纹接口):M201.5等,其它螺纹可依据客户规定设计电气接口(信号接口): 紧线螺母+四芯屏蔽线 2.6 A/D-D/A转换器PCF8591芯片是一个单片集成、低功耗、单独供电、8-bit CMOS数据获取器件。PCF8591具有4个模拟量输入、1个模拟量输出以及1个串行IC总线接口。PCF8591芯片的3个地址引脚A0、 A1和A2可以用于硬件地址编程,允许在同个IC总线上最多接入8个PCF8591器件,而不需要额外的硬件。在PCF8591

25、芯片上输入输出的地址和控制和数据信号都是通过双线双向IC总线以串行的方式进行传输的。PCF8591的功能涉及多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。PCF8591的最大转化速率由IC总线的最大速率决定。AIN0AIN3:模拟信号的输入端。A0A3:引脚的地址端。VDD、VSS:电源端。(2.56V)SDA、SCL:IIC总线的数据线、时钟线。OSC:外部时钟的输入端,内部时钟的输出端。EXT:内、外部时钟选择线,使用内部时钟时EXT要接地。AGND:模拟信号接地端。图2-5 PCF8591引脚图2.7液晶LCD1602LCD1602字符型的液晶显示模块是一种专门用于

26、显示字母、符号、数字等点阵式的LCD,目前常用的有16*1、16*2、20*2以及40*2行等样式的模块。下面以长沙太阳人电子有限公司的生产的LCD1602字符型液晶显示器为例,来做简朴的介绍。一般的LCD1602字符型液晶显示器实物如图2-6所示:图2-6 LCD1602液晶实物图3 锅炉温度和压力控制系统硬件电路的设计3.1 最小单片机系统 单片机的最小系统,是指用最少的元器件组成的并可以正常工作的单片机系统,对本设计来说,单片机最小系统应当涉及:单片机,晶振电路以以及复位电路。3.1.1 晶振电路典型的晶振值一般取11.0592MHz(由于可以准确地计算得到9600波特率和19200波特

27、率,常用用于有串口通讯的场合)/12MHz。在图3-1中,晶振Y2与电容C8、C9构成了单片机的晶体振荡电路。本设计当中的晶振选用的是无源晶振,晶振为11.0592MHz。起振电容选用的是两个22pF的小电容。 图3-1 晶振电路3.1.2 复位电路在图3-2中,S2、C6及R18构成了复位电路。此单片机是高电平复位,即当按键S1按下时,单片机的RST引脚被拉高,单片机被复位;当按键S1松开后,单片机的RST引脚被下拉电阻R18拉低,单片机开始执行用户程序。电容C6是滤波电容,防止按键S1按下的瞬间,单片机的RST引脚电平信号抖动,影响单片机的工作。图3-2复位电路刚上电的时候或者触动按钮后C

28、6两端的电压为0,这时RST为高电平,而它高电平保持的时间是由电阻R18和电容C6的时间常数决定,由公式(3-1)可知,电容C6充电的时间常数等于0.22ms,远远大于2s,即使复位管脚RST高电平的时间保持2s以上,保证了单片机正常复位。 R*C (3-1) 3.2 温度及压力采集电路设计如图3-3所示,PCF8591芯片是一个带4路模拟量输入,1路模拟量输出以及IIC总线的芯片。此IIC总线上最多可以挂8片PCF8591芯片。温度采集占用第一路模拟量采集通道即AN0,压力采集占用模拟量采集通道第二路即AN1。模拟量输出接AOUT即J6。此处的信号电平都是0-5V的电平信号。图3-3模拟量采

29、集模块3.3温度及压力控制输出电路设计 温度及压力控制输出电路如图3-4所示。图中控制原理石油PNP三极管控制继电器,从而控制外界强电。Q1部分电路为温度控制电路,Q2部分电路为压力控制电路。以Q1部分电路举例来说明此部分电路的工作原理,Q1与Q2部分的电路原理是同样的。D2是指示灯,R3是限流电阻,当P3.0为高电平时,Q1截至,继电器不吸合,当P3.1为低电平时Q1导通,继电器吸合。当继电器吸合时,指示灯亮,继电器不吸合时,指示灯灭。图3-4温度及压力控制输出电路3.4键盘及显示电路显示器件用LCD1602,如图3-5所示。排阻Rp2为P0口的上拉电阻。单片机管脚P2.4、P2.5、P2.

30、6、P2.7分别相应按键S3、S4、S6、S7。按键S3为菜单(拟定)键,S4为设立高位按键,S6为设立中位按键,S7为设立低位按键。高、中、低位按键都是每按一次相应位置数据加一。设立好后按S3拟定键。设立顺序分别为设立温度上限,压力上限,温度下限,压力下限。最后设立完后按拟定键S3则退出设立环境。图中的D8为模拟量采集指示灯。正常运营时D8会每隔几秒就闪烁一次。图3-5键盘及显示电路3.6 报警电路设计本系统采用蜂鸣器报警的方式来发出报警信息。图3-6中U5为蜂鸣器,三极管Q3为驱动三极管,R5为限流电阻,当单片机管脚P3.3为高电平时,三极管Q3截至,蜂鸣器不发声;当单片机管脚P3.3为低

31、电平时,三极管Q3导通,蜂鸣器发出声音。来达成报警提醒的功能。本设计只设计了压力报警提醒,当压力实际值超过设定的报警限值时,蜂鸣器会发出声音报警,当压力实际值在正常范围内时,蜂鸣器停止发声。图 3-6 报警电路3.7电源电路设计 在图3-7中D9为电源指示灯,R6为限流电阻,电容C10与C11都为滤波电容。本设计选用外界直流5V电源的方式供电。图3-7电源电路4 系统软件设计4.1系统总流程图设计 系统程序的流程图如图4-1所示。图4-1系统程序流程图上电后,系统一方面初始化,初始化完毕后开始采集模拟量值,判断按键程序,之后再判断各值是否在正常范围内,假如不在范围内做出相应的操作。最后输出控制

32、逻辑。4.2部分程序说明 程序部分大体分为主程序、LCD显示程序、模拟量采集程序、模拟量输出程序、按键设立程序、自动控制程序等部分。4.2.1主程序main() LCD_Initialise();/LCD初始化AD_CHANNEL=0;T_OUT=1; /关闭温度输出alarm_OUT=1; /关闭报警输出 while(1) ISendByte(PCF8591,0x41); D0=IRcvByte(PCF8591); /ADC0 模数转换1 Delay_1ms(5); Convert_To_Voltage(D0,0); /求温度LCD_Line_12=Voltage2;LCD_Line_13=

33、Voltage1;LCD_Line_15=Voltage0; ISendByte(PCF8591,0x40); D1=IRcvByte(PCF8591); /ADC0 模数转换1 Delay_1ms(5); Convert_To_Voltage(D1,1); /求压力LCD_Line_22=Voltage2;LCD_Line_24=Voltage1;LCD_Line_25=Voltage0;P_time=P_time+1; /时间计数 /* ISendByte(PCF8591,0x42); D2=IRcvByte(PCF8591); /ADC2模数转换3 ISendByte(PCF8591,0

34、x43); D3=IRcvByte(PCF8591); /ADC3 模数转换4*/ while (menu_bit=1) key_read(); /按键读取函数 P0=0X0e; /显示开,光标开,闪烁 lcd_enable(); if (set_bit=0)|(set_bit=2) key_set(); /按键设立 elseif (set_bit=1)|(set_bit=3) key_set1(); /按键设立 if (set_bit=0)|(set_bit=1) P0=0X80; /设立第1行显示地址 else if (set_bit=2)|(set_bit=3) P0=0XC0; /设立

35、第2行显示地址 lcd_enable(); /调用LCD显示设立函数 if (set_bit=0)|(set_bit=1) write_h(); / else if (set_bit=2)|(set_bit=3) write_l(); / key_read(); /按键读取函数RC4、RC5、RC6、RC7分别为四个按键,按下瞬间,Trg值分别为16,,3,64,128 if (Trg=16) /菜单键按下时 bai=TH/100; shi=TH%100/10; ge=TH%10; menu_bit=1; /菜单键标志 auto_t_p(); /自动控温及控压子程序 Delay_1ms(5);

36、 DACconversion(PCF8591,0x40, D2); /DAC 数模转换 LCD_Display_A_Line(0x00, LCD_Line_1); LCD_Display_A_Line(0x40, LCD_Line_2); 4.2.2 LCD显示程序bit LCD_Busy_Check() /LCD忙检测 bit Result; /结果标志位LCD_RS = 0;LCD_RW = 1;LCD_EN = 1;Delay4us(); /延时4usResult = (bit)(P0&0x80);LCD_EN = 0;return Result; /输出结果标志位void LCD_Wr

37、ite_Command(uchar cmd)/LCD控制命令 while(LCD_Busy_Check(); /while循环LCD_RS = 0;LCD_RW = 0;LCD_EN = 0;_nop_(); /短延时_nop_();P0 = cmd;Delay4us();/延时4usLCD_EN = 1;Delay4us();LCD_EN = 0;void LCD_Write_Data(uchar dat) /LCD写数据while(LCD_Busy_Check(); /while循环LCD_RS = 1;LCD_RW = 0;LCD_EN = 0;P0 = dat;Delay4us();L

38、CD_EN = 1;Delay4us();LCD_EN = 0; void LCD_Initialise() /LCD初始化 LCD_Write_Command(0x38);Delay_1ms(5);LCD_Write_Command(0x0c);Delay_1ms(5);LCD_Write_Command(0x06);Delay_1ms(5);LCD_Write_Command(0x01);Delay_1ms(5);void LCD_Set_Position(uchar pos) /LCD设立显示位置LCD_Write_Command(pos | 0x80); void LCD_Displa

39、y_A_Line(uchar Line_Addr,uchar s) /LCD显示行设立 uchar i;LCD_Set_Position(Line_Addr);for(i=0;i16;i+) LCD_Write_Data(si);4.2.3 模拟量采集程序void Convert_To_Voltage(unsigned long int val,uchar a) /数据转换,转换到电压值 if (a=0) /求温度 val=100*val/26 ; /数据转换Voltage2 = val/100+0;Voltage1 = val%100/10+0;Voltage0 = val%10+0;T_R

40、=(Voltage2-0)*100+(Voltage1-0)*10+(Voltage0-0); /温度实际值 else /求压力 val=100*val/255 ;/数据转换Voltage2 = val/100+0;Voltage1 = val%100/10+0;Voltage0 = val%10+0;P_R=(Voltage2-0)*100+(Voltage1-0)*10+(Voltage0-0); /压力实际值/*DAC 变换, 转化函数 */bit DACconversion(unsigned char sla,unsigned char c, unsigned char Val) St

41、art_I2c(); /启动总线 SendByte(sla); /发送器件地址 if(ack=0)return(0); SendByte(c); /发送控制字节 if(ack=0)return(0); SendByte(Val); /发送DAC的数值 if(ack=0)return(0); Stop_I2c(); /结束总线 return(1);/*ADC发送字节命令数据函数 */bit ISendByte(unsigned char sla,unsigned char c) Start_I2c(); /启动总线 SendByte(sla); /发送器件地址 if(ack=0)return(0); SendByte(c); /发送数据 if(ack=0)return(0); Stop_I2c(); /结束总线 return(1);/*ADC读字节数据函数 *

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服