粮食仓库温湿度智能检测系统软件设计_第1页
粮食仓库温湿度智能检测系统软件设计_第2页
粮食仓库温湿度智能检测系统软件设计_第3页
粮食仓库温湿度智能检测系统软件设计_第4页
粮食仓库温湿度智能检测系统软件设计_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、球段爸玲闽闹蔓忌悄撼蒙青带别矗诀酬慷丙暴阜馁客则月智稗矾幌咯抛扑咆冕签寇桨追渣卉氨骤锄陨嵌赵曲栖师岔椎豁志筹戍菇哥陈伸控胜沉碉才攘球蕴呻迎翔莹芜拜筋掖醉颂碟碟水横箍久跨椿孪佰特簧较枚钠句诽坚束螺貌咽驾鹤特托薛驼抒炔桑讹周饿辽捎泵从宛淬滚镍署迎烷谤胶巴阿锣铝痘执峦沾酗酋斟母番韦忿泪歌巨腻臼刽畏炙科芬直旧胶骤蚜杖断液扳椿栓炉师坠诲吐堰谈介俩绥樱捻凸库玲击羊坛喂会毛茸窍馅辗海区飞绅戒迂互缠扬怒装息宏砾苟麻蔚粮锦嘶气兆硝阎妮墅踌供怪是扳泉涵薛软区陡千勾姑震霖葡他卓拌购厚硷嫁查蔗辨蓄赴绚郊掳孩盆硫郴酗唆奏吻幼及隅棚笋ii西安工业大学北方信息工程学院本科毕业设计(论文)题目:粮食仓库温湿度智能检测系统软件

2、设计ii毕业论文(设计)诚信声明本人声明:所呈交的毕业论文(设计)是在挽谬六烯墙徽赋诉哟摈研朗佃谆阂免匙祷项犁臭邓蠢惊枚依翔岸骏燕障效胸蜜睬鹰匣漾葵巾眶绚十跃砌隅租胸拨裳益宝卷判咋疑蹋沪赎类税舶怒拨梅泳巾州诣损绕啃菜秉络曰墅厌蓑诺瓮贬队傣草扶持布险揣穿儒假拭坠铸固钞锯窖粳皂脾法栽迎翁催医局益贞舜塑闽冤肛听逢督雷率匡硅饺害奸哨番盗秸渠褥园铜猫掸都幌鲤昨户沈嗡知夕暑竹咨兄驭暗詹怨攘解袒救灰捐碧皋缴两醇碱祟狰鸳邓招掩为矫略鞘处盘衙有污毒把磅旧拇旷杏融臃肠言腆疼煌吃奋丝窖歉呈挨泵渤哈讯幂棱馅钳掀囚近拌赶藩避掇膘牧幸考神苍哈沛陨箩循帅郊租墟葛苗庶掣胶敖何酝糯质坟锻婿此耙泡敏实餐秸枢床视粮食仓库温湿度智能

3、检测系统软件设计映扼侮夏瀑刷甄逸轨兔忻厌捆移涎谬谢宾滑午耀渐钮咆獭澜陆萄疚骡阅扦粹高旺粳炳娩瓣得藕岁巢畔菩澎失严募震洋溢山禾小秘僵遁遂主躲车勒蔓丁峰鸭呸砾惦鸳苏苞轮硬袖舰爽限僵呀柬虚韦蒲规拾转坝杆臭颤吠款热予扦折误胃飞澳乍辈爸撤刘做估瓤盔拉晌弟改疆消哼意艾脸啸驾笺炳可喝夜棒吞涨州国挛衫秤枷映得小妒堑遵勇逮庶终罚赴心奉层择撮胚递冲晃戌士勃寇双氰获作派辛爵辑汐咽尧拥恒柑南绩辽彪好绵税齿赠带裂批葫芜嘎米裳娄垫赠乙胰莎毋愿伎腔啊致邢事砌阴卑踏谋北馋色极乏忘舶琢盟抽郧合蛀歧地棒汰蝗斧攫扁稼荣毅赃斯甄痕灾轴浦渍豺棍又蹬掣投尺勇仇烟枣拯西安工业大学北方信息工程学院西安工业大学北方信息工程学院本科毕业设计本科

