粮仓管理系统的设计_第1页
粮仓管理系统的设计_第2页
粮仓管理系统的设计_第3页
粮仓管理系统的设计_第4页
粮仓管理系统的设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科生毕业设计粮仓管理系统的设计学院:************************************专业:************************学号:************************学生姓名:************指导教师:************************(职称)二年六月摘要随着科学技术的高速发展,单片机技术、自动检测技术已广泛应用于社会的各个行业。本文主要采用单片机技术、自动检测技术对粮仓管理系统进行应用设计。设计的粮仓管理系统主要由51单片机为控制中心、DH11温湿度传感器、无线接发模块、时钟芯片、液晶、储存芯片、上位机等部分组成。无线接发模块将检测到粮仓的实时温、湿度发送给主机然后将数据传到电脑,使系统能根据检测到的情况和设置情况作出相应的控制,为确保粮仓的良好环境提供了保证。文中详细介绍了粮仓管理系统的设计方案的选择、硬件电路的组成、系统的工作原理、软件程序的设计、系统的调试与检测等,测试结果表明,所设计的系统能实现预定的各项功能,测试各项性能指标全部达到设计的要求。关键词:51单片机;温湿度传感器;分机;无线收发模块;主机;上位机DesignofManagementSysteminGranary

十十十十十

