实验室温湿度监控系统的设计(1)

更新时间:2024-01-09 20:26:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验室温湿度监控系统的设计

摘 要

本文主要介绍了温湿度的检测,包括温度传感器、湿度传感器、单片机接口及其应用软件的设计,大体分为以下几大部分:介绍了国内外温湿度检测及监控技术,并且分析了温度检测及监控技术的未来发展方向。

本系统是基于复合式温湿度传感器SHT11、单片机AT89C51 对温度湿度分别测量并通过液晶显示屏1602经行显示。本系统由上位机和下位机构成,下位机主要完成温湿度的采集与处理,将其传至1602液晶显示,并做出判断实现超限报警。同时,下位机还通过 RS232 总线将温湿度数据传至上位机,上位机可实时显示当前的温度与湿度值。本系统具有可读性高,稳定性高,反应速度快,测量值准确的特点。该系统电路简单、工作稳定、集成度高,测试精度高,具有一定的实用价值。

温湿度检测是以8051单片机系统和温湿度相结合的温度测量系统。本系统的数学模型合理,测量方法容易实现。实际仪器采用抗干扰、零漂、低温漂的电子元件,性能稳定。该测量仪总体特点是使用简便、实用、使用对象广、并且实现了自动化。

关键词:温度测量;湿度测量;数据采集;单片机

I

:实验室温湿度监控系统的设计

The Design of Temperature and Humidity Monitoring

System in Laboratory

Abstract

In this paper, including temperature and humidity testing, temperature sensors, humidity sensors, microcontroller interfaces and application software design. It can be divided into the following parts: introduction of temperature and humidity detection technology at home and abroad, and analysis of the future of temperature measurement technologies development.

The system is based on the combined temperature and humidity sensor SHT11, monolithic integrated circuit AT89C51 surveys separately to the temperature humidity and demonstrated through the liquid crystal display monitor 1602 silk thread business. This system consists of upper and lower body, slave machine is complete the acquisition and processing of temperature and humidity, then pass them to the 1602 LCD display, and judge the ultra limit alarm. At the same time, lower computer through RS232 bus is rumored to first degree temperature and humidity machine, PC can show the current temperature and humidity values. This system has a high readability, high stability, reaction speed, measurement accuracy of characteristics. The circuit is simple, stable and high integration of the system, high accuracy, have practical value.

Temperature and humidity detection system is base on 8051 the combination of temperature and humidity, the temperature measurement system. The system mathematical model is reasonable, easy measurement. The actual instruments used anti-interference, low zero-drift, low temperature drift of electronic components, performance and stability. The general characteristics of measuring instrument are easy to use, practical, widely used object and automated.

Keywords: Temperature Measurement;Humidity measurement;Data Acquisition;Single-chip Microcomputer

II

:实验室温湿度监控系统的设计

目录

引言 ............................................................................................................................................ 1 第1章 绪 论 ...................................................................................................................... 2 1.1课题研究的目的及意义 ...................................................................................................... 2 1.2国内外测温湿技术及其发展趋势 ...................................................................................... 2 第2章 系统总体方案设计与选择论证 .................................................................................. 4 2.1 系统主要单元的选择与论证 ............................................................................................. 4 2.2系统总体原理框图 .............................................................................................................. 4 第3章 系统的硬件设计 ........................................................................................................ 5 3.1 单片机AT89C51简介 ...................................................................................................... 5 3.2 AT89C51引脚及介绍 .......................................................................................................... 5 3.3 SHT11 传感器 ..................................................................................................................... 7

3.3.1 SHT11 传感器简介 .................................................................................................... 7 3.3.2 SHT11 传感器内部结构及工作原理 ........................................................................ 7 3.4 显示模块 ............................................................................................................................. 9

3.4.1 1602液晶简介 ............................................................................................................ 9 3.4.2 1602液晶与AT89C51接口电路 ............................................................................... 9 3.5键盘电路设计 .................................................................................................................... 10

3.5.1键盘控制电路 ........................................................................................................... 10 3.5.2 各功能键作用分配 .................................................................................................. 10 3.6蜂鸣器电路的设计 ............................................................................................................ 11

3.6.1 报警模块的选择 ...................................................................................................... 11 3.6.2 本设计蜂鸣器工作原理 .......................................................................................... 11 3.7时钟与复位电路的设计 .................................................................................................... 12 3.8单片机与上位机通讯电路设计 ........................................................................................ 12

3.8.1 RS-232C简介 ........................................................................................................... 13 3.8.2 MAX232简介 ......................................................................................... 13 第4章 系统软件设计 ............................................................................................................ 15

4.1 系统软件总体设计 ................................................................................................... 15 4.2 主程序设计 ............................................................................................................... 15 4.3 数据采集及处理子程序设计 ................................................................................... 17 4.4 键盘/液晶显示程序设计 .......................................................................................... 17 结论与展望 .............................................................................................................................. 20 致谢 .......................................................................................................................................... 21 参考文献 .................................................................................................................................. 22 附录A温湿度检测系统仿真图 ............................................................................................. 23 附录B外文文献及译文 ......................................................................................................... 24 附录C 主要参考文献的题录及摘要 .................................................................................... 30 附录D 系统源程序 ................................................................................................................ 32

III

:实验室温湿度监控系统的设计

插图清单

图2-1系统总体原理框图…….............................................................................................4 图3-1 AT89C51引脚图.........................................................................................................5 图3-4 SHT11内部原理图…….............................................................................................8 图3-5 1602液晶与AT89C51接口电路……........................................................................10 图3-6键盘控制电路…….....................................................................................................11 图3-7三极管驱动的蜂鸣音报警电路…........................................................................….12 图3-8时钟电路图.................................................................................................................12 图3-9复位电路.....................................................................................................................12 图3-9 MAX232芯片控制电路…….....................................................................................14 图4-4液晶显示流程图…….................................................................................................17

表格清单

表3-3 P3口的第二功能...................................................................................................6 表3-4SHT11的命令代码.......................................................................................…......8

V

引言

温湿度测量是现代检测技术的重要组成部分,在保证产品质量、节约能源和安全生产等方面起着关键的作用。因此,能够确保快速、准确地测量温湿度的技术及其装置普遍受到各国的重视。近年来,利用智能化数字式温湿度传感器以实现温度信息的在线检测已成为温湿度测技术的一种发展趋势。本文介绍的温湿度检测系统,以智能化数字式温湿度传感器与PIC 微处理器有机结合,构成了一种新型温湿度检测系统。该系统具有性能可靠、测温准确、结构简单、造价低廉等特点,并兼具线路简捷、使用灵活、抗干扰性好、可移植性强等优点,可在工程实际中得到广泛应用。

随着电子技术的发展,将组成CPU的部件集成在一块半导体芯片上,这个具有CPU功能的大规模集成电路芯片就称之为微处理器(MPU)。微处理器的出现,推动了微型计算机的发展,同时也引起了电子设计技术领域的探到变革—电子技术专业人员,使之可以把微处理器部件像其他集成电路一样嵌入到电子系统中,使电子系统具有可编程序的智能化特点,开辟了计算机技术在电子技术领域应用的广阔大地。

将微处理器、存储器、I/O电路集成到一块半导体芯片的技术再次推动了这种嵌入式技术的发展,单片微型计算机是这种设计技术中的一个典型代表。单片机适用于测量和控制领域,它以芯片形式嵌入到电子产品或系统中起到―电脑‖作用,受到电子专业技术人员的青睐。单片机以其体积小、可靠性高、功能的专门化为特点。沿着与适用微处理器不同的方向发展。它的出现和发展,标志着单片嵌入技术已经成为电子系统设计的一个重要发展方向。