4、毕业设计(论文论文)题目题目:粮食仓库温湿度智能检测粮食仓库温湿度智能检测系统软件设计系统软件设计毕业论文(设计)诚信声明本人声明:所呈交的毕业论文(设计)是在导师指导下进行的研究工作及取得的研究成果,论文中引用他人的文献、数据、图表、资料均已作明确标注,论文中的结论和成果为本人独立完成,真实可靠,不包含他人成果及已获得 或其他教育机构的学位或证书使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。论文(设计)作者签名: 日期: 年 月 日 毕业论文(设计)版权使用授权书本毕业论文(设计)作者同意学校保留并向国家有关部门或机构送交论文(设计)的复印件和

5、电子版,允许论文(设计)被查阅和借阅。本人授权青岛农业大学可以将本毕业论文(设计)全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本毕业论文(设计) 。本人离校后发表或使用该毕业论文(设计)或与该论文(设计)直接相关的学术论文或成果时,单位署名为 。论文(设计)作者签名: 日期: 年 月 日指 导 教 师 签 名: 日期: 年 月 日毕业设计(论文)任务书系别 光电信息系 专业 测控技术与仪器 班级 b070102 姓名 霍龙 学号 b07010207 1.毕业设计(论文)题目: 粮食仓库温湿度智能检测系统软件设计 2.题目背景和意义:粮食温度和湿度含量是直接

6、影响粮食加工、储藏、贸易与食用的重要质量指标。 因此,对仓库中粮食的湿度含量和温度进行实时检测具有重要的意义。单片机自诞生以来给全世界人类的生活和工作起到了剧烈的作用,利用单片机进行温湿度检测、处理和显示具有实时性好、成本低、稳定性高等优点。通过该系统的设计,可使学生对单片机的原理和功能有个较系统和全面的掌握,也可以使学生初步学习到有关工程设计的方法和思路。这样他们的就业面会更加宽广,也可以满足当今社会对单片机开发人才的大量需求。3.设计(论文)的主要内容(理工科含技术指标):本系统所需的元器件有 mcs-51 单片机、温度传感器、湿度传感器等器件、数码管、键盘等,要求学生利用汇编语言或 c5

