




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安工业大学北方信息工程学院西安工业大学北方信息工程学院 本科毕业设计本科毕业设计(论文论文) 题目题目:粮食仓库温湿度智能检测粮食仓库温湿度智能检测 系统软件设计系统软件设计 毕业论文(设计)诚信声明 本人声明:所呈交的毕业论文(设计)是在导师指导下进行的 研究工作及取得的研究成果,论文中引用他人的文献、数据、图表、 资料均已作明确标注,论文中的结论和成果为本人独立完成,真实 可靠,不包含他人成果及已获得 或其他教育机构的学位 或证书使用过的材料。与我一同工作的同志对本研究所做的任何贡 献均已在论文中作了明确的说明并表示了谢意。 论文(设计)作者签名: 日期: 年 月 日 毕业论文(设计)版权使用授权书 本毕业论文(设计)作者同意学校保留并向国家有关部门或机 构送交论文(设计)的复印件和电子版,允许论文(设计)被查阅 和借阅。本人授权青岛农业大学可以将本毕业论文(设计)全部或 部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等 复制手段保存和汇编本毕业论文(设计) 。本人离校后发表或使用该 毕业论文(设计)或与该论文(设计)直接相关的学术论文或成果 时,单位署名为 。 论文(设计)作者签名: 日期: 年 月 日 指 导 教 师 签 名: 日期: 年 月 日 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 单片机;温度传感器;湿度传感器;软件设计 ii software design of temperature and humidity intelligent detection system in the food depots abstract grain 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 design iii 目目 录录 1 绪论绪论 5 1.1 课题意义和研究背景 5 1.2 国内外发展状况 5 1.3 系统的设计要求 6 1.4 本课题的主要研究内容 6 2 系统方案及论证系统方案及论证 7 2.1 总体方案设计7 2.2 模块化编程思想方案论证7 2.3 显示模块的选择与论证 8 2.3.1 静态显示方案.8 2.3.2 动态显示方案.8 2.4 编程语言选择方案 8 2.4.1 汇编语言8 2.4.2 c 语言.9 3 系统软件设计系统软件设计.10 3.1 系统硬件工作原理 10 3.2 系统软件设计概述 10 3.3 主程序模块设计 10 3.4 温度采集模块程序设计 12 3.5 湿度采集模块 16 3.6 数据显示模块程序设计 21 3.7 超限值报警模块程序设计 24 4 系统调试系统调试.26 4.1 系统调试用到的工具 26 4.1.1 硬件调试软件 proteus 软件26 4.1.2 软件调试软件 keil 软件.27 4.2 系统测试30 4.2.1 软件设计分析.30 4.2.2 主要指标测试30 iv 4.2.3 测试结果30 5 结论结论.31 参考文献参考文献.32 致致 谢谢.33 毕业设计(论文)知识产权声明毕业设计(论文)知识产权声明.34 毕业设计(论文)独创性声明毕业设计(论文)独创性声明.35 附录附录 1 粮食仓库温湿度智能检测系统源程序代码粮食仓库温湿度智能检测系统源程序代码36 附录附录 2 系统系统 protues 电路原理图电路原理图.48 1 绪论 5 1 绪论绪论 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 系统方案论证 7 2 系统方案及论证系统方案及论证 2.1 总体方案设计总体方案设计 经分析,将系统分为两个部分,一个是由温湿度传感器组成的检测部分,另一个 是由单片机和 led 数码管组成的主控与显示部分。如图所示 ds18b20 和 hs1101 湿度 检测电路将检测到的数送到单片机,单片机对接收到的数据进行处理并送到 led 数码 管,5v 稳压电源给各个部分供电。系统组成框图如图 2.1 所示。 图 2.1 系统组成框图 2.2 模块化编程思想方案论证模块化编程思想方案论证 如果一本书没有章、节和段落,学习起来该有多么困难。将复杂任务和主题分解 为更便于管理的部分,是使它们更容易处理的一种方法。同样,计算机程序也可以分 解为小的子程序,或模块,而这些子程序或模块可以分别进行开发和测试。这种方法 就称为模块化程序设计(modular programming)。模块最重要的属性是它们应该尽可能的 独立和自包含。另外,一般将它们设计成执行一个特定的、定义好的函数,它有一个 入口点和一个退出点。同时,模块常常很短(通常只有 50 到 100 条指令)和高度内聚的3。 模块化程序设计有很多优点。不管对于开发者还是用户来说,小的、自包含的单 元都更易于设计和理解底层的逻辑。模块化程序设计使开发更方便,这是因为每个模 块都可以独自得以完善。事实上,对于大型软件项目,不同的程序员可以只负责各自 的组件。模块化设计也使调试和测试程序更加容易,因为错误更容易隔离开来。最后, 程序的维护和修改更加方便。这主要是因为可以开发新模块来执行额外的任务,然后 将其集成到现有的、组织良好的架构中。 单片机 显示模块 hs11 01 湿 度检 测电 路 ds18 b20 温度 检测 电源 西安工业大学北方信息工程学院毕业设计(论文) 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 系统软件设计 10 3 系统软件设计系统软件设计 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 |= 0x80 ; delay(4) ; return (dat) ; /* 写一个字节 */ /*/ writeonechar(unsigned char dat) unsigned char i = 0 ; for (i = 8 ; i 0 ; i-) dq = 0 ; dq = dat delay(5) ; dq = 1 ; dat=1 ; /* 读取温度 */ /*/ read_temperature(void) init_ds18b20() ; writeonechar(0xcc) ; / 跳过读序号列号的操作 writeonechar(0x44) ; / 启动温度转换 init_ds18b20() ; writeonechar(0xcc) ; /跳过读序号列号的操作 writeonechar(0xbe) ; /读取温度寄存器 temp_data0 = readonechar() ; /温度低 8 位 temp_data1 = readonechar() ; /温度高 8 位 /* 数据转换与温度显示 */ /*/ disp_temperature() 西安工业大学北方信息工程学院毕业设计(论文) 16 display4=temp_data0 display0=ditabdisplay4+0x30 ; /查表得小数位的值 display4=(temp_data0 else beep=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 工作于方式 1 / th0=(65536-50000)/256; /定时 50ms / tl0=(65535-50000)%256; th0=0x4c; tl0=0x00; / 定时器 1 初始化 void init_t1(void) tmod=(tmod /定时器 1 用作计时 th1 =0x00; tl1 =0x00; /定时器 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=0x00; /定时器 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=0x00; t1count=0; th1=0x00; tl1=0x00; tr1=1; lcd_pos(0x4a) ; lcd_wdat(le2+48); lcd_pos(0x4b) ; lcd_wdat(le1+48); lcd_pos(0x4c) ; 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(0x40) ; /设置显示位置为第二行第 1 个字符 m = 0 ; while(cdis2m != 0) lcd_wdat(cdis2m) ; /显示字符 m+ ; writetab() ; /自定义字符写入 cgram delay1(5) ; lcd_pos(0x4d) ; lcd_wdat(0x00) ; /显示自定义字符 void shidu_menu () /显示湿度的菜单 uchar m ; lcd_pos(0) ; /设置显示位置为第一行的第 1 个字符 m = 0 ; while(cdis3m != 0) /显示字符 lcd_wdat(cdis3m) ; m+ ; lcd_pos(0x40) ; /设置显示位置为第二行第 1 个字符 m = 0 ; while(cdis4m != 0) 西安工业大学北方信息工程学院毕业设计(论文) 21 lcd_wdat(cdis4m) ; /显示字符 m+ ; writetab() ; /自定义字符写入 cgram delay1(5) ; lcd_pos(0x4d) ; lcd_wdat(0x00) ; /显示自定义字符 void ok_menu() uchar m; lcd_pos(0) ; /设置显示位置为第一行的第 1 个字符 m = 0 ; while(cdis5m != 0) /显示字符 lcd_wdat(cdis5m) ; m+ ; lcd_pos(0x40) ; /设置显示位置为第二行第 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 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(0x01) ; /清除 lcd 的显示内容 西安工业大学北方信息工程学院毕业设计(论文) 24 lcd_wcmd(0x38) ; /16*2 显示,5*7 点阵,8 位数据 delay1(5) ; lcd_wcmd(0x38) ; delay1(5) ; lcd_wcmd(0x38) ; delay1(5) ; lcd_wcmd(0x0c) ; /显示开,关光标 delay1(5) ; lcd_wcmd(0x06) ; /移动光标 delay1(5) ; lcd_wcmd(0x01) ; /清除 lcd 的显示内容 delay1(5) ; /* 设定显示位置 */ /*/ void lcd_pos(uchar pos) lcd_wcmd(pos | 0x80) ; /数据指针=80+地址变量 /*自定义字符写入 cgram */ /*/ void writetab() unsigned char i ; lcd_wcmd(0x40) ; /写 cgram for (i = 0 ; i4)|(temp_data1 else beep=0; 4 系统调试 26 4 系统调试系统调试 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-or
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公证员考试题库及答案
- 河北省地方金融监督管理局事业单位真题2024
- 2024年内蒙古兴安盟公安局招聘留置看护警务辅助人员笔试真题
- 2025年中国通信模块电源行业市场调查、投资前景及策略咨询报告
- 2025年中国补水养颜霜行业投资前景及策略咨询研究报告
- 2025年中国自动阀门行业投资前景及策略咨询研究报告
- 2025年中国立式变流恒压消防泵行业投资前景及策略咨询研究报告
- 2025年中国电流电压负载箱行业市场调查、投资前景及策略咨询报告
- 2025年中国游览车外壳行业投资前景及策略咨询研究报告
- 2025年中国油烟净化吸收器行业投资前景及策略咨询研究报告
- 《中医养生保健服务(非医疗)技术操作规范-砭术》-公示稿
- 《企业信息安全培训课件》
- 职业学院学生转专业申请表
- 2025年全国安全生产月安全知识竞赛题库及答案(共280题)
- 一例前交通动脉瘤破裂伴蛛网膜下腔出血的护理查房
- 心衰病人的护理查房
- 乳腺癌患者静脉管理
- 制造企业生产记录档案管理制度
- 急诊科临床诊疗指南-技术操作规范更新版
- 《接触网施工》课件 4.8.1 交叉线岔安装
- 艺术培训学校档案管理制度(3篇)
评论
0/150
提交评论