本课题主要为采用单片机实现数据采集与温湿度检测的制作。突出民用产品的低成本多动能的特点。按照选题要求应实现温湿度的测量,并且能够实现数字钟和测量部分的通过键盘进行控制。

- 1 -

第1章 绪 论

1.1课题研究的目的及意义

科学技术是第一生产力,科技的进步离不开大量的科学实验。科学实验是科技进步的重要前提,随着人们对科学实验的要求越来越高,如何在最优的条件下进行科学实成为众多实验室首要考虑的问题。很多的实验对环境条件的要求非常的苛刻,而温度和湿度又是环境中最基本的两个条件,也是最不容易保障的指标,而且它们都有可能对实验产生较大的影响。

例如微生物实验室,某些微生物对生存环境的要求特别的严格,只有在特定的温度、湿度条件下才可以存活并生长,温度、湿度稍有改变就有可能导致它们的死亡,甚至导致实验的失败。物理实验室里的某些高精度电子仪器对温湿度也很敏感,只有工作在特定的环境下才能保证它们的精度,所以必须维持一个恒定的温湿度值。在化学实验室里,某些实验必须在特定的温湿条件下进行,否则不仅得不到的应有的结果,甚至会发生危险,这些都对实验室的温湿度监控提出了高要求。

在生命科学设施,计量/校准实验室和电子制造环境,温度和湿度往往需要监测和报警显示7/24,以保障产品和工艺。在环境监测,实时数据报告,以确保环境―符合规格‖是至关重要的。 在我们的生活中,我们要时刻关心环境的变化,只有很好的把握好环境的差异变化,我们才能更好的生存与发展。

做好温度和湿度的防范工作,比如说在一些实验室生物的成长,和温湿度是离不开的它们只有在适宜的环境下,在适宜的温度和湿度下,才能成长的更快,我们才能获取更大的效益。另外,一些仓库,也需要实时知道温湿度的具体变化,什么样的物品在什么样的环境下比较适宜等等。

现代社会越来越多的实验都要求在严格的环境条件下完成,而温度和湿度是实验室最基本的环境条件,也是对实验影响较大的因素。一般温湿度控制系统中的温湿度测量均采用热敏电阻与湿敏电容,这种传统的模拟式温湿度传感器一般都需要设计信号调理电路并经过复杂的校准和标定过程,因此测量精度难以保证,且在线性度、重复性、互换性等方面也存在一定问题。这种传感器只适合那些测量点数较少,对精度要求不高的场合。因此设计出一款精度高、稳定性好、成本低的温湿度检测控制系统将具有一定的市场。

1.2国内外测温湿技术及其发展趋势

随着人们的生活及其生产水平的不断提高,对生活环境和生产环境的要求就显的尤为重要,温湿度的控制就是一个典型的例子,因此温湿度检测系统就是现代生产生活中应运而生的一种智能、快捷、方便可靠的检测系统,特别是在实验室做实验中如果检测得不准确就会发生许多的生产事故。如实验过程中对温度的检测不当就会导致生产效率的降低和产品质量的下降。而现在所使用的温湿度检测系统通常都是精度为1℃或0.1℃的水银、煤油或酒精温度计进行的温度检测和用传统的物理模拟量的方法进行的湿度检测。这些温湿度检测计的刻度间隔通常都很密,不容易准确分辨,读数困难,而且他们的热容量还比较大,达到热平衡所需的时间较长,因此很难读准,并且使用非常不方便。

-2-

在传统领域中,温度测量是通过物质的物理热胀冷缩原理来实现的,物质的选择可以是气体,也可以是液体,还可以是金属。我们一般常用的水银玻管温度计就是一种常见的通过金属物质热胀冷缩原理制成的温度测量器具,在计量检定中,很多温度的检定都依靠它来标定。他的优点是结构简单,使用方便,测量精度相对较高,价格低廉。缺点是测量上下限和精度受玻璃质量与测温介质的性质限制,只能近距离观测,而且有毒,并且由于易碎,不适宜运输和传递。

国内对温湿控制技术研究起步较晚。自20世纪80年代以来,在引进、吸收国外高科技温室生产技术的基础上,我国进行了温室中温度、湿度和二氧化碳等单项环境因子控制技术的研究。1982年中国农业科学院建立了全国农业系统的第一个计算机应用研究机构。1995年,北京农业大学研制成功的―WJG一1型实验温室环境监控计算机管理系统‖,仅仅是进行单因子控制,操作性和可靠性均不够理想。

温湿度传感器正朝着集成化、智能化、系统化的方向发展;与此同时,温湿度测量技术也在不断进步。在工农业生产、气象、环保、国防、科研、航天等部门,经常需要对环境温度与湿度进行测量及控制。准确测量温湿度对于生物制药、食品加工、造纸等行业更是至关重要的。相比之下,测量湿度要比测量温度更复杂,这是因为温度是个独立的被测量,而湿度却受大气压强和温度的影响。目前,温湿度测量领域的新技术不断涌现,新产品也层出不穷。

-3-

第2章 系统总体方案设计与选择论证

在本章中,我们将实验室温、湿度环境监测系统的总体设计及其主要功能特点进行简单的分析,并给出它的特点、实现功能、系统的简单操作以及对单片机及其控制系统的了解。

2.1 系统主要单元的选择与论证

方案一:采用XC9000系列的FPGA。该类器件具有并行处理能力,能快速的响应外部的各种数字信号,但在数据处理方面过于复杂,而且芯片价格较昂贵。

方案二:采用单片机作为控制核心,单片机数学运算功能较强。在程序相互调用方面,处理方便灵活,性能稳定,适合实际应用。且单片机技术发展较为成熟,价格便宜。基于以上分析,采用单片机控制可更为简便灵活地实现系统功能,故拟采用方案二。

2.2系统总体原理框图

该系统主要由以下功能系统构成:中央控制处理器AT89C51组成的主机系统;环境数据采集系统,输出显示与键盘控制系统等。

主要的系统电路有:电源电路、温度传感器与湿度传感器电路、显示电路,报警电路、键盘输入控制电路和通信电路等。

该系统的主要特点有:

(1)该产品的互换性好,响应速度快,抗干扰能力强,外围电路简单易懂,因此体积小。

(2)该系统能用软件的方式控制硬件,所有用软件方式设计的系统向硬件系统的转换是由有关开发软件自动完成的,易操作。 系统总体原理框图如图2-1所示: 单 温度传感器 片 机 系 统 测量 A/D 湿度传感器放大 转换 测量 放大 A/D 转换 键盘控制 复位与时钟 报警电路 LCD显示

上位机 图2-1 系统总体原理框图

-4-

第3章 系统的硬件设计

本设计的硬件系统主要由主控模块、显示模块、温湿度采集模块、键盘模块和蜂鸣器模块组成。

3.1 单片机AT89C51简介

AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及AT80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,片内时钟振荡器;此外,AT89C51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。

3.2 AT89C51引脚及介绍

图3-1 AT89C51引脚图

- 5 -

3.2.2 引脚介绍

VCC:电源电压 GND:地

P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写―1‖可作为高阻抗输入端口。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1口:P1是一个内部带上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写―1‖,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号校验期间,P1接收低8位地址。