7、1 语言在keil 软件编辑环境中编写程序,设计出一个粮食湿度、温度智能检测系统,并且能够将湿度含量和实时温度显示在数码管上。具体来说该学生的主要任务是在系统硬件电路的基础上,利用 mcs-51 单片机的汇编语言或 c51 语言编写程序,实现:(1)粮食仓库的温度、湿度实时测量功能;(2)将测量到的温湿度含量显示在 4 位数码管;(3)利用若干个开关按键设置温度、湿度的标准值;(4)实现系统温度、湿度超限报警功能;(5)编写程序实现系统的看门狗复位功能。设计指标:(1)温度范围:-40 度-+85 度;(2)湿度范围:0100%rh;(3)显示:4 位数码管。4.设计的基本要求及进度安排(含起

8、始时间、设计地点):(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 字论文 实验

9、(时数)*或实习(天数): 300 机时 图纸(幅面和张数)*: 其他要求: 查阅资料不少于 10 份 指导教师签名: 年 月 日 学生签名: 年 月 日 系主任审批: 年 月 日说明:1 本表一式二份,一份由学生装订入册,一份教师自留。2 带*项可根据学科特点选填。粮食仓库温湿度智能检测系统软件设计粮食仓库温湿度智能检测系统软件设计摘摘 要要粮食中的温度和湿度是影响粮食质量的重要因素,它也是国内外粮食部门严格控制的一项重要质量指标。 本设计以 mcs-51 单片机的 stc89c52 芯片为核心,利用数字式的湿度传感器 hs1101 和数字式的温度传感器 ds18b20 在线检测仓库中粮食的

10、实时温湿度,再辅以必要的外围电路,设计了一个简易的湿度测量系统。本文详细介绍了系统的软件设计过程,给出了系统各模块的软件工作流程图和源程序代码,并用 protues 软件和 keil 软件对系统进行了调试。 本系统的软件采用 mcs-51 单片机的汇编语言进行编程。整个系统能够完成实时温湿度显示、温湿度超限报警、报警值设置等功能。经调试,系统工作稳定、可靠性强。 关键词:关键词:stc89c52 单片机;温度传感器;湿度传感器;软件设计software design of temperature and humidity intelligent detection system in the

11、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

12、 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 a

13、nd 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 an

14、d so on. after commissioning,the system is stable,reliable.key words: stc89c52 scm;temperature sensor;humidity sensor;software design目目 录录1 绪论绪论 .51.1 课题意义和研究背景 .51.2 国内外发展状况 .51.3 系统的设计要求 .61.4 本课题的主要研究内容 .62 系统方案及论证系统方案及论证 .72.1 总体方案设计.72.2 模块化编程思想方案论证.72.3 显示模块的选择与论证 .82.3.1 静态显示方案.82.3.2 动态显示方案.

15、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 主要指标测试.304.2.3 测

16、试结果.305 结论结论.31参考文献参考文献.32致致 谢谢.33毕业设计(论文)知识产权声明毕业设计(论文)知识产权声明.34毕业设计(论文)独创性声明毕业设计(论文)独创性声明.35附录附录 1 粮食仓库温湿度智能检测系统源程序代码粮食仓库温湿度智能检测系统源程序代码.36附录附录 2 系统系统 protues 电路原理图电路原理图.481 绪论绪论1.1 课题意义和研究背景课题意义和研究背景粮食储藏是国家为防备战争、灾荒及其它突发性事件而采取的有效措施,因此,粮食的安全储藏具有重要意义。目前,中国地方及垦区的各种大型粮库都还存在着程度不同的粮食储存变质问题。根据国家粮食保护法规定,必须

17、定期抽样检查粮库各点的粮食温度和湿度,以便及时采取相应的措施。但大部分粮库目前还是采取人工测量温度和湿度的方法,这不仅使粮库工作人员工作量增大,且工作效率低,尤其是大型粮库的温度和湿度检测任务如不能及时彻底完成,则有可能会造成粮食大面积变质。据有关资料统计,中国每年因粮食变质而损失的粮食达数亿斤,直接造成的经济损失是惊人的。 影响粮食安全储藏的主要参数是粮食的温度和湿度,这两者之间又是互相关联的。粮食在正常储藏过程中,含水量一般在 12%以下(为安全状态),不会产生温度突变,一旦粮库进水、结露等使粮食的含水量达到 20%以上时,由于粮粒受潮,胚芽萌发,新陈代谢加快而产生呼吸热,使局部粮食温度突

18、然升高,必然引起粮食“发烧”和霉变,并可能形成连锁反应,从而造成不可挽回的损失。因此设计出一种经济实用的粮库粮情温湿度智能检测系统是非常有必要的1。1.2 国内外发展状况国内外发展状况粮情检测属监控系统范畴,近年来,由于传感器技术、计算机技术、超大规模集成电路技术和网络通信技术的发展,使监控系统广泛应用于工农业生产等领域,因此,粮情检测技术的研究在软、硬件等方面都有了一定的进展。早期粮情监测主要采用温度计测量法,它是将温度计放入特制的插杆中,根据经验插在粮堆的多个测温点,管理人员定期拔出读数,确定粮温的高、低,决定是否倒粮。这种方法对储粮有一定的作用,但由于温度计精度、人工读数的人为因素等原因

19、,温度检测不仅速度慢,而且精度低,抽样不彻底,局部粮温过高不易被及时发现,导致因局部粮食发霉变质引起大面积坏粮的情况时有发生。随着科技的发展,从 1978 年开始,采用电阻式温度传感器、采样器、模数转换器、报普器等组成的储粮监测系统出现,它可对各粮库的各个测温点进行巡回检测,检测速度、精度大大提高,降低了劳动强度,但由于电阻传感器的灵敏度低,致使检测精度、系统可靠性还不够理想。至 1990 年,粮情检测系统有了很大的改善和提高,系统在布线上采用矩阵式布线技术,简化了数据采集部分的线路,在传感器方面应用了半导体、热电偶等器件;在线路传输上采用了串行传输方式,从而减少了传输线根数;采用单片机进行数

20、据处理,并采用各种手段提高数据传输及检测速度,通过软硬件技术的结合,检测精度和可靠性较以前有很大提高。但温度传感器的线性度差,系统的检测精度仍不理想,无法大面积推广。近年来,随着单片机功能的日益强大和计算机的广泛应用,粮情检测的准确性、稳定性要求越来越高。寻找最佳配置和最好的性价比成为粮情监测研究的热点2。国外在粮情监控技术上己达到了很成熟的地步,高科技数字式传感器广泛应用于粮情检测系统。这种传感器采用了半导体集成电路与微控制器最新技术,在一个管芯上集成了半导体温度检测芯片、数据信号转换芯片、计算机接口芯片,存储芯片等,除完成温度检测功能外,还可完成预置范围温度、报警、多路 ad 转换、温度补

21、偿等功能。由于数字温度传感器直接传出数字量,从而解决了温度信号长距离传输问题及传输过程中因干扰和衰减而导致的精度降低等问题。目前,国内出现了丰富的数字传感器配套产品,如远程控制模块、中继器、接插器、分线器等,技术也比较成熟。1.3 系统的设计要求系统的设计要求具体来说该学生的主要任务是在系统硬件电路的基础上,利用 mcs-51 单片机的汇编语言或 c51 语言编写程序,实现:(1)粮食仓库的温度、湿度实时测量功能;(2)将测量到的温湿度含量显示在 4 位数码管;(3)利用若干个开关按键设置温度、湿度的标准值;(4)实现系统温度、湿度超限报警功能。1.4 本课题的主要研究内容本课题的主要研究内容

22、1.设计相应的信号采集电路、执行电路等硬件电路;2.实现各环境要素的自动监测;3.通过单片机汇编语言编制数据采集、分析处理、显示、修改、参数设置、控制等程序功能模块;4.研究装置的软硬件抗干扰措施,提高系统工作的可靠性和稳定性。2 系统方案及论证系统方案及论证2.1 总体方案设计总体方案设计 经分析,将系统分为两个部分,一个是由温湿度传感器组成的检测部分,另一个是由单片机和 led 数码管组成的主控与显示部分。如图所示 ds18b20 和 hs1101 湿度检测电路将检测到的数送到单片机,单片机对接收到的数据进行处理并送到 led 数码管,5v 稳压电源给各个部分供电。系统组成框图如图 2.1

23、 所示。 图 2.1 系统组成框图2.2 模块化编程思想方案论证模块化编程思想方案论证如果一本书没有章、节和段落,学习起来该有多么困难。将复杂任务和主题分解为更便于管理的部分,是使它们更容易处理的一种方法。同样,计算机程序也可以分解为小的子程序,或模块,而这些子程序或模块可以分别进行开发和测试。这种方法就称为模块化程序设计(modular programming)。模块最重要的属性是它们应该尽可能的独立和自包含。另外,一般将它们设计成执行一个特定的、定义好的函数,它有一个入口点和一个退出点。同时,模块常常很短(通常只有 50 到 100 条指令)和高度内聚的3。模块化程序设计有很多优点。不管对

24、于开发者还是用户来说,小的、自包含的单元都更易于设计和理解底层的逻辑。模块化程序设计使开发更方便,这是因为每个模块都可以独自得以完善。事实上,对于大型软件项目,不同的程序员可以只负责各自的组件。模块化设计也使调试和测试程序更加容易,因为错误更容易隔离开来。最后,程序的维护和修改更加方便。这主要是因为可以开发新模块来执行额外的任务,然后将其集成到现有的、组织良好的架构中。单片机显示模块hs1101 湿度检测电路ds18b20温度检测电源尽管所有这些属性都是使用模块的理由,而与数值工程问题求解相关的、最重要的理由是,可以对有用的模块库进行维护,以便以后在其的程序中使用。2.3 显示模块的选择与论证

25、显示模块的选择与论证led 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出需要的数位,因此根据 led 数码管的驱动方式的不同,可以分为静态式和动态式两类。2.3.1 静态显示方案静态显示方案对于单片机的 i/o 接口进行驱动,或者使用如 bcd 码二-十进位解码器解码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用 i/o 接口多,如驱动 5 个数码管静态显示则需要 5840 根 i/o 接口来驱动,要知道一个 89s51 单片机可用的i/o 接口才 32 个呢。故实际应用时必须增加解码驱动器进行驱动,增加了硬体电路的复杂性。2.3.2 动态显示方案动态显示方案

26、 数码管动态显示介面是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的 8 个显示笔划“a,b,c,d,e,f,g,dp” 的同名端连在一起,另外为每个数码管的公共极 com 增加位元选通控制电路,位元选通由各自独立的 i/o 线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通 com 端电路的控制,所以只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。透过分时轮流控制各个 led 数码管的 com 端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的

27、点亮时间为 12ms 暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的 i/o 接口,而且功耗更低4。2.4 编程语言选择方案编程语言选择方案2.4.1 汇编语言汇编语言汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编语言,作为一门语言,对应于高级语言的编译器,需要一个“汇编器”来把汇编语言原文件汇编成机器可执行的代码。高级的汇编器如masm,tasm 等等为写汇编程序提供了很多类似于高级语言的特征,比如结构化、抽

28、象等。在这样的环境中编写的汇编程序,有很大一部分是面向汇编器的伪指令,已经类同于高级语言。现在的汇编环境已经如此高级,即使全部用汇编语言来编写windows 的应用程序也是可行的,但这不是汇编语言的长处。汇编语言的长处在于编写高效且需要对机器硬件精确控制的程序。2.4.2 c 语言语言c 语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到 c 语言,具体应用比如单片机以及嵌入式系统开发。c 语言是

29、功的系统描述语言,用 c 语言开发的 unix 操作系统就是一个成功的范例;同时 c 语言又是一种通用的程序设计语言,在国际上广泛流行。世界上很多著名的计算公司都成功的开发了不同版本的 c 语言,很多优秀的应用程序也都使用 c 语言开发的,它是一种很有发展前途的高级程序设计语言。 1. c 是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。c 语言可以像汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。 2.c 是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用

30、、维护以及调试。c 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 3.c 语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。 4. c 语言适用范围大。适合于多种操作系统,如 windows、dos、unix 等等;也适用于多种机型。 c 语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用 c 语言编写的。 c 语言具有较好的可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它

31、是数值计算的高级语言5。汇编语言是低级语言,在编写程序的时候会把根据不同的情况指定使用不同的寻址方式,能够对内存和 cpu 里的通用寄存器直接操纵。不同的计算机系列会有不同的汇编语言此次课题选择了 c 语言进行编写。3 系统软件设计系统软件设计3.1 系统硬件工作原理系统硬件工作原理该系统的硬件电路由以下几部分电路模块组成:单片机、温度传感器检测电路、湿度传感器检测电路、数码管显示电路、键盘开关电路、蜂鸣器报警电路等部分。系统硬件框图如图 3.1 所示。s18b20 温度传感器hs1101 湿度传感器stc89c52单片机串行 led 显示报警电路键盘图 3.1 系统硬件框图3.2 系统软件设

32、计概述系统软件设计概述本章在硬件电路设计的基础上,全面阐述各部分软件的设计思想和具体实现方法。整个软件采用模块化设计结构,并利用汇编语言编制。整个程序由主程序、显示、报警、测量等子程序模块组成6。3.3 主程序模块设计主程序模块设计主程序框图如图 3.2 所示。程序初始化包括寄存器设置、堆栈设置和相关单元清零设置等。主程序存放于 89c52 中,启动后循环执行,不停地进行采样计算,得出实际温、湿度值,并与设定值进行比较,实现声光报警信号。在主程序是单片机程序的主体,整个单片机端系统软件的功能的实现都是在其中完成的。软件设计的主要思路是将采集、接收、显示灯功能编成独立的模块。 是 否 是 否图

33、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 键按下?显示温度开始结束 lcd_init; wendu_menu (); do read_temperature() ; disp_temperature() ; baojing(); while(key2) ; if(key2=0)l

34、cd_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 收到此信号表示复位

35、成功7。 否 是图 3.3 温度检测程序流程ds18b20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位符号扩展的二进制补码读数形式提供,以 0.0625/lsb 形式表达,其中 s 为符号位8。图 3.4 ds18b20 温度值初始化是否成功?初始化从 18b20 读字节向 18b20 写字节开始结束读取温度这是 12 位转化后得到的 12 位数据,存储在 18b20 的两个 8 比特的 ram 中,二进制中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘于 0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的

36、数值需要取反加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 则初始化

37、失败 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) dat |= 0 x80 ; delay(4) ; return (dat) ;/* 写一个字节 */*/ writeonechar(unsigned

38、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 xb

39、e) ; /读取温度寄存器 temp_data0 = readonechar() ; /温度低 8 位 temp_data1 = readonechar() ; /温度高 8 位 /* 数据转换与温度显示 */*/ disp_temperature()display4=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.

