粮食仓库温湿度智能检测系统软件设计毕业论文

上传人:1666****666 文档编号:37720381 上传时间:2021-11-04 格式:DOC 页数:54 大小:706.50KB
返回 下载 相关 举报
粮食仓库温湿度智能检测系统软件设计毕业论文_第1页
第1页 / 共54页
粮食仓库温湿度智能检测系统软件设计毕业论文_第2页
第2页 / 共54页
粮食仓库温湿度智能检测系统软件设计毕业论文_第3页
第3页 / 共54页
点击查看更多>>
资源描述
西安工业大学北方信息工程学院西安工业大学北方信息工程学院本科毕业设计本科毕业设计(论文论文)题目题目:粮食仓库温湿度智能检测粮食仓库温湿度智能检测系统软件设计系统软件设计毕业论文(设计)诚信声明本人声明:所呈交的毕业论文(设计)是在导师指导下进行的研究工作及取得的研究成果,论文中引用他人的文献、数据、图表、资料均已作明确标注,论文中的结论和成果为本人独立完成,真实可靠,不包含他人成果及已获得 或其他教育机构的学位或证书使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。论文(设计)作者签名: 日期: 年 月 日 毕业论文(设计)版权使用授权书本毕业论文(设计)作者同意学校保留并向国家有关部门或机构送交论文(设计)的复印件和电子版,允许论文(设计)被查阅和借阅。本人授权青岛农业大学可以将本毕业论文(设计)全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本毕业论文(设计) 。本人离校后发表或使用该毕业论文(设计)或与该论文(设计)直接相关的学术论文或成果时,单位署名为 。论文(设计)作者签名: 日期: 年 月 日指 导 教 师 签 名: 日期: 年 月 日II毕业设计(论文)任务书系别 光电信息系 专业 测控技术与仪器 班级 B070102 姓名 霍龙 学号 B07010207 1.毕业设计(论文)题目: 粮食仓库温湿度智能检测系统软件设计 2.题目背景和意义:粮食温度和湿度含量是直接影响粮食加工、储藏、贸易与食用的重要质量指标。 因此,对仓库中粮食的湿度含量和温度进行实时检测具有重要的意义。单片机自诞生以来给全世界人类的生活和工作起到了剧烈的作用,利用单片机进行温湿度检测、处理和显示具有实时性好、成本低、稳定性高等优点。通过该系统的设计,可使学生对单片机的原理和功能有个较系统和全面的掌握,也可以使学生初步学习到有关工程设计的方法和思路。这样他们的就业面会更加宽广,也可以满足当今社会对单片机开发人才的大量需求。3.设计(论文)的主要内容(理工科含技术指标):本系统所需的元器件有 MCS-51 单片机、温度传感器、湿度传感器等器件、数码管、键盘等,要求学生利用汇编语言或 C51 语言在Keil 软件编辑环境中编写程序,设计出一个粮食湿度、温度智能检测系统,并且能够将湿度含量和实时温度显示在数码管上。具体来说该学生的主要任务是在系统硬件电路的基础上,利用 MCS-51 单片机的汇编语言或 C51 语言编写程序,实现:(1)粮食仓库的温度、湿度实时测量功能;(2)将测量到的温湿度含量显示在 4 位数码管;(3)利用若干个开关按键设置温度、湿度的标准值;(4)实现系统温度、湿度超限报警功能;(5)编写程序实现系统的看门狗复位功能。设计指标:(1)温度范围:-40 度-+85 度;(2)湿度范围:0100%RH;(3)显示:4 位数码管。4.设计的基本要求及进度安排(含起始时间、设计地点):(1)选题、收集资料、确定开发工具、理解题目、开题报告3 周,2010 年 11 月 25 日前(2)需求分析(需求说明书)、开发计划(项目计划书)3 周,2011 年 1 月 15 日前(3)总体流程图 2 周,2010 年 1 月 31 日前(4)编写程序4 周,2011 年 2 月 28 日(5)系统集成2 周,2011 年 3 月 15 日前(6)系统测试1 周,2011 年 3 月 22 日前(7)导师验收1 周,2011 年 3 月 30 日前(8)完成论文10 周,2010 年 4月 1 日前。 5.毕业设计(论文)的工作量要求 撰写 15000 字论文 实验(时数)*或实习(天数): 300 机时 图纸(幅面和张数)*: 其他要求: 查阅资料不少于 10 份 指导教师签名: 年 月 日III 学生签名: 年 月 日 系主任审批: 年 月 日说明:1 本表一式二份,一份由学生装订入册,一份教师自留。2 带*项可根据学科特点选填。I粮食仓库温湿度智能检测系统软件设计粮食仓库温湿度智能检测系统软件设计摘摘 要要粮食中的温度和湿度是影响粮食质量的重要因素,它也是国内外粮食部门严格控制的一项重要质量指标。 本设计以 MCS-51 单片机的 STC89C52 芯片为核心,利用数字式的湿度传感器 HS1101 和数字式的温度传感器 DS18B20 在线检测仓库中粮食的实时温湿度,再辅以必要的外围电路,设计了一个简易的湿度测量系统。本文详细介绍了系统的软件设计过程,给出了系统各模块的软件工作流程图和源程序代码,并用 Protues 软件和 Keil 软件对系统进行了调试。 本系统的软件采用 MCS-51 单片机的汇编语言进行编程。整个系统能够完成实时温湿度显示、温湿度超限报警、报警值设置等功能。经调试,系统工作稳定、可靠性强。 关键词:关键词:STC89C52 单片机;温度传感器;湿度传感器;软件设计IISoftware Design of Temperature and Humidity Intelligent Detection System in the Food DepotsAbstractGrain temperature and humidity are important factors affecting food quality,it is also strictly control domestic food sector is an important indicator of quality.he design of the MCS-51 microcontroller STC89C52 chip as the core,the use of digital HS1101 humidity sensor and digital temperature sensor DS18B20 online real-time detection of food in the warehouse temperature and humidity,supplemented by the necessary peripheral circuits,a simple humidity measurement system. This paper describes the software design process,given the work of each module of the software flow chart and source code,and Keil with Protues software and debug software on the system. The systems software uses MCS-51 microcontroller assembly language programming.Completion of the entire system can display real-time temperature and humidity,temperature and humidity limit alarm,the alarm value is set and so on. After commissioning,the system is stable,reliable.Key Words: STC89C52 SCM;temperature sensor;humidity sensor;software designIII目目 录录1 绪论绪论 .51.1 课题意义和研究背景 .51.2 国内外发展状况 .51.3 系统的设计要求 .61.4 本课题的主要研究内容 .62 系统方案及论证系统方案及论证 .72.1 总体方案设计.72.2 模块化编程思想方案论证.72.3 显示模块的选择与论证 .82.3.1 静态显示方案.82.3.2 动态显示方案.82.4 编程语言选择方案 .82.4.1 汇编语言.82.4.2 C 语言.93 系统软件设计系统软件设计.103.1 系统硬件工作原理 .103.2 系统软件设计概述 .103.3 主程序模块设计 .103.4 温度采集模块程序设计 .123.5 湿度采集模块 .163.6 数据显示模块程序设计 .213.7 超限值报警模块程序设计 .244 系统调试系统调试.264.1 系统调试用到的工具 .264.1.1 硬件调试软件 Proteus 软件.264.1.2 软件调试软件 Keil 软件.274.2 系统测试.304.2.1 软件设计分析.304.2.2 主要指标测试.30IV4.2.3 测试结果.305 结论结论.31参考文献参考文献.32致致 谢谢.33毕业设计(论文)知识产权声明毕业设计(论文)知识产权声明.34毕业设计(论文)独创性声明毕业设计(论文)独创性声明.35附录附录 1 粮食仓库温湿度智能检测系统源程序代码粮食仓库温湿度智能检测系统源程序代码.36附录附录 2 系统系统 Protues 电路原理图电路原理图.481 绪论51 绪论绪论1.1 课题意义和研究背景课题意义和研究背景粮食储藏是国家为防备战争、灾荒及其它突发性事件而采取的有效措施,因此,粮食的安全储藏具有重要意义。目前,中国地方及垦区的各种大型粮库都还存在着程度不同的粮食储存变质问题。根据国家粮食保护法规定,必须定期抽样检查粮库各点的粮食温度和湿度,以便及时采取相应的措施。但大部分粮库目前还是采取人工测量温度和湿度的方法,这不仅使粮库工作人员工作量增大,且工作效率低,尤其是大型粮库的温度和湿度检测任务如不能及时彻底完成,则有可能会造成粮食大面积变质。据有关资料统计,中国每年因粮食变质而损失的粮食达数亿斤,直接造成的经济损失是惊人的。 影响粮食安全储藏的主要参数是粮食的温度和湿度,这两者之间又是互相关联的。粮食在正常储藏过程中,含水量一般在 12%以下(为安全状态),不会产生温度突变,一旦粮库进水、结露等使粮食的含水量达到 20%以上时,由于粮粒受潮,胚芽萌发,新陈代谢加快而产生呼吸热,使局部粮食温度突然升高,必然引起粮食“发烧”和霉变,并可能形成连锁反应,从而造成不可挽回的损失。因此设计出一种经济实用的粮库粮情温湿度智能检测系统是非常有必要的1。1.2 国内外发展状况国内外发展状况粮情检测属监控系统范畴,近年来,由于传感器技术、计算机技术、超大规模集成电路技术和网络通信技术的发展,使监控系统广泛应用于工农业生产等领域,因此,粮情检测技术的研究在软、硬件等方面都有了一定的进展。早期粮情监测主要采用温度计测量法,它是将温度计放入特制的插杆中,根据经验插在粮堆的多个测温点,管理人员定期拔出读数,确定粮温的高、低,决定是否倒粮。这种方法对储粮有一定的作用,但由于温度计精度、人工读数的人为因素等原因,温度检测不仅速度慢,而且精度低,抽样不彻底,局部粮温过高不易被及时发现,导致因局部粮食发霉变质引起大面积坏粮的情况时有发生。随着科技的发展,从 1978 年开始,采用电阻式温度传感器、采样器、模数转换器、报普器等组成的储粮监测系统出现,它可对各粮库的各个测温点进行巡回检测,检测速度、精度大大提高,降低了劳动强度,但由于电阻传感器的灵敏度低,致使检测精度、系统可靠性还不够理想。至 1990 年,粮情检测系统西安工业大学北方信息工程学院毕业设计(论文)6有了很大的改善和提高,系统在布线上采用矩阵式布线技术,简化了数据采集部分的线路,在传感器方面应用了半导体、热电偶等器件;在线路传输上采用了串行传输方式,从而减少了传输线根数;采用单片机进行数据处理,并采用各种手段提高数据传输及检测速度,通过软硬件技术的结合,检测精度和可靠性较以前有很大提高。但温度传感器的线性度差,系统的检测精度仍不理想,无法大面积推广。近年来,随着单片机功能的日益强大和计算机的广泛应用,粮情检测的准确性、稳定性要求越来越高。寻找最佳配置和最好的性价比成为粮情监测研究的热点2。国外在粮情监控技术上己达到了很成熟的地步,高科技数字式传感器广泛应用于粮情检测系统。这种传感器采用了半导体集成电路与微控制器最新技术,在一个管芯上集成了半导体温度检测芯片、数据信号转换芯片、计算机接口芯片,存储芯片等,除完成温度检测功能外,还可完成预置范围温度、报警、多路 AD 转换、温度补偿等功能。由于数字温度传感器直接传出数字量,从而解决了温度信号长距离传输问题及传输过程中因干扰和衰减而导致的精度降低等问题。目前,国内出现了丰富的数字传感器配套产品,如远程控制模块、中继器、接插器、分线器等,技术也比较成熟。1.3 系统的设计要求系统的设计要求具体来说该学生的主要任务是在系统硬件电路的基础上,利用 MCS-51 单片机的汇编语言或 C51 语言编写程序,实现:(1)粮食仓库的温度、湿度实时测量功能;(2)将测量到的温湿度含量显示在 4 位数码管;(3)利用若干个开关按键设置温度、湿度的标准值;(4)实现系统温度、湿度超限报警功能。1.4 本课题的主要研究内容本课题的主要研究内容1.设计相应的信号采集电路、执行电路等硬件电路;2.实现各环境要素的自动监测;3.通过单片机汇编语言编制数据采集、分析处理、显示、修改、参数设置、控制等程序功能模块;4.研究装置的软硬件抗干扰措施,提高系统工作的可靠性和稳定性。2 系统方案论证72 系统方案及论证系统方案及论证2.1 总体方案设计总体方案设计 经分析,将系统分为两个部分,一个是由温湿度传感器组成的检测部分,另一个是由单片机和 LED 数码管组成的主控与显示部分。如图所示 DS18B20 和 HS1101 湿度检测电路将检测到的数送到单片机,单片机对接收到的数据进行处理并送到 LED 数码管,5V 稳压电源给各个部分供电。系统组成框图如图 2.1 所示。 图 2.1 系统组成框图2.2 模块化编程思想方案论证模块化编程思想方案论证如果一本书没有章、节和段落,学习起来该有多么困难。将复杂任务和主题分解为更便于管理的部分,是使它们更容易处理的一种方法。同样,计算机程序也可以分解为小的子程序,或模块,而这些子程序或模块可以分别进行开发和测试。这种方法就称为模块化程序设计(modular programming)。模块最重要的属性是它们应该尽可能的独立和自包含。另外,一般将它们设计成执行一个特定的、定义好的函数,它有一个入口点和一个退出点。同时,模块常常很短(通常只有 50 到 100 条指令)和高度内聚的3。模块化程序设计有很多优点。不管对于开发者还是用户来说,小的、自包含的单元都更易于设计和理解底层的逻辑。模块化程序设计使开发更方便,这是因为每个模块都可以独自得以完善。事实上,对于大型软件项目,不同的程序员可以只负责各自的组件。模块化设计也使调试和测试程序更加容易,因为错误更容易隔离开来。最后,程序的维护和修改更加方便。这主要是因为可以开发新模块来执行额外的任务,然后将其集成到现有的、组织良好的架构中。单片机显示模块HS1101 湿度检测电路DS18B20温度检测电源西安工业大学北方信息工程学院毕业设计(论文)8尽管所有这些属性都是使用模块的理由,而与数值工程问题求解相关的、最重要的理由是,可以对有用的模块库进行维护,以便以后在其的程序中使用。2.3 显示模块的选择与论证显示模块的选择与论证LED 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出需要的数位,因此根据 LED 数码管的驱动方式的不同,可以分为静态式和动态式两类。2.3.1 静态显示方案静态显示方案对于单片机的 I/O 接口进行驱动,或者使用如 BCD 码二-十进位解码器解码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用 I/O 接口多,如驱动 5 个数码管静态显示则需要 5840 根 I/O 接口来驱动,要知道一个 89S51 单片机可用的I/O 接口才 32 个呢。故实际应用时必须增加解码驱动器进行驱动,增加了硬体电路的复杂性。2.3.2 动态显示方案动态显示方案 数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的 8 个显示笔划“a,b,c,d,e,f,g,dp” 的同名端连在一起,另外为每个数码管的公共极 COM 增加位元选通控制电路,位元选通由各自独立的 I/O 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通 COM 端电路的控制,所以只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。透过分时轮流控制各个 LED 数码管的 COM 端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为 12ms 暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的 I/O 接口,而且功耗更低4。2.4 编程语言选择方案编程语言选择方案2.4.1 汇编语言汇编语言汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如MASM,TASM 等等为写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已西安工业大学北方信息工程学院毕业设计(论文)9经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写Windows 的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。2.4.2 C 语言语言C 语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到 C 语言,具体应用比如单片机以及嵌入式系统开发。C 语言是功的系统描述语言,用 C 语言开发的 UNIX 操作系统就是一个成功的范例;同时 C 语言又是一种通用的程序设计语言,在国际上广泛流行。世界上很多著名的计算公司都成功的开发了不同版本的 C 语言,很多优秀的应用程序也都使用 C 语言开发的,它是一种很有发展前途的高级程序设计语言。 1. C 是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。 2.C 是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 3.C 语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。 4. C 语言适用范围大。适合于多种操作系统,如 Windows、DOS、UNIX 等等;也适用于多种机型。 C 语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用 C 语言编写的。 C 语言具有较好的可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言5。汇编语言是低级语言,在编写程序的时候会把根据不同的情况指定使用不同的寻址方式,能够对内存和 CPU 里的通用寄存器直接操纵。不同的计算机系列会有不同的汇编语言此次课题选择了 C 语言进行编写。3 系统软件设计103 系统软件设计系统软件设计3.1 系统硬件工作原理系统硬件工作原理该系统的硬件电路由以下几部分电路模块组成:单片机、温度传感器检测电路、湿度传感器检测电路、数码管显示电路、键盘开关电路、蜂鸣器报警电路等部分。系统硬件框图如图 3.1 所示。S18B20 温度传感器HS1101 湿度传感器STC89C52单片机串行 LED 显示报警电路键盘图 3.1 系统硬件框图3.2 系统软件设计概述系统软件设计概述本章在硬件电路设计的基础上,全面阐述各部分软件的设计思想和具体实现方法。整个软件采用模块化设计结构,并利用汇编语言编制。整个程序由主程序、显示、报警、测量等子程序模块组成6。3.3 主程序模块设计主程序模块设计主程序框图如图 3.2 所示。程序初始化包括寄存器设置、堆栈设置和相关单元清零设置等。主程序存放于 89c52 中,启动后循环执行,不停地进行采样计算,得出实际温、湿度值,并与设定值进行比较,实现声光报警信号。在主程序是单片机程序的主体,整个单片机端系统软件的功能的实现都是在其中完成的。软件设计的主要思路是将采集、接收、显示灯功能编成独立的模块。西安工业大学北方信息工程学院毕业设计(论文)11 是 否 是 否图 3.2 主程序流程图/* 主函数 */*/void main() EA=1; /开总中断 init_t0(); /初始化定时器 init_t1(); TR0=1; /定时器开始工作 TR1=1; ET0=1; lcd_init() ; /初始化 LCD ok_menu();BEEP=0;while(1) if(key1=0)Key1 键按下?显示湿度Key2 键按下?显示温度开始结束西安工业大学北方信息工程学院毕业设计(论文)12 lcd_init; wendu_Menu (); do Read_Temperature() ; Disp_Temperature() ; baojing(); while(key2) ; if(key2=0)lcd_init;shidu_Menu();do if(int_flag=1) disp(); while(key1); 3.4 温度采集模温度采集模块程序设块程序设计计根据 DS18B20 的通讯协议,主机(单片机)控制 DS18B20 完成温度转换必须经过三个步骤:每一次读写之前都要对 DS18B20 进行复位操作,复位成功后发送一条ROM 指令,最后发送 RAM 指令,这样才能对 DS18B20 进行预定的操作。复位要求主CPU 将数据线下拉 500 微秒,然后释放,当 DS18B20 收到信号后等待 1660 微秒左右,后发出 60240 微秒的存在低脉冲,主 CPU 收到此信号表示复位成功7。西安工业大学北方信息工程学院毕业设计(论文)13 否 是图 3.3 温度检测程序流程DS18B20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位符号扩展的二进制补码读数形式提供,以 0.0625/LSB 形式表达,其中 S 为符号位8。图 3.4 DS18B20 温度值初始化是否成功?初始化从 18B20 读字节向 18B20 写字节开始结束读取温度西安工业大学北方信息工程学院毕业设计(论文)14这是 12 位转化后得到的 12 位数据,存储在 18B20 的两个 8 比特的 RAM 中,二进制中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘于 0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加1 再乘于 0.0625 即可得到实际温度(例如+125的数字输出为 07D0H,+25.0625的数字输出为 0191H-25.0625的数字输出为 FF6FH,-55的数字输出为 FC90H)9。/* /*温度测量* /* /*初始化 ds1820 */*/Init_DS18B20(void) DQ = 1 ; /DQ 复位 Delay(8) ; /稍做延时 DQ = 0 ; /单片机将 DQ 拉低 Delay(90) ; /精确延时 大于 480us DQ = 1 ; /拉高总线 Delay(8) ; presence = DQ ; /如果=0 则初始化成功 =1 则初始化失败 Delay(100) ; DQ = 1 ; return(presence) ; /返回信号,0=presence,1= no presence/* 读一个字节 */*/ ReadOneChar(void)unsigned char i = 0 ;unsigned char dat = 0 ;for (i = 8 ; i 0 ; i-) DQ = 0 ; / 给脉冲信号 dat = 1 ; DQ = 1 ; / 给脉冲信号 if(DQ)西安工业大学北方信息工程学院毕业设计(论文)15 dat |= 0 x80 ; Delay(4) ; return (dat) ;/* 写一个字节 */*/ WriteOneChar(unsigned char dat) unsigned char i = 0 ; for (i = 8 ; i 0 ; i-) DQ = 0 ; DQ = dat&0 x01 ; Delay(5) ; DQ = 1 ; dat=1 ; /* 读取温度 */*/ Read_Temperature(void) Init_DS18B20() ; WriteOneChar(0 xCC) ; / 跳过读序号列号的操作 WriteOneChar(0 x44) ; / 启动温度转换 Init_DS18B20() ; WriteOneChar(0 xCC) ; /跳过读序号列号的操作 WriteOneChar(0 xBE) ; /读取温度寄存器 temp_data0 = ReadOneChar() ; /温度低 8 位 temp_data1 = ReadOneChar() ; /温度高 8 位 /* 数据转换与温度显示 */*/ Disp_Temperature()西安工业大学北方信息工程学院毕业设计(论文)16display4=temp_data0&0 x0f ;display0=ditabdisplay4+0 x30 ; /查表得小数位的值display4=(temp_data0&0 xf0)4)|(temp_data1&0 x0f)=0 x32&display1=0 x31) BEEP=1;elseBEEP=0;3.5 湿度采集模块湿度采集模块显示电路采用四位七段 LCD 数码管显示即 LED 四位七段数码管字符型液晶模块,是目前使用最广泛的液晶屏之一。LED 四位七段数码管字符型液晶模块是点阵型液晶驱动方便,经编码后显示内容多样化10。标定即显示当下工作状态,显示温湿度。西安工业大学北方信息工程学院毕业设计(论文)17 是 否 图.3.4 湿度检测流程图由图 3.5 可知相对湿度与电容的关系可看成直线段,所以有相对湿度RH= .(3.1)2 7163RHC 图 3.5 电容值与相对湿度值的关系所以有(3.2)551.1038 1.936103.0114103.44.310Fmes HZfHZRHRHRH开定时 T0,T1是否计满 1S?关闭 T0 并根据频率算出湿度值开始结束显示温度西安工业大学北方信息工程学院毕业设计(论文)18/*湿度测量*/ /软件延时/void delays(unsigned int cnt) while(-cnt);/定时器 0 初始化void init_t0(void) TMOD=(TMOD&0 xF0)|0 x01; /定时器 0 工作于方式 1/ TH0=(65536-50000)/256; /定时 50ms/ TL0=(65535-50000)%256;TH0=0 x4c;TL0=0 x00;/ 定时器 1 初始化void init_t1(void) TMOD=(TMOD&0 x0F)|0 x50; /定时器 1 用作计时 TH1 =0 x00; TL1 =0 x00;/定时器 0 中断服务程序void int_t0(void) interrupt 1 TH0=(65535-50000)/256; TL0=(65535-50000)%256; int_count+; if(int_count=20) 西安工业大学北方信息工程学院毕业设计(论文)19 TR1=0; int_flag=1; int_count=0 x00; /定时器 1 中断服务程序void int_t1(void) interrupt 3 T1count+; void disp(void) /湿度显示函数 int_flag=0; sum=TL1+TH1*256+T1count*65536; /计算 1 秒内的脉冲个数 /以下将数据格式化,转成 LED 可显示的 BCD 码 wet=100-(sum-4000)/50;/* 湿度计算公式 le0=wet%10; /最低位 wet=wet/10; le1=wet%10; /第二位 wet=wet/10; le2=wet%10; /第三位 wet=wet/10; int_count=0 x00; T1count=0; TH1=0 x00; TL1=0 x00; TR1=1; lcd_pos(0 x4a) ; lcd_wdat(le2+48); lcd_pos(0 x4b) ; lcd_wdat(le1+48); lcd_pos(0 x4c) ; lcd_wdat(le0+48); delays(100); void wendu_Menu () /显示温度的菜单西安工业大学北方信息工程学院毕业设计(论文)20 uchar m ; lcd_pos(0) ; /设置显示位置为第一行的第 1 个字符 m = 0 ; while(cdis1m != 0) /显示字符 lcd_wdat(cdis1m) ; m+ ; lcd_pos(0 x40) ; /设置显示位置为第二行第 1 个字符 m = 0 ; while(cdis2m != 0) lcd_wdat(cdis2m) ; /显示字符 m+ ; writetab() ; /自定义字符写入 CGRAM delay1(5) ; lcd_pos(0 x4d) ; lcd_wdat(0 x00) ; /显示自定义字符 void shidu_Menu () /显示湿度的菜单 uchar m ; lcd_pos(0) ; /设置显示位置为第一行的第 1 个字符 m = 0 ; while(cdis3m != 0) /显示字符 lcd_wdat(cdis3m) ; m+ ; lcd_pos(0 x40) ; /设置显示位置为第二行第 1 个字符 m = 0 ; while(cdis4m != 0) 西安工业大学北方信息工程学院毕业设计(论文)21 lcd_wdat(cdis4m) ; /显示字符 m+ ; writetab() ; /自定义字符写入 CGRAM delay1(5) ; lcd_pos(0 x4d) ; lcd_wdat(0 x00) ; /显示自定义字符 void ok_menu() uchar m; lcd_pos(0) ; /设置显示位置为第一行的第 1 个字符 m = 0 ; while(cdis5m != 0) /显示字符 lcd_wdat(cdis5m) ; m+ ; lcd_pos(0 x40) ; /设置显示位置为第二行第 1 个字符 m = 0 ; while(cdis6m != 0) lcd_wdat(cdis6m) ; /显示字符 m+ ; 3.6 数据显示模块程序设计数据显示模块程序设计在日常生活中,大家对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED 数码管、液晶显示器11在单片机系统中应用晶液显示器作为输出器件有以下几个优点:显示质量高、数字式接口 、体积小、重量轻 、功耗低 、LCD,LED 四位七段数码管 主要技术参数:显示容量:162 个字符;芯片工作电压:4.55.5V;工作电流:2.0mA(5.0V);模块最佳工作电压:5.0V;字符尺寸:2.954.35(WH)mm。西安工业大学北方信息工程学院毕业设计(论文)22 是 否图 3.6 液晶显示程序流程/*/*检查 LCD 忙状态/*lcd_busy 为 1 时,忙,等待。lcd-busy 为 0 时,闲,可写指令与数据。 */*/ bit lcd_busy() bit result ; LCD_RS = 0 ; LCD_RW = 1 ; LCD_EN = 1 ; delayNOP() ; result = (bit)(P0&0 x80) ; LCD_EN = 0 ; return(result) ; 是否忙碌?写指令写数据设置显示位初始化开始结束显示西安工业大学北方信息工程学院毕业设计(论文)23 /*写指令数据到 LCD/*RS=L,RW=L,E=高脉冲,D0-D7=指令码。 */*/void lcd_wcmd(uchar cmd) while(lcd_busy() ; LCD_RS = 0 ; LCD_RW = 0 ; LCD_EN = 0 ; _nop_() ; _nop_() ; P0 = cmd ; delayNOP() ; LCD_EN = 1 ; delayNOP() ; LCD_EN = 0 ; /*/*写显示数据到 LCD */*RS=H,RW=L,E=高脉冲,D0-D7=数据。 */*/void lcd_wdat(uchar dat) while(lcd_busy() ; LCD_RS = 1 ; LCD_RW = 0 ; LCD_EN = 0 ; P0 = dat ; delayNOP() ; LCD_EN = 1 ; delayNOP() ; LCD_EN = 0 ; /* LCD 初始化设定/*/void lcd_init() delay1(15) ; lcd_wcmd(0 x01) ; /清除 LCD 的显示内容 西安工业大学北方信息工程学院毕业设计(论文)24 lcd_wcmd(0 x38) ; /16*2 显示,5*7 点阵,8 位数据 delay1(5) ; lcd_wcmd(0 x38) ; delay1(5) ; lcd_wcmd(0 x38) ; delay1(5) ; lcd_wcmd(0 x0c) ; /显示开,关光标 delay1(5) ; lcd_wcmd(0 x06) ; /移动光标 delay1(5) ; lcd_wcmd(0 x01) ; /清除 LCD 的显示内容 delay1(5) ;/* 设定显示位置 */*/void lcd_pos(uchar pos) lcd_wcmd(pos | 0 x80) ; /数据指针=80+地址变量/*自定义字符写入 CGRAM */*/void writetab() unsigned char i ; lcd_wcmd(0 x40) ; /写 CGRAM for (i = 0 ; i4)|(temp_data1&0 x0f)=0 x32&display1=0 x31) BEEP=1;elseBEEP=0;4 系统调试264 系统调试系统调试4.1 系统调试用到的工具系统调试用到的工具4.1.1 硬件调试软件硬件调试软件 Proteus 软件软件Proteus ISIS 是英国 Labcenter 公司开发的电路分析与实物仿真软件。它运行于 Windows 操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和 SPICE 电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232 动态仿真、I2C 调试器、SPI 调试器、键盘和 LCD 系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000 系列、8051 系列、AVR 系列、PIC12 系列、PIC16 系列、PIC18 系列、Z80 系列、HC11 系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如 Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE 分析于一身的仿真软件,功能极其强大12。 图 4.1. Proteus ISIS 的工作界面1双击桌面上的 ISIS 6 Professional 图标或者单击屏幕左下方的“开始”“程序”“Proteus 6 Professional” “ISIS 6 Professional”。2Proteus ISIS 的工作界面是一种标准的 Windows 界面。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控西安工业大学北方信息工程学院毕业设计(论文27制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。3. 在图形编辑窗口内完成电路原理图的编辑和绘制。为了方便作图坐标系统(CO-ORDINATE SYSTEM) 。ISIS 中坐标系统的基本单位是 10nm,主要是为了和 Proteus ARES 保持一致。但坐标系统的识别(read-out)单位被限制在 1th。坐标原点默认在图形编辑区的中间,图形的坐标值能够显示在屏幕的右下角的状态栏中13。点状栅格(The Dot Grid)与捕捉到栅格(Snapping to a Grid) 。编辑窗口内有点状的栅格,可以通过 View 菜单的 Grid 命令在打开和关闭间切换。点与点之间的间距由当前捕捉的设置决定。捕捉的尺度可以由 View菜单的 Snap 命令设置,或者直接使用快捷键 F4、F3、F2 和 CTRL+F1。如图4.2 操作界面所示。图 4.2 操作界面4.1.2 软件调试软件软件调试软件 Keil 软件软件Keil uVision2 是目前使用广泛的单片机开发软件,它集成了源程序编辑和程序调试于一体,支持汇编、C、PL/M 语言。 这里仅仅介绍 Keil uVision2 的简单使用,更详细的使用方法见本光盘单片机软件Keil c51Keil 书籍与资料目录中的内容。 先运行光盘中 单片机软件setupsetup.exe 安装程序,选择安装“Eval Version”版进行安装。一直点击“Yes”或“Next”,直到“Finish”完成。之后运行同西安工业大学北方信息工程学院毕业设计(论文28目录中的 Keil uv2 汉化安装.exe 安装汉化程序14。装好后,在桌面上会产生快捷图标,如图 4.3 所示。 图 4.3 快捷图标点击桌面快捷图标,可以直接进入主画面。如图 4.4Keil 主界面所示 图 4.4 keil 主界面图 4.5 Keil 系统创建工程西安工业大学北方信息工程学院毕业设计(论文29在 Keil 系统中,每做个独立的程序,都视为工程(或者叫项目)。首先从菜但的“工程”中“新建工程.”,建立将要做的工程项目15。如图 4.5Keil 系统创建工程所示。图 4.6Keil 编辑界面接下来,Keil 环境要求为 Test 工程选择一个单片机型号;选择 Atmel 公司的 89C51(虽然使用的是 89C52,但由于 89C52 与 89C52 内、外部结构完全一样,所以这里依然选择“89C52”)。“确定”后工程项目就算建立了16 点击“文件”中的“新建”,新建一个空白文档;这个空白文档就是编写片机程的场所。在这里可以进行编辑、修改等操作。如图 4.6Keil 编辑界面所示。4.2 系统测试系统测试4.2.1 软件设计分析软件设计分析主程序进行键盘扫描,单片机根据判断键盘那个键按下,显示温度或湿度。如果 key1 键按下就调用温度检测程序,单片机对 18B20 进行初始化,成功则读字节,再写入字节,读取温度数据送到 LED 数码管显示。如果 key2 键按下,就调用湿度显示程序,开启定时中断 T0、T1,T0 进行定时,T1 对湿度电路给的频率计数,当计满 1S 时关闭 T1,单片机对计的数进行运算,的出湿度值,送往液晶显示17。西安工业大学北方信息工程学院毕业设计(论文30.2.2 主要指标测试主要指标测试 本系统主要指标就在于所测得的温湿度的数据是否达到了题目要求,本系统测量范围为-10-50,湿度为 0-100%;温度测量误差为 0.1,湿度测量误差为 2%;在 8 栋 111 测试温度为 16.7 度,湿度为 41%18。4.2.3 测试结果测试结果 通过测试,与标准仪器所测得的温湿度相比较,可得系统的误差为信号传输过程中可能存在误码,及误判。5 结论315 结论结论 本温湿度计的制作基本上达到了题目要求的技术指标,温度测量范围为-10-50,湿度为 0-100%;温度测量误差为 0.1,湿度测量误差为 3%;实现了量程自动转换功能。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好通过这次课程设计之后,一定把以前所学过的知识重新温故。参考文献32参考文献参考文献1 康华光等.电子技术基础M. 北京:高等教育出版社.2 彭介华.电子技术课程设计指导M. 北京:高等教育出版社.3 郭天祥.新概念 51 单片机 C 语言教程:入门、提高、开发、拓展全攻略M.电子工业出版社,2009.4 黄智伟全国大学生电子设计竞赛制作实训M北京:北京航空航天大学出版社,2007.5 黄智伟全国大学生电子设计竞赛系统设计M北京:北京航空航天大学出版社,2006.6 黄智伟全国大学生电子设计竞赛技能训练M北京:北京航空航天大学出版社,2007.7 ckmann J P, Kamphor st S O, Ruelle D. Recurr ence Plots of Dynamical Systems J . Europhys. Lett. , 1987,4( 9) : 9732977.8 黄智伟全国大学生电子设计竞赛 常用电路模块制作M北京:北京航空航天大学出版社,2010.9 黄智伟等.基于 NI multisim 的电子电路计算机仿真设计与分析M北京:电子工业出版社,2007.10 黄智伟.印制电路板(PCB)设计技术与实践M北京:电子工业出版社,2009.11 高吉祥等.电子技术基础实验与课程设计M北京:电子工业出版社,2002.12 ST.LlashFlex51MCU PDF.SST Components Industries2008M110,7879.13 Analog Devices Lnc AD590 . Analog Dviceslnc1997M 112.14 Kaminsky, W.J.Davidson, E.S.Special Feature: Developing a Multiple-In-structon-Stream Single-Chip Processor.Computer.1979M 12(12) : 6676.15 R.ichard Carley, James A. Bain, Gary K. Fedder. Single-chip computer-s with microelectromechanical systems-based magnetic memory.PhysicsJ.20005:87.16 陈大钦编.电子技术基础实验(第二版)M.湖北:机械工业出版社,2001. 17 李广弟.单片机基础M.北京:北航出版社,2010.18 胡学海.单片机原理及应用系统设计M.北京:京电子工业出版社,2005.19 邹其洪, 黄智伟,高嵩,等编著.电工电子实验与计算机仿真M.电子工业出版社,2005.20 范风强,兰婵丽.单片机语言 C51 应用实战集锦J.电子工业出版社,2005.2-18.参考文献33致 谢34致致 谢谢在本次毕业设计中,我从指导老师沈虹教授身上学到了很多东西。沈教授认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高。这对于我以后的工作和学习都有一种巨大的帮助,感谢他细心而又耐心的辅导。另外,在软件开发过程中倍丽软件公司的技术人员也给了我很大的支持,帮助解决了不少的难点,使得软件能及时开发完成,还有同组的几位同学的互相帮助,齐心协力,这里一并表示感谢。在这里,对他们的无私帮助,我表示诚挚的感谢!毕业设计(论文)知识产权声明35毕业设计(论文)知识产权声明毕业设计(论文)知识产权声明本人完全了解西安工业大学北方信息工程学院有关保护知识产权的规定,即:本科学生在校攻读学士学位期间毕业设计(论文)工作的知识产权属于西安工业大学北方信息工程学院。本人保证毕业离校后,使用毕业设计(论文)工作成果或用毕业设计(论文)工作成果发表论文时署名单位仍然为西安工业大学北方信息工程学院。学校有权保留送交的毕业设计(论文)的原文或复印件,允许毕业设计(论文)被查阅和借阅;学校可以公布毕业设计(论文)的全部或部分内容,可以采用影印、缩印或其他复制手段保存毕业设计(论文) 。(保密的毕业设计(论文)在解密后应遵守此规定)毕业设计(论文)作者签名:指导教师签名:日毕业设计(论文)独创性声明36毕业设计(论文)独创性声明毕业设计(论文)独创性声明秉承学校严谨的学风与优良的科学道德,本人声明所呈交的毕业设计(论文)是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,毕业设计(论文)中不包含其他人已经发表或撰写过的成果,不包含他人已申请学位或其他用途使用过的成果。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了致谢。毕业设计(论文)与资料若有不实之处,本人承担一切相关责任。毕业设计(论文)作者签名:指导教师签名:日期:附录 137附录附录 1 粮食仓库温湿度智能检测系统源程序代码粮食仓库温湿度智能检测系统源程序代码#include #include #define uchar unsigned char#define uint unsigned intsbit DQ = P20 ; /定义 DS18B20 端口 DQ sbit BEEP=P22 ; /蜂鸣器驱动线bit presence ;sbit LCD_RS = P12; sbit LCD_RW = P11; sbit LCD
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸下载 > CAD图纸下载


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!