P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL逻辑门电路。对端口写―1‖,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。在访问8位地址的外部数据存储器(如执行:MOVX @Ri 指令)时,P2口线上的内(也即特殊功能寄存器,在整个访问期间不改变。Flash 编程或校验时,P2也接收高位地址和其它控制信号。

P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入―1‖时,它们被内部上拉电阻拉高并可作为输入端口。作输入端口时,被外部拉低的P3口将用上拉电阻输出电流I。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口的第二功能如下表3-3。

表3-3 P3口的第二功能 端口功能 RXD(P3.0) TXD(P3.1) INT0(P3.2) INT1(P3.3) 第二功能 串行输入口 串行输出口 外中断0 外中断1 端口引脚 T0(P3.4) T1(P3.5) WR(P3.6) RD(P3.7) 第二功能 定时/计数器0外部输入 定时/计数器1外部输入 外部数据存储器写选通 外部数据存储器读选通 RST:复位输入。当振荡工作时,RST引脚出现两个机器周期上高电平将使单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不再访问外部存储器,ALE仍以时钟振荡频率的1/6输出的正脉冲信号,因此它可对外输出时钟或用于定时目地,要注意的是:当访问外部数据存储器时将跳过一个ALE脉冲。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。

PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲访问外部数据存储器,高有两次有效的PSEN信号。

- 6 -

EA/VPP:外部访问允许。欲使CPU访问外部程序存储器(地址0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程电压VPP。

XTAL1:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。 3.3 SHT11 传感器 3.3.1 SHT11 传感器简介

SHT11 数字式温湿度传感器是由瑞士的 Sensation 公司设计的,是一种带有两线制串行接口的复合式传感器。片内实现了对数据的调试及其标定,并且测量精度可以调节,分辨率可以达到 8 位、12 位或 14 位,可由用户自行设定。输出的数据还带有 CRC 校验,保证了数据传输的准确性。其加工工艺采用了特殊的 COMS过程微加工技术,生产出的产品可靠性非常的高,并且能够长期工作在非常稳定的状态。

该复合式的传感器内部的集成度非常的高,将一个能隙式的测温元件、一个聚合体测湿元件、一个 A/D 转换器、一个加热器以及串行接口电路都集成在了一片 7.42×4.88×2.5 mm 的无铅芯片载体上,并且采用了无缝连接的工艺。极大的增加了产品的抗干扰能力,也使得芯片的响应时间非常的短,在同类产品中,性能非常的突出

为了使用户能够得到非常准确的温湿度信息,每个芯片在出厂前都经过了严格的测试,并将校正值存于内存中,简化了用户对采集数据处理的复杂度,同时也大大增加了产品的精度,绝对可以成为各种温湿度采集芯片中的佼佼者。

SHT11 数字式温湿度传感器的应用范围非常的广泛,小到智能家居,大到自动化控制。相比于其他同类产品具有以下几种特点:

一、集成度高。将湿感元件、温感元件、串行接口电路以及 A/D 转换器等都集成在一片无铅芯片载体上,具有超小的外部尺寸。

二、基于两线制串行接口的数据传输。SHT11 采用的是两线式串行总线,一条数据线 DATA,一条串行时钟线 SCK,可进行 CRC 校验,保证了数据传输的准确性。

三、分辨率可调。SHT11 内部的 A/D 转换器的分辨率可以通过内部的特殊功能寄存器进行选择,8 位/12 位/14 位,满足不同需求。

四、精度高。片内集成的温感元件和湿感元件,使 SHT11 在测量湿度时可以进行温度补偿,提高了测量的精度。

五、体积小。SHT11 的封装非常的小,只有 7.42×4.88×2.5 mm,并且在每次测量之后能够自动的进入低功耗工作模式。

六、可靠性高。由于 SHT11 采用的是特殊的 COMS 过程微加工技术,内部元件实现了无缝连接,即使在测量时将其放入水中也可以正常工作。 3.3.2 SHT11 传感器内部结构及工作原理

数字式温湿度传感器 SHT11是将测湿元件、测温元件、A/D 变换、串行接口电路等都完全集成在一起,结构如图3-4 所示。

-7-

该芯片的测湿度部分是一个电容式聚合体湿度敏感器件,测温部分是一个能隙式温感器件。它们将湿度和温度信息都转换成了微弱的电信号,经过运算放大器放大后,放大了的电信号直接进入 A/D 转换器,最后通过两线制串行接口总线输出数字信号。

每个 SHT11 在出厂之前都会经过严格的测试,在具有非常精确的温湿度值的环境中进行校准,并将得到的校准系数存储在 OTP 内存中;当进行温湿度测量时,芯片会自动用校准系数来校准,提高测量精度。除此之外,为了考证两个传感器的综合性能,在 SHT11 内部还有一个加热器件,对其上电后可使芯片的温度提升摄氏度,这样就可以对比加热前后的温湿度值。当湿度值大于 95%RH 时,传感器容易结露,增加了系统的响应时间,为了避免,可以开启加热单元,同时功耗自然而然变高了,与加热前相比,测量值会略有不同

SHT11 是通过两线制串行接口与处理器进行数据的传输。一个数据接口和一个串行时钟。但是又不同于普通的IC总线,要通过单片机的普通 IO 进行模拟通信。对 SHT11 的控制要用5个二进制码来实现。

表3-4 SHT11的命令代码

命令代码 00011 00101 00111 00110 11110 其他 含义 测量温度 测量湿度 读取内部状态寄存器 写内部状态寄存器 复位命令 保留 温度传感器 湿度传感器 运算 大放 器 图3-4 SHT11内部原理图

校准寄存器 转换器

-8-

3.4 显示模块

液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其它显示器无法比拟的优点,近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。单片机可以通过数据总线与控制信号直接采用存储器访问形式、I/O设备访问形式控制该液晶显示模块。本设计采用1602液晶屏,液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,通电后就可以显示出图形、文字。 3.4.1 1602液晶简介

1602字符型液晶是工业字符型液晶,能够同时显示16 ×2即32个字符(16列2行)。

(1)单5V电源电压,功耗低、寿命长、可靠性高; (2)内置192种字符(160个5×7点阵字符和32个5×10字符); (3)具有64个字节的自定义字符RAM,可自定义八个5×8点阵字符; (4)显示方式:STN、半透、正显; (5)驱动方式:1/16DUTY,1/5BIAS; (6)视角方向:6点;

(7)背光方式:底部LED;

(8)通讯方式:4位或8位并口可选;

(9)标准的接口特性,适配MC51和M6800系列MPU的操作时序。 3.4.2 1602液晶与AT89C51接口电路

LCD1LM016LVSSVDDVEERSRWEP1.74P1.6561237891011121314D0D1D2D3D4D5D6D7 图3-5 1602液晶显示电路

-9-

3.5键盘电路设 计

键盘分为独立式键盘和矩阵式键盘。在本设计中由于按键较多,因此选用矩阵式键盘。

3.5.1键盘控制电路

本系统中键盘的作用是实现人机交互功能,通过键盘设置温度/湿度的上、下限值。键盘控制电路如下图所示: S4S8S12S16S3S7S11S15S10S14S2S6S1P1.6P1.7S5S9S13

图3-6 键盘控制电路

3.5.2 各功能键作用分配

(1)开/关机键:主要控制硬件系统的开/关机。

(2)数字设置键:S0和S1分别为温度1+和温度1-,用来设置温度的下限值; S2和S3分别为湿度1+和湿度1-,用来设置湿度的下限值;

S4和S5分别为温度2+和温度2-,用来设置温度的上限值; S6和S7分别为湿度2+和湿度2-,用来设置湿度的上限值。

当传感器采集到的温度、湿度值中有一样超出所设定的区间,即温度/湿度过高或过低,则该系统会发出蜂鸣报警。

(3)复位键:在测温湿度过程中,若需要中断正在运行的测试状态,则按下复位键,系统重新初始化。另外,在设定仓库允许的温湿度上、下限值时,若一不小心输入错误,想重新输入,则亦可按复位键进行修改。

(4)开报警键:SE为开报警键,当温/湿度值超过设定值而报警时,则可以按该键取消报警。

(5)关报警键:SF为关报警键,用来关闭蜂鸣报警。

-10-

3.6蜂鸣器电路的设计 3.6.1 报警模块的选择

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、报警器、电子玩具、汽车电子设备、定时器等电子产品中作发声器件。压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成,有的压电式蜂鸣器外壳上还装有发光二极管。多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。因此该产品电路设计简单,操作更加方便,而且具有很高的性价比。

本系统采用蜂鸣器作为报警装置,蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、电子玩具、报警器等电子产品中作发生器件。在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示或报警,比如按键按下、开始工作、工作结束或是故障等等。 LS1SPEAKERP2.7R21kQ1PNP 图3-7三极管驱动的蜂鸣音报警电路

3.6.2 本设计蜂鸣器工作原理

本设计采用峰鸣音报警电路,其工作过程就是把传感器采集的数据通过单片机处理后,与该参数上下限给定值进行比较,如果高于上限值(或低于下限值)则进行报警,否则就作为采样的正常值进行显示。

在本系统中峰鸣音报警接口电路的设计采用压电式蜂鸣器,通过AT89C51的1根口线经驱动器驱动蜂鸣音发声。压电式蜂鸣器约需10mA的驱动电流,可以用一个晶体三极管驱动,如上图3-5所示。在图中,P2.7接晶体管基极输入端。当P2.7输出高电平―1‖时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫;当P2.7输出低电平―0‖时,三极管截止,蜂鸣器停止发声

-11-

3.7时钟与复位电路的设计

单片机工作的时间基准是有时钟电路提供的。在单片机的XTAL1和XTAL2管脚,接一个晶振及两只电容就构成了单片机的时钟电路。

电路中,电容器C1和C2对振荡频率有微调作用,通常的取值范围为(20~40)pF。石英晶体选择6MHz或12MHz都可以,结果只是机器周期时间不同,影响计数器的计数初值。

时钟电路中的电容C1和C2为1nF,晶振的频率为12MHz。电路图如下

C11nFX1CRYSC2

1nF图3-8 时钟电路

单片机的RST管脚为主机提供一个外部复位信号输入端口。复位信号是高电平有效,高电平有效的持续时间应为2个机器周期以上。

单片机的复位方式有上点自动复位和手工复位两种。只要VCC上升时间不超过1ms,它们都能很好地工作。复位以后,单片机内各部件恢复到初始状态。电阻电容器件的参考值为R1=10K,C3=30PF。RET按键可以选择专门的复位按键,也可以选择轻触开关。

复位电路为手动复位,电路图如下

30PFC3R1S1710k 图3-9 复位电路

3.8单片机与上位机通讯电路设计

为了对采集到的数据进一步处理,需要将单片机采集的温度和湿度数据传输到上位机,利用单片机的 RXD、TXD 接口连接到 RS232 串行口接收或发送数据和指令,但是单片机的 TTL 电平和 RS232 不兼容,因此使用了 MAX232 进行电平转换,AT89S52具有串行通讯接口(SCI),SCI 是为能与 CRT 终端及计算机等外设通讯的全双工异步系统,本系统采用 RS-232C 接口方式,传送波特率为9600比特。接口芯片采用 MAX232,这种芯片可以实现TTL电平和RS-232C接口电平之间的转换,也就是可以把5V电平表示―1‖、0V电平表示―0‖的逻辑,转换成-3~15V电平表示―1‖、

-12-

+3~15V电平表示―0‖的逻辑,从而解决了由于PC机的串行口是 RS-232C 标准的接口,其输入输出在电平上和采用TTL 电平的 AT89S52 在接口时会产生电平不同的问题。因此,PC机和 AT89C51 单片机串行通信便可以顺利进行。 3.8.1 RS-232C简介

在单片机通信中, 谈到串口通信, 必然涉及RS-232C。RS-232C 总线标准是美国 EIA (电子工业联合会)与 BELL 公司一起开发并于1969年公布的通信协议,该总线是广泛使用在微机数据终端设备DTE和数据通信设备 DCE 之间的外部总线接口。RS 是英文―推荐标准‖的缩写,232 是标志号,C 表示修改的次数。RS232C 定义了数据终端设备(DTE) 与数据通信设备(DCE)之间的物理接口标准。接口标准包括机械特性、功能特性和电气特性等方面的内容。在电气特性中,采用负逻辑电平表示,规定逻辑0 电平为+ 5 V —+15 V ,逻辑1 为 15 V — 5 V ,常称之为RS232电平。而单片机输出的是TTL 或COMS 电平。我们知道, TTL/ COMS电平规定逻辑0电平为0 V ,逻辑1 电平为+ 5 V。显然,当PC机与单片机进行通信时,其接口就不能直接相连,必须经过电平转换,否则就会损坏设备。

当微机配备了 RS-232 接口后,它不仅可以与多种仪器和外设连接,而且,通过它还可以在两台微机之间进行近程及远程的通信。该总线有以下优点:

(1)串行通讯成本低廉,通用性强,符合RS-232标准的串行口已成为PC机的标准配置;

(2)通过该总线接口,可以使微机控制各种测量仪器,组成自动测试系统; (3)扩展了微机的应用领域,使个人计算机的功能得以加强;

(4)现代信息处理系统要求电子测量、通信和微机有机结合在一起,即用测量仪表采集、检测信息,用通信网络进行传输,并通过计算机进行处理和控制;

(5)RS-232C的信号连接十分灵活,通过对信号线进行适当调整,即可通过MODEM进行远程传送,也可以直接连接应于近距离传输。

RS-232C的总线可分为四类信号线,即数据总线、控制总线、定时总线和信号地线。

数据线:数据传送是串行的,可工作在全双工或半双工状态。

控制总线:该总线由发送控制信号、接收控制信号和设备状态信号组成,发送控制信号有RTS和CTS;接收控制信号有DDC,信号品质检测器和振铃指器。

定时总线:该信号是确定数据位的中心,不向外部提供; 信号地线:RS-232C采用负逻辑工作,即逻辑―l‖电平为-5V-15V,逻辑―0‖的电平为+5V—+15V。

RS-232C 总线是以异步串口的方式工作,异步串行通信具有异步和串行两个特点。所谓串行,是指发送方和接收方之间数据信息是在单根数据线上每次传送一个二进制位。所谓异步,是指同一数据字符内的定时和顺序是严格的,而相邻两个数据字符之间的停顿时间可以长短不一。 3.8.2 MAX232简介

本系统采用的是 MAXIM 公司生产的 MAX232 接口芯片,该芯片就是MAXIM 公司专门为PC 机 RS2232 标准串口设计的电平转换电路。MAX232 芯片与 TTL/ COMS 电平兼容,片内有2个发送器,2个接收器,且使用+ 5 V单电源供电,使用非常方便。

-13-

MAX232 芯片能够同时满足TTL向 RS232C 和 RS232C 向 TTL 电平转换的功能。同时,MAX232 具有 士15V 的防静电释放功能,能保持在 士15V 的静电释放的情况下正常工作,不损坏两端的器件,提高了系统工作的可靠性。

MAX232 可分为三部分:

(1)电荷泵。电荷泵的主要任务是将直流5 V 电源转换为±10 V 的电源,以满足TTL/ CMOS 电平转换成RS23 电平的需要,它主要由1 - 6 脚和外接的4个电容( C1 - C4 ) 组成。

(2)将TTL/ CMOS 电平转换成 RS232 电平。主要由11 ( T1IN ) 脚、10 脚( T2IN ) 、14 脚( T1OUT ) 和7 ( T2OUT ) 脚构成。在实际应用中,常将11 脚(或10 脚) 与 AT89S52 单片机的串行发送端 TXD 相连接,而将14 脚(或7 脚) 与RS232 相连接。这样从单片机输出的 TTL/ CMOS 电平, 经过MAX232 内部电路,转换成了 RS232 所需要的电平,由14 脚(7 脚) 送至RS232。

(3)将±10 V 的 RS232 电平,转换成 TTL/ CMOS 电平。RS232 电平由13 脚(R1IN ) 或8 脚(R2IN ) 输入,经过转换后的 TTL/ CMOS 电平由12 脚( R1OUT ) 或9 脚( R2OUT ) 输出,送至 AT89S52 单片机的接收端 RXD。

16 脚(V CC) 电源端, + 5 V 直流电源供电;15 脚( GND) ,电源接地。 MAX232 芯片控制电路及接口如下图所示:

C41nF1C1+1112109T1INR1OUTT2INR2OUT3C1-T1OUTR1INT2OUTR2INVS+VS-C2+4C2-141378261uFT1OUTR1INU3C6C75MAX2321uFC51nF 图3-10 MAX232控制电路

-14-

第4章 系统软件设计

4.1 系统软件总体设计

整个温湿度检测系统是在程序控制下工作的,该系统的软件全部采用汇编语言编写,以提高系统的快速性和实时性。其设计方法与硬件设计相对应,同样采用模块化的设计思想,将该部分设计划分为相应的程序模块,分别进行设计、编制和调试,最后通过主程序和中断处理程序将各程序模块连接起来。这样有利于程序修改和调试,增强了程序的可移植性。整个软件系统主要有以下几部分:主程序、数据采集、数据标度变换处理及键盘显示等程序。 4.2 主程序设计

根据设计要求,首先要确定软件设计方案,即确定该软件应该完成哪些功能;其次是规划这些功能需要分成多少个功能模块,以及每一个程序模块的具体任务是什么。模块的划分有很大的灵活性,但也不能随意划分。划分模块时应遵循下述原则: (1) 每个模块应具有独立的功能,能产生一个明确的结果。 (2) 模块之间的控制参数应尽量简单,数据参数应尽量少。控制参数是指模块进入和退出的条件及方式,数据参数是指模块间的信息交换(传递)方式、交换量的多少及交换的频繁程度。

(3) 模块长度适中,模块语句的长度通常在20~100条的范围较合适,模块太长时,分析和调试比较困难,失去了模块化程序结构的优越性;模块太短则信息交换太频繁,也不合适。

根据模块的划分原则,我们将该程序划分成七个模块,如图4-2所示。

主程序模块 数码管动态扫描模当前时间计时模块 输入闹钟时间模块 当前时间调整模块 蜂鸣器报警模块 数制转换模块 图4-1 主程序模块

-15-

主程序的设计 主程序的内容一般包括:主程序的起始地址、中断服务程序的起始地址、有关内存单元及相关部件的初始化和一些子程序调用等。主程序设计流程图如图4-3所示。

主程序 设置各中断服务 设置堆栈指针 相关寄存器清设置显示缓冲设计时间初值 设定0、定时器1 设置外部中断0/1 设置中断优先级开中断;启动T0/T1时 执行代码转换闹钟 N 报警30s

图4-2流程图

-16-

程序的起始地址:MCS-51系列单片机复位后,(PC)=0000H,而0003H~002BH分别为各中断源的入口地址。所以,编程时应在000H处写一条跳转指令。当CPU接收到中断请求信号并予以响应后,CPU把当前的PC内容压入栈中进行保护,然后转入相应的中断服务程序入口处执行。一般应在相应的中断服务程序入口处写一条跳转指令,并以跳转指令的目标地址作为中断服务程序的起始地址进行编程。

主程序的初始化内容:所谓初始化,是对将要用到的MCS-51系列单片机内部部件或扩展芯片进行初始工作状态设定。MCS-51系列单片机复位后,特殊功能寄存器IE、IP的内容均为00H,所以应对IE、IP进行初始化编程。在本设计中,使用了四个中断:

① T0中断:采用T0定时中断工作方式,完成LED动态扫描。 ② T1中断:采用T1定时中断方式,产生100ms(或50ms)的单位时间。 ③ INT0中断:采用外部中断工作方式,完成时间调整功能。 ④ INT1中断:采用外部中断工作方式,完成闹钟时间输入功能。

同时还要对一些存储单元进行初始化,这些内容都需要在初始化程序中来完成。

参看MAIN标号地址到LOP标号地址之间的内容。

代码转换程序:由于人们日常习惯使用十进制数,而计算机的键盘输入、输出以及显示常采用二进制数(即BCD码)或ASCⅡ码。因此,在程序设计中经常要进行代码转换。各种代码之间的转换十分有用,除了硬件逻辑转换之外,程序设计中常采用算法处理和查表方式。参看LOP标号地址到AA标号地址之间的内容。这段程序的功能是完成将当前时间的二进制数转换成BCD码,并送到显示缓冲区。

在单片机中,定时功能既可以由硬件(定时/记数器)实现,也可以通过软件定时程序实现。软件延时程序占用CPU的时间,降低了CPU的利用率;硬件定时是利用单片机片内定时器定时,启动以后定时器可与CPU并行工作,不占用CPU的时间,使CPU有较高的工作效率。

本设计中,采用硬件定时和软件定时并用的方式,即用T0溢出中断功能实现10ms定时,通过软件延时程序实现1ms的定时。 4.3 数据采集及处理子程序设计

该部分主要实现将来自传感器的模拟信号转换为数字信号的功能。由电路连接图可知,AM转换器工作于中断方式。当AM转换完毕时,STS由高电平变为低电平,通过IN而向8051请求中断。该程序主要有A/D转换器启动程序、中断等待转换结束、读取转换结果并存入RAM等几步。被测信号经过AM 转换后变为数字信号,必须通过数据处理后才能变为可直接显示的数值。 4.4 键盘/液晶显示程序设计

键盘接收子程序是由INTA和INTB两个子程序组成,两个子程序的功能是实现对当前时间的调整和输入定时(闹钟)时间。

①INTA子程序的功能是对当前时间进行调整。根据按键电路设计可知,当SET

-17-

键按下时,产生INT0中断请求,CPU响应中断请求时,便进入该中断服务程序。

②程序中,将时钟的各位分别进行调整。采用24h时间表示,因此4位时间值要分别加以限制。即小时十位,数的允许范围0~2;小时个位,数的范围有两种可能:当小时十位为0、1时,小时个位的允许范围是0~9,当小时十位为2时,小时个位的允许范围是0~3;分十位,数的允许范围是0~5;分个位,数的允许范围是0~9。

③+1键和RET键配合使用,每次对+1键的按下次数进行累加,当RET键按下时,调整值被确认,转去处理下一位。

④每次进入该程序后,对4位时间调整一次,从左到右排列顺序为1~4,不循环。 ⑤键盘接受的时间值为BCD码方式,将它们转化成二进制数后,存储在32H、33H单元。同时对计时单元进行修改,使当前时间得到调整。

⑥INTB子程序是定时(闹钟)时间设置程序,设计思路与当前时间调整程序基本相同。不同的是ALM按键与P3.3管脚连接,当ALM按下时,产生INT1中断并进入INTB中断服务程序。输入的定时(闹钟)时间存储在34H、35H单元。

在采用动态扫描显示方式时,要使得液晶显示得比较均匀,又有足够的亮度,需要设置适当的扫描频率。当扫描频率在70Hz左右时,能够产生足够的图形和较好的显示效果。一般可以采用间隔10ms对液晶进行动态扫描一次。每一位液晶的显示时间为1ms。程序流程如下图

-18-

T0中断服务程序 保护现场 关T0中断,开其他中断 设置段码缓冲区指针 设置位码缓冲区指针 设置显示位数 设置完否 将位码和段码值送P1端口 显示某位,延时1ms 修改显示缓冲区指针显示位数减显示完否 T0记数器初值 恢复现场,开中断 中断返回(RETI)

图4-3液晶显示流程图

-19-

结论与展望

通过此次毕业设计,我不仅把知识融会贯通,而且丰富了大脑,同时在查找资料的过程中也了解了许多课外知识,开拓了视野,认识了将来电子的发展方向,使自己在专业知识方面和动手能力方面有了质的飞跃。

毕业设计是我作为一名学生即将完成学业的最后一次作业,他既是对学校所学知识的全面总结和综合应用,又为今后走向社会的实际操作应用铸就了一个良好开端,毕业设计是我对所学知识理论的检验与总结,能够培养和提高设计者独立分析和解决问题的能力;是我在校期间向学校所交的最后一次综和性作业,从老师的角度来说,指导做毕业设计是老师对学生所做的最后一次执手训练。其次,毕业设计的指导是老师检验其教学效果,改进教学方法,提高教学质量的绝好机会。

毕业的时间一天一天的临近,毕业设计也接近了尾声。在不断的努力下我的毕业设计终于完成了。在没有做毕业设计以前觉得毕业设计只是对这几年来所学知识的大概总结,但是真的面对毕业设计时发现自己的想法基本是错误的。毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次毕业设计使我明白了自己原来知识太理论化了,面对单独的课题的是感觉很茫然。自己要学习的东西还太多,以前老是觉得自己什么东西都会,什么东西都懂,有点眼高手低。通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。

总之,不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现是两回事,所以我认为只有到真正会用的时候才是真的学会了。

在此要感谢我们的指导老师张老师对我悉心的指导,感谢老师们给我的帮助。在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。

-20-

致谢

在大学学习生活即将结束之际,对四年来曾关心、指导、帮助和鼓励过我的老师、同学们表示衷心的感谢。让我们共同分享完成论文的喜悦。

感谢指导老师金震妮老师在论文的选题、实验设计与论文的撰写过程中,自始至终以严谨的治学作风和崇高的责任心给予了全面的指导。金震妮老师对科研工作的执著和奉献精神将是我终生学习的楷模。同时也感谢班级同学及其他老师在设备和实验方面给予的帮助。感谢我的朋友们在我四年本科生的学习、工作和生活中对我的支持、理解与鼓励。最后,祝愿所有老师和同学在今后的工作、学习和生活中事事顺心,心想事成。

作者:

2012年6月13日

-21-

参考文献

[1]刘志强,罗庆生.一种智能化温度检测系统的设计[J].中国测试技术,2003,29(3):95-98

[2]阳成军.用单总线器件组建温湿度测控系统硬件设计[J].传感器世界2004(2) :38-39

[3] 李建民.单片机在温度控制系统中的应用[J].江汉大学学报,1996.06 [4] 孙良言.国外湿度传感器发展动态[J].传感器世界, 1997.12

[5] 孙宁.基于GSM模块的远程温湿度监控系统[J].世界科技研究与发展,2002 [6] 倪自强.Lab view环境下温湿度监控系统实现[J].电子元器件应用2009.02 [7] 刘春起.居室温湿度监控系统设计[J].石家庄职业技术学院报,2007

[8] 刘艳玲.采用MAX232实现MCS-51单片机与PC机的通信[J].天津理工学院学报,1999

[9]. 薛玲,孙曼,张志会,夏莉丽,魏希文.基于单片机AT89S51的温湿度控制仪 [J].2010, 37, (7):66-69.

[10] 刘宝元,张玉虹,姜旭,段存丽.基于单片机的温湿度监控系统设计[J].国外电子测量技术,2009,(12):77-80,83.

[11] 张友德 . 单片微型机原理、应用与实验[M].复旦大学出版社.2001 [12] 曹琳琳 .单片机原理及接口技术[M].国防科技大学出版社.2003

[13] Gerand N.Stenbakken.Awideband Sampling WatmeterI EEE Tras on Power Ap –paratus And System[ M]1984,PA S-103(10):2919--2925

[14] T.S.Rathoke.Theorems on Power M an and RMS Values of Uniformly Sampled Peirodic Signals IEE Proc.SCIENCE[ J]1984 131(3):598-600

[15] Zhao Yongzhong etc. ZWB-2 intelligent millimeters[M], Intelligent Processing Systems[M] 1997.

[16] Microelectronics Analog Communications Handbook[M]. MITEL,1991 [17] ISD公司,ISD data sheet [J] www.21IC.com

[18] Roland E.Best Electronic Measurement Technology by McGraw-hill Education(Asia) Co[M]. 1997

-22-

LCD1LM016LVSSVDDVEERSRWE7891011121314D0D1D2D3D4D5D6D7P1.74P1.656C1123RP111nF19XTAL1CRYSTAL18XTAL21nFX1U1C2S17C330PFRST9P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7RESPACK-8393837363534333223456789R3U232SCKDATA>R110kP2.7293031PSENALEEA10k80.027.0%RHP2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15SHT112122232425262728癈

附录A温湿度监控系统仿真图

-23-

S2S6AT89C51S4S5S9S13LS1SPEAKERS3S1123456P1.67P1.78P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD10111213141516171C1+C41nF3C1-T1OUTR1IN1112109T1INR1OUTT2INR2OUTT1OUTR1INT2OUTR2INVS+VS-C2+C2-141378261uFS8S10S14S7U3S12S11S16S15C6P2.71kR2Q1PNPC745MAX232C51nF1uF

附录B外文文献及译文

Brief Introduction of AT89C51

The AT89C51 is a low-power, high-performance CMOS 8-bit microcomputer with 4K bytes of Flash Programmable and Erasable Read Only Memory (PEROM) and 128 bytes RAM. The device is manufactured using Atmel’s high density nonvolatile memory technology and is compatible with the industry standard MCS-51? instruction set and pin out. The chip combines a versatile 8-bit CPU with Flash on a monolithic chip; the Atmel AT89C51 is a powerful microcomputer which provides a highly flexible and cost effective solution to many embedded control applications.

Features:

Compatible with MCS-51? Products

4K Bytes of In-System Reprogrammable Flash Memory Endurance: 1,000 Write/Erase Cycles Fully Static Operation: 0 Hz to 24 MHz Three-Level Program Memory Lock 128 x 8-Bit Internal RAM 32 Programmable I/O Lines Two 16-Bit Timer/Counters Six Interrupt Sources

Programmable Serial Channel

Low Power Idle and Power Down Modes

The AT89C51 provides the following standard features: 4K bytes of Flash, 128 bytes of RAM, 32 I/O lines, two 16-bit timer/counters, a five vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator and clock circuitry. In addition, the AT89C51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port and interrupt system to continue functioning. The Power down Mode saves the RAM contents but freezes the oscillator disabling all other chip functions until the next hardware reset.

Pin Description:

VCC Supply voltage. GND Ground. Port 0

Port 0 is an 8-bit open drain bidirectional I/O port. As an output port each pin can sink eight TTL inputs. When is written to port 0 pins, the pins can be used as high impedance inputs.

Port 0 may also be configured to be the multiplexed low order address/data bus

-24-

during accesses to external program and data memory. In this mode P0 has internal pull-ups.

Port 0 also receives the code bytes during Flash programming, and outputs the code bytes during program verification. External pull-ups are required during program verification.

Port 1

Port 1 is an 8-bit bidirectional I/O port with internal pull-ups. The Port 1 output buffers can sink/source four TTL inputs. When 1s are written to Port 1 pins they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 1 pins that are externally being pulled low will source current (IIL) because of the internal pull-ups. Port 1 also receives the low-order address bytes during Flash programming and verification.

Port 2

Port 2 is an 8-bit bidirectional I/O port with internal pull-ups. The Port 2 output buffers can sink/source four TTL inputs. When 1s are written to Port 2 pins they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 2 pins that are externally being pulled low will source current (IIL) because of the internal pull-ups. Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that uses 16-bit addresses (MOVX @ DPTR). In this application it uses strong internal pull-ups when emitting 1s. During accesses to external data memory that uses 8-bit addresses (MOVX @ RI), Port 2 emits the contents of the P2 Special Function Register.

Port 2 also receives the high-order address bits and some control signals during Flash programming and verification.

Port 3

Port 3 is an 8-bit bidirectional I/O port with internal pull-ups. The Port 3 output buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins they are pulled high by the internal pull-ups and can be used as inputs. As inputs, Port 3 pins that are externally being pulled low will source current (IIL) because of the pull-ups. Port 3 also serves the functions of various special features of the AT89C51 as listed below: Port 3 also receives some control signals for Flash programming and verification.

RST

Reset input. A high on this pin for two machine cycles while the oscillator is running resets the device.

ALE/PROG

Address Latch Enable output pulse for latching the low byte of the address during accesses to external memory. This pin is also the program pulse input (PROG)

-25-

Normally resumes program execution, from where it left off, up to two machine cycles Before the internal reset algorithm takes control. On-chip hardware inhibits access to internal RAM in this event, but access to the port pins is not inhibited. To eliminate the possibility of an unexpected write to a port pin when Idle is terminated by reset, the instruction following the one that invokes Idle should not be one that writes to a port pin or to external memory.

Power down Mode

In the power down mode the oscillator is stopped, and the instruction that invokes power down is the last instruction executed. The on-chip RAM and Special Function Registers retain their values until the power down mode is terminated. The only exit from power down is a hardware reset. Reset redefines the SFRs but does not change the on-chip RAM. The reset should not be activated before VCC is restored to its normal operating level and must be held active long enough to allow the oscillator to restart and stabilize

-26-

单片机AT89C51简介

AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4Kb字节的快速可擦写的只读程序存储器(PEROM)和128 字节的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51产品指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。

主要性能参数:

1)与MCS-51产品指令系统完全兼容; 2)4K字节可重复写flash闪速存储器; 3)1000次擦写周期;

