




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南华大学电气工程学院毕业设计引言随着科学技术的发展,自动化技术运用越来越广泛,传感器技术也逐渐为众人所熟悉。传统的检测设备已不能满足社会的需要。本文是在单片机的基础上,结合传感器技术实现对温度湿度的实时检测(1) 选题背景及意义数字式温湿度仪,是集传感器技术、计算机技术、通讯技术与一体的数据记录仪。绝大部分电子产品都要求在干燥条件下作业和存放。据统计,全球每年有1/4以上的工业制造不良品与潮湿的危害有关。对于电子工业,潮湿的危害已经成为影响产品质量的主要因素之一。 数字式温湿度记录仪广泛应用于农业研究、工业、环保、卫生防疫、实验室、建筑业、仓储运输、博物馆、温室等领域,进行温湿度监测记录的仪器。并可将采集记录的数据传送给计算机进行处理。(2) 传感器技术随着信息时代的到来,作为获取信息的手段传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。传感器技术已成为衡量一个国家科学技术发展水平的一个重要标志。因此,了解和掌握各类传感器的基本结构,工作原理及特性是非常重要的。由于传感器能将各种物理量,化学量和生物量等信号转化为电信号,使得人们可以利用计算机实现自动测量,信息处理和自动控制,但是它们都不同程度的温漂和非线性等影响。传感器主要用于测量和控制系统,他的性能好坏直接影响系统的性能。因此,不仅必须掌握传感器的结构,原理和性能指标,还必须懂得传感器经过适当的接口电路调整才能满足信号的处理,显示和控制的要求,而且只有通过传感器应用实例的原理和智能传感器实例的分析和了解,才能将传感器和信息通信和信息处理结合起来,适应传感器的生产,研制,开发和应用。另一方面传感器器的被测信号来自于各个领域,每个领域都为了改革生产力,提高工效和时效,各自都在开发研制适合应用的传感器,于是种类繁多的新型传感器和传感系统不断涌现。温湿度传感器是其中重要的一类传感器。其发展速度非常之快,以及其应用非常之广,并且还有很大的发展潜力。为了提高对传感器器的认识和了解,尤其是对温湿度传感器的深入研究以及其用法和用途,基于实用,广泛和典型的原则而设计了本系统。本论文利用单片机结合温湿度度传感器技术而设计了这一数字式温湿度仪。(3) 本课题主要研究内容主要研究的是数据的采集、数据变换处理、量程变换,计算机接口电路,输入通道及显示。系统是以STC89S52单片机为核心,配合SHT10温湿度传感器,以及相关的电路组成。可以接收所测环境的温度和湿度信号,检测人员可以通过仪器的LCD液晶显示数据,实时监控环境的温度和湿度情况。所有的测量操作都可以通过主机控制软件来实现。由温度和湿度传感器得到的测量信号,经电路转换为电信号,然后通过一定的放大送到单片机进行数据处理,经软件分析处理后送显示装置,CPU根据检测到的温度和湿度结果,判断温度,湿度是否在界定的范围内,由此启动系统的报警,并进行自动调节,直到温度和湿度达到界定范围。为了提高系统智能化、可靠性和实用性,采用温度补偿电路,线性补偿,自动校准等。能实现对温度,湿度进行实时的参数检测,数字显示及参数修改,报警。相对湿度在0%100%之间,温度量程范围在-10100度之间,测量精度达到0.5%。 1 系统简介整个系统采用模块化设计。可以分为八个模块,分别为:单片机STC89C52的实时控制模块、LCD的实时显示模块、报警电路、串口通讯接口电路模块、按键复位电路模块、5路单键盘输入控制模块、AT24C04数据存储模块,时钟电路及SHT10传感器数据采集部分。本设计根据系统八个模块来分别介绍,这个系统各个模块之间的连接方式可表示为下图1.1所示:单片机STC89C52RC时钟模块DS1302按键输入温湿度传感器SHT10电源电路 串口通信LCD温湿度显示蜂鸣器数据存储器AT24C04图1.1 系统总原理框图系统功能总介绍:采用SHT10温湿度传感器和时钟芯片DS1302,对外部温度湿度信号进行采集,经传感器内部放大电路,A/D转换电路,温度补偿等数据处理,检测到的标准数字 输入单片机再由LCD1302实现实时显示。采用按键的方式来进行复位。数据存储器采用AT24C04存储芯片,可以实现对数据的实时存储,需要调用历史数据时可以通过MAX232串口下载。MAX232还具有将编写好的程序写入单片机的功能。用5路单键电路实现参数修改,保存能功能。当被测参数超过设定的上下限时,报警电路自动启动直至被测参数符合设定要求为止。2 单片机简介2.1单片机性能特点STC89C52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。该器件采用STC高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。下图2.1是单片机STC89C52的引脚图:图2.1 单片机STC89C52芯片单片机STC89C52的主要特性如下:l 8位CPUl 21个特殊功能寄存器l 4个8位并行I/O口l 1个全双工串行I/O口l 3个16位计数器/定时器l 5个中断源,分为2个优先级l 256字节片内数据存储器RAM,另有128字节特殊寄存器l 8K字节片内程序存储器ROMl 外部数据存储器寻址空间为64KBl 逻辑操作为寻址功能l 单一+5V电源供电l 片内振荡器和时钟电路2.2管脚说明VCC:正常运行和编程检验时为+5V。VSS:地线。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为STC89C52的一些特殊功能口,如下表2.1所示:表2.1 P3口引脚说明表口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。RST/VPD:单片机工作时,如该引脚输入超过24个时钟宽度的高电平信号,则使单片机复位。在RST/VPD和VCC之间接一个22uF的电容,同时在RST/VPD和VCC之间接一个22K的电阻时,单片机就具备了加电时自动复位的功能。此外,如在此处外接+5V备用电源,可在VCC电压突然下降或断电时,保护片内RAM中的信息不丢失,以便VCC恢复后继续正常运行。XTAL1:接外部晶振。它是内部一个反相放大器的输入端,用外部时钟时,此端接地。XTAL2:接外部晶振的另一端。它是内部一个反相放大器的输入端,用外部时钟时,此端引入外部时钟脉冲。2.3 STC89C52在本文中的应用STC89C52本身的特性已经介绍完毕,在本文中各引脚的应用如附录1总硬件图所示:P0口用于LCD显示输出模块,控制被测温湿度的实时显示。(数据显示位置,字长等)P2口用于5路单键键盘的输入,实现报警上下限参数的修改,数据保存等功能。P1口用于时钟电路和传感器采集的数字信号的输入,获取实时数据。P3口用于数据通讯模块,单片机与MAX232之间的通信能把程序指令写入单片机,保存的历史数据下载至带通讯功能的设备。单片机与AT24C04之间的通讯能实现对实时采集的数字信号的保存,以便日后有需要历史数据时调用。单片机的复位采用外围电路手动复位方式,时钟信号也由外部晶振电路提供,分别与XTAL1,XTAL2接口相接。以上是单片机在本设计中总体应用,其引脚的具体应用分别如下列各个模块的介绍所示:3 系统硬件设计3.1 LCD液晶显示模块3.1.1 LCD芯片介绍LCD是Liquid Crystal Display 的缩写。一般而言,LCD显示器都是以点矩阵的显示方式来显示文字或图形数据。实际上,LCD是由一些专为LCD设计的芯片所控制,如日立公司的HD44780。这些芯片与LCD构成一个LCM模块(LCD Module)。因此,LCM的显示接口十分简单,只要熟悉LCM的规格,即可在LCD上显示所要的信息。LCD液晶显示器的构造是在两片平行的玻璃中放置液态的晶体,玻璃中间有许多垂直和水平的细电线,通过通电与否来控制杆状水晶分子改变方向,将光线折射出来产生图像或文字。常用的LCD有笔段型、字符型和图形型三种:笔段型最简单,以长条状显示像素组成一位显示,例如电子计算器,其控制与8段LED差不多;字符型和图形型一般采用点阵列来进行字母、数字和符号的显示,其控制相对复杂。字符型LCD一般在模块控制驱动器内有已固化好字符字模的字符库CGROM(下文会详细介绍),本身具有字符发生器,使用者只需写入对应编码即可显示该字符。若要显示字符库中没有的图形就很困难,虽然一般字符型LCD也有让用户自定义建立专用字符的随机存储器CGRAM,但容量通常很小。3.1.2 LCD引脚20*2的LCD每行可显示20个字,可显示行数为2行。下图3.1所示为LCD的引脚图:图3.1 LCD1602芯片主要性能介绍:VCC:主电源接+5VVDD, 接地信号线RS:寄存器选择信号。当RS=0时候,选择指令寄存器;RS=1时选择数据寄存器。R/W/:次读取/写入信号线用于决定数据时写入还是读自LCD当R/W/=0时,数据写入LCD控制器;当R/W/=1时,则自LCD控制器读取数据。D0D7:数据总线。以8位数据读写方式,则D0D7皆有效;若以4位做数据读写,则仅D4D7有用,D0D3空接不用,本设计中直接与单片机的P0口连接。LCD寄存器的选择如下表3.1所示:3.1.3 LCD复位及初始化HD44780控制器有一个内部复位电路,电源打开时即可产生POWER ON RESET动作,并做初始化动作,其项目如下。(1) 清除显示。(2) 功能设定:8位数据长度,单行显示,5*7点矩阵字型。(3) 显示屏ON/OFF设定:显示屏、光标、闪烁功能关闭。(4) 输入模式设定:AC地址自动加一,显示屏不移动。初始化时BF=1,延续约10ms后,BF才降为0。若电源开启时未能有效初始化,则在程序钱加指令复位,以确保无误。表3.1 LCD寄存器的选择ER/WRS功能说明100写入命令寄存器101写入数据寄存器110读取忙碌标志及RAM地址111读取RAM数据0XX不动作。3.1.4 LCD与单片机串行接口字符型LCD液晶显示模块与单片机STC89C52的接口方式如下图3.2所示。单片机STC89C52LCD液晶显示模 块P2.2P2.1P2.0RSR/W EP0D0D7图3.2 LCD与单片机串行接口原理在本设计中的LCD液晶显示模块与STC89C52的连线图如下图3.3所示3图3.3 LCD与C52单片机接口按照上图的连接方式,选择LCD的命令寄存器时P2.0=0,选择数据寄存器时P2.0=1;读字符发生器RAM/显示数据RAM时P2.1=1,写字符发生器RAM/显示数据RAM时P2.1=0;对LCD进行操作期间,P2.2即LCD的使能信号应为高。HD44780结构特点及工作原理如下:字符型LCD模块是专用于显示字母、数字、符号等的点阵型液晶显示模块。字符位可以是57或511等点阵组成。每一个点阵字符位都可以显示一个字符,内置HD44780控制IC专用于字符显示的液晶驱动及控制。HD44780的显示缓冲区及用户自定义的字符发生器CGRAM全部内藏在芯片内。HD44780具有简单而功能较强的指令集,可实现字符移动、闪烁等显示功能。HD44780的控制部是液晶显示模块的核心,它控制着HD44780的工作时序和各功能的实现,具有驱动4016点阵的液晶显示器件的能力。3.2 温湿度数据采集模块3.2.1 SHT10简介SHT10型传感器是单片、多用途的智能传感器,其中不仅包含基于湿敏电容器的微型相对湿度传感器和基于带隙电路的微型温度传感器,而且还有14位的A/D转换器和2线串行接口。能输出经过校准的相对湿度和温度的串行数据,所以系统中不再使用传统设计需要的多路转换开关、A/D转换器及信号调理电路,系统结构比较紧凑和简单,SHTl0能在同一位置测量相对湿度和温度。它的内部结构如图3.4所示 图3.4 SHT10内部原理图SHT10的引脚比较少,使用方便,其引脚排列如图九所示。SHT10型智能传感器的相对湿度测量范围是0100%。分辨率达0.03%,最高精度为2%RH,温度测量范围是-40+123.8,分辨率为0.1。电源电压范围是+2.5V+5.5V,响应时间小于3s。3.2.2 SHT10引脚SHT10引脚功能如图3.5所示: 图3.5 SHT10芯片SHT10传感器引脚功能表如下表3.2所示表3.2 SHT10引脚功能表引脚号引脚名称功能1GND接地端2DATA串行数据输入输出端3SCK串行时钟输入端4VDD接电源端采用温湿度传感器SHT10,SHT10传感器是一款由多个传感器模块组成的单片全校准数字输出相对湿度的传感器。它采用了特有的专业级CMOS技术,保证了极高的可靠性和卓越的长期稳定性。整个芯片包括校准的相对温度和湿度传感器。它们与1个14位的A/D转换器相连;此外还有一个I2C总线串行接口电路。 每一个传感器都是在极为精确的湿度室中进行校准。校准系数预先存放在OTP内存中。在测量校准的过程中都要用到这些系数9。其特点如下:电源引脚SHT10 的供电电压为2.45.5V。串行接口 (两线双向)SHT10 应用的的串行接口技术,在传感器信号读取及电源损耗方面都做了优化处理;串行数据(DATA)DATA三态门用于数据的读取。DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。为避免信号冲突,微处理器应驱动DATA在低电平。需要一个外部的上拉电阻(例如:10k)将信号提拉至高电平。上拉电阻通常已包含在微处理器的I/O电路中。3.2.3 SHT10命令 SHT10命令如下表3.3所列:表3.3 SHT10命令命令 代码 保留0000X 测量温度00011 测量时度00101读状态寄存器00111写状态寄存器00110保留0101X-1110X软复位、清楚状态寄存器为默认值11110 3.2.4 时钟DS1302简介DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。DS1302 的控制字如图3.6所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 1RAM CK/A4A3A2A1A0RAM K/ 图3.6 DS1302控制字3.2.5 时钟DS1302引脚 DS1302引脚如图3.7所示:其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。 图3.7 DS1302芯片3.2.6 DS1302 I/0接口 在控制指令字输入后的下一个SCK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。 此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 3.2.7 DS1302和SHT10与单片机接口DS1302时钟芯片和SHT10传感器与单片机接口片路组成的单片机最小系统如下图3.8所示:图3.8 DS1302和SHT10与C52接口电路3.2.8温湿度数据测量原理:命令时序 发送一组“传输启动”序列进行数据传输初始化,如图3.9所示。其时序为:当SCK为高电平时DATA翻转保持低电平,紧接着SCK产生1个发脉冲,随后在SCK为高电平时DATA翻转保持高电平。图3.9 数据传输初始化紧接着的命令包括3个地址位(仅支持“000”)和5个命令位。SHT10指示正确接收命令的时序为:在第8个SCK时钟的下降沿之后将DATA拉为低电平(ACK位),在第9个SCK时钟的下降沿之后释放DATA(此时为高电平)。 测量时序(RH和T)“00000101”为相对湿度(RH)量,“00000011”为温度()测量。发送一组测量命令后控制器要等待测量结束,这个过程大约需要20ms完成其81位的测量。测量时间随内部晶振的速度而变化,最多能够缩短30%。SHT10下拉DATA至低电平而使其进入空闲模式。重新启动SCK时钟读出数据之前,控制器必须等待这个“数据准备好”信号。接下来传输2个字节的测量数据和1个字节的CRC校验。MCU必须通过拉低DATA来确认每个字节。所有的数据都从MSB开始,至LSB有效。对于8位数据,第1个字节(高8位)数据无意义。确认CRC数据位之后,通信结束。如果不使用CRC-8校验,控制器可以在测量数据LSB位之后,通过保持ACK位为高电平来结束本次通信。测量和通信结束后,SHT10自动进入休眠状态模式。 复位时序如果与SHT10的通信发生中断,可以通过随后的信号序列来复位串口,如图3.10所示。保持DATA为高电平,触发SCK时钟9次或更多,接着在执行下次命令之前必须发送一组“传输启动”序列。这些序列仅仅复位串口,状态寄存器的内容仍然保留。图3.10 数据测量过程SHT10通过状态寄存器实现初始状态设定。读状态寄存器时序如图3.13所示。图3.11 SHT10读时序写状态寄存器时序如图3.12所示。 图3.12 SHT10写时序3.3蜂鸣器报警电路3.3.1 报警电路简介蜂鸣器报警电路如图3.13所示,当所测温度湿度高于设定的上限值或者低于设定的下限值时单片机STC89C52的P1口的P1.0脚电平改变,三极管导通,蜂鸣器鸣响直至上下限恢复至设定要求。图3.13 报警电路3.4键盘电路每个按键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用5路单键端口直接扫描方式,分别接单片机P2.3-P2.7。S1-S5分别实现加、减、保存、切换、退出等功能。加键键能实现报警温湿度上下限的调整,保存键能将实时检测的数据保存至AT24C04,以便所需时候调用。切换键能实现时间和检测数据的模式切换。退出键退出调整模式。按键电路如图3.14所示:图3.14 键盘电路按键功能如下表3.4所示:表3.4 按键功能表 S1 S2 S3 S4 S5时间日期模式切换键 加键 减键 退出键温湿度保存键 3.5复位电路复位电路采用手动按键复位的方式,采用上位电平来实现复位,接单片机RST端按下按键时RET引脚为高电平,实现单片机复位功能。其具体电路如下图3.15所示:图3.15 复位电路 3.6串口电平转换电路目前,广泛使用的串行数据接口标准有RS-232,RS-422与RS-485三种。其中RS-232是美国电子工业协会正式公布的串口总线标准,也是目前最为常用的串行接口标准,用来实现计算机与计算机之间,计算机与外设之间的数据通讯。串行通信接口的基本任务是实现数据格式化。来自CPU的是普通的并行数据,接口电路应具有实现不同串行通信方式下的数据格式化的任务。具体任务是:(l)进行串并转换;(2)控制数据传输速率;(3)进行错误检测;(4)进行TTL与EIA电平转换;(5)提供EIA-RS-232接口标准所要求的信号线。由于CMOS电平和RS-232电平不匹配,因此要实现单片机和PC机之间的通信,必须在它们之间加接电平转换器。系统设计采用MAXIM公司的RS-232接口芯片MAX232,这是一种标准的RS-232接口芯片。MAX232只需+5V电源供电,其内部的电源变化成士10V电源用于RS232通信。该芯片集成有两路收发器,可将单片机输入的TTL/CMOS电平转换为RS232电平发送给PC机,或将从PC机接收的RS232电平转换为TTL/CMOS电平发送给单片机。其电路如图3.16所示:图3.16 串口电平转换电路其中T2OUT连接上位机串口的RX端,R2IN连接上位机串口的TX端,R2OUT和T2IN是TTL/CMOS发送器的输出和输入端,分别连接单片机的RX(P30)和TX(P31)端。3.7电源电路硬件设备的正常运行都离不开系统的供电,电源电路在系统设计时往往需要单独加以考虑,它有可能成为影响系统性能甚至运行的关键原因。在系统中MAX232、LCD、AT8C51、DS18B20等芯片都需要5V的供电电压,在系统开发过程中可以使用电脑USB供电。本设计采用220交流供电,经整流、变压等变为5V直流稳压。其电路如图3.17所示: 图3.17 电源电路3.8数据存储器出于对历史测量数据的需要,本设计采用拉单独的数据存储模块,其电路如下图3.18所示 图3.18 数据存储器电路SCK用于写时钟信号,SDA用于读数字信号。WR用于读数据,RD用于写数据。WR为低电平时,SCK端口读时钟信号,温湿度实时测量数据储存到AT24C04。RD为低电平时,SDA端口写数字信号,AT24C04将所保存的实时测量温湿度数据写入单片机通过LCD显示。4系统软件设计4.1系统主程序流程图主程序实现的功能是上电后对系统初始化以及主模块的调用,主模块包括:按键、中断、延时、显示、报警等。初始化结束后,程序开始执行按键扫描程序,处理按键输入及输入数据的显示等任务。然后,程序进入中断服务子程序。系统主程序流程图如图4.1所示开始系统初始化按键?延时0.2s读上下限值读取测量值LCD显示数据超限?延时0.8s设置上下限报警值SHT10通讯重启动报警,发出控制信号NNYY 图4.1 系统总流程图 4.2 温湿度数据采集流程图数据测量开始时,首先对DS1302和SHT10进行初始化,设置传感器的状态。测量开始时,“00000101”为相对湿度(RH)量,“00000011”为温度()测量。启动数据传输时,SCK为高电平时,数字信号DATA发生翻转。在第8个SCK时钟的下降沿之后将DATA拉为低电平(ACK位),在第9个SCK时钟的下降沿之后释放DATA(此时为高电平),完成一次数据测量。其流程图如下图4.2所示:开始设置传感器状态发送启动传输发送测量指令N指令判断?Error+1Y读测量值NError+1数据判断?Y测量值化数字量结束 图4.2 数据采集流程图 4.3 LCD显示流程图 单片机向LCD1602指令寄存器写入指令代码来选择参数寄存器,再通过数据寄存器向参数寄存器写入参数值,以实现功能的设置 LCD1602向单片机提供一个忙 BF 标志位:BF= 1表示当前LCD1602处于内部运行状态,不接受单片机的访问。读忙标志位除外,BF =0表示LCD1602允许单片机的访问。单片机在访问LCD1602时都要判断BF是否为0,单片机可在RS =1下从数据总线D7位上读出BF标志值。01H设置字体,02H设置显示域,04H设置光标位置。接收到0CH指令时,写入数据寄存器的数据送入光标地址指针指向的显示RAM单元。光标地址指针将随着每次数据的写入而自动加1修改。其流程图如下图4.3所示:开始写指令函数写数据到LCD初始化LCD显示返回YNLCD忙?图4.3 LCD显示流程图4.4 按键程序流程图程序开始时,首先判断有无按键,无按键则程序结束,有按键则引入堆栈对各个功能按键进行选择,在实现各个功能按键的相应操作后,一次出堆栈,程序结束。其流程图如下图4.4所示写数据到AT24C04模式切换加键减键数据保存退出调整温湿切换数据加1数据减1开始按键?结束YN 图4.4 按键程序流程图4.5 中断子程序流程图串口中断子程序主要完成串口的中断响应,中断程序中有两个标志位,一个是允许接收数据块标志,另一个是数据块接收完毕标志。进入中断程序后,首先判断允许接收数据块标志是否置位。若置位,接收的数据放入数据块指定区域,并修改数据块指针,为接收下一个数据作准备,当接收完一个完整的数据块后,清除允许接收数据块标志,置位数据块接收完毕标志;若没有置位,判断是否是起始码?若是起始码,则置位允许接收数据块标志,初始化数据块指针。为接收下一个数据做好准备。其流程图如下图4.5所示:保护现场接收地址字节地址符合否?查询接收数据包校验和正确否?处理接收数据232为发送状态恢复现场中断入口返回232为发送状态发送5AH发送A5H及数据232为接收状态NYNY 图4.5 中断子程序流程图4.6 AT24C04读写程序流程图RD为低电平时,执行读操作,单片机数据存入AT24C04。 WR为低电平时,执行写操作,AT24C024把数据写入单片机。其流程图如下图4.6所示:开始初始化写信号结束指令判断?读信号NY图4.6 AT24C04读写程序5 结论本次设计以AT89C52的为核心;整个系统采用模块化设计。可以分为八个模块,分别为:单片机AT89C52的实时控制模块、LCD的实时显示模块、报警电路、串口通讯接口电路模块、按键复位电路模块、5路单键盘输入控制模块、AT24C04数据存储模块,时钟电路及SHT10传感器数据采集部分。绘制了各模块硬件电路图及软件流程图,并根据设计要求编写各功能模块程序。使用SHT10温湿度传感器和DS1302时钟芯片完成实时数据采集;通过AT89C52的引脚与LCD引脚的结合,实现了LCD的数据实时显示功能;串口通讯的实现依赖于MAX232芯片的功能可以实现下载程序和数据;使用5路单键键盘实现参数修改。总体系统设计能实现对环境温度湿度实时检测,数字显示及参数修改,报警。相对湿度在0%100%之间,温度量程范围在-10100度之间,测量精度达到0.5%。通过本设计,进一步加深了对单片机功能和单片机最小系统的认识,熟悉传感器原理,对模电数电只是加深理解。学会熟练操作Proteus软件。在硬件电路模块化设计和软件流程图设计中遇到很多问题:如硬件模块的原理及各芯片的功能等。在设计过程中参考了大量技术资料,加深自身资料收集整理转化能力。谢辞参考文献1 金以慧.过程控制M.北京:清华大学出版社,20092 张毅,曹丽.自动检测技术及仪表控制系统M.北京:化学工业出版社,20083 周泽魁.控制仪表与计算机控制装置M.北京:化学工业出版社,20084 王俊杰.检测技术与仪表M.武汉:武汉理工出版社,20095 胡寿松.自动控制原理M.北京:科学出版社,20076 于海生.微型计算机控制技术M.北京:清华大学出版社,2008 7 孟志永.单片机外围电路设计M.北京:电子工业出版社,2006 8 杨亭.单片机C51程序设计教程与实验M.北京:北京航空航天大学出版社,2006 9 李常林.Visual Basic串口通信技术与典型实例M.北京:清华大学出版社,2006.3-4.10 周兴华,手把手教你学单片机C程序设计M.北京:北京航空航天大学出版社,2007 11 文张斌.温湿度一体化变送器的设计M. 上海:上海交通大学出版社2008,24(9-1) 12 张志远.传感器与仪器仪表M.北京:化学工业出版社200813 于华丽, 赵晓顺, 刘淑霞 ,王家忠.传感器SHT71在温湿度检测系统中的应用J.农机化研究.2008.14孟臣,李敏.SHT71数字式温湿度传感器原理与应用J.世界电子元器件,2003.8 15黄继雄, 陈仔俊.新型SHT71温湿度传感器的数据通讯校验J.控制工程,2005.1217何立民.单片机应用技术选编(6)M.北京:北京航空航天大学出版社,1998.1018陈雪丽.单片机原理及接口技术M.北京:化学工业出版社,2005.219张有德.单片微型机原理、应用与实验M.上海:复旦大学出版社,2006.520何立明.单片机应用程序设计技术M.北京:航空航天大学出版社,2002.11 21 Zadeh L A.Fuzzy SetsJ.Information and Control. 1965(8):338-35322 ANALOG DEVICES INC.Design-in Reference ManualM,1994附录1系统软件源程序void show_time(); /液晶显示程序/*1602液晶显示部分子程序*/Port Definitions*sbit LcdRs= P25;sbit LcdRw= P26;sbit LcdEn = P27;sfr DBPort = 0x80;/P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口/内部等待函数*unsigned char LCD_Wait(void)LcdRs=0;LcdRw=1;_nop_();LcdEn=1;_nop_(); LcdEn=0;return DBPort;/向LCD写入命令或数据*#define LCD_COMMAND0 / Command#define LCD_DATA1 / Data#define LCD_CLEAR_SCREEN0x01 / 清屏#define LCD_HOMING 0x02 / 光标返回原点void LCD_Write(bit style, unsigned char input)LcdEn=0;LcdRs=style;LcdRw=0;_nop_();DBPort=input;_nop_();/注意顺序LcdEn=1;_nop_();/注意顺序LcdEn=0;_nop_();LCD_Wait();/初始化LCD*void LCD_Initial()LcdEn=0;LCD_Write(LCD_COMMAND,0x38); /8位数据端口,2行显示,5*7点阵LCD_Write(LCD_COMMAND,0x38);LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); /开启显示, 无光标LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); /清屏LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); /AC递增, 画面不动/液晶字符输入的位置*void GotoXY(unsigned char x, unsigned char y)if(y=0)LCD_Write(LCD_COMMAND,0x80|x);if(y=1)LCD_Write(LCD_COMMAND,0x80|(x-0x40);/将字符输出到液晶显示void Print(unsigned char *str)while(*str!=0)LCD_Write(LCD_DATA,*str);str+;/*DS1302时钟部分子程序*/typedef struct _SYSTEMTIME_unsigned char Second;unsigned char Minute;unsigned char Hour;unsigned char Welunsigned char Day;unsigned char Month;unsigned char Year;unsigned char DateString11;unsigned char TimeString9;SYSTEMTIME;/定义的时间类型SYSTEMTIME CurrentTime;#define AM(X)X#define PM(X)(X+12) / 转成24小时制#define DS1302_SECOND0x80 /时钟芯片的寄存器位置,存放时间#define DS1302_MINUTE0x82#define DS1302_HOUR0x84 #define DS1302_WEEK0x8A#define DS1302_DAY0x86#define DS1302_MONTH0x88#define DS1302_YEAR0x8C void DS1302InputByte(unsigned char d) /实时时钟写入一字节(内部函数) unsigned char i; ACC = d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025温州瑞安市事业单位招聘97人-统考笔试参考题库附答案解析
- 2025四川成都市第七人民医院第二批次编外招聘工作人员52人笔试模拟试题及答案解析
- 2025天津生态城环保有限公司一般管理岗人员社会招聘1人笔试参考题库附答案解析
- 2025甘肃陇南市面向协议培养师范毕业生招聘教师100人笔试参考题库附答案解析
- 2025北京中智科技总部附下属企业招聘3人笔试参考题库附答案解析
- 2025年甘肃省定西市通渭县城区学校紧缺专业教师交流选调59人考试参考题库附答案解析
- 2025文山州麻栗坡县六河乡公开选聘储备村级后备干部(18人)笔试模拟试题及答案解析
- 芭蕾舞毕业论文题目
- 法律系中专毕业论文
- 2025浙江金华市正信公证处招聘工作人员笔试模拟试题及答案解析
- 2024年中级统计师《统计工作实务》真题及答案解析
- 小学2024-2025学年度第二学期道德与法治课程计划
- 河北省唐山市路北区2025届八年级数学第二学期期末达标检测模拟试题含解析
- 缴纳社保免责协议书
- 平面广告设计基本原则试题及答案
- 《癫痫持续状态》课件
- 患者十大安全目标(2025) 2
- 《钓鱼的艺术教学》课件
- 2025-2030在线语言教育行业发展分析及前景趋势与投资研究报告
- T-CACM 1064-2018 针刀医学临床 通.用要求
- 天津市南开区2025年数学五年级第二学期期末综合测试试题含答案
评论
0/150
提交评论