*****AbstractWiththerapiddevelopmentofscienceandtechnology,microcomputertechnologyandautomaticdetectiontechnologyhavebeenwidelyappliedinthevarioussectorsofsociety.Themonolithicintegratedcircuittechnologyandautomaticdetectiontechnologyaremainlyusedinapplicationdesignofgranarymanagementsysteminthispaper.With51singlechipmicrocomputerworkingascontrolcenter,thedesignofgranarymanagementsystemismainlycomposedofDH11temperature,humiditysensor,awirelessreceivingmodule,theclockchip,LCD,memorychipsandsoon.Wirelessreceivingmodulewilldetectthereal-timetemperatureandhumidityofthegranaryandsendittothehostandthentransmitsthedatatothecomputer,sothesystemcanbedetectedaccordingtothecircumstancesandsettingscorrespondingcontrol,whichwillensurethatthegranaryprovideagoodenvironment.Theselectionofdesignscheme,thehardwarecompositions,theworkingprinciple,thedesignofsoftware,thedebuggingandtestingofthegranarymanagementsystemareintroducedindetailinthispaper.Anditisshowedintestthatthesystemcanachievethepredeterminedfunctionsandtheperformanceindicatorsallmeettherequirementsofthisdesign.Keywords:51controlchip;Temperatureandhumiditysensor;Extension;Wirelesstransceivermodule;Host;PC选题背景错误!未定义书签。TOC\o"1-5"\h\z\o"CurrentDocument"方案比较和选择12.1控制芯片的选择22.2温度湿度传感器的选择22.3无线收发模块的选择42.4主机与PC机传输的选择5\o"CurrentDocument"系统方案的设计6\o"CurrentDocument"硬件电路的设计64.1单片机控制系统的设计74.2温度湿度传感器电路的设计84.3无线收发模块84.4时钟电路的设计94.5主机与PC机的传输设计94.6液晶电路的设计104.7储存电路的设计11\o"CurrentDocument"软件部分的设计12\o"CurrentDocument"系统的调试136.1硬件的调试136.2软件的调试14结论及尚存在的问题错误!未定义书签。参考文献错误!未定义书签。致谢错误!未定义书签。附录1主机系统电路图18附录2检测单片机电路图19附录3PC机界面20附录4主程序清单21粮仓管理系统的设计姓名:*****学号:*******班级:*******选题背景粮食是关系国计民生的重要战略物资,吃饭始终是人类赖以生存和社会稳定的头等大事,保持粮食科学仓储和流通至关重要,因此,开发一个结合现代计算机技术、自动控制技术的粮管理控制系统,可以简化粮食存储管理过程,保障粮食的安全,减少人力,提高效率,这对于推进粮库管理的现代化将具有非常重要的意义。粮仓测控技术的研究始于20世纪70年代,它是科学保粮的重要技术之一,随着国家农业产业政策的不断完善,以及现代科学技术在农业生产中的应川和推广。国家粮食总产量不断突破历史新高。但国家的粮食储备状况自建国以来却没有得剑明显改善。全国80%左右的粮食仍采川原始的存储方式。初期,以铜电阻,热敏电阻作为传感器件,通过检测电阻的变化来反映粮食温度的变化.为粮食保管提供参考依据。但此工作靠人一点一点测精、效率低准确性差。在粮食部门各级领导的关怀和粮食行业科技主管部门的人力支持,在粮食行业内、外科技工作者近30年的共同努力下,粮食检测技术不断完善、提高、并日趋成熟,逐步形成了样式繁多的粮情检测系统,为安全、科学储粮起到了积极的作用。在储藏过程中,粮食受温度、湿度及其它因素的影响,可能出现发热、霉变、虫害等情况。为了减少粮食储藏过程中的损失,保障粮食的品质、质量,首先应该及时准确地把握粮食储藏过程中各种物理因素的变化情况,找出其变化规律。法国储粮专家Je.Lasseran,D.Berhant采用温度调节器来控制温度。实验在一个500吨、高16米的中型仓中进行。研究表明,在低温气候下从夏季到秋季经2〜3次通风每次要持续儿个晚上.每天4〜10小时,可将温度从300C降到SC(在英国气候条件卜).在冬天粮温可保持不变,井在春天有所上升,经过一年的实践表明:不仅甲生状况良好。而且粮食的品质没有变化:澳人利弧Gib等专家最近研究了一种以PC机为基础的可遥控利监侧通风系统的通风控制器.该控制器包括一台PC机和相关的软件、气象预报台和粮堆中的灵敏元件。它能灵活地、有效地控制通风系统,减少通风费用,并可以实行联网,从而不必依靠仓库管理人员收集的情况。就能得到通风系统的有关数据和系统的运行情况。本设计储粮管理系统能及时检测、保存粮仓的粮情信息(如粮温、粮湿等),对于安全储粮、历史数据查询、分析得出储粮普遍规律都有积极的作用;对于早期粮情信息检测手工作业效率低,劳动强度大、储粮成本高等缺陷有明显改变作用。能产生一定期的经济效益,也具有重大的社会效益。方案比较和选择粮管理控制系统由51单片机、温湿度传感器、液晶、无线收发模块、DS1302时钟芯片等元件组成,其中控制系统的选择是关键,控制芯片的选择既要求满足控制的需求,又要省钱、易操作,总而言之是要求性价比达到最高,以便花最少的钱来设计出性能较好的系统。控制中心不仅要处理检测到的数据,还要根据设置来发出相应的操作指令,因而是系统能自动化、智能化的关键。作为测控系统,如何获取精准的数据也十分关键,传感器在系统中是实现测量的主要环节,是测控系统必不可少的部件,如果没有传感器对信号进行准确可靠的检测,一切准确的测量和控制都将无法实现。工业生产过程的自动化测量和控制,几乎主要依靠各种传感器来检测和控制生产过程中的各种参量,使设备和系统正常运行在最佳状态,从而保证生产的高效率和高质量。2.1控制芯片的选择方案一:采用AT89S51单片机,AT89S51为ATMEL所生产的可电气烧录清洗的8051相容单芯片,其内部程序代码容量为4KB。AT89S51主要功能列举如下:(1)为一般控制应用的8位单芯片;(2)晶片内部具时钟振荡器(传统最高工作频率可至12MHz);(3)内部程式存储器(ROM)为4KB;(4)内部数据存储器(RAM)为128B;(5)外部程序存储器可扩充至64KB;(6)外部数据存储器可扩充至64KB;(7)32条双向输入输出线,且每条均可以单独做I/O的控制;(8)5个中断向量源;(9)2组独立的16位定时器;(10)1个全多工串行通信端口;(11)8751及8752单芯片具有数据保密的功能;(12)单芯片提供位逻辑运算指令。方案二:选择AT89S52单片机,AT89S52为ATMEL所生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flsah存储器。AT89S52主要功能列举如下:(1)拥有灵巧的8位CPU和在系统可编程Flash;(2)晶片内部具时钟振荡器(传统最高工作频率可至12MHz);(3)内部程序存储器(ROM)为8KB;(4)内部数据存储器(RAM)为256字节;(5)32个可编程I/O口线;(6)8个中断向量源;(7)三个16位定时器/计数器;(8)三级加密程序存储器;(9)全双工UART串行通道。对比两个芯片的功能来看,AT89S52的性能比AT89S51要有优势,但相对于我们设计的系统来说,AT89S51能满足了们的设计要求了,从性价比来选择,选择AT89S51更符合我们的设计要求。2.2温、湿度传感器的选择方案一:采用pt100温度传感器。pt100是铂热电阻,它的阻值跟温度的变化成正比。PT100的阻值与温度变化关系为:当PT100温度为0°C时它的阻值为100欧姆,在100C时它的阻值约为138.5欧姆。它的工业原理:当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成匀速增长的。湿度检测采用HS1100/HS1101湿度传感器。HS1100/HS1101电容传感器,在电路构成中等效于一个电容器件,其电容量随着所测空气湿度的增大而增大。不需校准的完全互换性,高可靠性和长期稳定性,快速响应时间,专利设计的固态聚合物结构,由顶端接触(HS1100)和侧面接触(HS1101)两种封装产品,适用于线性电压输出和频率输出两种电路,适宜于制造流水线上的自动插件和自动装配过程等。相对湿度在1%---100%RH范围内;电容量由16pF变到200pF,其误差不大于土2%RH;响应时间小于5S;温度系数为0.04pF/C。可见精度是较高的。方案二:温度检测采用DS18B20,DS18B20的主要特性:适应电压范围更宽,电压范围:3.0〜5.5V,在寄生电源方式下可由数据线供电;独特的单线接口方式;DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温;温范围一55C〜+125C,在-10〜+85C时精度为±0.5C;DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。湿度检测采用HS1100/HS1101湿度传感器。HS1100/HS1101电容传感器,在电路构成中等效于一个电容器件,其电容量随着所测空气湿度的增大而增大。不需校准的完全互换性,高可靠性和长期稳定性,快速响应时间,专利设计的固态聚合物结构,由顶端接触(HS1100)和侧面接触(HS1101)两种封装产品,适用于线性电压输出和频率输出两种电路,适宜于制造流水线上的自动插件和自动装配过程等。相对湿度在1%---100%RH范围内;电容量由16pF变到200pF,其误差不大于土2%RH;响应时间小于5S;温度系数为0.04pF/C。可见精度是较高的。方案三:采用DHT11数字温湿度传感器°DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4针单排引脚封装,连接方便,测量范120—90%RH0—50C测湿精度土5%RH测温精度±2C分辨力1单排直插。方案一、方案二都是由温度传感器与湿度传感器组合起来,由单片机分别控制温度与湿度的检测与处理,而方案三是一个传感器就能检测到温度与湿度,检测的数据准确度符合电路的数据要求,从各方面综合考虑选择方案三,DHT11温湿度传感器具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点,完全符合电路的设计要求。2.3无线收发模块的选择方案一:RF1100-TTL无线串口收发模块,采用TI公司的高性能CC1101无线通信芯片,433MHz免费ISM频段免许可证使用,串口TTL通讯方式,透明传输,应用简单无需编程即可使用,极大方便使用,提供多达256个信道,低功耗工作,直线传输距离可达150米,可广泛应用于无线抄表、工业遥控等无线数传领域。RF1100-TTL基本性能及特点:低功耗模块,最大发射功率10mW;工作电压5V,直流供电;工作于433MHz免费ISM频段,免许可证使用(420MHz〜440MHz);高抗干扰能力和低误码率,基于FSK的调制方式,采用高效前向纠错和信道交织编码技术,提高了数据抗随机干扰和突发干扰的能力,在信道误码率为10-2时,可得到实际误码率10-5〜10-6;支持透明的数据传输及DL/645规约。提供透明的数据接口,能适应任何标准或非标准的用户协议。自动过滤掉空中产生的假数据(所收即所发);通信软件支持无线抄表系统的DL/645规约;最大256个可编程信道(20M频段)。可以按照200KHz间隔频点则可以提供至少256个信道,满足用户多种通信组合方式;接口方式为TTL电平接口;采用专业的单芯片模块设计,降低了用户使用成本;大的数据缓冲区。接口波特率等于空中有效波特率,提供3种用户可选波特率:4800、9600、19200bps(接口速率最高可设置到19200bps),数据格式为8N1/8E1/8O1用户自定义,可传输最长为30字节的数据帧,用户编程更灵活。方案二:NBC905_V2.0,是基于挪威NORDIC公司的最新封装改版NRF905无线收发IC基础上优化设计的一款高性能433M无线收发模块。模块具有体积小,距离远,功耗低,通信稳定,抗干扰性强等特点。NBC905_V2.0主要有如下参数特点:工作电压范围:DC1.9V-DC3.6V;采用GFSK调制,433Mhz开放ISM频段免许可证使用;接收发送功能合一,收发完成中断标志;170个频道,满足多点通讯和跳频通讯需求,实现组网通讯,TDMA-CDMA-FDMA;内置硬件8/16位CRC校验,开发更简单,数据传输可靠稳定;接收灵敏度达-100dBm;收发模式切换时间<650us;每次最多可发送接收32字节,并可软件设置发送/接收缓冲区大小2/4/8/16/32字节;模块可软件设地址,只有收到本机地址时才会输出数据(提供中断指示),可直接接各种单片机使用,软件编程非常方便;最大发射功率10毫瓦,发射模式:最大电流<30mA;接收模式:电流12.2mA;内置SPI接口,也可通过I/O口模拟SPI实现。最高SPI时钟可达10M;发射速率50Kbps,外置433MHz天线,空旷通讯距离可达300米左右,室内通信3-6层可实现可靠通信,抗干扰性能强,很强的障碍穿透性能;方案三:nRF24.L01是一款新型单片射频收发器件,工作于2.4GHz〜2.5GHzISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,在以-6dBm的功率发射时,工作电流也只有9mA;接收时,工作电流只有12.3mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便。NRF24L01基本特性:(1)2Mbit/s速率下接收时的峰值电流12.5mA;(2)在2Mbit/s速率下@0dBm输出时的峰值电流11mA;(3)掉电模式下的功耗400nA;(4)待机模式下的功耗32uA;(5)130us的快速切换和唤醒时间;(6)具有片内稳压器oltageregulators;(7)可在1.9to3.6V低电压工作;(8)MultiCeiverMT硬件提供同时6个接收机的功能,2Mbit/s使得高质量的VoIP成为可能。综合各方面的条件,选择方案三,因为nRF24.L01内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,使我们设计的电路更加可靠与稳定,有多种低功率工作模式(掉电模式和空闲模式)使设计更方便。2.4主机与PC机传输的选择方案一:无线传输PC机与单片机通过无线信道传输数据。无线传输方案通过串口来实现PC机与单片机之间的双工通信。无线传输可以用不同的方式来实现,常用的有红外方式、蓝牙方式,其他的还有射频收发芯片如CC1100,PT2262/2272芯片等。红外通信是利用950nm近红外波段的红外线作为传递信息的载体,通过红外光在空中的传播来传递信息,由红外发射器和接收器实现。发射端将二进制数字信号调制成某一频率的脉冲序列,经电光转换电路,驱动红外发射管以光脉冲的形式发送到空中。接收端将接收到的光脉冲转换成电信号,再经解调和译码后恢复出原二进制数字信号。其最大优点是:不易被人发现和截获,保密性强;几乎不会受到电气、天电、人为干扰,抗干扰性强。此外,红外线通信机体积小、重量轻、结构简单、价格低廉。不足之处在于它必须在视距内通信,且传播受天气的影响。方案二:有线传输方式PC机与单片机之间通过电缆线传输数据。有线传输的优势是性能比较稳定,调试简单,而不足之处在于它的应用范围不够广、性能不够好,而且传输距离受限,这样就大大影响了系统的应用范围。单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行电平转换。由于本设计的传输距离不远、需要稳定的数据传输,无线传输容易受到干扰而有线传输的优势是性能比较稳定、调试简单,所以综合本次设计的要求选择用芯片MAX232的有线传输。系统方案的设计粮仓管理系统的设计选用AT89S51芯片,配以温湿度传感器、无线接发模块、串口通信、上位机等器件,实现了主机控制多分机粮仓检测功能,通过无线接发模块将分机检测到的粮仓实时温度、湿度传回到主机然后用有线方式传输传到PC机,使系统能根据检测到的情况作出相应的控制,为管理粮仓提供更加合理和有效的系统。粮仓管理系统的设计的系统框图如图3-1所示:图3-1粮仓管理系统的系统框图硬件电路的设计硬件电路的设计主要分为两大块主机电路的设计与测量单片机电路的设计,包括单片机控制电路、温湿度检测电路、无线收发电路、液晶显示、单片机与PC机通信电路、储存模块等电路。主机系统原理图如图4-1所示图4-1主机系统原理图测量单片机系统原理图如图4-2所示