4)全静态操作:0HZ-24MHZ; 5)三级加密程序存储器; 6)128*8字节内部RAM; 7)32个可编程I/O口; 8)2个16位定时/计数器; 9)6个中断源;

10)可编程串行UART通道; 11)低功耗空闲和掉电模式。 功能特性概述:

AT89C51提供以下标准功能:4K 字节闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

引脚功能说明: VCC:电源电压 GND:地

P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复位口。作为输出口用时,每位能吸收电流的方式驱动8个逻辑门电路,对端口写―1‖可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分

时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。 P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写―1‖,通过内部的上拉电阻把端口拉到高电平,此时可做熟出口。做输出口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。Flash编程和程序校验期间,P1接受低8位地址。

P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写―1‖,通过内部地山拉电阻把端口拉到高电平,此时可作为输出口,作输出口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲

-27-

可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入―1‖时,他们被内部上拉电阻拉高并可作为输出口。做输出端时,被外部拉低的P3口将用上拉电阻输出电流。P3口还接收一些用于闪速存储器编程和程序校验的控制信号。

RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址所存允许)输出脉冲用于所存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。

对flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有不要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该外置位后,只要一条MOVX和MOVC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。

PSEN:程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两个^PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。

EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H---FFFFH),EA端必须保持低电平(接地)。需注意的是; 如果加密位LB1被编程,复位时内部会锁存EA端状态。

