首页 基于单片机的数字温湿度计设计毕业设计(论文)

基于单片机的数字温湿度计设计毕业设计(论文)

举报
开通vip

基于单片机的数字温湿度计设计毕业设计(论文)基于单片机的数字温湿度计设计毕业设计(论文) 摘 要 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。 8051单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为温湿度控制系统的实力也很多。使用805...

基于单片机的数字温湿度计设计毕业设计(论文)
基于单片机的数字温湿度计 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 毕业设计( 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 ) 摘 要 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。 8051单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为温湿度控制系统的实力也很多。使用8051单片机能够实现温湿度全程的自动控制,而且8051单片机易于学习掌握,性价比高。 使用8051型单片机设计温湿度控制系统,可以即时精确的反应温室内的温度以及适度的变化。完成诸如升温到特定的温度、降温到特定的温度。在温度上下限范围内保持恒温等多种控制方式,在湿度控制方面也是如此。将此系统应用到温室当中无疑为植被生长提供了更加适宜的环境。对于大棚种植和花圃、花卉栽培,必须在某些特定环境安装温湿度装置对其进行监控。本系统可以及时、精确的反映室内的温度以及湿度的变化,能够满足温湿度的控制要求。 关键词: 8051 DHT11 复合传感器 性价比极高 大连交通大学2013届测控技术与仪器毕业设计(论文) ABSTRACT DHT11 digital temperature and humidity sensors is a section contains the already calibration digital signal output humidity composite sensor. It used special digital module collection technology and humidity sensor technology to ensure product has high reliability and excellent long-term stability. Sensors including a resistive feeling wet components and a NTC (temperature measuring element, and with a high-performance 8-bit microcontroller connections. So the product has excellent quality, super fast response, strong anti-jamming capability, and cost-effective extremely high yield. 8051 is commonly used in the control chip, smart instrumentation, industrial inspection control, mechatronics achieved impressive results, also a lot of its strength as the temperature and humidity control system. Able to achieve automatic control of temperature and humidity throughout 8051, the 8051 is easy to learn and master the high cost-effective. Use a 8051-type microcontroller design temperature and humidity control system for, instant accurate reaction greenhouse temperature and moderate changes. Complete, such as the temperature was raised to a specific temperature, cooled to a 1 大连交通大学2013届测控技术与仪器毕业设计(论文) specific temperature. Maintain constant temperature and other control in the upper and lower temperature range, humidity control is also true. The application of this system to the greenhouse which undoubtedly provides a more suitable environment for vegetation growth. For greenhouse cultivation and flower garden, flower cultivation, you must install certain environmental temperature and humidity device monitor. This system can be timely, accurate reflection of the indoor temperature and humidity changes, able to meet the requirements of the temperature and humidity control. Keywords: 8051 DHT11 Composite sensor Highly cost-effective 2 大连交通大学2013届测控技术与仪器毕业设计(论文) 目 录 前 言 ..................................... 错误~未定义书签。 第一章 系统总体设计 .......................... 错误~未定义书签。 1.1 系统实现的主要功能 .................... 错误~未定义书签。 1.2 系统的工作原理简介 .................... 错误~未定义书签。 1.3 总体构成 .............................. 错误~未定义书签。 1.3.1 总体设计框图 ...................... 错误~未定义书签。 1.3.2 总体设计及工作进程 ................ 错误~未定义书签。 第二章 系统的硬件设计 ........................ 错误~未定义书签。 2.1 主控模块设计 ........................... 错误~未定义书签。 2.1.1 AT89S52基本特性 .................. 错误~未定义书签。 2.1.2 AT89S52引脚说明 .................. 错误~未定义书签。 2.1.3 复位电路设计 ...................... 错误~未定义书签。 2.1.4 外部振晶时钟电路设计 .............. 错误~未定义书签。 2.2 DHT11传感器模块设计 .................. 错误~未定义书签。 2.2.1 DHT11传感器简介 .................. 错误~未定义书签。 2.2.2 DHT11传感器模块电路设计 ........... 错误~未定义书签。 2.3 1602液晶显示模块设计 .................. 错误~未定义书签。 3 大连交通大学2013届测控技术与仪器毕业设计(论文) 2.3.1 1602液晶显示屏简介 ............... 错误~未定义书签。 2.3.2 1602液晶显示模块 .................. 错误~未定义书签。 2.4 阈值设置模块 ........................... 错误~未定义书签。 2.5 报警模块 ............................... 错误~未定义书签。 第三章 系统的软件设计 ........................ 错误~未定义书签。 3.1 总体程序框架流程图 ..................... 错误~未定义书签。 3.2 1602液晶显示模块程序设计 .............. 错误~未定义书签。 3.3 传感器模块程序设计 ..................... 错误~未定义书签。 第四章 调试过程和注意的问题 .................. 错误~未定义书签。 4.1程序下载软件说明 ...................... 错误~未定义书签。 4.2设计中遇到的问题及解决 ................. 错误~未定义书签。 4.2.1遇到的硬件问题及解决 .............. 错误~未定义书签。 4.2.2遇到的软件问题及解决 .............. 错误~未定义书签。 结 论 ..................................... 错误~未定义书签。 谢 辞 ..................................... 错误~未定义书签。 参考文献 ..................................... 错误~未定义书签。 附 录 ..................................... 错误~未定义书签。 前 言 温度与湿度与人们的生活息息相关。在工农业生产、气象、环保、国防、科研等部门,经常需要对环境温度与湿度进行测量及控制。准确 4 大连交通大学2013届测控技术与仪器毕业设计(论文) 测量温湿度在生物制药、食品加工、造纸等行业更是至关重要的。传统的温度计是用水银来显示的,虽然结构简单、价格便宜,但是它的精确度不高,不易读数。传统湿度计采用干湿球显示法,不仅复杂而且测量精度不高。而采用单片机对温湿度进行测量控制,不仅具有控制方便,简单和灵活等优点,而且可以大幅度提高温度控制的技术指标。用LED数码管来显示温湿度的数值,看起来更加直观。 测量温湿度的关键是温湿度传感器。过去测量温度与湿度是分开的。随着技术的进步和人们生活的需要出现了温湿度传感器。温度传感器的发展经历了3个阶段:传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、从集成化向智能化、网络化的方向发展。温度传感器也是经历了这样一个阶段逐渐走向数字智能化。 现今国内外用的最多的温湿度传感器是SHTXX 系列。不过很多客户都反应SHTXX 不方便手工焊接,很容易在焊接的时候,由于温度过高造成传感器直接损害,因此利用SHTXX 传感器重新在国内封装得到了DHTXX系列。SHTXX系列单芯片传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专利的工业COMS过程微加工技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电容式聚合体测湿元件和一个能隙式测温元件,并与一个14位的A/D器以及串行接口电路在同一芯片上实现无缝链接,从而具有超快响应,抗干扰能力强,性价比高等优点。 5 大连交通大学2013届测控技术与仪器毕业设计(论文) 采用DHT11数字温湿度传感器与单片机AT89S52相连外围电路上比较简单,所以,本次设计以DHT11数字温湿度传感器为例,介绍基于单片机的数字温湿度计的设计。 第1章 总体设计概述 1.1 系统实现的主要功能 本系统所要实现的功能是: 1.温湿度实时检测及显示。通过LCD1602实时地显示传感器DHT11检测到的温湿度值,并且固定时间(5s)检测更新显示一次。 2.报警阈值的手动设置。通过三个按键实现温湿度阈值的设置,使得系统更加人性化、智能化,具有更高的实用价值。 3.当温湿度超出阈值时能自动报警。通过蜂鸣器发出声音实现报警,以提醒用户做出相应的改进措施。 1.2 系统的工作原理简介 总体来说,本次设计主要涉及了温湿度的测量、显示以及实现简单控制。硬件方面有五个模块,即AT89S52单片机主控模块、传感器模块、LCD1602液晶显示模块、报警模块以及阈值设置模块。其中主控模块已经给出,我们只需适当增加驱动电路即可。 6 大连交通大学2013届测控技术与仪器毕业设计(论文) 传感器模块使用的是DHT11数字温湿度传感器。通过DHT11检测出当前环境下的温湿度,将所测数据交给AT单片机进行分析和处理,并分别存入不同数组以便显示时候用。其中,为了显示稳定,本系统每间隔5s采集一次数据送入单片机。 1602液晶显示模块就是实现温湿度检测值和阈值的显示。其分两行显示,上边一行显示湿度,下边显示温度值,两行的末尾两位是阈值显示位,正常工作的时候可以通过按键将其隐藏,需要调节阈值时,再显示出来方便调整,相对构建了比较友好的人机交互。 蜂鸣器报警模块实现了检测值超过阈值的时候鸣响报警。本系统采用的是有源蜂鸣器,因此无论温度还是湿度超出范围蜂鸣器都是以相同频率的声音进行报警提示。提醒工作人员此时温度湿度数据出现异常、需及时调整,及时启用升温器、加湿器、降温风扇以及喷雾器来有效的调整实验室内温湿度。 阈值设置模块通过三个按键来实现阈值设置功能的。使得在不同环境下设置阈值提供了极大的方便,不需要每次都在程序里改动然后再烧录,省去了复杂的过程。 1.3 总体设计简介 1.3.1总体设计框图 按照系统功能的具体要求,在保证实现其功能的然础上,尽可能降低系统成本。总体设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 围绕上述思想,初步确定系统的方案如图1-1所示。 7 大连交通大学2013届测控技术与仪器毕业设计(论文) DTH11传感器P2.0模块P2.4~P2.61602液晶显示模块 AT89S51 单片机 报警模块P2.7阈值设置模块P2.1~P2.3 图1—1系统总体设计 从图中可以看出,系统有微处理器模块、DHT11传感器模块、阈值设置模块、1602字符液晶显示模块、报警模块组成。在方案设计中,外围模块采用并行控制,以简化系统,提高控制精度。该设计以AT89S52单片机为控制核心,实现温湿度采集及显示的基本功能。 1.3.2 总体设计工作进程 本次设计相对而言有两个部分弄明白了就能够设计好了。一个是液晶显示部分,一个是DHT11传感器部分。传感器比较陌生,以前没有接触太多,液晶相对而言比较容易点。因此这次先攻克了液晶显示部分,然后再拿下传感器部分。整个流程如下图所示: 加装阈值、进行液晶的传感器实物分析题目用Proteus复位设置和完成实物调试调试并查找资料仿真报警模块 图1-2 整体设计流程图 8 大连交通大学2013届测控技术与仪器毕业设计(论文) 第2章 系统硬件设计 2.1 主控模块设计 本次课程设计使用的主控模块是一个AT89S52为核心的最小系统。使用的时候将P1口作为与液晶的数据传输口,P2口作为与传感器DHT11通信的数据口,P2.1,P2.3作为阈值模块中三个按键的接口,P2.4,P2.6作为分别于液晶的RS、R/W和E端相连接,以控制液晶显示,P2.7接蜂鸣器控制端,以控制报警模块工作。 2.1.1 基本特性 AT89S52单片机是一款低功耗、低电压、高性能CMOS8位单片机,片内含8KB(可经受1000次擦写周期)的FLASH可编程可反复擦写的只读程序存储器(EPROM),器件采用CMOS工艺和ATMEL公司的高密度, 9 大连交通大学2013届测控技术与仪器毕业设计(论文) 非易失性存储器(NURAM)技术制造,其输出引脚和指令系统都与MCS-51兼容,片内的FLASH存储器允许在系统内可改编程序或用常规的非易失性存储编程器来编程。因此,AT89C52是一种功能强,灵活性高且价格 [1]合理的单片机,可方便的应用在各个控制领域。 1.8KB可改编程序FLASH存储器; 2.全表态工作 :0,24HZ; 3.256X8字节内部RAM; 4.32个外部双向输入,输出(I、O)口; 2.1.2 引脚说明 VCC:电源电压。 GND:地。 P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据线复用口。作为输出口时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端。 在访问外部数据储存器或程序储存器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。FLASH编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。作为输入 10 大连交通大学2013届测控技术与仪器毕业设计(论文) 口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。FLASH编程和程序校验期间,P1接收低8位地址。 P2口:P2是一个带内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序储存器或16位地址的外部数据储存器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据储存器(例如执行MOVX@RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。FLASH编程或校验时,P2亦接收高位地址和其他控制信号。 P3口:P3是一个带内部上拉电阻的8位双向I/O口,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。 P3除了作为一般的I/O口线外,更重要的用途是它的第二功能,具体功能说明如表2-1。 P3口还接收一些用于FLASH闪速存储器编程和程序校的控制信号。 RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。 11 大连交通大学2013届测控技术与仪器毕业设计(论文) ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。 端口引脚 第二功能 P3.0 RXD(穿行输出口) P3.1 TXD(穿行输入口) P3.2 INT0(外部中断0) P3.3 INT1(外部中断1) P3.4 T0(定时/计数器0) P3.5 T1(定时/计数器0) P3.6 WR(外部数据写选通) P3.7 RD(外部数据读选通) 表3-1 P3口的第二功能表 即使不访问外部存储器,ALE仍以是时钟振荡频率的1/6输出固定的正脉冲信号,因此他可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。 PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号, 12 大连交通大学2013届测控技术与仪器毕业设计(论文) 当AT80C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。 EA/VPP:外部访问允许。欲使CPU仅访问外部程序储存器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(Vcc端),CPU则执行内部程序储存器中的指令。 FLASH储存器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12v编程电压。 XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。 2.1.3 复位电路设计 MCS-51的复位输入引脚RST为MCS-51提供了初始化的手段,可以使程序从指定处开始执行,在MCS-51的时钟电路工作后,只要RST引脚上出现超过两个机器周期以上的高电平时,即可产生复位的操作,只要RST保持高电平,则MCS-51循环复位,只有单RET由高电平变成低电平以后,MCS-51才从0000H地址开始执行程序,本系统采用按键复位方式的复位电路。 13 大连交通大学2013届测控技术与仪器毕业设计(论文) 图3-1 复位电路 2.1.4 外部晶振时钟电路设计 AT89S52的时钟可以由两种方式产生,一种是内部方式,利用芯片内部的振荡电路;另外一种为外部方式,本论文根据实际需要和简便,采用内部振荡方式,MCS-51内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端,这个放大器与作为反馈元件的片外晶体或陶瓷谐振器一起构成了一个自激振荡器。 AT89S52虽然有内部振荡电路,但要形成时钟,必须外接元件,所以实际构成的振荡时钟电路,外接晶振以及电容C1和C2构成了并联谐振电路接在放大器的反馈回路中,对接电容的值虽然没有严格的要求,但电容的大小会影响振荡频率的高低,振荡器的稳定性,起振的快速性 14 大连交通大学2013届测控技术与仪器毕业设计(论文) 和温度的稳定性。晶振的频率可在1.2MHZ,12MHZ之间任选,电容C1和C2的典型值在20pf,100pf之间选择,由于本系统用到定时器,为了方便计算,采用了12MHZ的晶振,采用电容选择30pf。 图3-2 晶振电路的设计 2.2 DHT11传感器模块接口设计 2.2.1 DHT11传感器简介 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应 15 大连交通大学2013届测控技术与仪器毕业设计(论文) 用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。 (1)引脚介绍: Pin1:(VDD),电源引脚,供电电压为3,5.5V。 Pin2:(DATA),串行数据,单总线。 Pin3:(NC),空脚,请悬浮。 Pin4:(VDD),接地端,电源负极。 (2)接口说明 : 建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。 图2-2 DHT11典型应用电路 (3)数据帧的描述: DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下: 一次完整的数据传输为40bit,高位先出。 数据格式:8bit湿度整数数据+8bit湿度小数数据 16 大连交通大学2013届测控技术与仪器毕业设计(论文) +8bit温度整数数据+8bit温度小数数据 数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。 (4)电气特性:VDD=5V,T = 25?,除非特殊标注 表2-1 DHT11的电气特性 参数 条件 Min typ max 单位 供电 DC 3 5 5.5 V 测量 0.5 2.5 mA 供电电流 平均 0.2 1 mA 待机 100 150 uA 采样周期 秒 1 次 注:采样周期间隔不得低于1秒钟。 (5)时序描述: 用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。 通讯过程如下图2-3所示: 17 大连交通大学2013届测控技术与仪器毕业设计(论文) 图2-3通讯过程图 总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。 图2-4通讯初始化要求图 总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后, 18 大连交通大学2013届测控技术与仪器毕业设计(论文) 再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。 数字0信号表示方法如下图2-5所示: 图2-5数字0信号电平变化图 数字1信号表示方法如下图2-6所示 图2-6数字1数据线电平变化图 19 大连交通大学2013届测控技术与仪器毕业设计(论文) 2.2.2 DHT11传感器模块电路设计 DHT11传感器连接单片机相对比较简单。单片机的P2.0口用来发收串行数据,即数据口。连接传感器的Pin2(单总线,串行数据)。由于测量范围电路小于20米,加一个5K的上拉电阻,因此在传感器的Pin2口与电源之间连接一个5K电阻。而传感器的电源端口Pin1和Pin4分别接单片机的VCC和GND端。传感器的第三脚悬浮放置。DHT11传感器原件的电路原理图如下2-7所示: 图2-7 DHT11电路原理图 2.3 1602液晶显示模块设计 2.3.1 1602液晶显示屏简介 1602液晶是一种工业字符型液晶,能够同时显示16x02 即32个字符。(16列2行)。在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、 20 大连交通大学2013届测控技术与仪器毕业设计(论文) LED数码管、液晶显示器。发光管和LED数码管比较常用,软硬件都比较简单。 (一)引脚说明 VSS:电源地。 VCC:电源正极,4.5,5.5V,通常使用5V电压。 VO:LCD对比度调节端,电压调节范围为0,5V。接正电源时对比度最弱,接地电源时对比度最高,但对比度过高时会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地。 RS:MCU写入数据或者指令选择端。MCU要写入指令时,使RS为低电平;MCU要写入数据时,使RS为高电平。 R/W:读写控制端。R/W为高电平时,读取数据;R/W为低电平时,写入数据。 E:LCD模块使能信号控制端。写数据时,需要下降沿触发模块。 DB0,DB7:8位数据总线,三态双向。如果MCU的I/O口资源紧张的话,该模块也可以只使用4位数据线D4,D7接口传送数据。本充电器就是采用4位数据传送方式。 BLA: LED背光正极。需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右。 BLK: LED背光地端。 (二)显示地址 21 大连交通大学2013届测控技术与仪器毕业设计(论文) 1602字符液晶显示可分为上下两部分各16位进行显示,处于不同行时的字符显示地址如下: 显示字1 2 3 4 5 6 7 符 第一行00H 01H 02H 03H 04H 05H 06H 地址 第二行40H 41H 42H 43H 44H 45H 46H 地址 显示字8 9 10 11 12 ??? 符 第一行07H 08H 09H 0AH 0BH ??? 地址 第二行47H 48H 49H 4AH 4BH ??? 地址 (三)指令集 1602通过D0,D7的8位数据端传输数据和指令。 显示模式设置: (初始化) 0011 1000 [0x38] 设置16×2显示,5×7点阵,8位数据接口; 显示开关及光标设置:(初始化) 0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效) 22 大连交通大学2013届测控技术与仪器毕业设计(论文) 0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1), N=0(读或写一个字符后地址指针减1 &光标减1), S=1 且 N=1 (当写一个字符后,整屏显示左移) s=0 当写一个字符后,整屏显示不移动 数据指针设置: 数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H) 其他设置: 01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。 通常推荐的初始化过程: 延时15ms 写指令38H 延时5ms 写指令38H 延时5ms 写指令38H 延时5ms (以上都不检测忙信号) (以下都要检测忙信号) 写指令38H 写指令08H 关闭显示 23 大连交通大学2013届测控技术与仪器毕业设计(论文) 写指令01H 显示清屏 写指令06H 光标移动设置 写指令0cH 显示开及光标设置 完毕 Proteus仿真 使用Proteus仿真1602--即LM016L--依照数据手册说明可能遇到困难,可以尝试采用以下方案解决: 1、数据手册中可能介绍1602内部D0,D7已有上拉,可以使用P0口直接驱动。在Proteus里LM016L内部可能没有,应该人为 加上拉电阻。建议不要使用排阻,使用普通电阻一个一个拉应该可以解决问题; 2、可能碰到不能检测忙信号的问题,尝试使用延时把忙信号拖过去。 2.3.2 1602液晶显示模块 液晶显示的原理是利用液晶的物理特性, 通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。 其中Vo脚,即第三引脚加了一个10K的滑动变阻器,该变阻器的目的是调节液晶的显示对比度,通过调节滑阻改变Vo的电压值,从而使液 24 大连交通大学2013届测控技术与仪器毕业设计(论文) 晶显示在最清晰的状态。 图2-9 1602显示模块原理图 2.4 阈值设置模块 图2—10 阈值设置模块原理图 从上图可以看到。从上到下依次设为K1、K2和K3三个按键,其连 25 大连交通大学2013届测控技术与仪器毕业设计(论文) 接单片机引脚分别是P2.1~P2.3三个引脚。 根据该模块使得阈值设置分为三个模块,分别是湿度设置模式、温度设置模式和关阈值显示模式。K1为模式选择键,按一次为湿度设置模式,按两次是温度设置模式,按三次是关阈值显示模式。K2和K3只有在湿度和温度设置模式下才有效,分别为阈值增加和阈值减小。 阈值设置模块是后来加进来的部分,设置非常人性化,一般人都可以操 作,而不用每次设置阈值都到程序里边去设置 2.5 报警模块 (一) 蜂鸣器的介绍 1. 蜂鸣器的作用 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 2. 蜂鸣器的分类 蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。 3. 蜂鸣器的电路图形符号 蜂鸣器在电路中用字母“H”或“HA”(旧 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 用“FM”、“LB”、“JD”等)表示。 (二) 蜂鸣器的结构原理 1(压电式蜂鸣器 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。 26 大连交通大学2013届测控技术与仪器毕业设计(论文) 多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5,15V直流工作电压),多谐振荡器起振,输出1.5,2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。 2(电磁式蜂鸣器 电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。 接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。 (三)有源蜂鸣器和无源蜂鸣器 现在市场上出售的一种小型蜂鸣器因其体积小(直径只有llmm)、重量轻、价格低、结构牢靠,而广泛地应用在各种需要发声的电器设备、电子制作和单片机等电路中;分为有源蜂鸣器和无源蜂鸣器。 从外观上看,两种蜂鸣器好像一样,但仔细看,两者的高度略有区别,有源蜂鸣器,高度为9mm,而无源蜂鸣器的高度为8mm。如将两种蜂鸣器的引脚郡朝上放置时,可以看出有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器。 迸一步判断有源蜂鸣器和无源蜂鸣器,还可以用万用表电阻档Rxl档测试:用黑表笔接蜂鸣器 "+"引脚,红表笔在另一引脚上来回碰触, 27 大连交通大学2013届测控技术与仪器毕业设计(论文) 如果触发出咔、咔声的且电阻只有8Ω(或16Ω)的是无源蜂鸣器;如果能发出持续声音的,且电阻在几百欧以上的,是有源蜂鸣器。 有源蜂鸣器直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声;而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声。 图2-11 蜂鸣器原理图 系统在设计时候采用的是有源蜂鸣器,只要给蜂鸣器一定的电流值,蜂鸣器就可以按照一定的频率发声,但是单片机引脚的驱动电流比较小,不足以驱动蜂鸣器工作,因此采用了一个NPN的三极管C9013来驱动。 28 大连交通大学2013届测控技术与仪器毕业设计(论文) 第3章 系统软件设计 3.1总体程序框架流程图 在对我们所要设计的课题有了整体的了解之后,需要先建立程序框架的流程图,对整个设 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 分模块,逐个模块实现其功能,最终把各个子模块合理的连接起来,构成总的程序。 29 大连交通大学2013届测控技术与仪器毕业设计(论文) 开始 1602显示数据 初始化 定时5s检测一次 (定时期间单片 机读预制按键) 延时 Y判断温度和湿度报警装置启动是否超出阈值(即蜂鸣器发 声) N温湿度检测并 传送数据回单片 机 复位 图 3-1 主程序流程图 3.2 1602液晶显示模块程序设计 液晶显示模块是一个慢显示器件,在执行每条指令之前要确认模块的忙标志为低电平,表示不忙,则此指令失效,要显示字符时要先输入显示字符地址,告诉模块在哪里现实了字符。1602液晶显示模块可与单片机接口直接连接,无需再加驱动。 软件流程图及调试结果如图3-2所示。 30 大连交通大学2013届测控技术与仪器毕业设计(论文) 开始 液晶1602初始化 延时 依次发送 指令和数据 控制液晶 显示字符 图3-2 1602液晶显示模块程序流程图及液晶调试结果显示 3.3 传感器模块程序设计 温湿度模块DH11数字温湿传感器加湿器温湿度传感器随着科技的不断发展,汽车、空调、除湿器、烘干机等种类繁多的电器都已进入人们的日常生活,而这些电器设备很多都离不开对温度、湿度等环境因素的要求。因此,温度、湿度传感器用途越来越广泛。新一代的数字传感 31 大连交通大学2013届测控技术与仪器毕业设计(论文) 器不再需要外置的A D转换模块,并具有标准接口,使用方便,得到了越来越多的应用。DHT11作为一种新型的单总线温湿度数字传感器,具有更多的优点,它使系统设计更加简单,控制方便,易于实现。 DHT11传感器模块的软件流程图及实物调试结果如图3-3和图3-4所示。 开始 N从机80us低电平P2.0输出是否结束低电平 Y N从机80us高电平是否结束延时18ms Y P2.0输出单片机 高电平进行数据接收 将数据按十进制延时40us数位存入数组 读P2.0引脚N结束并保持判断是否为高定平低电平 Y 图 3-3 DHT11传感器模块程序流程图 32 大连交通大学2013届测控技术与仪器毕业设计(论文) 图 3-4 DHT11传感器模块实物调试结果 第4章 系统分析与调试 4.1 程序下载软件说明 本设计是在Keil C环境下开发的,Keil C软件支持C语言的编程及调试,运用方便,当需要编程时这就是是做课程设计的首选。Keil C是我们比较熟悉的软件了,直接就可以使用,进行程序的编写,生成十六进制文件以备烧写用。 程序烧写使用的是Easy 51Pro中的并行数据烧写模式进行烧写。软件运行界面如图4—1所示。 33 大连交通大学2013届测控技术与仪器毕业设计(论文) 图4-1 程序烧写软件运行界面图 在完成对程序的调试及烧录之后,还需要对其进行演示,把开发板与电脑连上,设置好对应的接口,完成供电及下载。下载完毕,连接好各引脚连线,并开始供电后、稍带几秒等1602液晶屏能正常显示当前温湿度了之后。观察当前温湿度的变化。并且针对与自己设定的限值相比较。若当前温度没有超标,即没有超过限值。可以用手捂住DHT11传感器,令其温度的显示超标。测试能否达到报警,经过测试,完全可行。因而简单的实现了对温度的控制。湿度控制原理跟温度一样。 4.2 所遇问题及解决办法 4.2.1 硬件问题及解决方法 硬件和软件方面的问题相对来说硬件解决得是比较快的一类问题, 34 大连交通大学2013届测控技术与仪器毕业设计(论文) 因为这比较容易检查不来错误。 1.单片机EA端没接高电平。 液晶仿真完成以后,这是刚在实物板上开始调试的时候犯的第一个很低级的错误。当然这个问题首先要归结为不是我们做的最小系统,因此没有顾及到这个问题,这导致了我们在仿真时候好用的程序在实物板上偶尔会好用一次。 最后在老师的点拨下,我们找到了这个原因,以后上电的时候单片机就可以实现自动启动工作,而且读程序的时候每次都是从片内的最低位开始执行。 2.蜂鸣器不响。 后来在加了报警装置的时候,没有问老师我们拿的蜂鸣器是有源还是无源,这样子这个问题友困扰了我们一小段时间。当时以为是无源的,就用了高低电平来驱动,而且还测试了控制引脚输出电压的变化,最终没有响。后来无意间将蜂鸣器直接连接正负极,竟然发声了,此时才意识到我们忽略了它是有源蜂鸣器。 但是并没有就此解决了该问题,因为单单是蜂鸣器的引脚输出电流还不足以驱动蜂鸣器,后来又加了一个NPN的三极管来驱动蜂鸣器。但是在P2.7接口那里加的电阻比较小的时候还是不能驱动,这可能是因为电阻太小使得钳位电压太低了。最开始用的2K的电阻,但是蜂鸣器不能响,换成10K电阻以后蜂鸣器能吱吱的响,但不连续,最后换成24K以后再接上单片机控制端以后就能够自如的驱动蜂鸣器发声了。 35 大连交通大学2013届测控技术与仪器毕业设计(论文) 4.2.2 软件所遇问题及解决方法 本次课程设计可以说大部分时间都花在了软件调试上了,软件调试的时候毕竟不像硬件那么直观,对我们来说是个瓶颈,需要我们去突破它。 1.下载程序的时候,对此次的烧写软件Easy 51Pro不熟悉。 以前没使用过该软件,下载的时候很容易就出问题了。当然解决该问题也就显得是最简单的了,直接找了老师,然后老师来给我们演示了一次,这样问题就解决了。 2.显示结果不稳定,一直在很快地变化。 由于刚开始的时候程序里边一直是在采集数据然后显示,单片机一直做这个事,这样就会导致显示不稳定,尤其是湿度变化特别快,基本上稳定不了。 当然解决问题的方法就是隔固定时间以后采集一次,而不是一直采集。刚开始的时候想的是用延时程序来做,因为这样思想比较简单,但是这样的弊端同时也显现出来了,那就是他占用单片机资源,使得单片机始终在执行无用的语句来耗时,所以最后跟阈值设置模块结合考虑以后用了定时器来实现5s的定时。 3.阈值设置模块加了按键以后按键始终不能按预期效果工作。 刚开始还以为是硬件部分没有连接好,于是用万用表查了很久,但是电平变化都是正确的。在挣扎了一整下午以后晚上回到宿舍依然在想这个问题,主要是这个在仿真上边可以用,但是实物的时候就不好用, 36 大连交通大学2013届测控技术与仪器毕业设计(论文) 所以我们都以为是硬件出问题了。但是在第二天上午的时候我发现当按键时间比较长的时候,比如6s左右,单片机还是可以读出按键的,瞬间就想到了,原来我们的程序里边单片机不是一直在扫描键盘,而是只有一句话在执行扫描,这样按键好用比中五百万都难。 找到问题了解决起来也就容易多了,后来当单片机在那五秒定时里边让单片机始终扫描键盘,这样绝大部分时间按键就都是有效的了。 37 大连交通大学2013届测控技术与仪器毕业设计(论文) 结 论 在这这段做毕设时间里自己最大的感受就是:仿真和实物真的有很大的差别。同样的程序仿真时候能用但是实物板上却不能用,后来分析其实本来也是不能用的,但是仿真却给了我们一个错误的结果显示,只能说明仿真只是仿真而已,只能作为我们的一个参考罢了。 经过近14周的奋斗,从拿到题目,到后来查找资料,理论学习,实验编程调试,这一切都使我的理论知识和动手能力有了很大的提高。了解了单片机的硬件结构和软件编程方法,对单片机的工作方式有了很大的认知。同时,对一些外围设备比如传感器、液晶屏、键盘、蜂鸣器等有了一定的了解~ 但因为我们的水平有限,此设计中也存在一定的不足。比如温湿度 38 大连交通大学2013届测控技术与仪器毕业设计(论文) 的精度是比较低的,这个跟传感器也有一定的关系,还有就是硬件的布局设计业不够美观,以后有机会应该自己做印刷板然后再美化电路板就比较完美了。 温湿度控制已经成为了21世纪热门研究话题之一。无论是从生产还是生活,与我们人类都是息息相关的。而智能化的控制温湿度已经发展成为一种必然。随着世界经济的发展,人们生活水平的提高以及社会的进步。我们不可能一直墨守陈规,不能在恪守以前利用人力资源来控制温湿度的方法。不仅浪费大量的人力资源、财力资源,并且控制系统也更加单一化。而采用自动控制的办法、既节省了人力资源,更体现了与时俱进的思想、世界在进步、而这种进步就该体现在各个方面。 39 大连交通大学2013届测控技术与仪器毕业设计(论文) 谢 辞 经过近14周的努力,在老师及同学的指点下,我已经顺利地完成了设计任务, 更重要的是让我重新认识到了自学的重要性,以及学以致用的道理。我在图书馆查阅了大量的资料,并通过上网解决了很多棘手的问题 。让我真真正正的掌握了设计一个课题的方法、步骤和提高了从提出问题到解决问题的能力。 我觉得本次设计的重点和难点都是程序的编写、调试及模拟仿真,在编写过程中遇到了很多的问题,这些问题都通过查找资料成功的解决了。 参考文献 [1] 杨宝清. 现代传感器技术基础[M].北京:中国铁道出版社,2002. [2] 吴金戌(8051单片机实践与应用[M](北京:清华大学出版社,2003( [3] 巧 媛(单片机原理及应用(第二版)[M](北京:电子工业出版社,2003( [4] 胡汉才.单片机原理及系统[M].北京: 清华大学出版社,2002( 40 大连交通大学2013届测控技术与仪器毕业设计(论文) [5] 肖金球.单片机原理与接口技术[M].北京:清华大学出版社,2004( [6] 余发山(单片机原理及应用技术[M](北京:中国矿业大学出版社,2003( [7] 余家春.Protel99SE电路设计实用教程[M].北京:中国铁道出版社,2004( [8] 钱显毅. 传感器原理与应用[M].南京:东南大学出版社,2008. [9] 谭浩强.C程序设计[M]. 北京:清华大学出版社,2005. [10] 康华光.电子技术基础(模拟部分)[M]. 北京:高等教育出版社,2006. [11] 康华光.电子技术基础(数字部分)[M]. 北京:高等教育出版社,2006. [12] 邦田.电子电路使用抗干扰技术[M]. 北京:人民邮电出版社社,1994. 41 大连交通大学2013届测控技术与仪器毕业设计(论文) 附 录 附录A 硬件原理图 42 大连交通大学2013届测控技术与仪器毕业设计(论文) 附录B 程序清单 //*********************************************************** *****// //单片机 : AT89S52 // 功能 :串口发送温湿度数据 晶振 12M //硬件连接: P2.0口为通讯口连接DHT11,DHT11的电源和地连接单片 机的电源和地。 //*********************************************************** *****// 43 大连交通大学2013届本科生毕业设计(论文) #include #define LCD_DB P1 unsigned char s1[5]; unsigned char s2[5]; sbit LCD_RS=P2^4; sbit LCD_RW=P2^5; sbit LCD_E=P2^6; sbit P2_0 = P2^0; sbit moshi=P2^1; sbit INC=P2^2; sbit DEC=P2^3; sbit SPK=P2^7; /******定义函数****************/ #define uchar unsigned char #define uint unsigned int typedef unsigned char U8; /* 无符号8位整型变量 */ typedef unsigned int U16; /* 无符号16位整型变量 */ uchar count1=70,count2=35; uchar moshicount=0; uchar TD=0;//定时次数 44 大连交通大学2013届本科生毕业设计(论文) U8 U8FLAG; U8 U8count,U8temp; U8 U8T_data_H,U8T_data_L,U8RH_data_H, U8RH_data_L,U8checkdata; U8 U8T_data_H_temp,U8T_data_L_temp, U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp; U8 U8comdata; void LCD_init(void);//初始化函数 void LCD_write_command(uchar command); //写指令函数 void LCD_write_data(uchar dat); //写数据函数 void LCD_disp_char(uchar x, uchar y,uchar dat); //在某个屏幕位置上显示一个字符,X(0-16),y(1-2) void delay_n40us(uint n);//延时函数 //******************************** //*******液晶初始化函数*************** void LCD_init(void) { LCD_write_command(0x38); //设置 8 位格式,2 行,5x7 LCD_write_command(0x0c); 45 大连交通大学2013届本科生毕业设计(论文) //整体显示,关光标,不闪烁 LCD_write_command(0x06); //设定输入方式,增量不移位 LCD_write_command(0x03); //清除屏幕显示 delay_n40us(100); } //******************************** //*******定时器初始化函数********** void timerinit() { TMOD=0x01; TH0=-50000/256; TL0=-50000%256; EA=1; ET0=1; } //******************************** //********写指令函数************ void LCD_write_command(uchar dat) 46 大连交通大学2013届本科生毕业设计(论文) { LCD_DB=dat; LCD_RS=0;//指令 LCD_RW=0;//写入 LCD_E=1;//允许 delay_n40us(1); LCD_E=0; delay_n40us(1); } //******************************* //********写数据函数************* void LCD_write_data(uchar dat) { LCD_DB=dat; LCD_RS=1;//数据 LCD_RW=0;//写入 LCD_E=1;//允许 delay_n40us(1); LCD_E=0; delay_n40us(1); } //******************************** 47 大连交通大学2013届本科生毕业设计(论文) //*******显示一个字符函数********* void LCD_disp_char(uchar x, uchar y,uchar dat) { uchar address; if(y==1) address=0x80+x; else address=0xc0+x; LCD_write_command(address); LCD_write_data(dat); } //******************************** //********延时函数*************** void delay_n40us(uint n) { uint i; uchar j; for(i=n;i>0;i--) for(j=0;j<2;j++); } void Delay_10us(void) 48 大连交通大学2013届本科生毕业设计(论文) { U8 i; i--; i--; i--; i--; i--; i--; } void Delay(U16 j) { U8 i; for(;j>0;j--) for(i=0;i<27;i++); } //*******一字节数据传送函数********* void COM(void) { U8 i; for(i=0;i<8;i++) { 49 大连交通大学2013届本科生毕业设计(论文) U8FLAG=2; while((!P2_0)&&U8FLAG++); Delay_10us(); Delay_10us(); Delay_10us(); U8temp=0; if(P2_0)U8temp=1; U8FLAG=2; while((P2_0)&&U8FLAG++); //超时则跳出for循环 if(U8FLAG==1)break; //判断数据位是0还是1 // 如果高电平高过预定0高电平值则数据位为 1 U8comdata<<=1; U8comdata|=U8temp; } } *******单片机与传感器通信函数********* void RH(void) { //主机拉低18ms 50 大连交通大学2013届本科生毕业设计(论文) P2_0=0; Delay(180); P2_0=1; //总线由上拉电阻拉高 主机延时20us Delay_10us(); Delay_10us(); Delay_10us(); Delay_10us(); //主机设为输入 判断从机响应信号 P2_0=1; //判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运 行 if(!P2_0) //T ! { U8FLAG=2; //判断从机是否发出 80us 的低电平响应信号是否结束 while((!P2_0)&&U8FLAG++); U8FLAG=2; //判断从机是否发出 80us 的高电平,如发出则进入数据接收状 态 while((P2_0)&&U8FLAG++); //数据接收状态 51 大连交通大学2013届本科生毕业设计(论文) COM(); U8RH_data_H_temp=U8comdata; COM(); U8RH_data_L_temp=U8comdata; COM(); U8T_data_H_temp=U8comdata; COM(); U8T_data_L_temp=U8comdata; COM(); U8checkdata_temp=U8comdata; P2_0=1; //数据校验 U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_tem p+U8RH_data_L_temp); if(U8temp==U8checkdata_temp) { U8RH_data_H=U8RH_data_H_temp; U8RH_data_L=U8RH_data_L_temp; U8T_data_H=U8T_data_H_temp; U8T_data_L=U8T_data_L_temp; U8checkdata=U8checkdata_temp; } 52 大连交通大学2013届本科生毕业设计(论文) //湿度整数部分 s1[0] = (char)(0X30+U8RH_data_H/10); s1[1] = (char)(0X30+U8RH_data_H%10); //湿度小数部分 s1[2] = (char)(0X30+U8RH_data_L/10); //温度整数部分 s2[0] = (char)(0X30+U8T_data_H/10); s2[1] = (char)(0X30+U8T_data_H%10); //温度小数部分 s2[2] = (char)(0X30+U8T_data_L/10); } } //******************************* //液晶显示函数 void disp() { LCD_disp_char(0,1,'s'); LCD_disp_char(1,1,'h'); LCD_disp_char(2,1,'i'); LCD_disp_char(3,1,'d'); LCD_disp_char(4,1,'u'); 53 大连交通大学2013届本科生毕业设计(论文) LCD_disp_char(5,1,':'); LCD_disp_char(6,1,s1[0]); LCD_disp_char(7,1,s1[1]); LCD_disp_char(8,1,'.'); LCD_disp_char(9,1,s1[2]); LCD_disp_char(10,1,'%'); LCD_disp_char(11,1,'R'); LCD_disp_char(12,1,'H'); LCD_disp_char(0,2,'w'); LCD_disp_char(1,2,'e'); LCD_disp_char(2,2,'n'); LCD_disp_char(3,2,'d'); LCD_disp_char(4,2,'u'); LCD_disp_char(5,2,':'); LCD_disp_char(6,2,s2[0]); LCD_disp_char(7,2,s2[1]); LCD_disp_char(8,2,'.'); LCD_disp_char(9,2,s2[2]); LCD_disp_char(10,2,0xDF); LCD_disp_char(11,2,'C'); } 54 大连交通大学2013届本科生毕业设计(论文) //阈值设置函数 void shezhi() { //初值 s1[3] = (char)(0X30+count1/10); s1[4] = (char)(0X30+count1%10); //初值 s2[3] = (char)(0X30+count2/10); s2[4] = (char)(0X30+count2%10); moshi=1; if(moshi==0) { Delay_10us(); while(moshi==0); moshicount++; } switch(moshicount) { case 1: { INC=1;DEC=1; if(INC==0) 55 大连交通大学2013届本科生毕业设计(论文) { Delay_10us(); while(INC==0); count1++; } else if(DEC==0) { Delay_10us(); while(DEC==0); count1--; } LCD_disp_char(14,1,s1[3]); LCD_disp_char(15,1,s1[4]); LCD_disp_char(14,2,s2[3]); LCD_disp_char(15,2,s2[4]); }break; case 2: { //moshicount=0; INC=1;DEC=1; if(INC==0) { 56 大连交通大学2013届本科生毕业设计(论文) Delay_10us(); while(INC==0); count2++; } else if(DEC==0) { Delay_10us(); while(DEC==0); count2--; } LCD_disp_char(14,1,s1[3]); LCD_disp_char(15,1,s1[4]); LCD_disp_char(14,2,s2[3]); LCD_disp_char(15,2,s2[4]); }break; case 3: { moshicount=0; LCD_disp_char(14,1,' '); LCD_disp_char(15,1,' '); LCD_disp_char(14,2,' '); LCD_disp_char(15,2,' '); 57 大连交通大学2013届本科生毕业设计(论文) }break; default :break; } } //蜂鸣器报警程序 void laba() { if((U8RH_data_H>=count1)||(U8T_data_H>=count2)) SPK=1; else SPK=0; } //定时器0中断程序,每次定时50ms timer0() interrupt 1 { TD++; if(TD>=100) { TH0=-50000/256; TL0=-50000%256; TR0=0; TD=0; 58 大连交通大学2013届本科生毕业设计(论文) } TH0=-50000/256; TL0=-50000%256; } //*********主函数***************** void main(void) { LCD_init(); timerinit(); Delay(4); while(1) { RH(); disp(); laba(); TR0=1; while((TD>=1)&&(TD<=100)) { shezhi(); } } } 59 大连交通大学2013届本科生毕业设计(论文) 60
本文档为【基于单片机的数字温湿度计设计毕业设计&#40;论文&#41;】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_682974
暂无简介~
格式:doc
大小:244KB
软件:Word
页数:0
分类:生活休闲
上传时间:2018-01-10
浏览量:28