冷库温度监测仪的设计 【毕业设计+开题报告+文献综述】

冷库温度监测仪的设计 【毕业设计+开题报告+文献综述】

ID:438293

大小:802.54 KB

页数:42页

时间:2017-08-02

上传者:U-944
冷库温度监测仪的设计 【毕业设计+开题报告+文献综述】_第1页
冷库温度监测仪的设计 【毕业设计+开题报告+文献综述】_第2页
冷库温度监测仪的设计 【毕业设计+开题报告+文献综述】_第3页
冷库温度监测仪的设计 【毕业设计+开题报告+文献综述】_第4页
冷库温度监测仪的设计 【毕业设计+开题报告+文献综述】_第5页
资源描述:

《冷库温度监测仪的设计 【毕业设计+开题报告+文献综述】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

本科毕业设计开题报告电气工程及其自动化冷库温度监测的设计一、综述本课题国内外研究动态,说明选题的依据和意义进入21世纪后,特别在我国加入WTO后,国内产品面临巨大挑战。各行业特别是传统产业都急切需要应用电子技术、自动控制技术进行改造和提升。例如纺织行业,温度是影响纺织品质量的重要因素,但纺织企业对温度的测控手段仍很粗糙,十分落后,绝大多数仍在使用干湿球湿度计,采用人工观测,人工调节阀门、风机的方法,其控制效果可想而知。制药行业里也基本如此。而在食品行业里,则基本上凭经验,很少有人使用温度传感器。值得一提的是,随着农业向产业化发展,许多农民意识到必需摆脱落后的传统耕作、养殖方式,采用现代科学技术来应付进口农产品的挑战,并打进国外市场。我国已引进荷兰、以色列等国家较先进的大型温室四十多座,自动化程度较高,成本也高。国内正在逐步消化吸收有关技术,一般先搞调温、调光照,控通风;第二步搞温湿度自动控制及CO2测控。此外,国家粮食储备工程的大量兴建,对温度测控技术提也提出了要求。但目前,在湿度测试领域大部分元件性能还只能使用在通常温度环境下。在需要特殊环境下测的应用场合大部分国内包括许多国外湿度传感器都会“皱起眉头”!例如在上面提到纺织印染行业,食品行业,耐高温材料行业等,都需要在高温情况下测量温度高分子电容式温度传感器通常都是在绝缘的基片诸如玻璃、陶瓷、硅等材料上,用丝网漏印或真空镀膜工艺做出电极,再用浸渍或其它办法将感湿胶涂覆在电极上做成电容元件。国外厂家比较优质的产品主要使用聚酰胺树脂,产品结构概要为在硼硅玻璃或蓝宝石衬底上真空蒸发制作金电极,再喷镀感湿介质材料(如前所述)形式平整的感湿膜,再在薄膜上蒸发上金电极.虽然,测温性能还算可以但其耐温性、耐腐蚀性都不太理想,在工业领域使用,寿命、耐温性和稳定性、抗腐蚀能力都有待于进一步提高。10 陶瓷温度传感器是近年来大力发展的一种新型传感器。优点在于能耐高温,湿度滞后,响应速度快,体积小,便于批量生产,但由于多孔型材质,对尘埃影响很大,日常维护频繁,时常需要电加热加以清洗易影响产品质量,易受湿度影响,在低高温环境下线性度差,特别是使用寿命短,长期可靠性差,是此类湿敏传感器迫切解决的问题。通过正在Harnes建造法国最大冷藏库,冷冻薯片制造商McCain计划于2010年4月将其在8个较小的本地冷藏库中储存的货物集中起来,这将明显减少运输费用。由于这个独一无二的高密度中央冷库——112米长、100米宽、38米高,共容纳了68000个搁板——使用最先进的建筑技术,能源费用预计将比目前常规情况减少45%。-24℃条件下、7条通道上的9个吊车和2个主要的库区可以自动装卸如法国薯条之类的冷冻食品。700米长的轧辊和链式输送机连接两个主要库区,保证食品在生产区、进货区、储藏仓库、选择区、配送区的快速流动。Inland冷藏库公司在美国加利福尼亚Stockton建立了先进的冷库设施。这个12000m2拥有15200个货架搁板位置的配送中心包括:从-20℃至-45℃冷冻和冷藏食品的储存,一个有20个卷帘门的18m封闭冷藏月台,RFID(射频识别)扫描和实时库存跟踪。EastPack,新西兰最大的猕猴桃加工包装公司之一,第一个采用了新的RFID技术和PeacockBros开发的室内运输管理供应链解决方案,能在以厘米为单位的精度范围内持续跟踪所有叉式起重车和托盘的运输。这种连续监测提供了关于货物位置、质量、过期数据的盘点报告,同时分析室内运输的特征以保证冷藏库的最佳效率。二、研究的基本内容,拟解决的主要问题:(1)研究的基本内容设计一台冷库温度监测仪。(1)测温范围-50℃~50℃,精度1℃。(2)每5分钟记录一个数据,能连续记录10天以上的数据。(3)有不间断电源功能,停电状况下可以工作24小时以上。(4)可以与计算机联机传输数据。(2)拟解决的主要问题1、对设计的产品的整体功能的理解。2、对原理图的绘制。3、PCB的绘制。10 4、制作实物,以及调试。三、研究步骤、方法及措施:研究步骤:在2010年11月-2010年12月完成外文翻译、文献综述、开题报告等工作。在2011年1月-2011年3月,设计,制作,调试电路。在2011年1月-2011年4月,撰写论文。2011年5月完成答辩和成绩评定。方法及措施:通过阅读各种相关文献和材料,询问相关老师一些专业方向的知识,自己归纳总结,经过实践完成论文的设计。四、参考文献[1]齐怀琴,高精度温度测量仪的研究.电子测量与仪器学报,2001,1:20-23[2]玉林师范学院学报,2001.2,56—57.[3]李波,基于CAN总线冷库温度测控系统.电子测量技术,2002.2,22,-40[4]李福良,基于模拟比较技术的高精度测温方法.自动化与仪器仪表,2003.6,32—34[5]李小波,多点、多分度号、远距离温度采集和记录系统.自动化与仪表,2002,26-2810 毕业设计文献综述电气工程及其自动化冷库温度监测仪的设计引言根据系统的功能需要,本着节约开发成本、增加系统可扩展性、提高系统可靠性、降低系统功耗的原则进行温湿度监测系统的硬件设计。本系统采用单片机DS18B20作为整个系统的核心,利用单片机现有的接口组织外围硬件模块。为了减少系统面积,降低系统功耗,对于温度测量模块和湿度测量模块都需要进行筛选,选择美国DALLAS公司的一款可编程单总线数字式温度传感器DS18B20进行温度采集、采用RS485总线作为与其他设备通信的接口。以上系统不仅操作简单,成本低,测温准确,省时省力,而且运行可靠,抗干扰能力强。利用已有资源组织外围电路,系统具有可扩展性、外接其他传感器,并添加或修改相应的软件控制程序,就可以实现更多环境参数的参数的测量,也可以将这些系统应用在环境保护、控制、农业生产,以及军事等方面。正文随着冷库技术的普及,各种检测分选系统也逐渐走入人们的视野,不同的检测仪器都有它各自不同的优缺点。以下例举几类常见的检测仪器实现的操作系统:冷藏车冷库专用温度记录仪(ZDR-01)一、测量范围:-40℃~60℃◆精度:±0.5℃◆记录容量:14800~30900组◆记录间隔:2秒~24小时连续可调◆通讯接口:RS-232或USB◆软件:中、英文两种版本功能及特点1、本产品具有体积小,外型美观,操作简单,性能可靠,价格实惠,防水性好,使用寿命长等特点。2、主要功能为:它可以全程跟踪记录冷车温度的变化。记录时间长:15分钟记录一次数据,可记录长达5个月甚至更长的时间。3、整机功耗小:使用内置高能锂电池供电,电池寿命可达一年以上。10 4、软件功能强大,数据查看方便,可将记录仪的保存的数据任意转换成图表形式、WORD或EXCEL文档查看、并可将图表或报表打印出来。软件有中英文两种版本,可任意选择,英文版具有国际通用性。5、记录时间间隔从2秒至24小时任意连续可调,十分方便。6、记录温度数据无法修改,能在食品、冷藏等方面出现问题时提供强有力的调查证据及索赔证据。二、全自动检测分选编带机全自动检测分选编带机是格兰达技术(深圳)有限公司研制的一款全自动检测分选设备,该设备使用高速飞行抓拍检测法,采用双抓手智能协作的方式,兼容JEDEC托盘标准,适用于目前市场常见的有托盘承载的IC封装的外观,背面检测,入带和编带检测,如QFP、SOP、QFN、BGA等,可对多种尺寸的芯片进行生产,是一台功能全、速度快、性价比高的设备。三、智能数字芯片检测仪的研制该仪器设计是由上位PC机软件和检测端组成的智能数字芯片检测仪,检测端由单片机AT89S52数据处理模块、CPLDEPM3256待测芯片控制模块、双通道24位A/DCS5550采样电路、EEPROMAT24C08储存电路、显示电路、过流保护电路组成。该仪式是一种经济、实用、便捷的数字芯片检测系统,能够同时检测两个48管脚以内的DIP封装的数字芯片。拥有良好的人机交互界面,用户可以轻松地添加和编辑芯片检测库,仪器还具有出色的自我保护功能。四、基于SPCE061A的集成芯片检测仪的设计该设计基于凌阳科技SPCE0661A开发板的应用,通过软、硬件结合的方法,对8,14,16各种引脚的集成电路逻辑功能进行编辑,写入、在线调试,并与外围控制电路结合,实现快速的逻辑功能检测,数码管显示和语音播报检测结果。目前,能检测25种不同型号的集成芯片,并且SPCE061A单片机的内存足够容纳更多的程序,可以扩展更多的功能。该系统实现了低成本、高效、简易检测,具有很高的使用价值。小结这套温度监测系统的样机基本上是成功的,能实践以下功能(1)测温范围-50℃-50℃,精度1℃(2)每5分钟记录一个数据,能连续记录10天以上的数据(3)有不间断电源功能,停电状况下可以工作24小时以上(4)可以与计算机联机传输数据。10 主要应用RS485接口标准,DS18B20接口芯片的结构、性能特点及RS485总线在冷库温度检测系统中的应用,给出了以RS485总线为核心的硬件电路设计方法。在设计中我查阅国内外的资料同时也发现自己的动手能力很差,电路图也很繁琐,要减少电路的交叉,让电路明朗化。如果断电时间比较长,超过24小时,这个设计就行不通需要加强.一些外围抗干扰电路本系统不仅操作简单,成本低,测温准确,省时省力,而且运行可靠,抗干扰能力强。利用已有资源,系统具有可扩展性、外接其他传感器,并添加或修改相应的软件控制程序,就可以实现更多环境参数的参数的测量,也可以将这些系统应用在环境保护、控制、农业生产,以及军事等方面。参考文献:[1]齐怀琴,高精度温度测量仪的研究.电子测量与仪器学报,2001,(1):20-23[2]玉林师范学院学报,2001.2,56—57.[3]李波,基于CAN总线冷库温度测控系统.电子测量技术,2002.2,22,-4[4]李福良,基于模拟比较技术的高精度测温方法.自动化与仪器仪表,2003.6,32—34[5]李小波,多点、多分度号、远距离温度采集和记录系统.自动化与仪表,2002,26-28[6]宋书锋,基于PIC单片机的测温网络的开发.仪表技术,2003.6,28--30[7]陈铁军.一种实用的串行通信RS232/RS485转换器,2001.5,22-31[8]阚保强,基于MAXl402的便携式高精度测温仪.海第二工业大学学报,2004.1,36-39[9]杨勇,数字温度传感器与单片机构成测温系统的探讨.现代电子技术,2004.14,18-20[10]徐斌,胡振武.小型冷库制冷系统稳态仿真.制冷与空调,2005.5,46-4910 本科毕业设计冷库温度监测仪的设计10 摘要根据系统的功能需要,本着节约开发成本、增加系统可扩展性、提高系统可靠性、降低系统功耗的原则进行温湿度监测系统的硬件设计。本系统采用单片机DS18B20作为整个系统的核心,利用单片机现有的接口组织外围硬件模块。为了减少系统面积,降低系统功耗,对于温度测量模块和湿度测量模块都需要进行筛选,选择美国DALLAS公司的一款可编程单总线数字式温度传感器DS18B20进行温度采集、采用RS485总线作为与其他设备通信的接口。以上系统不仅操作简单,成本低,测温准确,省时省力,而且运行可靠,抗干扰能力强。利用已有资源组织外围电路,系统具有可扩展性、外接其他传感器,并添加或修改相应的软件控制程序,就可以实现更多环境参数的参数的测量,也可以将这些系统应用在环境保护、控制、农业生产,以及军事等方面。关键词:单片机;DS18B20;RS48510 AbstractEnvironmentalmonitoringandcontrolinindustry,agriculture,nationaldefenceindustriesinawiderangeofapplications.Itissystemdesignisrelativelycomplex,involveabroader,includingautomaticmonitoringtechnology,processcontroltechnologyandcommunicationtechnology,etc.Environmentalmonitoringsystemmainlyinvolvessomeinformationcollection,displayandtransmission,duetothedifferentapplicationoccasions,environmentmonitoringcollectionobjectisalsodifferent.Butgenerallyspeaking,Theacquisitionoftemperatureandhumidity;indispensable.Adoptedadvancedtechnologytomonitortheseenvironmentalfactor,throughtheautomaticmonitoringsystemforenvironmentalcontrol,reduceproductioncost,ismoreandmorepopulartrend.Thispaperdesignedakindofintelligentmonitoringsystem,theintelligentmonitoringsystemP89LPC930byPHILIPScompanyforcontroller.DALLAScompanyadoptstheasectionofprogrammabledigitaltemperaturesensorDS18B20singlebustemperaturegathering.UseLCMaccomplishingtwoparametersvalueoflocaldisplay.AndthedatameasuredbyRS-485bustransmittedtoPC.Keywords:DS18B20;reduceproductioncost;RS-48510 目录第1章绪论11.1选题背景11.2冷库的应用11.3研究现状1第2章监测藏库温度的情况分析22.1实验条件22.2分布方案22.3数据处理22.4数据分析3第3章系统整体设计方案43.1温度监测系统整体结构43.2系统硬件整体设计方案4第4章硬件部分设计64.1主控电路64.2温度测量模块84.3LCD显示模块104.4后备电源114.5通信模块12第5章软件设计145.1主程序流程图145.2温度测量软件145.3LCD显示软件195.4存储数据EEPROM215.5串口通信23结论24致谢25参考文献26附录127附录22810 第1章绪论1.1选题背景温度的监测在工业、农业、国防等行业有着广泛的应用,其系统设计也较为复杂、涉及面较广,包括自动化监测技术、过程控制技术、通信技术等。温度监测系统主要涉及一些信息的采集、显示与传输,由于应用场合的不同,温度监测的采集对象也有所不同。但是一般来说,对温度的采集必不可少;比如一个粮食仓库环境监测系统,温度是一个重要的显示和分析指标,因为根据国家粮食保护法规定,必须定期抽样检查粮库各点的粮食温度,以便及时采取相应的措施。传统的粮仓温度测量都是由人工完成的,由于监测分站比较分散,传统的温度测量方式周期长、成本较高,而且测量员必须到现场进行测量,因此工作效率非常低,且不便于管理。采用先进的技术监测这些环境因子,通过自动监测系统进行环境控制,降低生产成本,呈越来越流行的趋势。1.2冷库的应用现代商业冷库大多使用组台装配式冷库,这不但由于装配式冷库建造工期短,移动增容方便,同时因其性能稳定,自动化程度高。但是,装配式冷库也有其不足之处,特别是对于小型装配式冷库库内温度渡动大,均匀性差。库内温度的波动及均匀性对货物储藏质量和库温控制精度有较大影响。造成库内温度波动及不均匀的因素较多,库壁厚度、库温控制方式、库内空气的流动状况、货物堆积方式、频繁开启库门是造成库内温度渡动和不均匀的主要原因。其中有结构原因,也有使用操作原因。了解装配式冷库库内温度场的分布特性及影响因素有助于装置的台理设计和使用。在允许的冷藏温度范围内,以较高温度储存食品,对于节省电能、延长制冷设备的使用寿命都很有利.本文采用单总线数字传感器DS18B20取代传统的简单模拟电阻式温度传感器,精确采集多点实际温度值,构成实时反馈控制系统,并根据整个系统的功能需求,提出了硬件系统的总体设计方案。由于经济和技术方面的原因(硬件较贵,通用、高可靠、使用方便的配套软件贫乏)计算机控制系统发展较慢,应用还不广,尤其是在中小企业更是如此。在国外,计算机监控系统的应用已显示出其节能,节省人力和控制效果好等巨大优越性。本课题的研究对推动企业的生产加工自动化。促进科技进步,提高生产效率,具有现实的经济意义.必要性。1.3研究现状系统具体功能需求如下所述:1,实现温度的采集,测温范围-50℃~50℃,精度1℃。2,实现湿度的采集,每5分钟记录一个数据,能连续记录10天以上的数据实现两个测量值的本地显示。3,有不间断电源功能,停电状况下可以工作24小时以上。4,可以与计算机联机传输数据。24 第2章监测藏库温度的情况分析主要研究冷藏库部温度场在冷藏货物的情况的状况,测出内部的温度值,利用这些数据来评价冷藏库测温探头放置是否恰当,为冷藏测温探头放置有效反映其温度提供帮助,以达到测量准确的目的。2.1实验条件首先选一个冷库为实验点,库内部空间为6000(长)X5000(宽)X3000(高)(单位mm).测量温度采用XL3型热电阻巡回测温仪。一般在18"C条件下冷藏食品,存放物料负荷程度分3种情况:①满负荷的1/5;②满负荷的2/5;③满负荷的3/5,每种情况我们选出10个样本测量点。2.2分布方案可以先抛弃一些测量点,如冷库门附近开启频繁,难易反映冷藏库内的实际温度,墙附近下方堆放物料不适合放置测温探头。本实验测量温度点共计10个,具体分布如下:图2.2测温点分布图2.3数据处理可以根据以上布局点,每一种物料负荷程度测试中,首先在刚停止降温30分钟稳定后,在进行温度测量,每隔5分钟记录一次数据,一共要10天,在将每一个点lO次测的数值取平均值,则该值为这一点在这种存放物料负荷程度中测试值。因此得到表2-1的数据。表2.3存放物料负荷程度不周温度分布物量温度位置②③④⑤⑥⑦⑧⑨⑩满荷1/5-20.6-20.821.0-20.5-21.0-21.5-20.0-20.2-19.7-19.5满荷2/5-20.3-20.6-21.2-19.6-20.4-20.8-20.4-19.5-18.8-19.0满荷3/5-19.0-20.2-20.8-19.3-19.8-20.3-20.0-19.0-18.3-18.524 2.4数据分析1.从上表可以看出。在稳定条件下,库内温度分布为里端例如⑨⑩比较平稳,温度差不大,是因为靠近物料的原因,中部温度比两端(墙壁)温度稍低例如②④,靠近蒸发器温度最低如⑦,特别是送风温度越低,差值很明显.中部下方温度比两端低约2℃,在①满荷1/5、②的2/5的条件下,温度差不到1℃。物料装高度为2.0Ⅲ以上时的情况下也相类似。可以说明冷藏食品时,越靠近食品时,其温度越高。2.表中还可以看出,在同样送风速度条件下,食品量不同,库内温度场的分布也不痛,量越大上部温度越高。中间中部较低,分别以①满荷1/5和③满荷3/5的情况来看,在1/5时,中间上部温度约低1--0℃:在3/5时,中间上部温度约低1--2℃,中间中、下部温度约低1--2℃,因为放置食品量对冷藏温度有较大的影响,量越多,库内中间下部的温度就越低。可以得出:一个点不易准确反映库温的真实温度,因为食品量较少,又要考虑到食品量较多时的情况,选出两个测温点,②号位置是基本测试要选择,⑨、⑩的选择应是靠近食品和远离蒸发器的点。可以选出②、⑩号为我们的测温点。24 第3章系统整体设计方案3.1温度监测系统整体结构温度监控系统整体结构如图3.1所示。由单片机和传感器中的温度监测就是本设计所要实现的。要完成温湿度采集与处理,并通过总线与温度监测仪进行数据传递。主要负责对下位机的控制,实现多点循环环境数据采集,并对其进行处理,将数据发送到上位机。用户设定上位机,使上位机按照设定向中间机发出读取温、湿度数据的指令,然后接收下位机上传所需的数据并显示。PC机与温度采集器在通信过程中,阻抗不连续和阻抗不匹配会导致信号反射。阻抗不连续使信号在传输线末端突然遇到电缆阻抗突变,信号在这个地方就会引起反射。消除这种反射的方法是在电缆的末端跨接一个与电缆特性阻抗同样大小的终端电阻,使电缆的阻抗连续。由于信号在电缆上的传输是双向的,因此,在通信电缆的另一端可跨接一个同样大小的终端电阻。引起信号反射的另一个原因是数据收发器与传输电缆之间的阻抗不匹配.这种原因引起的反射主要表现在通信线路处在空闲方式时,整个网络数据混乱。信号反射对数据传输的影响,是因为反射信号触发了接收器输入端的比较器,使接收器收到了错误的信号。要减弱反射信号对通信线路的影响,通常采用噪声抑制和加偏置电阻的方法。多个温度检测点RS485Z转RS232温度传感器单片机PC图3.1温度检测系统图3.2系统硬件整体设计方案整体温湿度监测系统的设计方案包括硬件设计方案和软件设计方案。硬件设计的核心是单片机,外接一系列所需的外围电路,如电源、晶振、复位电路、显示电路等。具体设计方案如图3.2所示。本系统采用的单片机是飞利浦公司的P89LPC930。在该单片机外围添加外围各种所需模块。为了使系统面积小,功耗低,对温度传感器和湿度传感器进行筛选,最终选择美国DALLAS公司的一款可编程单总线数字式温度传感器DS18B20实现温度检测,采用RS485总线作为与其他设备通信的接口,最后显示模块的选择为规格是8乘2的字符型LCD。以上所选硬件选择已满足功能需要,而且开发成本、扩展性强、可靠性高、功耗低。24 晶振电源复位微控制器模块温度传感器LCD显示电路储存器通信电路图3.2监测仪硬件框图24 第4章硬件部分设计4.1主控电路单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。单片机的工作过程  单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。单片机的硬件特性  1、单片机集成度高。单片机包括CPU、4KB容量的ROM(8031无)、128B容量的RAM、2个16位定时/计数器、4个8位并行口、全双工串口行口。  2、系统结构简单,使用方便,实现模块化;  3、单片机可靠性高,可工作到10^6~10^7小时无故障;  4、处理功能强,速度快。  单片机的应用  目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。以单片机为例讲解单片机的引脚及相关功能;24   图4.1单片机引脚图40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。  ⒈电源:  ⑴VCC-芯片电源,接+5V;  ⑵VSS-接地端;  注:用万用表测试单片机引脚电压一般为0v或者5v,这是标准的TTL电平。但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0v或者5v。  ⒉时钟:XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。  ⒊控制线:控制线共有4根,  ⑴ALE/PROG:地址锁存允许/片内EPROM编程脉冲  ①ALE功能:用来锁存P0口送出的低8位地址  ②PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。  ⑵PSEN:外ROM读选通信号。  ⑶RST/VPD:复位/备用电源。  ①RST(Reset)功能:复位信号输入端。  ②VPD功能:在Vcc掉电情况下,接备用电源。  ⑷EA/Vpp:内外ROM选择/片内EPROM编程电源。  ①EA功能:内外ROM选择端。  ②Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。  ⒋I/O线  80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。  P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)  5.P3口第二功能24   P30RXD串行输入口  P31TXD串行输出口  P32INT0外部中断0(低电平有效)  P33INT1外部中断1(低电平有效)  P34T0定时计数器0  P35T1定时计数器1  P36WR外部数据存储器写选通(低电平有效)  P37RD外部数据存储器读选通(低电平有4.2温度测量模块温度的采集是整个系统的重点也是难点,在众多的温度监测中,温敏元件由于成本低而用的较多,但后续电路复杂,输出的模拟信号较弱,需要进行放大后再通过A/D转换电路得到温度值,不仅复杂。而且提高了系统的功耗,降低了整个系统的性能。所以,本系统采用美国DALLAS公司的一款可编程单总线数字式温度传感器DS18B20进行温度采集。DS18B20数字式温度传感器可以将测量到的温度结果以串行数字信号输出,易于为控制器连接。DS18B20出厂时都刻有唯一的一个64位序列号并存入其ROM中,所以可以在一根总线上挂多个DS18B20,这样就可以很方便地构成单线多点温度测量系统,从而节省大量的引线和逻辑电路。图4.2DS18B20内部结构图DS18B20内部结构框图见图3-4所示,DS18B20的主要数据部件:(1)光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,这样就可以实现一根总线上挂接多个DS18B20的目的。(2) DS18B20中的暂储存器的头两个字节表示测得的温度值数据格式如表4.1。表 4.1DS18B20温度值格式表Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0LSByte232221202-12-22-32-4Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8MSByteSSSSSSSS24 当S=0时表示测得的温度为正,实际温度等于测得的数值乘于0.0625;如果温度小于0,当S=1时表示测得的温度为负,实际温度等于测得数值反加1再乘于0.0625。(3)暂储存器的第3、第4两个字节是一个非易失性的可电擦除的EEPRAM,用户可自设定非易失性温度报警上下限值TH和TL。DS18B20在完成温度变换后,所测温度值将自动与贮存在和内的触发值相比较,如果测温结果高于TH或低于TL,内部的告警标志就会被置位,表示温值超出了测量范围,同时还有报警搜命令识别出温度超限的DS18B20。(4)配置寄存器该字节各位的意义如下:表4.2配置寄存器结构TMR1R011111该寄存器的低五位用户无法设定始终保持1,最高位TM用户亦不要去更改,出厂时该位被设置为0。该位表示是工作模式还是在测试模式。分辨率的设置是用户通过设置R1和R0来实现。如下表所示:表 4.3温度值分辨率设置表R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750msDS18B20有两种封装模式:3脚和8脚封装,管脚排列如图4.1.1所示,其中3脚封装比较常用。图4.3DS18B20封装特性如下:(1)采用寄生电源直接使用数据线供电,电压范围为+3.0~+5.5V。(2)方便简单的单线连接方式,不需要任何外围元件单片机与DS18B20的双向通信仅需一条口线即可实现。(3)测量范围:-55~+125℃,分辨率为0.5℃。(4)用户可设定9~12位的数字读数方式。(5)精度高、抗干扰能力强、工作稳定可靠。(6)支持多点测温,多个DS18B20可以同时连接在三线上。(7)当电源极性接反时,不能正常工作,元件也不会损坏。(8)用户可设定报警的上下限值,并且所测温度值将自动与贮存在和内的触发值相比较。外部电源供电方式是DS18B20正常工作的最佳的供电方式,首先连接电路简单24 ,若采用这种方式供电DS18B20的工作也可靠稳定,而且抗干扰能力强。采用外部电源供电方式可以实现可靠稳定的多点多点测温如图4.4.采用这种方式下供电,即使电源电压VCC下降到3V时,依然能够保证DS18B20的正常工作,温度的精确测量,充分发挥了DS18B20宽电压范围的优点。图4.4外部供电方式的多点测温电路图4.3LCD显示模块液晶显示器英文为LiquidCrystalDisplay,简称LCD,它是利用液晶的光驱效应特点制成的显示产品,大体上可以分为三种。最常见的有计算器、电子表、数字万用表等,显示的主要是数字、专用符号和固定图形,此种类型属于段式显示器。随着大量电子仪器、设备的多功能化需要,点阵式液晶显示模块营运而生,同时还可以用大规模专用集成电路作为点阵LCD控制驱动,使用者仅仅直接送入数据和指令就可实现所需的显示,这种含驱动电路组成的单元叫液晶显示模块(LCDModule,LCM)。LCD点阵模块又分为字符型和图形性。本系统用到的LCD是用来显示一些字母和数字,所以选择字符型点阵LCD。市场上的商品形式有液晶显示屏和液晶显示模块,前者简称LCD屏,在使用时用户必须自行设计配置驱动电路;后者即为我们前面提到的LCM,内部已集成了驱动电路,从设计方便及设备大小的角度考虑,选择规格为8﹡2(每行显示8个字符,共2行)的字符型LCM。LCM的内部结构如图4.5所示。4.5LCM的内部结构24 LCM与单片机连接的原理图如图4.6所示。LCM的数据传输方式为并行方式,DB0~DB7与单片机的P2.0~P2.7相连,P0.0与LCM的寄存器选择信号接口相连,,P0.1与片选信号接口相连,,P0.2与读/写信号相连。P0.3脚通过一个电阻一个三极管与背光灯的电源信号相连。通过软件设置P0.3脚高低电平,控制三极管通断,从而控制LCM背光灯。这样有效地降低LCD功耗、提高使用寿命。图4.6LCM与单片机连接的原理图4.4后备电源后备电源是因停电或其他原因而准备的临时性供电设备。常见的后备电源有小型发电机和各种蓄电池。其中,经济耐用的铅酸蓄电瓶不失为后备电源的首选。笔者综合考虑,为铅酸电瓶后备电源设计了一款自动充电器,电路如附图所示4.9电路的核心部分是由NE555组成的“滞回比较器”,R8、R9、RP1和RP2构成取样电路,LED1-LED3为充电状态指示。电瓶的充电用继电器连接,使通断更为可靠。S1、S2为轻触开关,可以用来手动控制充电进程,使电路变得更加灵活方便。下面重点介绍电路的工作原理。4.7电降压整流部分电路图工作原理24 本电路核心是NE555时基电路,当电瓶为欠压状态(如1OV)时,取样电路输出的电压低于NE555组成“滞回比较器”的下限。此时,NE555的③脚输出高电平,VT1导通,继电器吸合(与J-2相接),电源经R6向电瓶充电;经过一定时间,电瓶电压随充电过程逐渐升高,当高于预先设定的电压值(如13.7V)时,取样电路输出的电压高于NE555组成“滞回比较器”的上限。此时,NE555的③脚输出低电平,VT1截止,继电器释放(与J-1相接),电源经R7和LED3向电瓶提供微弱的补充电流。若将电瓶放电,则当电瓶电压再次低于所设定的下限时,电路才再次翻转为充电状态。因此,在这个过程中存在一个回差,这正是“滞回”之意。在电瓶电压经取样后处于滞回上、下限之间时,无论电路处于何种状态,按下S1,电路都会强制转为充电状态;按下S2,则强制退出充电。这一功能对应急补充电和闲时节能都很有意义。根据工作原理可知:当LED2点亮时,表示正在充电;当LED2熄灭而LED1和LED3点亮时,则表示电瓶为正常荷电状态。根据LED3的亮度还可以判断电瓶荷电的多少。4.5通信模块单片机片上的串行口,虽然即能实行同步通信,又能实现异步通信的双全工串行口,但在单片机的串行数据通信中,最常用的异步通信方式,常把写成UART。发送时,数据由TxD端送出。接收时,数据由RxD端输入。本系统的通信采用RS485总线方式,RS485是工业界使用较为广泛的双向、平衡传输线标准接口,它以半双工方式通信。RS485的共线电路结构在一对平衡传输线的两端都配置终端电阻,其发送器和接收器可挂在平衡传输线上的任何位置,实现在数据传输中多个驱动器和接收器共用同一个传输线的多点应用,允许创建多达32个节点的网络(某些驱动器模块可增加至128个)。由于其接口采用差分接收器和平衡驱动器的组合,故具有较强的抗共模干扰能力,即有较好的抗噪声干扰能力。当要求多站互通信时采用RS485总线方式,可靠性高、成本低廉、分布范围广。本系统的RS485通信收发器芯片选用的是Mxami公司生产的一种差分平衡型小功率收发器MAX487。接收器可检测的最小信号低达200mV。它具有低功耗、高速、控制方便、干扰能力强等优点。其主要特点如下:(3)单+5V电源供电;l工作电流在120~500uA;l低电流关机模式,消耗0.1uA电流;(2)驱动器有过载保护功能。表4.5MAX487引脚功能表24 管脚说明:RO脚:若A比B大200mV,RO为高;若A比B小200mV,RO为低。/RE脚:/RE为低时,RO有效;/RE为高时,RO成高阻状态。DE:脚:若DE为高,驱动输出A和B有效;若DE为低,它们成高阻状态.DI脚:若DI为高,输出为;若DI为低,输出为低。RS485总线连接原理如图3.15所示。当总线上某个MAX487的DE端电位为“1”,那么它485总线输出将会处于发送状态,也就占用了通信总线,这时其他分机无法与主机进行通信。所用的通信载体一般是双绞线,它的特性阻值大约有120Ω左右。为了减少线路上传输信号的反射,在设计线路时,在RS485网络传输线始端和末端各加1只120Ω的匹配电阻(如图4.10)。图4.8与RS485接线24 第5章软件设计5.1主程序流程图温度监控流程图5.1所示。本设计所要实现完成温度采集与处理,并通过温度监测仪进行数据传递,记录并显示数据。开始初始化N定时器=5?Y温度检测保存温度数据送LCD显示串口发送至PC图5.1主程序流程图5.2温度测量软件DS18B20采用的是在一根数据线实现数据的双向传输,即“一线总线”协议方式。而P89LPC930单片机来在硬件上并不支持单总线协议。所以我们只有通过软件来模拟单总线的协议时序,从而完成单片机和DS18B20芯片的通信。24 由于DS18B20是在一根I/O线上读写数据的,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。DS18B20单总线通信功能是分时完成的,它有严格的时隙概念,有初始化时序、读时序、写时序3种信号的时序。单片机每一次命令和数据的传输都需要首先主动启动写时序,而每一次数据的接收都需要首先启动读时序。单片机在控制DS18B20进行温度转换之前,需要总线上所有DS18B20的64位序列号,这样才可以对总线上的某个DS18B20进行ROM匹配,将其选中。因为在本系统中,一个下位机只控制一个DS18B20(单节点),所有主机读取从机的64位ROM代码只需使用读ROM(33H)命令即可。在得到总线上DS18B20的序列号之后,单片机就可以控制总线上的DS18B20进行温度转换,并通过单总线读取总线上DS18B20的温度值。单片机对DS18B20的操作分为三步。第一步初始化,首先单片机发出一个复位脉冲,使DS18B20复位:先将数据线拉低并保持480~960us,再释放数据线。由上拉电阻拉高15~60us后由DS18B20发出60~240us的低电平作为应答信号。第二步,温度转换,因所有在线的DS18B20都要进行温度转(本系统中,一个下位机只控制一个DS18B20),无需再读ROM,发送一条跳过读ROM的指令,然后发送启动温度转换指令,然后等待900μs,等待DS18B20温度转换完成。第三步,读取温度值,首先发送一条跳过读ROM的指令,然后发送一条读暂存存储器指令,DS18B20将储存在暂存器内的温度值发送到数据线上,单片机可按位读取,完成这个DS18B20的温度采集。温度采集的程序流程图如图5.1所示。24 开始初始化DS18B20向总线发复位脉冲发读ROM读入8个字序列号并保存发送跳过ROM指令发温度转换指令N转换完毕Y复位DS18B20发送跳过ROM指令发读暂存器命令读温度值结束图5.2温度采集的程序流程图DS18B20的驱动有复位函数、读数据函数和写命令函数。DS18B20的复位时序如图5.3所示。24 图5.3DS18B20的复位时序DS18B20的写时间片:将数据线从高电平拉至低电平,保持1us以上,产生写起始信号。紧接送出写数据(“0”或“1”),当写0,要求数据线至少保持低电平60μs,而写1时,15μs之后要求释放数据线。无论写1或写0DS18B20在数据线拉低15us后对数据线采样。在两次写时间片中必须有一个最小1us的恢复时间(高电平),并且一个写时间片的周期不能小60us。DS18B20的读时序如图5.4所示图5.4DS18B20的写时序DS18B20的读时序如图5.5所示。读时间片时主机将数据线从高电平拉低1us以上,再使数据线升为高电平,从而产生读起始信号。主机在读时间片下降沿之后巧脚内完成读位。每个读周期最短的持续期为60μs,各个读周期之间也必须有1us以上的高电平恢复期。图1-15DS18B20的读时序图5.5DS18B20的读时序基本子程序设计:DS18B20三个基本子程序为DS18B20初始化程序、读DS18B20子程序、写DS18B20子程序。分别设计如下:(1)DS18B20的初始化子程序(PSW.5=1表示DS18B20存在,PSW.5=0表示不存在)RESET:CLRP1.0;发送复位脉冲MOVR7,#32;延时500μsLCALLDELAY15SETBP1.024 MOVR7,#4;等待60μsLCALLDELAY15CLRPSW.5;PSW.5=0JBP1.0,RET1;P1.0=1不存在。跳转SETBPSW.5;DS18B20存在MOVR7,#28LCALLDELAY15RET1:RETDELAY15:MOVR6,#6DEL151:DJNZR6,DEL151DJZNR7,DELAY15;延时R7×15μsRET(2)DS18B20的读子程序RDS18B20_0:CLRCMOVR1,#9MOVR0,#TEMPLSBRDS18B20_1:MOVR2,#8RDS18B20_2:SETBP1.0NOPNOPCLRP1.0NOPNOPSETBP1.0MOVR7,#1LCALLDELAY15MOVC,P1.0RRCADJNZR2,RDS18B20_0;判断一个字节是否读完MOVX@R0,A;保存结果INCR0DJNZR1,RDS18B20_1;判断9个字节是否读完RET(3)DS18B20的写子程序WDS18B20_0:CLRCMOVR1,#8WDS18B20_1:CLRP1.0;产生写信号MOVR7,#124 LCALLDELAY15RRCAMOVP1.0,C;发送一位数据到DS18B20MOVR7,#1LCALLDELAY15SETBP1.0NOPDJNZR1,WDS18B20_1;1字节数据是否发送完毕SETBP1.0RET5.3LCD显示软件本系统所使用的LCD模块内部已集成了驱动电路,在使用时非常方便,只需按照此LCD模块的指令表,将指令写入LCD模块,即可实现对应功能。LCD模块指令表和LCD显示位与DDRAM地址的对应关系分别如表5.2和表5.3所示。表5.2LCD模块指令表指令名称指令码RSR/WDB7DB6DB5DB4DB3DB2DB1DB0说明执行周期FCP=250KHZ清屏LLLLLLLLLH清除屏幕,1.64ms返回LLLLLLLLH×设DDRAM地址为0,显示回原位,DDRRAM内容不变1.64ms输入方式设置LLLLLLLHI/DS设光标移动方向并指定整体显示整体显示是否移动,I/D=1时光标向右移,I/D=0时光标向左移;S=1屏幕上的文字可以移动,S=0屏幕上的文字不可以移动。40μs显示开关控制LLLLLLHDCB设整体显示开关(D),光标(C),及光标位的字符闪耀(B)。D表示显示开关:D=1为开,D=0为关;C表示光标开关:C=1为开,C=0为关;B表示闪烁开关:B=1为开,B=0为关。40μs位移LLLLLHS/CR/L移动光标或整体显示,同时不改变DDRA及内容。S/C=1画面平移一个字符位,S/C=0光标平移一个字符位;R/L=1右移,R/L=0左移。40μs40μs24 功能设置LLLLHDLNF××设接口数据数位(DL),显示行数(L),及字形(F)。DL=1,8位数据接口;DL=0,4位数据接口;N=1,2行显示;N=0,1行显示;F=1,5×10点阵字符;F=0,5×7点阵字符CGRAM地址设置LLLHACG设CGRAM地址,设置后CGRAM数据被发送和接收40μsDDRAM地址设置LLHADD设DDRAM地址,设置后DDRAM数据被发送和接收。N=0,1行显示:A6~A0=0~27H(40个字符);N=1,2行显示:首行A6~A0=00H~27H,A6~A0=40H~67H40μs读忙信号(BF)及地址计数器LHBFAC读忙信号位(BF)判断内部操作正在执行并读地址数据其内容。BF=1,忙;BF=0,准备好,此时AC值的意义由最近一次地址设置(CGRAM或DDRAM)定义。0μs写数据CG/DDRAMLH写数据写数据到CG或DDRAM40μs读数据CG/DDRAMHH读数据读数据到CG或DDRAM40μs表5.3LCD显示位与DDRAM地址的对应关系显示位序号12345············40(十进制)DDRAM地址(HEX)第一行0001020304············27(十六进制)第二行4041424344············67(十六进制)此LCD的模块的控制函数有初始化函数、命令写入函数和数据写入函数,具体代码如下初始化函数:LCD_INIT:MOVA,#0x01//清零指令MOVP2,AMOVA,#0x38//功能设置,8位数据,两行显示,5×7矩阵MOVP2,A24 MOVA,#0x0E//显示开关,有光标,闪烁MOVP2,AMOVA,#0x06//输入方式,增量加1MOVP2,ARET/***************************************************************************/命令写入函数W_LCD:SETBP0.0//RS=表示写指令SETBP0.2//SETBP0.1//MOVA#CMD//MOVP2A//指令送到数据线CALLDELAY5//CLRP0.1//下降沿写入RET/***************************************************************************/数据写入函数Wbyte_LCD:SETBP0.0//RS=表示写指令CLRP0.2//SETBP0.1//MOVA#CMD//MOVP2A//指令送到数据线CALLDELAY5//CLRP0.1//下降沿写入RET/***************************************************************************/5.4存储数据EEPROM随着大量嵌入式设备的出现,在嵌入式系统中用于存储数据的EEPROM因其简单、方便、可靠的性能和低廉的价格而被广为使用。当今社会嵌入式系统无所不在,各种嵌入式设备品种繁多,差别巨大。因此各公司也推出多种不同容量不同型号的EEPROM适应多样的市场应用。人们一方面希望能像管理大容量存储器(如硬盘,FLASH等)中数据一样简单便捷的操作EEPROM中的数据(包括打开、关闭、读写文件等),同时也希望这种文件系统能兼容不同容量、型号,具有较强的通用性。而对于采用两线IIC总线读写方式[1]的EEPROM来说,无法使用类似与FLASH所支持的TFFS之类的文件系统,本文参照上述思想,AT24C08-AT24C1024类似于文件系统的用于管理EEPROM中数据的方法,并在实践项目中得到良好运用。器件寻址在1k,为2K,4K,8K和16K的EEPROM器件所有需要一个8位器件地址字下面一开始条件使芯片的读或写操作。24 该器件地址字由强制性的,零序首四个最重要的位为所示。这是共同所有的EEPROM器件。接下来的3位是A2,A1和A0的器件地址位为1K/2KEEPROM中。这3位必须比较其相应的硬连线的输入引脚。而4K的EEPROM只使用A2和A1设备地址与第三位的是一个内存页的地址点点滴滴。该两个器件地址位必须比其相应的硬连接的输入引脚。在A0引脚没有连接。8K容量的EEPROM只使用A2器件地址位未来2位内存寻址正在为网页。在A2位必须与相应的硬连线的输入引脚。A1和A0引脚没有连接。在16K的不使用任何设备地址位,而是3位用于寻址内存页。这些页面寻址位在4K,8K和16K的设备应被视为最重要的数据位字地址,如下。在A0,A1和A2引脚无连接.该设备的地址的第8位是读/写操作选择位。启动一个读操作,如果该位为高和一个写操作开始启动,如果该位为低。当一个比较器件地址,EEPROM将输出一个零。如果不进行比较,芯片将返回到备用状态。一、设备地址(deviceaddress)对EEPROM读写数据前,需先发一个字节的deviceaddress以选择芯片进行读写。其中首部四比特的“1010”为固定值;A0-A2用于对多个EEPROM进行区分,注意对AT24C不同型号,A0-A2可能用于指示片内物理地址,此时相应比特位值由访问地址决定;也可能为NC,此时值置0;最后一比特为读写操作位,1表示读操作,0表示写操作。器件地址格式见图5.4。1010A2A1A0R/WMSBLSB图5.4EEPROM器件地址格式二、写操作AT24C系列的写操作有按字节写和按页写两种方式。字节写时通常在向EEPROM发送设备地址字并收到应答信号后,发送readaddress选择待写数据的地址。EEPROM收到这个地址后返回一个ACK,然后接收一字节数据,再返回一个ACK,处理器收到此ACK后发停止状态结束写。页写时EEPROM可一次连续写入整页数据。其发地址过程与写字节时完全相同。不同的是:当写完一个数据字节后,处理器不发停止状态,而是在应答信号后继续写入数据,每一个字节接收完毕后,EEPROM都返回一个ACK,一直到写完整页。注意如果页写时写入数据超出该物理页边界,则超出数据将重新写入页首地址覆盖之前所写数据。三、读操作读操作有当前地址读、随机读、多字节连续读三种方式。其发地址过程与写操作相同,只把deviceaddress的最低位改为读。在当前地址读操作方式时无需发送readaddress,每次只将当前地址所存数据读出,片内读地址始终保持自加,直到读完整个EEPROM后又回到0地址。而随机读要先写readaddress,然后才能读。多字节连续读操作既可以是当前地址读,也可以是随机地址读,每次处理器接收到一字节数据都返回一个ACK,EEPROM接收到此ACK后会自动地址加1,接着输出下一个字节数据,直到处理器返回NOACK时,读过程结束。1.AT24C系列把地址空间物理分页,支持按页写模式,即在一次写操作中可连续写入一整页,由于每次写操作之后必须等待WriteCycleTime之后才能继续对EEPROM进行操作,所以文件系统采用页写模式可大大提高写文件速度。2.对AT24C08,由于只用8bits的readaddress无法提供其容量为1024bytes的地址空间,所以使用deviceaddress中的A0A1两位,提供210=1024bytes的寻址空间。24 5.5串口通信一、串口程序图开始发送一个字节N发完?Y结束图5.5串口程序图二、用C语言编写串口程序在当今,流行的编程软件种类繁多,它们编程方便、易于维护,但是在与硬件直接打交道和编制系统软件时却束手无策,于是C语言就有了用武之地。C语言作为汇编语言与高级语言之间的一种过渡语言,兼有汇编语言的高效和高级语言的方便。在通讯中,为了保证行运安全可靠,标准的串行口必须具有许多握手信号和状态信息。这是因为通讯的各个计算机CPU速度不一样(这会导致“错帧”)以及发送机发送数据速度比接收机接收速度快(这会导致“过冲”)。为解决这个问题,我们采用一个简单的握手信号,即发送机每次仅发送半个字节(低4位)的数据,而另外半个字节(高4位)则用来传送信息。我们可以对信息位(高4位)进行如下简单的编码:0H:发送的是新的半个字节数据1H:重新发送上次传送错误的数据2H:文件名结束3H:文件结束这样,每当发送机发送一个字节以后,就等待接受机发回送信号,这回送信号就是发送机发送过来的那个字节。发送机接收到回送信号后,把它与刚发送的字节相比较,如果相同,就发送新的半个字节,否则就重新发送。新数据与旧数据通过信息位来区分。24 结论这套温度监测系统的样机基本上是成功的,能实践以下功能(1)测温范围-50℃-50℃,精度1℃(2)每5分钟记录一个数据,能连续记录10天以上的数据(3)有不间断电源功能,停电状况下可以工作24小时以上(4)可以与计算机联机传输数据。主要应用RS485接口标准,DS18B20接口芯片的结构、性能特点及RS485总线在冷库温度检测系统中的应用,给出了以RS485总线为核心的硬件电路设计方法。在设计中我查阅国内外的资料同时也发现自己的动手能力很差,电路图也很繁琐,要减少电路的交叉,让电路明朗化。如果断电时间比较长,超过24小时,这个设计就行不通需要加强.一些外围抗干扰电路本系统不仅操作简单,成本低,测温准确,省时省力,而且运行可靠,抗干扰能力强。利用已有资源,系统具有可扩展性、外接其他传感器,并添加或修改相应的软件控制程序,就可以实现更多环境参数的参数的测量,也可以将这些系统应用在环境保护、控制、农业生产,以及军事等方面。24 [参考文献][1]齐怀琴,高精度温度测量仪的研究.电子测量与仪器学报,2001,(1):20-23[2]玉林师范学院学报,2001.2,56—57.[3]李波,基于CAN总线冷库温度测控系统.电子测量技术,2002.2,22,-4[4]李福良,基于模拟比较技术的高精度测温方法.自动化与仪器仪表,2003.6,32—34[5]李小波,多点、多分度号、远距离温度采集和记录系统.自动化与仪表,2002,26-28[6]宋书锋,基于PIC单片机的测温网络的开发.仪表技术,2003.6,28--30[7]陈铁军.一种实用的串行通信RS232/RS485转换器,2001.5,22-31[8]阚保强,基于MAXl402的便携式高精度测温仪.海第二工业大学学报,2004.1,36-39[9]杨勇,数字温度传感器与单片机构成测温系统的探讨.现代电子技术,2004.14,18-20[10]徐斌,胡振武.小型冷库制冷系统稳态仿真.制冷与空调,2005.5,46-49[11]陈宝江等,MCS单片机应用系统实用指南.机械工业出版社,1997,20-65[12]何昌伟,冷藏集装箱应用电子膨胀阀及其控制算法研究.艘海技术,2006.1,60--63[13]徐斌,胡振武,小型冷库制冷系统稳态仿真.制冷与空调,2005.5,41--43[14]丁国良,张春路,制冷空调装置仿真与优化.北京:科学出版社,2001.30-35[15]吴小华,家用电冰箱温度场和流场的仿真与优化.西安:西安交通大学,2003.65-70[16]吴业正,型制冷装置设计指导[M].北京:机械工业出版社,1998,13-109[17]陈光明,张朝涵.制冷与低温设备[M].杭州:浙江大学出版社,2003,4.49-54[18]王建华,黄河清,计算机控制技术,北京:高等教育出版社,2003,12,68-105[19]MC9S08GB/GTDataSheet.FreescaleSemiconductor,Rev2.22004,47—51[20]HCS08FamilyReferenceManual.FreescaleSemiconductor,2003,38--44[21]ScottPape.HC08toHCS08.Transition.Semicoa_doctor,2004,46--5024 附录1 附录2TEMPER_LEQU40H;用于保存读出温度的低8位TEMPER_HEQU41H;用于保存读出温度的高8位FLAG1EQU38H;是否检测到DS18B20标志位TEMPLEQU30H;用于保存读出温度的低8位TEMPHEQU31H;用于保存读出温度的高8位TEMPHCEQU32H;温度转换寄存器低8位TEMPLCEQU33H;温度转换寄存器高8位BUF1EQU34H;显示缓冲寄存器小数位BUF2EQU35H;显示缓冲寄存器个数位BUF3EQU36H;显示缓冲寄存器十数位BUF4EQU37H;显示缓冲寄存器百数位T10MSEQU29H;SHUDUEQU41用于保存温度值;**********************************************;BITFLAGDEFINATION;**********************************************TEMPCONVEQU00H;TIME1SOKEQU01H;TEMPONEOKEQU02H;;**********************************************ORG0000H;主程序入口地址AJMPMAIN;转主程序ORG0003H;外中断0中断入口DB00H,00H,00H,00H,00H,00H,00H;RETI;跳至INTEX0执行中断服务程序ORG000BH;定时器T0中断入口地址AJMPTIMER0;RETI;跳至定时器T0执行中断服务程序ORG0013H;外中断1中断入口DB00H,00H,00H,00H,00H,00H,00H;RETI;跳至INTEX1执行中断服务程序ORG001BH;定时器T1中断入口地址DB00H,00H,00H,00H,00H,00H,00H;RETI;中断返回(不开中断)ORG0023H;串行口中断入口地址DB00H,00H,00H,00H,00H,00H,00H;RETI;中断返回(不开中断);**********************************************ORG100H;MAIN:MOVSP,#60H;MOVP1,#0FFH; MOVTMOD,#01H;MOVTH0,#0B1H;SETT0VALUE10MSMOVTL0,#0E0H;MOVDISL_VL,#00H;MOVDISL_VH,#00H;MOVDISH_VL,#00H;MOVDISH_VH,#00H;MOVTMSETVL,#30H;MOVTMSETVH,#35H;CLREA;打开CPU总中断请求CLRTR0;CLRET0;MOVPSW,#00H;CLRTEMPCONV;CLRTEMPONEOK;;**************************************LPTEMP:LCALLINIT_1820;先复位DS18B20MOVA,#0CCH;跳过ROM匹配LCALLWRITE_1820;MOVA,#0B8H;发出读温度命令LCALLWRITE_1820;LCALLGET_TM;调用读温度子程序LCALLCONVTEMP;温度BCD码计算处理子程序LCALLDISPBCD;显示区BCD码温度值刷新子程序;**************************************LPTEMP1:LCALLKEYWORK;LCALLDISPLAY;调用数码管显示子程序LCALLBT_WORK;;*************************************BT_WORK:MOVBT_VL,BUF2;当前显示保存是转换程序MOVA,BUF3;SWAPA;ORLA,BT_VL;MOVBT_VL,A;RET;;**************************************K4WORK:LCALLINIT_1820;先复位DS18B20CPLTEMPONEOK;CPLTEMPCONV;CPLP3.6; ;***************************************WAITREL:LCALLDLDISP;调显示程度防止显示闪烁MOVA,P2;ANLA,#0F0H;XRLA,#0F0H;JNZWAITREL;RET;;***************************************;读出转换后的温度值;***************************************GET_TEMPER:SETBTEMPDIN;LCALLINIT_1820;先复位DS18B20JBFLAG1,TSS2RET;判断DS1820是否存在?若DS18B20不存在则返回TSS2:CLRP3.3;DS18B20已经被检测到!!MOVA,#0CCH;跳过ROM匹配LCALLWRITE_1820MOVA,#44H;发出温度转换命令LCALLWRITE_1820;*****************************************;这里通过调用显示子程序实现延时一段时间,等待AD转换结束,12位的话750微秒;*****************************************MOVR3,#5LPDISP:LCALLDISPLAYDJNZR3,LPDISP;*****************************************GET_TM:LCALLINIT_1820;准备读温度前先复位MOVA,#0CCH;跳过ROM匹配LCALLWRITE_1820MOVA,#0BEH;发出读温度命令LCALLWRITE_1820LCALLREAD_18200;将读出的温度数据保存到40H/41HRET;*******************************************;写DS18B20的子程序(有具体的时序要求);*******************************************WRITE_1820: MOVR2,#8;一共8位数据CLRC;WR1:CLRTEMPDIN;MOVR3,#6DJNZR3,$RRCAMOVTEMPDIN,C;MOVR3,#23DJNZR3,$SETBTEMPDIN;NOPDJNZR2,WR1;SETBTEMPDIN;RET;*************************************;这是DS18B20复位初始化子程序;*************************************INIT_1820:SETBTEMPDINNOPCLRTEMPDIN;主机发出延时537微秒的复位低脉冲MOVR1,#3TSR1:MOVR0,#107DJNZR0,$DJNZR1,TSR1SETBTEMPDIN;然后拉高数据线NOPNOPNOPMOVR0,#25HTSR2:JNBTEMPDIN,TSR3;等待DS18B20回应DJNZR0,TSR2LJMPTSR4;延时TSR3:SETBFLAG1;置标志位,表示DS1820存在CLRP3.7;检查到DS18B20就点亮P3.7LEDLJMPTSR5TSR4:CLRFLAG1;清标志位,表示DS1820不存在CLRP3.1LJMPTSR7TSR5:MOVR0,#117 TSR6:DJNZR0,TSR6;时序要求延时一段时间TSR7:SETBTEMPDIN;RET;*************************************;处理温度BCD码子程序;*************************************CONVTEMP:MOVA,TEMPH;ANLA,#80H;JZTEMPC1;判断温度是否在零下?CLRC;温度值补码变成原码MOVA,TEMPL;CPLAADDA,#01H;MOVTEMPL,A;MOVA,TEMPH;-CPLA;ADDCA,#00H;MOVTEMPH,A;TEMPHCHI=符号位MOVTEMPHC,#0BH;置"-"标志SJMPTEMPC11;TEMPC1:MOVTEMPHC,#0AH;置"+"标志;**************************************TEMPC11:MOVA,TEMPHC;计算小数位温度BCD值SWAPAMOVTEMPHC,A;MOVA,TEMPL;ANLA,#0FH;乘0.0625MOVDPTR,#TEMPDOTTAB;MOVCA,@A+DPTR;MOVTEMPLC,A;TEMPLCLOW=小数部分BCD;**************************************MOVA,TEMPL;计算整数位温度BCD值ANLA,#0F0H;SWAPA;MOVTEMPL,A;MOVA,TEMPH;ANLA,#0FH;SWAPA;ORLA,TEMPL;MOVTEMPER_L,A;LCALLHEX2BCD1;调用单字节十六进制转BCD子程序;************************************ MOVTEMPL,A;ANLA,#0F0H;SWAPA;ORLA,TEMPHC;TEMPHCLOW=十位数BCDMOVTEMPHC,A;MOVA,TEMPL;ANLA,#0FH;SWAPA;TEMPLCHI=个位数BCDORLA,TEMPLC;MOVTEMPLC,A;MOVA,R7;JZTEMPOUT;ANLA,#0FH;SWAPA;MOVR7,A;MOVA,TEMPHC;TEMPHCHI=百位数BCDANLA,#0FH;ORLA,R7;MOVTEMPHC,A;TEMPOUT:RET;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