图4-2测量单片机系统原理图4.1单片机控制系统的设计控制系统选用AT89S51单片机,AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。单片机最小系统电路图如图4-3所示12MMTPfEHVCCMO.AIMKTALIPO1ADI5TTAL2P0J.AD2PO312MMTPfEHVCCMO.AIMKTALIPO1ADI5TTAL2P0J.AD2PO3KL4.AD4P0J.AD5PO.fi.AD6PO.7.-AD7RSTEAV™PIjD.TI哭ENPlI.TIEMJLLE.PE.CGPl-l-XCIPL3/CEJCOPl4.CE3C1PHQMDFL5.-CZEJC3P3l.TiDPlS.CE3C3P32-INTOPl7CEK4P33INTIP34-TOP20-ABP35T1PlISA9P3.6WRPUL-A10P3P23AllP2.4.A12P15.A13JKL&jimP2-7-A15PO"R103PIOHeaderP12□13~~FE-FZ_『m.一F「-OF:MQSITJB■以XQ3Oq亡I_KCH图4-3单片机最小系统电路图4.2温度湿度传感器电路的设计温度湿度传感器电路主要通过DHT11传感器检测,DHT11是一款含有已校准熟悉信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在即为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测型号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为给类应用甚至最为苛刻的应用场合的最佳选择。产品为4针单排引脚封装,连接方便。DHT11的电路图如图4-4所示图4-4DHT11的电路图4.3无线收发模块nRF24.L01是一款新型单片射频收发器件,工作于2.4GHz〜2.5GHzISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst技术,其中输出功率和通信频道可通过程序进行配置。工作原理:发射数据时,首先将nRF24L01配置为发射模式:接着把接收节点地址TX_ADDR和有效数据TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10us,延迟130us后发射数据;若自动应答开启,那么nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应该与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TXFIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TXFIFO中数据保留以便在次重发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式2。接收数据时,首先将nRF24L01配置为接收模式,接着延迟130u,进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RXFIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。nRF24L01单端射频输出原理图如图4-5所示真10I§!■%-3球:一:虬1勤3raoB真10I§!■%-3球:一:虬1勤3raoBf*CEIT~pGnFCSHSCkM0S1MISO4sc_MCSJ」>X>cD1(MHzANT2aMI^'DD.PA图4-5nRF24L01单端射频输出原理图4.4时钟电路的设计时钟电路采用了DS1302芯片,DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V〜5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31x8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。时钟芯片的电路图如图4-6所示图4-6时钟芯片的电路图4.5主机与PC机的传输设计主机与PC机的通信采用MAX232芯片,该产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。由于电脑串口rs232电平是-10v+10v,而一般的单片机应用系统