如 EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。

Flash存储器编程时,该引脚加上+12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VPP。

XTAL1: 振荡器反相放大器的及内部时钟发生器的输出端。 XTAL2: 振荡器反相放大器的输出端。 时钟振荡器:

AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈的片外石英晶体或陶瓷谐振器一起构成自激振荡器。外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器的稳定性、起振的难易程度及温度稳定性,如果使用石英晶体,我们推荐电容使

用户也可以采用外部时钟。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。

由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术要求。

-28-

终止空闲工作模式的方法有两种,其一是任何一条被允许中断的事件被激活,即可终止空闲工作模式。程序会首先响应中断,进入中断服务程序,执行完中断服务程序并仅随终端返回指令,下一条要执行的指令就是使单片机进入空闲模式那条指令后面的一条指令。其二是通过硬件复位也可将空闲工作模式终止,需要注意的是,当由硬件复位来终止空闲模式时,CPU通常是从激活空闲模式那条指令的下一条指令开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期(24个时钟周期)有效,在这种情况下,内部禁止CPU访问片内RAM,而允许访问其它端口。为了避免可能对端口产生以外写入,激活空闲模式的那条指令后一条指令不应该是一条对端口或外部存储器的写入指令。

在掉电模式下,震荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器但不改变RAM中的内容,在VCC恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。

