便携式数字温湿度计的设计.doc_第1页
便携式数字温湿度计的设计.doc_第2页
便携式数字温湿度计的设计.doc_第3页
便携式数字温湿度计的设计.doc_第4页
便携式数字温湿度计的设计.doc_第5页
免费预览已结束,剩余42页可下载查看

下载本文档

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

文档简介

河南大学2009届本科毕业论文便携式数字温湿度计的设计The Design of Portable Digital Instrumentation of Temperature and Humidity.论文作者姓名: 作者学号: 所在学院:计算机与信息工程学院 所学专业:自动化 导师姓名职称: 论文完成时间:2009年5月20日 2009年5月20日河南大学2009届毕业论文(设计、创作)开题报告(由学生本人认真填写)学号05023417姓名杜国瑞导师姓名职称张延宇(助教)开题时间2008年12月10日课题题目便携式数字温湿度计的设计课题来源导师指定 自定 其他来源课题的目的、意义以及和本课题有关的国内外现状分析:1、目的:设计一款基于数字温湿度传感器SHT-10、AT89S51单片机以及1602字符型LCD的便携式数字温湿度计。2、意义:满足工农业生产、气象、环保、科研等部门以及日常生活中,经常需要对环境温度与湿度进行测量的需求,为之提供一种快捷高效、低成本的数字化测量工具。3、现状:在工农业生产、气象、环保、国防、科研等部门及日常生活中,经常需要对环境温度与湿度进行测量及控制。准确测量温湿度对于生物制药、食品加工、造纸等行业更是至关重要。在温湿度测量技术不断发展完善的今天,温湿度计也正在朝着集成化、智能化的方向发展。主要表现在以下两个方面:(1)温湿度传感器正从分立元件向集成化、智能化、系统化的方向迅速发展,为开发新一代温湿度测控系统创造了有利条件;(2)在温湿度测量系统中普遍采用线性化处理、自动温度补偿和自动校准湿度等几项新技术。研究目标、研究内容和准备解决的问题:1、目标:在工农业生产、气象、环保、科研等部门以及在日常生活中,是人们对温湿度的测量更加方便、快捷。2、内容:利用温湿度传感器、单片机、液晶显示模块以及报警装置实现温湿度的测量、显示与报警。3准备解决的问题:IIC总线如何模拟,串行传输数据如何实现以及如何将数据送入液晶模块进行显示。拟采取的方法、技术或设计(开发)工具: 软件环境:1.单片机的程序开发环境采用Keil uVision2,开发语言是Keil C51。 硬件环境:本设计将采用以下模块:1.AT89S51单片机;2.温湿度传感器SHT10;3.字符型LCD1602;4.EEPROM;5.蜂鸣器。 预期成果:1、毕业设计成果单片机将传感器测得的温湿度修正后送入液晶模块显示,当温湿度值超过上下限时蜂鸣器报警,按键电路可以方便的调整温湿度上下限。本设计将提供硬件电路原理图、程序流程图以及源程序代码。2、毕业论文进度计划:2008.12.10 - 2009.3.5:查找资料、搜集相关素材2009.3.6 - 2009.3.26:完成需求分析2009.3.27 - 2009.4.7: 完成概要设计2009.4.8 - 2009.4.15:完成详细设计2009.4.16 -2009.4.28: 完成编码2009.4.29 - 2009.5.4: 完成软件测试2009.5.5 - 2009.5.15:整理资料、撰写毕业论文2009.5.16 - 2009.5.20:根据导师要求,完善毕业设计和论文指导教师对选题报告的意见: 指导教师签名: 年 月 日河南大学2009届毕业论文(设计、创作)任务书(由学生本人认真填写)学号05023417姓名杜国瑞导师姓名张延宇任务书起止日期2008年12月10日 至 2009年 5月20日论文提要:本文将主要介绍一款基于数字温湿度传感器SHT-10、AT89S51单片机以及1602字符型LCD的便携式数字温湿度计,并将详细说明各个功能模块的硬件电路设计与软件程序设计。课题任务要求:认真调研温湿度传感器采集与传输数据的方式、LCD显示的基本原理以及单片机开发流程,熟悉单片机工作原理,充分做好系统分析、设计的内容;本设计完成后应该初步实现温湿度自动采集与显示,上下限报警等功能,使人们对温湿度的获取更加方便、快捷。依据所完成的软硬件撰写论文。主要参考文献:1于永.戴佳.常江.51单片机C语言常用模块与综合系统设计.电子工业出版社.2孙育才. 单片微型计算机及其应用.东南大学出版社.3赵亮.侯国锐.单片机C语言编程与实践.人民邮电出版社.4 AT89S51 datasheet. ATMEL corporation. .5 SHT10 datasheet. SENSIRION corporation. .6EEPROM datasheet. CATALYST corporation. .71602字符型LCD. 长沙太阳人电子有限公司..河南大学2009届毕业设计(论文、创作)中期检查表学院名称:计算机与信息工程学院题目名称便携式数字温湿度计的设计学号05023417所学专业自动化指导教师姓 名张延宇姓名杜国瑞一、毕业设计进展情况已经完成温湿度采集模块、液晶显示模块及报警装置的硬件电路设计和软件编程,代码已经调试运行成功。二、存在问题温湿度的限值不能断电保护,在系统重启时需要重新设定,过于繁琐。三、下一阶段的研究方法或设计思路扩展一个EEPROM,将温湿度限值存放于EEPROM中,并设计4个按键用于调节限值。四、指导教师对学生设计(论文、创作)进展等方面的评语 指导教师签字: 年 月 日此表除第四项外由学生填写指导教师签名河南大学2009届毕业论文(设计、创作)综合成绩表(一)学院名称:计算机与信息工程学院学 号05023417姓名杜国瑞专业自动化指导教师张彦宇老师综合得分 论文题目便携式数字温湿度计的设计指导教师评语及得分指导教师评语评分项目分值指导教师对毕业论文(设计、创作)评分撰写开题报告、文献综述15调查研究查阅整理资料10学习态度与规范要求10数据处理、文字表达10论文(设计、创作)质量和创新意识55合计100得分 指导教师签名 年 月 日评阅教师评语及评分评阅教师评语评分项目分值评阅毕业论文(设计、创作)评分撰写开题报告、文献综述15调查研究查阅整理资料10学习态度与规范要求10数据处理、文字表达10论文(设计、创作)质量和创新意识55合计100得分 评阅教师签名 年 月 日此表由教师填写河南大学2009届毕业论文(设计、创作)综合成绩表(二)学号05023417姓名杜国瑞所在学院计算机与信息工程学院答辩委员会评语及评分答辩委员会评语答辩委员签字: 2009年 月 日评分 项目 分值论文答辩小组评分答辩情况论文质量合计(100)内容表达情况(15)答辩问题情况(25)规范要求与文字表达(20)论文(设计、创作)质量和创新意识(40)得分 答辩委员会主任签字: 2009年 月 日毕业论文(设计、创作)成绩综合评定: 分综合评定等级:备注:一、论文的质量评定,应包括对论文的语言表达、结构层次、逻辑性理论分析、设计计算、分析和概括能力及在论文中是否有新的见解或创新性成果等做出评价。从论文来看学生掌握本专业基础理论和基本技能的程度。二、成绩评定采用结构评分法,即由指导教师、评阅教师和答辩委员会分别给分(以百分计),评阅教师得分乘以20%加上指导教师得分乘以20%加上答辩委员会得分乘以60%即综合成绩。评估等级按优、良、中、差划分,优90-100分;良76-89分;中60-75分;差60分以下。三、评分由专业教研室或院组织专门评分小组(不少于5人),根据指导教师和答辩委员会意见决定每个学生的分数,在有争议时,应由答辩委员会进行表决。四、毕业论文答辩工作结束后,各院应于6月20日前向教务处推荐优秀论文以汇编成册,推荐的篇数为按当年学院毕业生人数的1.5%篇。五、各院亦可根据本专业的不同情况,制定相应的具有自己特色的内容。须报教务处备案。六、书写格式要求:1、目录;2、内容提要须书写200左右汉字,开题报告(文科除外)的内容要根据不同专业的课题任务要求,阐述查阅文献、文案论证、解题思路、工作步骤等;3、正文(含引言、结论等);4、参考文献(或资料) 河南大学本科生毕业论文(设计、创作)承诺书论文题目便携式数字温湿度计的设计姓 名杜国瑞所学专业自动化学 号05023417完成时间2009年5月20日指导教师姓名职称张延宇(助教)承诺内容:1、本毕业论文(设计、创作)是学生 杜国瑞 在导师张彦宇助教的指导下独立完成的,没有抄袭、剽窃他人成果,没有请人代做,若在毕业论文(设计、创作)的各种检查、评比中被发现有以上行为,愿按学校有关规定接受处理,并承担相应的法律责任。2、学校有权保留并向上级有关部门送交本毕业论文(设计、创作)的复印件和磁盘。备注:学生签名: 指导教师签名: 年 月 日 年 月 日说明:学生毕业论文(设计、创作)如有保密等要求,请在备注中明确,承诺内容第2条即以备注为准。目 录摘 要1ABSTRACT2第1章 绪论3 1.1 开发背景及意义3 1.2 本文所做的工作3第2章 硬件电路设计4 2.1 控制模块4 2.2 数据采集与传输模块5 2.3 液晶显示模块7 2.4 报警模块8 2.5 限值存放模块9 2.6 按键电路设计10第3章 软件程序设计11 3.1 主程序11 3.2 温湿度采集子程序13 3.3 温湿度显示子程序14 3.4 限值设定并保存子程序17 3.5 IIC总线读写程序21结 论24致 谢25参考文献26附录127附录228河南大学本科毕业生学士学位论文摘 要本文主要介绍数字式温湿度计的设计理念,详细说明了温湿度计数据采集与传输、液晶显示、超限报警和调整限值等功能以及为实现这些功能而进行的硬件电路设计和软件程序设计。本文给出了硬件电路原理图、主程序和部分子程序流程图以及源程序代码等。通过软、硬件设计使得该款温湿度计具有智能化、高精度、高可靠性等优势,具有广阔的应用前景。本文还提出了该款数字式温湿度计存在的缺陷和尚需解决的一些问题,并给出了可能解决这些问题的途径和方法。关键词 数字式温湿度计;超限报警;温度;湿度ABSTRACTIn this paper, digital design temperature hygrometer, hygrometer detailed description of the temperature data acquisition and transmission, liquid crystal display, alarm and adjust the limit transfinite functions as well as for the realization of these functions and the hardware circuit design and software programming . In this paper, hardware schematics, part of the main program and subprogram, such as flow chart and source code. Through software and hardware design makes it temperature hygrometer with intelligent, high precision and high reliability advantages, has broad application prospects. This article also raised the temperature digital hygrometer which the existence of defects and a number of issues still need to be solved, and gives a possible way to solve these problems and methods.Key words: digital hygrometer temperature; overrun alarm; temperature; humidity第1章 绪论1.1 开发背景及意义在工农业生产、气象、环保、国防、科研等部门及日常生活中,经常需要对环境温度与湿度进行测量及控制。准确测量温湿度对于生物制药、食品加工、造纸等行业更是至关重要。在温湿度测量技术不断发展完善的今天,温湿度计也正在朝着集成化、智能化的方向发展。主要表现在以下两个方面:(1)温湿度传感器正从分立元件向集成化、智能化、系统化的方向迅速发展,为开发新一代温湿度测控系统创造了有利条件;(2)在温湿度测量系统中普遍采用线性化处理、自动温度补偿和自动校准湿度等几项新技术。数字式温湿度计相对于指针式温湿度计而言最大的优势在于读数方便,能够满足许多场合经常需要对环境温度与湿度进行测量的需求,为人们提供一种快捷高效、低成本的数字化测量工具。具有广阔的应用前景和较高的推广价值。1.2 本文所做的工作本文采用数字温湿度传感器SHT-10、AT89S51单片机以及1602字符型LCD等标准化模块设计了一款便携式数字温湿度计,与市场上常见的数字式温湿度计相比,本设计增加了超限报警功能,为此,扩展了EEPROM、蜂鸣器以及按键电路。该款温湿度计具有功耗低,可靠性高、实用性强等特点,可广泛应用于蔬菜大棚、养殖场厂房、储藏室、医院护理病房、学校实验室等场合。本文详细说明了该款数字式温湿度计的开发过程,并提供了硬件电路原理图、程序流程图以及源程序代码等。第2章 硬件电路设计数字式温湿度计要想自动完成温湿度数据的采集、处理与显示,必须具有三个基本的模块:温湿度采集与传输模块、控制模块和显示模块。在进行硬件电路设计时,本设计分别选用数字温湿度传感器SHT10、AT89S51单片机和1602字符型LCD。由于在实际应用中,有些场合比如蔬菜大棚、储藏室等对环境温湿度要求严格,只允许在特定范围内上下浮动。因此,本设计增加了温湿度超限报警功能。为此扩展了报警装置蜂鸣器、专门用于存储限值的具有断电保护功能的EEPROMCAT24WC01以及用于设定限值的按键电路。硬件电路结构框图如图所示: 图2-1 硬件电路结构框图2.1 控制模块(1)选用AT89S51单片机的原因目前,市场上有多种类型的单片机,有些单片机功能比较强大,比如PIC单片机、AVI单片机等,它们都有自带的EEPROM,但往往价格昂贵。为了降低成本,本设计采用ATMEL公司生产的AT89S51单片机。AT89S51是一种低电压,高性能CMOS8位微处理器。具有4K字节Flash闪速存储器,128字节内部RAM,32个I/O线,看门狗(WDT),两个数据指针,两个16位定时器/计数器,一个5向量两级中断结构和一个全双工串行通信口。作为单片机市场的主流产品,AT89S51单片机具有1000次的檫写周期,支持在线编程(ISP),性价比非常高,而且与标准的8051指令系统和引脚相兼容,是本设计首选的一款单片机。(2)单片机资源分配AT89S51单片机具有丰富的I/O口资源,本设计是这样分配I/O口资源的:P0口与液晶显示器的数据线相连,主要负责单片机与1602之间并行传输数据;P2口则用作控制端口,用于控制液晶显示器和蜂鸣器;本设计涉及4个按键,程序运行时需要不停地扫描按键,这里用P1口的4个端口的电平变换来实现;由于传感器SHT10和EEPROM是串行器件,而AT89S51不具备IIC总线接口,模拟IIC总线的任务交由P1.5口和P1.6口来完成;P3口在本设计中未涉及,可以用作系统功能扩展的备用I/O端口。2.2 数据采集与传输模块(1)选用SHT10的原因本设计共涉及两类数据温度和湿度,因此需要两个传感器芯片,一个负责温度采集,另一个负责湿度采集。若采用独立式传感器芯片,会给程序设计带来不便,也会给单片机增加负担。因此,本设计选用一款集温度、湿度测量与一体的复合式传感器SHT10。数字温湿度传感器SHT10是一款含有已校准数字信号输出的复合式传感器。芯片内部主要由相对湿度传感器,温度传感器,校准存储器,14位A/D转换器,信号放大器和I2C总线接口构成。测湿精度4.5%RH,测温精度0.5。SHT10具有温度和相对湿度测量,露点值计算输出,全部较准、数字输出,免外围电路,低功耗等优点。是本设计理想的温湿度测量与传输芯片。(2)SHT10主要引脚介绍本设计用到的SHT10主要引脚有两个:SCK串行时钟输入引脚,用于微处理器与SHT10之间的通讯同步;DATA串行数据引脚,用于数据的读取。DATA在SCK时钟下降沿之后改变状态,并仅在 SCK 时钟上升沿有效。数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。(3)SHT10与单片机的接口电路设计由于SHT10是一个串行器件,而AT89S51不具备IIC总线接口,故需要用单片机通用I/O口线来虚拟IIC总线,本设计利用P1.5来模拟时钟线,P1.6口线来模拟数据线。为避免信号冲突,单片机应驱动DATA在低电平,需要加一个外部上拉电阻将信号提拉至高电平,本设计采用两个10K的电阻分别作为时钟线和数据线的上拉电阻;另外,为了达到去耦滤波的目的,应在VCC和GND端接入一个0.1uF的电容;SHT10有三个地址位,由于目前只支持“000”。4个NC引脚悬空。SHT10与单片机的接口电路如图所示:图2-2 SHT10与单片机接口电路2.3 液晶显示模块(1)选用1602字符型LCD的原因目前,市场上比较常见的显示器有两种:LED数码管和LCD液晶显示器。相比之下,LCD显示质量高,功耗低。因此,本设计采用液晶显示器。考虑到该款数字式温湿度计涉及温度和湿度两类数据,故选用双行显示的1602字符型LCD。1602字符型LCD是一种专门用于显示字母、数字、符号等点阵式液晶显示模块,显示容量为162个字符;模块的最佳工作电压为5.0V,工作电流为2.0mA;字符尺寸为2.954.35(WH)mm。1602LCD分为带背景光和不带背景光两种,在应用中二者并无差别,为了便于在光线较弱的环境中读数,本设计采用带背景光的。(2)1602主要引脚介绍本设计用到的1602的主要引脚有5个:VL引脚液晶显示器对比度调整端;RS引脚寄存器选择;R/W引脚读写信号线;E引脚使能端;D0D78位双向数据线;LED+,LED-引脚背景光正、负极。(3)1602与单片机的接口电路设计本设计中,1602用到的单片机I/O端口最多,共12个。其中,1602的数据线端口与单片机P1口相连,主要用于单片机向1602写指令和数据;P2.0口接RS引脚,用于寄存器选择,高电平是选择数据寄存器,低电平时选择指令寄存器;P2.1口接RW引脚,控制读写,高电平时进行读操作,低电平时进行写操作;P2.2口接使能端(E引脚),当P2.2口由高电平跳变为低电平时,1602执行命令;P2.3口则用来触发三极管,当P2.3口为高电平时,三极管导通,1602内部背景光电路形成通路,背景光亮;而1602的VL引脚接电位器,用来调节液晶显示器的对比度。1602与单片机的接口电路如图所示:图2-3 LCD1602与单片机的接口电路2.4 报警模块报警装置由单片机的P2.4口进行控制。由于单片机的输出电流较小(mA级),用I/O口直接驱动蜂鸣器难以实现。因此,本设计增加1个5V电源,采用触发三极管的方式实现蜂鸣器报警。当P2.4口为低电平时,三极管截止,蜂鸣器不工作;P2.4口为高电平时,三极管导通,此时有强电流经过蜂鸣器,使之工作。蜂鸣器电路如图所示:图2-5 蜂鸣器电路2.5 限值存放模块(1)选用CAT24WC01的原因目前,市场上常见的EEPROM都是116K位的。由于本设计需要保存的限值只有4个,从降低成本的角度出发,本设计选用CATALYST公司生产的1K位EEPROMCAT24WC01。CAT24WC01是一个串行CMOS器件,内部含有128个8位字节。该器件通过IIC总线接口进行操作,有一个专门的写保护功能,具有一百万次的编程/擦写周期。(2)CAT24WC01主要引脚介绍本设计用到的EEPROM主要引脚有4个:SCL串行时钟;SDA串行数据/地址;WP写保护,高电平有效;A0、A1、A2器件地址输入端,专门用于多个器件级联时器件地址的设置。(3)CAT24WC01与单片机的接口电路设计由于CAT24WC01和SHT10一样也是一个串行器件,因此,也要将SCL、SDA接到AT89S51单片机模拟的IIC总线上。由于本设计中IIC总线上只有一个EEPROM,没有级联使用的情况,故A2、A1和A0都接地(24WC01不能悬空),这样,CAT24WC01的8位从器件地址就成了“1010 000 1/0”(高4位固定为1010,中间3位A2、A1、A0为器件地址位000,最低位为读写控制位1或0)。WP作为写保护引脚,由P1.4口控制。当P1.4口为高电平时,该器件中的所有内容都处于写保护状态(只能读);只有当P1.4口为低电平时,单片机才能对该器件进行正常的读/写操作。因此,在后面的软件程序设计过程中,当需要往EEPROM中写入限值时,必须保证P1.4口为低电平。CAT24WC01与单片机的接口电路如图所示:图2-6 CAT24WC01与单片机的接口电路2.6 按键电路设计由于该款数字式温湿度计能应用于多种场合,而每种场合对温湿度的要求是不同的,因此,随意设定限值是十分必要的。为此,本设计增加了4个按键,其中K1键为设定键,K2键为光标右移键,K3键为循环加1键,K4为确定键,分别与单片机的P1.0、P1.1、P1.2、P1.3口相连。按键未被按下时,4个I/O口均为高电平;一旦按键按下,对应的I/O口被拉为低电平。以此来实现软件程序设计中的按键扫描。按键电路如图所示:图2-4 按键电路第3章 软件程序设计本章主要介绍数字式温湿度计的软件程序设计,着重讲述了主程序、温湿度采集与显示子程序、限值设定并保存子程序以及IIC总线读写程序的设计思路、程序流程图。另外,还介绍了EEPROM指定地址读写子程序、写指令(数据)到LCD子程序、SHT10和EEPROM相关时序等。3.1 主程序首先,单片机通过IIC总线读写程序将温湿度数据从SHT10中读取出来,然后,根据温湿度补偿(主要指非线性补偿)公式计算出当前温湿度值并送到1602显示;接着,单片机将温湿度上下限从EEPROM中读取出来,与当前温湿度值进行比较,若当前温湿度值超出限值,单片机令P2.4口为高电平,蜂鸣器开始报警。在整个程序的执行的过程中,单片机不断扫描按键。若设定键K1被按下,则结束正常显示的状态,从而进入设定状态。设定好限值后,单片机会将新的限值重新写入EPROM;然后,单片机重新回到正常显示状态,并刷新当前温湿度值。主程序流程图:图3-1 主程序流程图3.2 温湿度采集子程序(1)设计思路单片机首先向SHT10发出启动传输命令,然后通过写总线子程序将温度测量指令(地址位000+命令位00011)或者湿度测量指令(地址位000+命令位00101)写入SHT10。传感器正确接收到温(湿)度测量命令后,就会进行数据采集,单片机要等到测量完成(大概50ms)。随后SHT10向单片机传送两字节测量数据(MSB和LSB)与1字节CRC校验码,单片机则通过读总线子程序将温湿度数据读取出来。该子程序流程图: 图3-2 获取温湿度子程序流程图(2)SHT10时序问题从SHT10中读取数据以及往SHT10中写指令都涉及到了时序问题,下面简要介绍一下SHT10相关时序:启动传输时序:当SCK为高时DATA翻转为低电平,紧接着SCK变为低电平,然后在SCK为高电平时DATA翻转为高电平。时序图: 图3-3 SHT10启动传输时序测量时序:当单片机发出了启动传输命令,且SHT10正确接收到温(湿)度测量命令后,单片机就要等到测量完成(大概50ms)。为表明测量完成,SHT10会使数据线为低,此时单片机必须重新启动SCK。然后SHT10向单片机传送两字节测量数据(MSB、LSB)与1字节CRC校验码。在传输过程中控制器必须通过使DATA为低来确认每一字节,所有的测量值从右算MSB列于第一位。通讯在确认CRC数据位后停止。如果没有用CRC-8校验码,则单片机需要在测量数据LSB后,保持ACK为高来停止通讯。时序图:图3-4 SHT10测量时序连接复位时序:当DATA线处于高电平时,触发SCK 9次以上(含9次),并随后发一个前述的传输开始命令。时序图: 图3-5 SHT10连接复位时序3.3 温湿度显示子程序(1)设计思路由于温湿度传感器的非线性因素的影响,单片机直接从SHT10读取的温湿度数据并不准确,必须经过相对湿度和温度的非线性补偿公式、相对湿度对于温度的依赖性补偿公式进行修正。然后,单片机通过往1602写数据子程序将修正后的数据写入1602显示出来。送显之前,单片机会通过1602写指令子程序往1602中写入显示字符地址,来设定显示位置。特别值得注意的是,液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则指令失效。因此,单片机往1602写指令或数据之前,都要确认液晶模块空闲。该子程序流程图: 图3-6 显示温湿度子程序流程图(2)温湿度修正公式 温度非线性补偿公式: 相对湿度非线性补偿公式: 相对湿度对于温度的依赖性补偿公式:(3)1602内部显示地址图3-7 1602内部显示地址单片机往1602写入显示地址时,要求最高位D7必须为高电平,本设计采用的处理方法是:将显示字符地址与0x80相或,然后由单片机直接将结果写入1602。(4)写指令(数据)到LCD子程序设计流程图:图3-8 写指令(数据)到LCD子程序流程图3.4 限值设定并保存子程序(1)设计思路系统进入设定状态之后,单片机通过IIC总线读写程序往EEPROM中写入写指令(固定1010+器件地址000+读/写0)、指定存储单元地址(addr x)和读指令(固定1010+器件地址000+读/写1),将限值从EEPROM指定地址中读取出来,送到1602显示。然后,单片机通过LCD写指令子程序往1602中写入光标复位指令(0x20),此时,光标位于第一行第一个字符位置并闪烁。接着,单片机进行按键扫描,判断光标键K2和循环加1键K3是否被按下,进行限值调整;其中,光标右移是通过单片机往LCD写入控制光标右移指令(0x14)来实现;循环加1则通过把限值放入数组dis3 来实现。设定好限值后,进而判断确定键K4是否被按下,若按下,单片机会通过写总线子程序将新的限值写入EEPROM;否则,单片机重新判断光标键和循环加1键是否被按下,继续进行限值调整。该子程序流程图: 图3-9 限值设定并保存子程序流程图(2)EEPROM时序从EEPROM中读取数据以及往EEPROM中写数据(包括指令)都会涉及到时序问题。下面简要介绍一下EEPROM相关时序:起始/停止时序:时钟线SCL为高电平时,数据线SDA从高到低的跳变作为IIC总线的起始信号;时钟线SCL为高电平时,数据线SDA从低到高的跳变作为IIC总线的停止信号。时序图: 图3-10 EEPROM起始/停止时序(3)EEPROM指定地址读子程序指定地址读模式下允许主器件对CAT24WC01任意字节进行读操作,主器件首先通过发送起始信号、从器件地址信息(R/W位置1)和它想读取的数据所在的字节地址执行一个伪写操作。在CAT24WC01应答之后,主器件重新发送起始信号和从器件地址,此时R/W位置为1,CAT24WC01响应并发送应答信号,然后输出所要求的一个8位字节数据,主器件不发送应答信号但产生一个停止信号。流程图:图3-11 EEPROM指定地址读子程序流程图(4)EEPROM指定地址写子程序指定地址写模式下,主器件发送起始信号和从器件地址信息(R/W位置0)给从器件,从器件产生应答信号后,主器件发送CAT24WC01的字节地址,主器件在收到从器件的另一个应答信号后,再发送数据到被寻址的存储单元。CAT24WC01再次应答,并在主器件产生停止信号后开始内部数据的擦写,在内部擦写过程中,CAT24WC01不再应答主器件的任何请求。流程图:图3-12 EEPROM指定地址写子程序流程图3.5 IIC总线读写程序(1)应答时序本设计用到了两个串行传输器件,故用单片机通用I/O模拟了IIC总线,这就涉及到了总线读写。在设计总线读写程序时,涉及到了应答时序问题,下面简要介绍一下:应答时序:如果单片机选择写操作,则从器件每接收一个8位数据之后响应一个应答信号(即从器件在第9个时钟周期时将DATA线拉低)。如果单片机选择读操作,在从器件发送一个8位数据后释放DATA线并监视一个应答信号,一旦接收到应答信号,从器件继续发送数据,如单片机没有发送应答信号,从器件停止传送数据且等待一个停止信号。时序图:图3-13 EEPROM应答时序(2)读总线子程序循环变量i的初值为0x80(1000 0000),每循环一次,i=i/2(即0x80中的1右移一位);当DATA为1时,通过i和read_data的或运算将相应位置1,否则该位为0。读取8位数据之后,若单片机向从器件发送应答信号,从器件将在总线空闲时继续发送数据;否则从器件结束发送数据。流程图:图3-14 读总线子程序流程图(3)写总线子程序和读程序一样,循环变量i的初值为0x80(1000 0000),每循环一次,i=i/2(即0x80中的1右移1位);待发送数据与i进行与运算,若结果为0则发送0,结果非0发送1。发送完8位数据后,单片机读取应答信号赋值给ack_bit,并返回该值。 流程图:图3-15 写总线子程序流程图结 论经过努力,本次毕业设计成功实现了数字式温湿度计对环境中温湿度的测量与显示、超限报警等功能。本设计硬件电路比较简单,但是,由于扩展了EEPROM,系统增加了超限报警功能,使得软件程序设计较为复杂。在开发这款温湿度计的过程中遇到了许多问题,比如:如何扩展EEPEOM?单片机如何从EEPROM指定地址读写数据?数值转换等。但是,经过认真思考,这些问题最终得以解决。论文的创新点:数字式温湿度计已经发展了许多年,技术颇为成熟,市场上的这类产品也多种多样。本款温湿度计与市场上的同类产品相比,增加了超限报警功能,更为实用。通过这次毕业设计,使我对四年以来所学的专业知识有了更深层次上的认识。不仅提高了动手能力,而且使我对产品开发的过程有了更深刻的了解。致 谢四年的大学本科阶段很快就要过去了,在我的毕业论文即将完成之际,谨向所有在四年的学习过程中给予我指导和帮助的老师和同学表示深深的谢意。特别感谢我的导师张延宇老师,他严谨的治学精神和生活态度也深深地影响着我,使我受益无穷!参考文献1于永.戴佳.常江.51单片机C语言常用模块与综合系统设计.电子工业出版社.2孙育才. 单片微型计算机及其应用.东南大学出版社.3赵亮.侯国锐.单片机C语言编程与实践.人民邮电出版社.4 AT89S51 datasheet . ATMEL corporation. .5 SHT10 datasheet. SENSIRION corporation. .6EEPROM datasheet. CATALYST corporation. .71602字符型LCD. 长沙太阳人电子有限公司..附录1电路图:附录2程序代码:/*描述:LCD1602显示,SHT10采集温湿度,温湿度超过上下限(存放在EEPROM24c01中),蜂鸣器报警。引用端口:p0,p2 控制1602液晶屏,p1.5模拟时钟线,p1.6模拟数据线,P2.4蜂鸣器*/#include#include #include #include #include #define uchar unsigned char#define uint unsigned inttypedef unsigned char BYTE;typedef unsigned int WORD;typedef bit BOOL ; int TH,TL; float HH,HL;/温湿度上下限(全局变量)/*/sbit buzzer = P24; /蜂鸣器/*/+/ 1602相关控制信号及变量 /+sbit rs = P20; sbit rw = P21;sbit ep = P22;BYTE dis116;BYTE dis216;BYTE dis316;/+/ EEPROM24c01相关控制信号及变量 /+sbit DATA = P16; sbit SCK = P15; /P1.5模拟时钟线;P1.6模拟数据线sbit WP = P14;/+/ 按键相关控制信号及变量 /+sbit K1 = P10; /设定键 sbit K

温馨提示

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

评论

0/150

提交评论