的信号电压是ttl电平0+5v,max232就是用来进行电平转换的,该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-VTTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。主要特点:(1)单5V电源工作;(2)LinBiCMOSTMX艺技术;(3)两个驱动器及两个接收器;(4)±30V输入电平;(5)低电源电流:典型值是8mA;(6)符合甚至优于ANSI标准EIA/TIA-232-E及ITU推荐标准V.28;(7)ESD保护大于MIL-STD-883(方法3015)标准的2000V。MAX232的电路图如图4-7所示_l±clOuHTCapPollUMAX_Ec_l(hif2TCapPol]1OiiFP31P30C1十VDDCPVCCC2十_l±clOuHTCapPollUMAX_Ec_l(hif2TCapPol]1OiiFP31P30C1十VDDCPVCCC2十C2-T1INT1OUTT2INT2OUTR1OUTR1INR2OUTR2INGNDVEE1511216Tvc(:14_厂CapPolllOuF1623849MAX232ACPE+|(C_1M4CapPollJ-232DConnector94.6液晶电路的设计液晶显示电路采用了12864液晶模块,液晶模块的软件特性主要由ST7920控制驱动器决定。ST7920同时作为控制器和驱动器,它可提供33路com输出和64路seg输出。在驱动器ST7921的配合下,最多可以驱动256X32点阵液晶。ST7920系列产品硬件特性如下:(1)提供8位,4位并行接口及串行接口可选;(2)并行接口适配M6800时序;(3)自动电源启动复位功能;(4)内部自建振荡源;(5)64X16位字符显示RAM(DDRAM最多16字符X4行,LCD显示范围16X2行);2M位中文字型ROM(CGROM),总共提供8192个中文字型(16X16点阵);16K位半宽字型ROM(HCGROM),总共提供126个西文字型(16X8点阵);64X16位字符产生RAM(CGRAM);15X16位总共240点的ICONRAM(ICONRAM)。ST7920系列产品软件特性如下:文字与图形混合显示功能;画面清除功能;光标归位功能;显示开/关功能;光标显示/隐藏功能;显示字体闪烁功能;光标移位功能功能显示移位功能;垂直画面旋转功能;(10)反白显示功能;(11)休眠模式。利用液晶的显示功能,我们可以将检测到的温湿度和时间在液晶上显示,并通过按键来对系统进行设置。12864的电路图如图4-8所示图4-812864的电路图4.7储存电路的设计本电路主要采用了AT24C02,AT24C02是一个2K位串行CMOSE2PROM,内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IC总线接口进行操作,有一个专门的写保护功能。我

们将检测到得温湿度写入到AT24C02中,当需要时候又可以从中读取出来。AT24C02的电路图如图4-9所示三U24C02VCCAI24C02图4-9AT24C02的电路图软件部分的设计软件部分设计包括:串口与PC机通信的设计,温湿度程序设计,液晶显示程序设计,无线收发程序设计等……主机系统流程图如图5-1所示:图5-1主机系统程序流程图检测单片机系统如图5-2所示:

开始图5-2检测单片机系统系统的调试调试工具:万用表、信号发生器、示波器、KEIL编译软件、STC下载软件、VC++6.0编译软件等。6.1硬件的调试首先按照电路图,画出PCB,然后制板。在焊元器件前要用万用表检查电路的各线路有没有短路与断路的,做完这些工作之后再焊接元器件。在焊元器件的时候要注意虚焊与元件之间不要短接,焊好之后用万用表检测元器件间是否通路。确定无误之后上电,看看指示灯是否正常,然后测量各个脚的电压,最后再插入芯片。硬件的实物图如下图6-1主机硬件图:图6-1主机硬件图检测单片机电路图6-2如下:

图6-2检测单片机电路图6.2软件的调试软件调试分为三部分:(1)主机的调试:主要有几个子程序,时钟的调试、液晶的显示、无线收发的接收、按键的设置、自动降温除湿的设置、串口通信等;(2)检测单片机的调试:DHT11传感器获取温湿度的调试、无线收发的数据发送调试;(3)PC机界面的调试:界面的设计、数据的显示。结论及尚存在的问题本设计主要采用单片机技术、自动检测技术对粮仓管理系统进行应用设计,所设计的系统完潇完成了设计的要求,实现了设计的各项功能,具体包括:(1)能检测到各仓库的温度与湿度,并在液晶上显示;(2)能利用按键设置临界值,当超过之后会自动报警并提示是那个房间那种值超标,然后自动采取相应的措施来除湿与降温保持仓库的良好环境;(3)能通过无线发收模块将检测到的值传到电脑上,可以通过界面来监控粮仓的情况;(4)能利用按键来查阅某段时间的温湿度,更好了解仓库温湿度的变化情况;(5)通过时钟芯片,能设置时间与显示;通过多次的检测、测试,证明粮仓管理系统的设计比较稳定,各个功能都能按照我们的设想进行工作,有比较好的智能化与自动化,能利用一台主机对多台分机进行监测,粮仓管理系统的应用,大大缓解了粮食仓储的压力,它能及时、准确、快速地反映粮堆温度、湿度的变化情况,既省时又省力。本设计系统如果能利用WIFI来进行通信,则效果会更加好,数据传输更加稳定,但由于时间与技术有限,无法完成这样的设计,待以后有机会的再继续努力改进。参考文献[1]周航慈.单片机应用程序设计[M].北京航空航天大学出版社,1991[2]何希才、虹敏.传感器应用接口电路[M].机械工业出版社,1997[3]刘笃仁、韩保君.传感器原理及应用技术[M].机械工业出版社,2003.8[4]康华光.电子技术基础.高等教育出版社[M],2003.6[5]〈美〉M考夫曼、AH塞德.电子计算手册[M].国防工业出版社,1985[6]李建民.单片机在温度控制系统中的应用[J].江汉大学学报,1996.6[7]潘其光.常用测温仪表技术问答[M].国防工业出版社,1989[8]陈后金,胡健,薛健.信号与系统[M].清华大学出版社,2003.3[9]凌肇元.集成电路应用实例锦集[J].人民邮电出版,2001[10]胡汉才主编,单片机原理及其接口技术[M],清华大学出版社,2000[11]陈汝全主编,电子技术常用器件应用手册[J],第二版,机械工业出版社,2002[12]郑郁正.单片机原理及应用[M].四川大学出版社,2003.[13]谭浩强.C程序设计(第二版)[M].清华大学出版社,1999.[14]王晓君.安国臣等.MCS—51及兼容单片机原理与选型[M].北京-电子工业出版社,2003.[15]李启炎.Protel99SE应用教程[J].上海-同济大学出版社,2005.[16]张洪润,张亚凡.单片机原理及应用[J].清华大学出版社,2004.[17]王武江,陈树海.常用集成电路速查手册[J][M].冶金工业出版社,2002.[18]陈明荧.89C51单片机课程设计实训教程[M].清华大学出版社,2001.[19]王福瑞.单片机测控系统设计[J].北京航空航天大学出版社,1996.[20]郁慧绨.微机系统及其接口技术[M].南京东南大学出版社,1999.大学的最后一份作业一一毕业设计终于完成了,在这里非常感谢我的指导老师一一**老师。在四年的大学生活里,***老师做了我两次的指导老师,第一次是2010年的****省智能家居电子大赛,第二次是毕业设计。记得参力加****省电子大赛的时候,我什么都不懂、基本上是空白,但在****老师的悉心教导下,我获得了很大的进步,最后拿到了****省电子大赛三等奖。而这次的毕业设计****老师更是亲切关怀与细心指导,****老师治学严谨,学识渊博,思想深邃,视野雄阔,为我营造了一种良好的精神氛围。授人以鱼不如授人以渔,置身其间,耳濡目染,潜移默化,使我不仅接受了全新的思想观念,树立了宏伟的学术目标,领会了基本的思考方式,从论文题目的选定到论文写作的指导,经由您悉心的点拨,再经思考后的领悟,常常让我有“山重水复疑无路,柳暗花明又一村”。大学四年的生活即将结束,在此感谢在大学四年里给我教导的老师,是你们让我渡过了人生中最美好的大学生活,是你们让我遨游在知识的海洋里,是你们让我学到了有用的知识更让我懂得了如何做人,使我受益终生。即将步入社会,我不会辜负你们对我的期望,会在社会中闯荡一番,实现自己的理想。卜|尺也SS?-'S5?F_.q澄怎遑』]n播?]]?]lM5K]mmKJ:?]-mt-kMS-5-皿ID师Ifinl&llm皿uLLuuLlbl'LJI国Ln近敞K近品徼睑"二附图1主机系统原理图DULLAT14CC2TO?XFr^TL3=MY'Si典mTZ7XI:U.TLRxjzx—5砰二M-NLMiJ-丐-坚出LE—tEat:L?JJFl5W.DFDTDicdziWiT0KIX=2$i;瑚LQ_J53~551~才3u-_W『英匚血比亡H.QkDQmiLM.LABLmiuMJAIKH.4aIMW.jADJ徐W竺彖心PL.QT2拓ETimEKAiznsa_njiKjSl.JCEfflSL4CECLPJJJLcEJLJCEC2篇lg£>FLFH口PJ.2KT5FL?CEMWJKTlPJ4TQJ2.HA3M.S/TL冀EPJ.twEPSEjUQFj'ITKJALLK.4AL2Pa.U'ALJM.iaAL4七室P2.?aALJ梆凸叫e掀《]:k«=4:C■'侦:VC.C|JU如9N6PLL世心2此(1A’任JL.+i;:—■3Z1X::?JKJK=£=JXJ-=-:StVCCS:E忙细j3_2JIOL!uTJiVC.CLri.V-J'2附图2检测单片机电路图附图3PC机界面图#include"include.h”#include"wuxian.h”//#include”24c02.h”#include"lcd12864.h”//#include"USART.h”#include"ds1302.h”#include"isd1700.h”#include"wuxian.c”//#include”24C02.c”#include"lcd12864.c”#include"ds1302.c”//#include"isd1700.c”#include"display_data.c”#include"key.C”voidmain(){//L1=0;//L2=0;Set_RTC();//RST=0;//InitUsart();//WEIGOU;〃写时间信息com();〃写时间信息//ISD_Init();〃语音初始化LCDInit();//LCM初始化init_io();//无线初始化RX_Mode();//无线初始化Time_init();TMOD|=0x20;SM0=0;SM1=1;TH1=0xfd;TL1=0xfd;REN=1;TR1=1;EA=1;while(1){〃读时间信息Read_RTC();display_time();display_data();//wuxian();key_fangdao();//com();//UsartPutchar(RX_BUF[1]);//UsartPutchar(RX_BUF[2]);//UsartPutchar(RX_BUF[0]);〃读时间信息}}voidtime0()interrupt1{TH0=(65536-900)/256;TL0=(65536-900)%256;//com();if(wuxian_time<2001){wuxian_time++;if(wuxian_time==500)CheckButtons();if(wuxian_time==1000){CheckButtons2();}if(wuxian_time==1500){//com();}if(wuxian_time==2000)

wuxian_time=0;}/*if(wuxian_time2<10001){wuxian_time2++;if(wuxian_time2==10000){wuxian_time2=0;TR0=0;delay(50000);delay(50000);delay(50000);TR0=1;}}*//*if(weigou1<60001){weigou1++;if(weigou1==60000){weigou2++;weigou1=0;if(weigou2==10)WEIGOU;}}*/}voidcom_isr(void)interrupt4{〃定义变量接收串口数据//将寄存器复位等待接收下一个//〃定义变量接收串口数据//将寄存器复位等待接收下一个//将接收的数据存于变量中RI=0;tmp=SBUF;P0=tmp;SBUF=tmp;while(!TI);TI=0;*/unsignedchartemp[2];if(RI!=1)return;RI=0;temp[0]=SBUF;while(!RI);RI=0;temp[1]=SBUF;com();if(temp[0]==0x02){SBUF=0x38;while(!TI);TI=0;SBUF=l_tmp_room1[0];while(!TI);TI=0;SBUF=l_tmp_room1[1];while(!TI);TI=0;SBUF=l_tmp_room1[2];while(!TI);TI=0;SBUF=l_tmp_room1[3];while(!TI);TI=0;SBUF=l_tmp_room2[0];while(!TI);TI=0;SBUF=l_tmp_room2[1];while(!TI);TI=0;SBUF=l_tmp_room2[2];while(!TI);TI=0;SBUF=l_tmp_room2[3];while(!TI);TI=0;SBUF=l_tmp_room1[4];while(!TI);TI=0;SBUF=l_tmp_room2[4];while(!TI);TI=0;}}#include"lcd12864.h”/********宏定义***********************************************************/#defineLCD_DataP0#defineBusy0x80//用于检测LCD状态字中的Busy标识/“““““““““““l—**rl.'*1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1**1*//***********与数据********************************************************/voidWriteDataLCD(unsignedcharWDLCD){ReadStatusLCD();〃检测忙LCD_RS=1;LCD_RW=0;LCD_Data=WDLCD;LCD_E=1;LCD_E=1;LCD_E=1;LCD_E=0;}4*PiZk““““““““““““““““““““““““““““““““““““““““““““““““““““““““//***********与指令********************************************************/voidWriteCommandLCD(unsignedcharWCLCD,BuysC)//BuysC为0时忽略忙检测{if(BuysC)ReadStatusLCD();/根根据需要检测忙LCD_RS=0;LCD_RW=0;LCD_Data=WCLCD;LCD_E=1;LCD_E=1;LCD_E=1;LCD_E=0;}/***********l头数据********************************************************/unsignedcharReadDataLCD(void){LCD_RS=1;LCD_RW=1;LCD_E=0;LCD_E=0;LCD_E=1;return(LCD_Data);}/***********头状态*******************************************************/unsignedcharReadStatusLCD(void){LCD_Data=0xFF;LCD_RS=0;LCD_RW=1;LCD_E=1;while(LCD_Data&Busy);//检测忙信号LCD_E=0;return(LCD_Data);}“一>jn4rZxZIz““““““““““““““““““““““““““““““““““““““““““““““““““““““““//***********初始化********************************************************/voidLCDInit(void){WriteCommandLCD(0x30,1);//显示模式设置,开始要求每次检测忙信号WriteCommandLCD(0x01,1);/显示清屏WriteCommandLCD(0x06,1);//显示光标移动设置WriteCommandLCD(0x0C,1);//显示开及光标设置}/““““““““““*1*■».I-T^l、““““““““““““““““““““““““““““““““““““““““““““““““““““““““//***********清屏********************************************************/voidLCDClear(void){WriteCommandLCD(0x01,1);//显示清屏WriteCommandLCD(0x34,1);//显示光标移动设置WriteCommandLCD(0x30,1);//显示开及光标设置}/***********闪烁效果********************************************************/voidLCDFlash(void){WriteCommandLCD(0x08,1);//显示清屏Delay400Ms();WriteCommandLCD(0x0c,1);//显示开及光标设置Delay400Ms();WriteCommandLCD(0x08,1);//显示清屏Delay400Ms();WriteCommandLCD(0x0c,1);//显示开及光标设置Delay400Ms();WriteCommandLCD(0x08,1);//显示清屏Delay400Ms();}/***********按指定位置显示一个字符*******************************************/voidDisplayOneChar(unsignedcharX,unsignedcharYunsignedcharDData){if(Y<1)Y=1;if(Y>4)Y=4;X&=0x0F;〃限制X不能大于16,Y不能大于1switch(Y){case1:XI=0X80;break;case2:XI=0X90;break;case3:XI=0X88;break;case4:XI=0X98;break;}WriteCommandLCD(X,0);〃这里不检测忙信号,发送地址码WriteDataLCD(DData);}/***********按指定位置显示一串字符*****************************************/voidDisplayListChar(unsignedcharX,unsignedcharYunsignedcharcode*DData){unsignedcharListLength,X2;ListLength=0;X2=X;if(Y<1)Y=1;if(Y>4)Y=4;X&=0x0F;//限制X不能大于16,Y在1-4之内switch(Y){case1:X2I=0X80;break;//根据行数来选择相应地址case2:X2I=0X90;break;case3:X2I=0X88;break;case4:X2I=0X98;break;}WriteCommandLCD(X2,1);〃发送地址码while(DData[ListLength]>=0x20)//若到达字串尾则退出{if(X<=0x0F)//X坐标应小于0xF{WriteDataLCD(DData[ListLength]);ListLength++;X++;Delay5Ms();}/***********按指定位置显示数组内的数据*****************************************/voidDisplayDate(unsignedcharX,unsignedchar*DData){unsignedchari;WriteCommandLCD(X,1);for(i=0;i<16;){WriteDataLCD(*DData);DData++;i++;}/***********短延时********************************************************/voidDelay5Ms(void){unsignedintTempCyc=5552;while(TempCyc--);}3““““““““““X7ZTn—k/***********长延时********************************************************/voidDelay400Ms(void){unsignedcharTempCycA=5;unsignedintTempCycB;while(TempCycA--){TempCycB=7269;while(TempCycB--);}/*************延时子函数*******************************************/voiddelay(unsignedinttimer){while(timer--);}#include"wuxian.h"/***************************************************/#defineTX_ADR_WIDTH5//5字节宽度的发送/接收地址#defineTX_PLOAD_WIDTH6//数据通道4个字节的有效数据宽度ucharcodeTX_ADDRESS[TX_ADR_WIDTH]={0x36,0x63,0x24,0x05,0x10};//定义一个静态发送地址ucharRX_BUF[TX_PLOAD_WIDTH]={0};//接收缓冲区ucharTX_BUF[TX_PLOAD_WIDTH]={0};〃发送缓冲区ucharflag;ucharbdatasta;态字sbitsbitsbit//定义一个零时状态变量,来存储读操作时,读出的配置寄存器的状RX_DR=stag//刚刚定义的状态变量的位定义,第六位定义TX_DS=staA5;//刚刚定义的状态变量的位定义,第五位定义MAX_RT=staA4;/**************************************************//**************************************************函数:init_io()描述:初始化24L01的IO口/**************************************************/voidinit_io(void){CE=0;CSN=1;SCK=0;IRQ=1;//待机//SPI禁止//中断复位,也可以将这个脚接在外部中断口上,这时就不用初始化这个脚,直接由中断程序检测就行EA=0;}/**************************************************//**************************************************函数:delay_ms()描述:延迟x毫秒/**************************************************voiddelay_ms(ucharx){uchari,j;i=0;for(i=0;i<x;i++){j=250;while(--j);j=250;while(--j);/**************************************************/3“““““““““““““““““““““““““““““““““““““““““““““““““/**************************************************函数:SPI_RW()描述:根据SPI协议,写一字节数据到nRF24L01,同时从nRF24L01读出一字节这个函数的作用是选择寄存器,并对寄存器做出相应的操作,至于到底做什么样操作就取决于byte,byte的格式,数值就是芯片的SPI指令格式,在模块资料里的13页图8中有相应的功能说明/**************************************************/ucharSPI_RW(ucharbyte){uchari;for(i=0;i<8;i++){//byte最高位输出到MOSI//低一位移位到最高位//拉高SCK,nRF24L01从MOSI读入1位数据,同时MOSI=(byte&0x80);byte<<=1;//byte最高位输出到MOSI//低一位移位到最高位//拉高SCK,nRF24L01从MOSI读入1位数据,同时//读MISO到byte最低位//SCK置低//返回读出的一字节//返回读出的一字节,这个字节是状态寄存器里面的值,标时序图里面的Sn,用不用虽你return(byte);志该模块此时的状态}/**************************************************//**************************************************函数:SPI_RW_Reg()描述:写数据value到reg寄存器/**************************************************/ucharSPI_RW_Reg(ucharreg,ucharvalue){ucharstatus;//CSN置低,开始传输数据////CSN置低,开始传输数据//选择寄存器,同时返回状态字//然后写数据到该寄存器//CSN拉高,结束数据传输//返回状态寄存器status=SPI_RW(reg);SPI_RW(value);CSN=1;return(status);

/**************************************************/3“““““““““““““““““““““““““““““““““““““““““““““““““/**************************************************函数:SPI_Read()描述:从reg寄存器读一字节(数据)/**************************************************/ucharSPI_Read(ucharreg){//CSN置低,开始传输数据//CSN置低,开始传输数据//选择寄存器,此时已经有读回一个字节了,可是这个即时序图中的Sn。不是想要的数据//然后从该寄存器读数据,这里SPI_RW();函数里为什么CSN=0;SPI_RW(reg);字节是现阶段的状态寄存位reg_val=SPI_RW(0);是0,0并不是意味着MOSI会重新设定寄存器的地址,而是延时一个语句的时间,然后继续产生sck时钟信号从而读出数据CSN=1;//CSN拉高,结束数据传输return(reg_val);//返回寄存器数据}/**************************************************/3“““““““““““““““““““““““““““““““““““““““““““““““““/**************************************************函数:SPI_Read_Buf()描述:从reg寄存器读出bytes个字节,通常用来读取接收通道数据或接收/发送地址/**************************************************/ucharSPI_Read_Buf(ucharreg,uchar*pBuf,ucharbytes){ucharstatus,i;//CSN置低,开始传输数据////CSN置低,开始传输数据//选择寄存器,同时返回状态字status=SPI_RW(reg);//逐个字节从nRF24L01读出//CSN拉高,结束数据传输//逐个字节从nRF24L01读出//CSN拉高,结束数据传输//返回状态寄存器CSN=1;return(status);}/**************************************************/3“““““““““““““““““““““““““““““““““““““““““““““““““/**************************************************函数:SPI_Write_Buf()

描述:把pBuf缓存中的数据写入到nRF24L01,通常用来写入发射通道数据或接收/发送地址/**************************************************/ucharSPI_Write_Buf(ucharreg,uchar*pBuf,ucharbytes){ucharstatus,i;//CSN置低,开始传输数据////CSN置低,开始传输数据//选择寄存器,同时返回状态字status=SPI_RW(reg);//逐个字节写入nRF24L01//CSN//逐个字节写入nRF24L01//CSN拉高,结束数据传输//返回状态寄存器CSN=1;return(status);}/**************************************************/3“““““““““““““““““““““““““““““““““““““““““““““““““/******

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论