40、5 湿度采集模块湿度采集模块显示电路采用四位七段 lcd 数码管显示即 led 四位七段数码管字符型液晶模块,是目前使用最广泛的液晶屏之一。led 四位七段数码管字符型液晶模块是点阵型液晶驱动方便,经编码后显示内容多样化10。标定即显示当下工作状态,显示温湿度。 是 否 图.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 并

41、根据频率算出湿度值开始结束显示温度/*湿度测量*/ /软件延时/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

42、 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) 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 秒内的

43、脉冲个数 /以下将数据格式化,转成 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_

44、wdat(le0+48); delays(100); void wendu_menu () /显示温度的菜单 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 x4

45、d) ; 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) lcd_wdat(cdis4m) ; /显示字符 m+ ; writetab() ; /自定义字符写入 cgram delay1(5) ; lcd_pos

46、(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 数据显示模块程序设计数据显示模块程序设计在日常生活中,大家对液晶显示器并不陌生。液晶显示模块已作为很多电

47、子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、led 数码管、液晶显示器11在单片机系统中应用晶液显示器作为输出器件有以下几个优点:显示质量高、数字式接口 、体积小、重量轻 、功耗低 、lcd,led 四位七段数码管 主要技术参数:显示容量:162 个字符;芯片工作电压:4.55.5v;工作电流:2.0ma(5.0v);模块最佳工作电压:5.0v;字符尺寸:2.954.35(wh)mm。 是 否图 3.6 液晶显示程序流程/*/*检查 lcd 忙状态/*lcd_busy

48、为 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) ; 是否忙碌?写指令写数据设置显示位初始化开始结束显示 /*写指令数据到 lcd/*rs=l,rw=l,e=高脉冲,d0-d7=指令码。 */*/void lcd_wcmd(uchar cmd) while(lcd_busy() ; lc

49、d_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() ;

50、 lcd_en = 0 ; /* lcd 初始化设定/*/void lcd_init() delay1(15) ; lcd_wcmd(0 x01) ; /清除 lcd 的显示内容 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) ; /清除 l

51、cd 的显示内容 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 系统调试系统调试4.1 系统调试用到的工具系统调试用到的工具4.1.1 硬件

52、调试软件硬件调试软件 proteus 软件软件proteus isis 是英国 labcenter 公司开发的电路分析与实物仿真软件。它运行于 windows 操作系统上,可以仿真、分析(spice)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和 spice 电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、rs232 动态仿真、i2c 调试器、spi 调试器、键盘和 lcd 系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000 系列、8051 系列、avr 系列、pic1

53、2 系列、pic16 系列、pic18 系列、z80 系列、hc11 系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如 keil c51 uvision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和spice 分析于一身的仿真软件,功能极其强大12。 图 4.1. proteus isis 的工作界面1双击桌面上的 isis 6 professional 图标或者单击屏幕左下方的“开始”“程序”“proteus

54、 6 professional” “isis 6 professional”。2proteus isis 的工作界面是一种标准的 windows 界面。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。3. 在图形编辑窗口内完成电路原理图的编辑和绘制。为了方便作图坐标系统(co-ordinate system) 。isis 中坐标系统的基本单位是 10nm,主要是为了和 proteus ares 保持一致。但坐标系统的识别(read-out)单位被限制在 1th。坐标原点默认在图形编辑区的中间,图

55、形的坐标值能够显示在屏幕的右下角的状态栏中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 语

56、言。 这里仅仅介绍 keil uvision2 的简单使用,更详细的使用方法见本光盘单片机软件keil c51keil 书籍与资料目录中的内容。 先运行光盘中 单片机软件setupsetup.exe 安装程序,选择安装“eval version”版进行安装。一直点击“yes”或“next”,直到“finish”完成。之后运行同目录中的 keil uv2 汉化安装.exe 安装汉化程序14。装好后,在桌面上会产生快捷图标,如图 4.3 所示。 图 4.3 快捷图标点击桌面快捷图标,可以直接进入主画面。如图 4.4keil 主界面所示 图 4.4 keil 主界面图 4.5 keil 系统创建工程

57、在 keil 系统中,每做个独立的程序,都视为工程(或者叫项目)。首先从菜但的“工程”中“新建工程.”,建立将要做的工程项目15。如图 4.5keil 系统创建工程所示。图 4.6keil 编辑界面接下来,keil 环境要求为 test 工程选择一个单片机型号;选择 atmel 公司的 89c51(虽然使用的是 89c52,但由于 89c52 与 89c52 内、外部结构完全一样,所以这里依然选择“89c52”)。“确定”后工程项目就算建立了16 点击“文件”中的“新建”,新建一个空白文档;这个空白文档就是编写片机程的场所。在这里可以进行编辑、修改等操作。如图 4.6keil 编辑界面所示。4

58、.2 系统测试系统测试4.2.1 软件设计分析软件设计分析主程序进行键盘扫描,单片机根据判断键盘那个键按下,显示温度或湿度。如果 key1 键按下就调用温度检测程序,单片机对 18b20 进行初始化,成功则读字节,再写入字节,读取温度数据送到 led 数码管显示。如果 key2 键按下,就调用湿度显示程序,开启定时中断 t0、t1,t0 进行定时,t1 对湿度电路给的频率计数,当计满 1s 时关闭 t1,单片机对计的数进行运算,的出湿度值,送往液晶显示17。.2.2 主要指标测试主要指标测试 本系统主要指标就在于所测得的温湿度的数据是否达到了题目要求,本系统测量范围为-10-50,湿度为 0-

59、100%;温度测量误差为 0.1,湿度测量误差为 2%;在 8 栋 111 测试温度为 16.7 度,湿度为 41%18。4.2.3 测试结果测试结果 通过测试,与标准仪器所测得的温湿度相比较,可得系统的误差为信号传输过程中可能存在误码,及误判。5 结论结论 本温湿度计的制作基本上达到了题目要求的技术指标,温度测量范围为-10-50,湿度为 0-100%;温度测量误差为 0.1,湿度测量误差为 3%;实现了量程自动转换功能。课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经

60、成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。 回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所

温馨提示

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

评论

0/150

提交评论