-29-

附录C 主要参考文献的题录及摘要

[1]刘志强,罗庆生.一种智能化温度检测系统的设计[J].中国测试技术,2003,29(3):95-98 【摘要】 研究了一种基于分布式多点测试和集中显示技术的新型温度检测系统 ,探索了以智能数字温度传感器和PIC单片机为核心元件的系统组成方式 ,进行了新型温度检测系统总体和硬、软件设计 ,由此建立了一种新型智能化温度检测方法 。 [2]阳成军.用单总线器件组建温湿度测控系统硬件设计[J].传感器世界2004(2) :38-39 【摘要】 文章介绍了利用DALLAS公司推出的单总线器件及其技术组建温湿度测控系统。相对于传统的设计方案,该系统具有单总线突出的技术优势和更高的性能价格比。

[3] 李建民.单片机在温度控制系统中的应用[J].江汉大学学报,1996.06

【摘要】 设计一种温度控制系统,介绍了该系统的硬件结构和软件设计,对主要电路进行了分析。

[4] 孙良言.国外湿度传感器发展动态[J].传感器世界, 1997.12

【摘要】 湿度传感器种类繁多,至今已有许多人做了大量工作并发表了许多文章,湿度传感器可以从材料和原理等方面进行分类,总起来可分成三大类:①电容式;②电阻式;③其它方式.这里主要是把近年来湿敏元件及其传感器的发展情况及技术动态作一介绍.。 [5] 孙宁.基于GSM模块的远程温湿度监控系统[J].世界科技研究与发展,2002

