粮仓温度控制系统课程设计.doc
《粮仓温度控制系统课程设计.doc》由会员分享,可在线阅读,更多相关《粮仓温度控制系统课程设计.doc(17页珍藏版)》请在咨信网上搜索。
邵阳学院课程设计(论文) 1引言 1.1课题研究的目的和意义 粮食是人类赖以生存的基本物质,是关系国民生计的重要物资,也是军需民食的特殊商品。中国有句老话:“常将有日思无日,莫待无时想有时”,居安思危,未雨绸缪,永远不会过时。随着粮食流通体制改革的不断深化、粮食市场全面放开已成定局,随着人民生活水平的提高,全社会对粮食质量问题提出了新的要求;加入世界贸易组织后粮食贸易的全球化,客观上也要求粮食质量工作与国际接轨。面对新形势,如何加强储粮工作,发挥粮食部门在粮食储存方面的优势,是摆在粮食储备工作面前的一个重要课题。目前我国地方各大型粮库都存在着不同程度的粮食储存变质的问题。大部分粮库还采取人工测量温度的方法,不仅增大了粮库工作人员的工作量,而且工作效率底,尤其是大型粮库的温度测量不能及时而彻底的完成,导致大面积坏粮的情况时有发生。据统计,我国每年因粮食储存不当而发霉变质的粮食就达上亿斤,造成无法估量的的经济损失。 粮食的温度是影响粮食储藏的重要参数,两者之间是相互关联的,粮食在正常储藏条件下(即安全条件下),含水量一般在12%以下,不会使粮食温度发生突变,一旦粮食受潮含水量增加,超过20%以上时,就满足了粮粒发芽的条件,新陈代谢加快而产生呼吸热,使局部粮温升高,必然引起粮食发热和霉变,且极易产生连锁反应,从而造成难以挽回的损失因此,粮食温度监控技术在农业上的应用是十分重要的。 1.2粮仓温度监控技术的研究现状 随着计算机科学和自动化水平的不断提高,在各种应用领域都大量采用自动控制系统。自动控制系统在现代化的进程中有着极其重要和广泛的应用。自动控制技术的采用使各种被控对象成生明显令人惊羡的结果:减轻人的劳动强度,提高生产效率,改进了产品质量,改善了工作环境,减少了能量的损耗,增加了资源材料的利用率。特别是20世80年代以来,控制理论的进一步发展和计算机在控制系统中的应用,使自动控制取得了辉煌成果。单片机的应用,使嵌入式自动控制系统成为一种崭新的形式,大大扩大了自动控制的应用领域,使自动控制成为无处不在的一种技术。 早期粮情监测主要采用温度计测量法,它是将温度计放入特制的插杆中,根据经验插在粮堆的多个测温点,管理人员定期拔出读数,确定粮温的高、低,决定是否倒粮。这种方法对储粮有一定的作用,但由于温度计精度、人工读数的人为因素等原因,温度检测不仅速度慢,而且精度低,抽样不彻底,局部粮温过高不易被及时发现,导致因局部粮食发霉变质引起大面积坏粮的情况时有发生。 1.3温度传感器技术 传感器技术是现代信息技术的主要内容之一,信息技术包括计算机技术、通信技术和传感器技术。计算机和通信技术发展极快,相当成熟,而传感器应用技术因为需要使用模拟技术,而模拟技术还有很多问题难以解决,因此传感器应用技术也有待进一步发展。为了适应现代科学技术的发展,世界众多国家都把传感器技术列为现代的关键技术之一。通常将能把非电量转换为电量的器件称为传感器,其实质上是一种功能块,作用是将来自外界的各种信号转换成电信号。它是实现测试与自动控制系统的首要环节。如果没有传感器对原始参数进行精确可靠的测量,那么无论是信号转换或信息处理,或者最佳数据的显示和控制都将无法实现。 温度传感器,使用范围广,数量多,居各种传感器之首。温度传感器的发展大致经历了以下三个阶段:传统的分立式温度传感器(含敏感元件),主要是能够进行非电量和电量之间转换;模拟集成温度传感器/控制器;智能温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、集成化、智能化及网络化的方向发展。温度传感器按传感器与被测介质的接触方式可分为接触式温度传感器和非接触式温度传感器两大类,其中,接触式温度传感器的测温元件与被测对象要有良好的热接触,通过热传导及对流原理达到热平衡,这个示值即为被测对象的温度。这种测温方法精度比较高,并可测量物体内部的温度分布。但对于运动的、热容量比较小的及对感温元件有腐蚀作用的对象,这种方法将会产生很大的误差。非接触测温的测温元件与被测对象互不接触。常用的是辐射热交换原理。此种测温方法的主要特点是可测量运动状态的小目标及热容量小或变化迅速的对象,也可测量温度场的温度分布,但受环境的影响比较大。 温度传感器的发展大致可分为以下几种: (1)热电偶传感器。热电偶传感器是工业测量中应用最广泛的一种温度传感器,它与被测对象直接接触,不受中间介质的影响,具有较高的精度;测量范围广,可从-50℃~1600℃进行连续测量,特殊的热电偶如金,铁,镍,铬最低可测到-269℃,钨,铼最高可达2800℃。 (2)模拟集成温度传感器。采用硅半导体集成工艺制成的,因此亦称硅传感器或单片集成温度传感器。模拟集成温度传感器是在20世纪80年代问世的,它将温度传感器集成在一个芯片上、可完成温度测量及模拟信号输出等功能。模拟集成温度传感器的主要特点是:功能单一、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适合远距离测温,不需要进行非线性校准,外围电路简单。 (3)光纤传感器。光纤测温技术可分为两类:全辐射测温法,单辐射测温法,双波长测温法,多波长测温法等。特点是:光纤挠性好、透光谱段宽、传输损耗低,无论是就地使用或远传均十分方便而且光纤直径小,可以单根、成束、Y型或阵列方式使用,结构布置简单且体积小。缺点是:测量起来困难,难于实现较高的精度,工艺比较复杂,且造价高,推广应用有一定困难。 (4)半导体吸收式光纤温度传感器。半导体吸收式光纤温度传感器是利用了半导体材料的吸收光谱随温度变化的特性实现的。一种传光型光纤温度传感器,是指在光纤传感系统中,光纤仅作为光波的传输通路,而利用其它如光学式或机械式的敏感元件来感受被测温度的变化。在这类传感器中,半导体吸收式光纤温度传感器是研究得比较深入的一种。 (5)智能温度传感器。智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的。它是微电子技术、计算机技术和自动测试技术(ATE)的结晶。目前,国际上已开发出多种智能温度传感器系列产品。智能温度传感器内部包含温度传感器、A/D传感器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。智能温度传感器能输出温度数据及相关的温度控制量,适配各种微控制器(MCU),并且可通过软件来实现测试功能,即智能化取决于软件的开发水平。 随着科学技术的不断进步与发展,温度传感器的种类日益繁多,数字温度传感器更因适用于各种微处理器接口组成的自动温度控制系统具有可以克服模拟传感器与微处理器接口时需要信号调理电路和A/D转换器的弊端等优点,被广泛应用于工业控制、电子测温计、医疗仪器等各种温度控制系统中。其中,比较有代表性的数字温度传感器有DS1820、MAX6575、DS1722、MAX6635等。相比较而言,传统的温度检测以热敏电阻为温度敏感元件,热敏电阻成本低,但需要后续信号处理电路,而且热敏电阻的可靠性相对较差,测量温度的准确度低,检测系统的精度差。数字式温度传感器的种类也不少,并且在实际工程设计中具有上述诸多优点。 2系统总体方案设计 本章首先进行系统需求分析,然后介绍系统实现方案。 2.1系统需求分析 本系统主要进行温度的控制,温度对粮食储藏的影响是巨大的,因此,从温度对粮食储藏的影响的角度进行系统需求分析。 粮食入库后,在通常情况下,粮堆水分会不断发生变化。其主要原因是: 第一,外湿引起粮堆水分变化。外湿一般只影响到粮食的表层,表层以下无明显的日变化,只有幅度不大的年变化,年变幅度平均为1%左右。第二,粮堆内部水分的转移引起水分变化。不同水分的粮食混同入库后,根据吸湿平衡的规律,原来水分含量高的粮粒会散发部分水汽而减少水分,而原来水分含量低的粮粒则会吸收水汽而增加水分,一直达到水分相对平衡,这种现象叫“水分再分配”。另外一种现象叫“湿热扩散”,也能引起粮堆水分变化。当粮堆局部温高湿大时,其湿热空气由于水汽压力较大,便会根据热量传导的方向移动,即由高温部位向低温部位移动,导致低温部分湿度增加,水分增大。粮堆各部分之间温差越大,湿热扩散就越严重,即使粮食水分较小,如温差过大,也可能发生湿热扩散。第三,温差结露引起粮堆水分变化。粮食在贮藏过程中,由于外界温度的变化和粮堆内生物成分的生命活动而引起粮堆各部位出现温差时,在湿热扩散和空气对流的作用下,粮堆内外均易产生结露现象。它是引起粮堆外层和局部水分增加的最重要原因。粮堆结露,能使局部水分迅速增加,造成贮粮发热霉变以至发芽的严重后果。因此,必须注意防止结露。若出现局部水分突然上升,则要采取措施,果断处理,以防事故扩大。气温、粮温和仓温之间的相互影响如表2.1所示。 表2.1 三温的一般规律变化表 日变 年变 气温 日出前最低,午后2小时左右最高 一二月最低,七八月最高 仓温 最低最高仓温出现的时间迟后气温1—2小时 气温上升季节,仓温低于气温;气温下降季节,仓温高于气温。 粮温 最低最高仓温出现的时间迟后气温1—2小时。一般只波及粮面30厘米深,每天只升降0.5°C—1°C 二三月最低,八九月最低,迟后气温一个月以上。 粮温的高低,直接影响到贮粮的安全。在一定的温度范围内,粮食的呼吸强度随着温度的上升而增加,粮食的劣变速度也随着温度的上升而加快。实验表明,常温下贮藏的小麦经过一段时间都会导致品质下降,在化学成分上一般是干物质的分解,而在低温下(指15℃以下)贮藏的小麦,其劣变速度明显减缓。另外,在低温下贮藏小麦,可以保持其新鲜程度,改进小麦的工艺、食用和烘焙品质。低温还能抑制虫、霉的生长,对安全贮粮十分有利。因此,在生产实践中常常使用低温贮粮技术解决面粉、大米等成品粮度夏难的问题。 粮食入库后,正常的粮温主要随大气温度的变化而变化,即气温影响仓温,仓温影响粮温。但由于仓库具有一定的密闭、隔热性能,粮堆又是热的不良导体,粮温、仓温的升降速度及升降幅度均滞后于气温。粮温受气温影响的大小,还与粮堆的孔隙度和仓库的隔热和密闭性能、堆装方式以及入库的时间等多种因素有关。因此,在分析粮温变化时,必须综合多方面的情况加以考虑,才能准确地判断粮温是否正常,以便及早发现问题,做好预防工作。 2.2系统框架 系统主要由温度传感器、单片机、串口通讯电路、上位机、控制电路、时钟电路、键盘输入电路、显示电路、执行装置等组成。后面的控制电路用FPGA(可编程逻辑门阵列)对温度信号进行处理,以及对执行机构进行控制。本系统进行了如下结构设计:粮仓温度监控系统组成框图2.1所示。 图2.1 粮仓温湿度监控系统组成框图 由单片机通过温度传感器控制采集温度信息,并将温度信息送入控制电路;单片机选用51系列单片机AT89S52,除用于采集温度信息外,还通过串口通讯电路,将温度信息传入上位机;上位机为PC机,用于存储温度信息;串口通讯采用异步全双工通讯方式,考虑到通讯距离问题,采用485通讯方式,并在上位机端进行485/232电平转换;控制电路中设定了度的期望值,键盘输入电路根据实际需要,用于改变该期望值;显示电路用于显示温度信息的期望值和实测值;时钟电路为单片机和控制电路提供工作时钟;控制电路除进行输入、显示控制外,还通过模糊控制理论控制执行电路进行升温/降温。 3系统硬件电路设计 硬件电路设计是设计整个粮仓监控系统的基础,本章主要进行硬件系统的设计和实现,主要包括温度数据采集电路,单片机部分以及其它电路的设计,其中其它电路包括本节进行串口通讯电路、时钟电路、键盘电路、显示电路、控制电路以及执行装置的设计。下面逐一介绍各个部分。 3.1温度数据采集电路 用于粮仓温湿度监控系统的温度传感器主要是Dallas的DS1820系列温度传感器。DS1820是美国DALLAS公司生产的单线数字温度传感器,它具有微型化、低功耗、高性能、抗干拢能力强、易配微处理器等优点,特别适合于构成多点温度测控系统,可直接将温度转化成串行数字信号供微机处理,而且每片DS1820都有唯一的产品号并可存入其ROM中,以便在构成温湿度测控系统时在单线上挂接任意多个DS1820芯片。从DS1820读出或写入DS1820信息仅需要一根口线,其读写及温度变换功率来源于数据总线,该总线本身也可以向所挂接的DS1820供电,而无需额处电源。DS1820能提供九位温度读数,它无需任何外围硬件即可方便地构成温度检测系统,因而使用DS1820可使系统结构更趋简单.可靠性更高。 3.1.1 DS1820温度传感器 温度传感器选用一总线温度传感器DS1820。DS1820是美国DALLAS半导体公司生产的可组网数字式温度传感器,与其它温度传感器相比,DS1820具有以下特性:独特的单线接口方式,DS1820在与微处理器连接时仅需要一条口线即可实现微处理器与DS1820的双向通讯。DS1820支持多点组网功能,多个DS1820可以并联在唯一的三线上,实现组网多点测温。DS1820在使用中不需要任何外围元件,全部传感器元件及转换电路集成在形如一只三极管的集成电路内。温度范围-55℃~+125℃,固有测温分辨率±0.5℃;测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC效验码,具有极强的抗干扰纠错能力;测量结果以9位数字量方式串行传送。 DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: (1)系统的硬件虽然简单但需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。 (2)在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 (3)连接DS1820的总线电缆有长度限制。由于信号电缆本身存在电阻,距离过长时将导致信号衰减。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m。 DS1820有PR-35和SOIC两种封装形式,管脚排列如表3.1所示。本系统选用PR-35封装形式。DS1820返回温度值虽然只有9位,如图3.1所示。 表3.1 DS1820管脚排列 管脚 管脚定义 说明 8脚SOIC 3脚PR-35 2 1 GND 地 1 2 I|O 数据输入端 8 3 VCC 电源 3 4 5 6 7 NC 空脚 图3.1 DS1820温度值表示方法 D9为符号位,0表示正,1表示负,高字节的其他位(D10~D15)是以符号位的扩展位表示的;D0~D8为数据位,以二进制补码表示。温度是以1/2℃LSB形式表示的。表3.2为数值和温度的关系。 表3.2 DS1820数值和温度的关系 温度 数据(二进制) 数据(十六进制) +125 0000 0000 1111 1010 00FAH +25 0000 0000 0011 0010 0032H +0.5 0000 0000 0000 0001 0001H 0 0000 0000 0000 0000 0000H +0.5 1111 1111 1111 1111 FFFFH -25 1111 1111 1100 1110 FFCEH -55 1111 1111 1001 0010 FF92H 因到粮仓内环境温度不能出现负温情况,因此本系统不考虑负温情况,这样,在硬件选取上可以考虑选用商业级器件,不必要选用工业级器件,可以大幅度降低成本。因此单片机读取温度信息后,只需将低字节(D0~D8)送入上位机和控制电路即可。 3.1.2 测温电路图 DS1820测量温度时使用特有的温度测量技术。DS1820内部的低温度系数振荡器能产生稳定的频率信号f0,高温度系数振荡器则将被测温度转换成频率信号f。当计数门打开时,DS1820对f 0计数,计数门开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性予以补偿。测量结果存入温度寄存器中。 在64位ROM的最高有效字节中存有循环冗余校验码(CRC)。主机根据ROM的前56位来计算CRC值,并和存入DS1820中的CRC值作比较,以判断主机收到的ROM数据是否正确。CRC的函数表达式为:CRC=X8+X5+X3+1(占君等.2006)。此外,DS1820尚需依上式为暂存器中的数据来产生一个8位CRC送给主机,以确保暂存器数据传送无误。 在系统安装及工作之前应将主机逐个与DS1820挂接,以读出其序列号。其工作过程为:主机发出一个脉冲,待“0”电平大于480μs后,复位DS1820,在DS1820所发响应脉冲由主机接收后,主机再发读ROM命令代码33H,然后发一个脉冲(15μs),并接着读取DS1820序列号的一位。用同样方法读取序列号的56位。另外,由于DS1820单线通信功能是分时完成的,遵循严格的时隙概念,因此,系统对DS1820和各种操作必须按协议进行,即:初始化DS1820(发复位脉冲),发ROM功能命令,发存储器操作命令,处理数据。 DS1820单点测温电路框图如图3.2所示,其中,网络定义P3.4为89S52的P3.4引脚。 图3.2 DS1820单点测温电路图 3.2单片机设计部分 单片机选用ATMEL公司的可在线编程的AT89S52,用于温度采集及数据通讯。AT89S52具有一下特点:完全兼容MCS-51指令系统;8Kb的可反复擦写FLASH ROM(程序存储器);256个字节的内RAM;32个可编程的双向I/O口(并行I/O口);3个16位定时器/计数器;8个中断源;1个串行I/O口;内置看门狗电路,在程序死机后自动复位。 AT89S52有3个并行I/O端口,P0:P0.0~P0.7、P1.0~P1.7、P2.0~P2.7。P0端口在没有片内存储器时,可以作为普通I/O口使用,外接存储器时作为地址线/数据线使用。P1端口可以作为普通I/O口使用,同时P1.0、P1.1、P1.5~P1.7还具备特殊功能,如表3.3所示。P2端口在没有片外存储器时,可以作为普通I/O口使用,外接存储器时作为高8位地址使用。 表3.3 AT89S52 P1端口的特殊功能 引脚 特殊功能 P1.0 T2: 定时器|计数器2的外部计数器输入 P1.1 T2EX: 定时器|计数器2的捕捉|重载触发及方向控制 P1.5 MOSI: 用于在线编程(ISP) P1.6 MOSI: 用于在线编程(ISP) P1.7 SCK: 用于在线编程(ISP) 表3.4 AT89S52 P3端口的特殊功能 引脚 特殊功能 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 (外部数据存储器读控制) 单片机在本粮仓温度监控系统中主要用于通讯及温度采集。P0口用于将温度信息送入控制电路,P3.0、P3.1用于与上位机的串行通讯,P3.4接DS1820。单片机与控制电路共用一个外部时钟,采用片内存储器,设有上电复位功能。电路图见图3.3,选用PLCC-44封装的AT89S52。 图3.3 AT89S52连接关系图 4软件设计及实现 4.1 FPGA控制电路源程序 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity c6 is pro(clk,pt0,pt1,pt2,pt3,pt4,pt5,pt6,pt7,ph,pdt1,pdt2,pdt3,pdt4,pdh1,pdh2,pdh3,pdh4;in std_logic; a,b,c,d,e,f,g,db,t_100,t_10,t_1,t_db,t0_10,t0_1,h_10,h_1,h0_10,h0_1:out std_logic); end c6; architecture Behavioral of c6 is signal cnt4:std_logic_vector(3 downto 0); signal tn_cnt7:std_logic_vector(6 downto 0); signal tn_cnt12:std_logic_vector(11 downto 0); signal tn_H:std_logic_vector(3 downto 0); signal tn_C:std_logic_vector(3 downto 0); signal tn_L:std_logic_vector(3 downto 0); signal tn_Hout:std_logic_vector(3 downto 0); signal tn_Cout:std_logic_vector(3 downto 0); signal tn_Lout:std_logic_vector(3 downto 0); signal tn0_cnt7:std_logic_vector(6 downto 0); signal tn0_cnt8:std_logic_vector(7 downto 0); signal tn0_H:std_logic_vector(3 downto 0); signal tn0_L:std_logic_vector(3 downto 0); signal tn0_Hout:std_logic_vector(3 downto 0); signal tn0_Lout:std_logic_vector(3 downto 0); signal hn_cnt7:std_logic_vector(6 downto 0); signal hn_cnt8:std_logic_vector(7 downto 0); signal hn_H:std_logic_vector(3 downto 0); signal hn_L:std_logic_vector(3 downto 0); signal hn_Hout:std_logic_vector(3 downto 0); signal hn_Lout:std_logic_vector(3 downto 0); signal hn0_cnt7:std_logic_vector(6 downto 0); signal hn0_cnt8:std_logic_vector(7 downto 0) signal hn0_H:std_logic_vector(3 downto 0); signal hn0_L:std_logic_vector(3 downto 0); signal hn0_Hout:std_logic_vector(3 downto 0 signal hn0_Lout:std_logic_vector(3 downto 0 signal cnt9:std_logic_vector(8 downto 0); signal cntout:std_logic_vector(3 downto 0); signal tn:std_logic_vector(6 downto 0); signal tn1:std_logic_vector(6 downto 0); signal dtn:std_logic_vector(6 downto 0); signal kn:std_logic_vector(6 downto 0); signal kn1:std_logic_vector(6 downto 0); signal hn:std_logic_vector(6 downto 0); signal hn1:std_logic_vector(6 downto 0); signal dhn:std_logic_vector(6 downto 0); signal dth:std_logic_vector(7 downto 0); signal t0:std_logic_vector(6 downto 0); signal h0:std_logic_vector(6 downto 0); signal dt0:std_logic_vector(6 downto 0); signal dh0:std_logic_vector(6 downto 0); signal fdt0:std_logic_vector(6 downto 0); signal fdh0:std_logic_vector(6 downto 0); signal tn0:std_logic_vector(6 downto 0); signal hn0:std_logic_vector(6 downto 0); signal x1:std_logic_vector(6 downto 0); signal x2:std_logic_vector(6 downto 0); signal x3:std_logic_vector(6 downto 0); signal dx1:std_logic_vector(6 downto 0); signal dx2:std_logic_vector(6 downto 0); signal dx3:std_logic_vector(6 downto 0); signal y1:std_logic_vector(6 downto 0); signal y2:std_logic_vector(6 downto 0); signal y3:std_logic_vector(6 downto 0); signal dy1:std_logic_vector(6 downto 0); signal dy2:std_logic_vector(6 downto 0); signal dy3:std_logic_vector(6 downto 0); signal ct:std_logic_vector(5 downto 0); signal ch:std_logic_vector(5 downto 0); signal led:std_logic_vector(6 downto 0); signal tzero,clk1,clk2,hclk,kt,led_dth_in:std_logic; signal t_a1,t_a2,t_a3,t_a4,t0_a1,t0_a2,h_a1,h_a2,h0_a1,h0_a2,db1:std_logic; begin --时钟部分-- process(clk) begin if clk'event and clk='0'then cnt4<=cnt4+'1'; cnt9<=cnt9+'1'; end if; end process; clk1<=cnt9(8);--采样周期 clk2<=cnt9(6);--键盘输入控制时钟 --温度初始目标值设定-- t0<='0010100'';--温度初始设定,20.0度 --键盘输入部分,用于手动改变温度设定值-- dth_in(0)<=pdt1; dth_in(1)<=pdt2; dth_in(2)<=pdt3; dth_in(3)<=pdt4; dth_in(4)<=pdh1; dth_in(5)<=pdh2; dth_in(6)<=pdh3; dth_in(7)<=pdh4; process(clk2) begin if clk'event and clk2='1'then case dth_in is when"00000001"=>dt0<=dt0+'1'; when"00000010"=>fdt0<=fdt0+'1'1; when"00000100"=>dt0<=dt0+''1010''; when"00001000"=>fdt0<=fdt0+''1010''; when"00010000"=>dh0<=dh0+'1'; when"00100000"=>fdh0<=fdh0+'1'; when"01000000"=>dh0<=dh0+''1010''; when"10000000"=>fdh0<=fdh0+''1010''; when"00000000"=>led_dth_in<='1'; when others=>led_dth_in<='0';--报警,同时按下两个或两个以上按键-- end case; end if; end process; --温度初始目标值设定-- tn0<=t0+dt0-fdt0; hn0<=h0+dh0-fdh0; --温度及其增量采集部分-- th(0)<=pt1; th(1)<=pt2; th(2)<=pt3; th(3)<=pt4; th(4)<=pt5; th(5)<=pt6; th(6)<=pt7;--th:温度整数部分 tzero<=pt0;--tzero:温度小数不分 hclk<=ph; process(hclk) begin if hclk'event and hclk='1'then kn<=kn+'1'; end if; end process; process(clk) begin if clk'event and clk='1'then if tn>=tn1 then--tn1,kn1,hn1:tn,kn,hn的前一状态 dtn<=tn-tn1;--dtn:温度增量 kt<='0';--kt:符号位,为'0'表示温度升高,为'1'表示温度降低 else dth<=tn1-tn; kt<='1'; end if; if kn>=kn1 then hn<=kn-kn1;--hn:温度 if kn-kn1>=hn1 then dhn<=kn-kn1-hn1 kn<='0' else dhn<=hn1-(kn-kn1); kh<='1'; end if; else hn<="1111111"-kn1+kn; if"1111111"-kn1+kn>=hn1 then dhn<="1111111"-kn1+kn-hn1 kh<='0' else dhn<=hn1-("1111111"-kn1+kn); kh<='1'; end if; end if; end if; if clk'event and clk1='0'then tn1<=tn; kn1<=kn; hn1<=hn; end if; end process; 4.2 单片机测温源程序 测温程序代码: DS1820.C #include<REG52.H> sbit DQ=P3^4;//定义端口 typedef unsigned char byte; typedef unsigned int word; //延时 void delay(word useconds) { for(;useconds>0;useconds--); } //复位 byte ow_reset(void) { byte presence; DQ=0;//DQ低电平 delay(29);//480us DQ=1;//DQ高电平 delay(3);//等待 presence=DQ;//presence信号 delay(25); return(presence); }//0允许,1=禁止t //从1-wire总线上读取一个字节 byte read_byte(void) { byte i; byte value=0; for(i=8;i>0;i--) { value>>=1; DQ=0; DQ=1; delay(1); if(DQ)value|=0x80; delay(6); } return(value); } //向1-WIRE总线上写一个字节 void write_byte(char val) { byte i; for(i=8;i>0;i--)//一次写一字节 { DQ=0; DQ=val&0x01; delay(5); DQ=1; val=val/2; } delay(5); } //读取温度 char Read_Temperature(void) { union{ byte c[2]; int x; }temp; ow_reset(); write_byte(0xCC);//跳过ROM write_byte(0xBE);//读 temp.c[1]=read_byte(); temp.c[0]=read_byte(); ow_reset(); write_byte(0xCC); write_byte(0x44);//开始 return temp.x/2; } 5结论 本系统是以XILINX公司的FPGA(可编程逻辑门阵列)作为粮仓温度监控系统控制电路的核心,实现了对执行机构的模糊控制。外围电路主要有键盘显示电路、时钟电路、执行机构控制电路、温度采集与串口电路等。 控制电路部分,整个控制电路由FPGA、键盘和显示电路、执行机构组成。本系统具有以下优点: (1)采用一总线数字温度传感器DS1820,彻底避免了模拟传感器带来的供地干扰和线路干扰问题,简化了系统复杂度,提高了系统测量的准确度和智能化程度,在一定程度上降低了系统的成本。 (2)用FPGA完成了模糊控制器的设计,实现了对粮仓温度的控制。用FPGA来实现模糊控制算法,省去了相当数目复杂的门电路。减少了系统的大量的外围数字电路的设计,提高系统集成度、可靠性、低功耗、低成本,优化系统性能并缩短设计周期,开发费用最低、风险最小。 (3)FPGA使用非常灵活,同一片FPGA通过不同的编程数据可以产生不同的电路功能。本系统中的时钟电路,温度初始目标值的设定,键盘输入电路,温度及其增量采集,模糊控制部分,显示部分的功能都由FPGA的具体编程来实现。 参考文献 [1] 陈波.中国粮食安全成本及其结构优化研究[D].华中农业大学学报.2007 [2] 陈京培.基于AT89S52高性能单片机串行通信电路的设计[J].科技信息(学术研究) .2007 [3] 陈意军.基于VHDL的FPGA开发[J].电子与封装.2006 [4] 程耀林.FPGA的系统设计方法解析[J].微型电脑应用.2007 17- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 粮仓 温度 控制系统 课程设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文