【摘要】 本文给出了一种基于GSMTC35i模块的远程温湿度监控系统设计。它通过温湿度传感器采集数据后在单片机内部处理,若温湿度超出设定范围则通过TC35i发送报警信息。本设计成本低、运行稳定、可靠性好。

[6] 倪自强.Lab view环境下温湿度监控系统实现[J].电子元器件应用2009.02

【摘要】 描述了在Lab view环境下利用微软的Internet Explorer来对远程目标温湿度进行监控的系统开发设计方案,给出了实现远程报表生成以及数据库查询等功能的具体操作过程。

[7] 刘春起.居室温湿度监控系统设计[J].石家庄职业技术学院报,2007

【摘要】 居室的温、湿度监控系统采用主从式通讯方式,由上位机显示并设有上下限报警提示,利用多片MCU组成简单的环境监控网络,以RS485总线标准进行通讯.。 [8] 刘艳玲.采用MAX232实现MCS-51单片机与PC机的通信[J].天津理工学院学报,1999 【摘要】 介绍了MAX232芯片的使用,采用MAX232接口的通信电路,以及MCS-51单片机与PC机的点对点串行通信程序设计 [9]. 薛玲,孙曼,张志会,夏莉丽,魏希文.基于单片机AT89S51的温湿度控制仪 [J].2010, 37, (7):66-69.

【摘要】 在对国内外同类产品分析研究的基础上,作者设计了一种基于单片机控制的温湿度控制仪,从硬件和软件两方面设计并实现了对温湿度的精确控制,该控制系统主要采用AT89S51、LED显示器、SHT11等芯片,并对其组成以及硬件电路进行了详细的介绍,阐述了温湿度控制系统的工作原理以及设计方法。最后通过系统软硬件联机调试,实现了温湿度信号检测与控制,达到了预期要求。

-30-

[10] 刘宝元,张玉虹,姜旭,段存丽.基于单片机的温湿度监控系统设计[J].国外电子测量技术,2009,(12):77-80.83.

【摘要】 温湿度是影响硝基软片生产和厚度检测的重要因素。采用AT89S52单片机为控制中心,由STH10温湿度传感器及1602字符型液晶模块构成硝基软片生产在线实时温湿度监控系统,实现对硝基软片生产环境的温湿度精确测量与控制。实践证明,该系统电路简单、工作稳定、集成度高,调试方便,测试精度高,保证硝基软片生产线的产品质量与合格率,具有一定的实用价值。

-31-

附录D 部分系统源程序

#include #include #include

unsigned char dispbuf[5]={0}; unsigned char temp[5]; unsigned char T0count; unsigned char timecount; bit flag;

unsigned long F; //频率值 unsigned int pF;//电容量 signed char RH;//湿度

unsigned char Tset,Rset;//默认的温度报警线

unsigned char menu;//菜单变量,0时正常,1时设置温度,2时设置湿度 sbit K0=P2^0;//定义键盘K0 sbit K1=P2^1;//定义键盘K1 sbit K2=P2^2;//定义键盘K2 sbit beep=P1^0;

sbit LCD_RS = P2^7; sbit LCD_E = P2^6;

#define LCD_DATA P0

/************************************************** ** 函数名称: dellay

** 入口参数:h(unsigned int型) ** 出口参数:无

** 功能描述: 短暂延时,使用11.0592晶体,约0.01MS ****************************************************/ void dellay(unsigned int h) {

while(h--); //0.01MS }

/************************************************** ** 函数名称: WriteDataLcd

** 入口参数:wdata(unsigned char型) ** 出口参数:无

** 功能描述: 写数据到LCD

****************************************************/ void WriteDataLcd(unsigned char wdata) {

-32-

LCD_RS=1;

LCD_DATA=wdata;

dellay(100); //短暂延时,代替检测忙状态 LCD_E=1;

dellay(100); //短暂延时,代替检测忙状态 LCD_E=0; }

/************************************************** ** 函数名称: WriteCommandLcd

** 入口参数:wdata(unsigned char型) ** 出口参数:无

** 功能描述: 写命令到LCD

****************************************************/ void WriteCommandLcd(unsigned char wdata) {

LCD_RS=0;

LCD_DATA=wdata;

dellay(100); //短暂延时,代替检测忙状态 LCD_E=1;

dellay(100); //短暂延时,代替检测忙状态 LCD_E=0; }

//LCD初始化

void lcd_init(void) {

LCD_E=0;

WriteCommandLcd(0x38);

WriteCommandLcd(0x38); //显示模式设置 WriteCommandLcd(0x08); //关闭显示

WriteCommandLcd(0x0c);

WriteCommandLcd(0x06); //显示光标移动设置 WriteCommandLcd(0x01); //显示清屏

WriteCommandLcd(0x90); //显示开及光标移动设置 }

/************************************************** ** 函数名称: display_xy

** 入口参数:x(unsigned char型),y(unsigned char型) ** 出口参数:无

** 功能描述: 设置光标位置, x是列号,y是行号

****************************************************/

void display_xy(unsigned char x,unsigned char y)

-33-

{

if(y==1) x+=0x40; x+=0x80;

WriteCommandLcd(x); }

/******************************************************************** ** 函数名称: display_char

** 入口参数:x(unsigned char型),y(unsigned char型),dat(unsigned char型) ** 出口参数:无

** 功能描述: 在具体位置显示单个字符,x是列号,y是行号

*********************************************************************/ void display_char(unsigned char x,unsigned char y,unsigned char dat) {

display_xy(x,y); WriteDataLcd(dat); }

/********************************************************************* ** 函数名称: display_string

** 入口参数:x(unsigned char型),y(unsigned char型),s(指针型) ** 出口参数:无

** 功能描述: 在具体位置显示字符串,以/0结束,x是列号,y是行号

**********************************************************************/ void display_string(unsigned char x,unsigned char y,unsigned char *s) {

display_xy(x,y); while(*s) { WriteDataLcd(*s); s++; } }

//*****************//

//以下是DS18B20驱动程序 //*****************//

unsigned char data temp_data[2]={0x00,0x00}; //读出温度暂放

unsigned char data _1820display[5]={0x00,0x00,0x00,0x00,0x00}; //显示单元数据,共4个数据和一个运算暂用 unsigned int tmp;

-34-

sbit DQ=P2^4;

sbit DQVCC=P2^3; sbit DQGND=P2^5;

//**************温度小数部分用查表法***********// unsigned char code ditab[16]= {

0x00,0x01,0x01,0x02, 0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07, 0x08,0x08,0x09,0x09 };

/*****************11us延时函数*************************/ //

void _18B20_delay(unsigned int t) {

for (;t>0;t--); }

/****************DS18B20复位函数************************/ _18B20_reset(void) {

char presence=1; while(presence) { while(presence) { DQ=1; _nop_();_nop_();//从高拉倒低 DQ=0; _18B20_delay(50); //550 us DQ=1; _18B20_delay(6); //66 us presence=DQ; //presence=0 复位成功,继续下一步 } _18B20_delay(45); //延时500 us presence=~DQ; }

DQ=1; //拉高电平 }

-35-

本文来源:https://www.bwwdw.com/article/g89o.html

Top