1、毕业设计论文基于at89c51单片机温湿度显示报警系统设计概要引言基于AT89C51单片机温湿度显示报警系统设计1 引言1.1 选题背景20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快1。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势2。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法3。从前必
2、须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命4。单片机模块中最常见之一的是传感器,温湿度显示报警系统是一种基于单片机的用数字电路技术实现温湿度控制的装置,在实践社会生产当中拥有广泛的应用。1.2 目的和意义随着社会的发展,人们对时间和环境中的温度及湿度的要求越来越高,尤其在日常的生活中和人们的生活和健康有着紧密的联系,特别是当人们乘坐公共交通工具时,温湿度以及实时时间和人们的出行都有着密切的联系。温湿度控制在日常生活中使用比较普遍, 如各种仪器控制箱、温室或生产车间的温度湿度控制、空调列车车厢
3、空气环境的控制等5。常见的低端产品多采用机械指针式或水银柱式温湿度计, 体积小、质量轻、价格低、安装简便。但是, 此类产品测量精度低, 没有LED 显示屏, 不能向智能化方向发展, 不利于进行功能扩展,如不能自动报警6。目前,虽然在工业生产中和科研实验中通过对温湿度测量来进行自动控制的设备越来越普及,应用场合也越来越多。但是,随之而来的问题是如何能够测得精确的温湿度以保证自动控制设备能够正确地发出控制指令来控制生产过程。另一方面,如果温度或者湿度过高过低可能会对一些设备中的一些半导体元器件造成损坏7。因此,对于自动第1页(共43页)基于单片机温湿度显示报警系统设计温湿度报警的需求也在逐渐增加。
4、本文基于以上方面的考虑,研究并设计了一种基于单片机的自动温湿度显示与报警系统。一般温湿度控制系统中的温湿度测量均采用热敏电阻与湿敏电容,这种传统的模拟式温湿度传感器一般都需要设计信号调理电路并经过复杂的校准和标定过程,因此测量精度难以保证,且在线性度、重复性、互换性等方面也存在一定问题8。这种传感器只适合那些测量点数较少,对精度要求不高的场合。因此设计出一款基于单片机的精度高、稳定性好、成本低的温湿度显示报警系统具有重要实际意义。1.3 技术要求和设计范围现代社会越来越多的实验都要求在严格的环境条件下完成,而温度和湿度是实验室最基本的环境条件,也是对实验影响较大的因素。一般温湿度控制系统中的温
5、湿度测量均采用热敏电阻与湿 敏电容9,这种传统的模拟式温湿度传感器一般都需要设计信号调理电路并经过复杂的校准和标定过程,因此测量精度难以保证,且在线性度、重复性、互换性等方面也存在一定问题。这种传感器只适合那些测量点数较少,对精度要求不高的场合。因此设计出一款精度高、稳定性好、成本低的温湿度检测控制系统将具有一定的市场。本系统采用具有高精度10、防干扰等优点的数字式传感器 SHT11,不需要外部元件,可适配各种单片机。这为开发新一代的温湿度测控系统提供了有利条件,同时也有助于将温湿度测控技术提高到新的水平。1.4 发展现状单片机诞生于20世纪70年代末,经历了SCM、MCU、SOC三大阶段11
6、。(1)SCM即单片微型计算机阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。创新模式获得成功,奠定了SCM与通用计算机完全不同的发展道路。(2)MCU即微控制器阶段12,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。(3)单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素13,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SOC化趋势。随着微电子技术、IC设计、EDA工具的发展14,基于SOC的单片机应用系统设计会有较大的发展。第2页(共43页)方案论证智能温度传感器在20世纪90年
7、代中期问世。它是微电子技术、计算机技术和自动测试技术的结晶。目前,国际上已开发出多种智能温度传感器系列产品。智能温度传感器内部包含温度传感器、A/D传感器15、信号处理器、存储器和接口电路。有的产品还带多路选择器、中央控制器、随机存取存储和只读存储器。智能温度传感器能输出温度数据及相关的温度控制量,适配各种微控制器,并且可通过软件来实现测试功能,温度计也越来越智能化。跟电子温度计一样湿度计随着湿度传感器的发展趋于成熟。随着智能检测系统的飞速发展,基于单片机的温湿度检测系统将多传感器系统结合在一起。如何把多传感器集中于一个检测控制系统,综合利用来自多传感器的信息,获得对被测对象的可靠了解和解释,
8、以利于系统做出正确的响应、决策和控制以及报警,是智能检测控制统中需要解决的重要问题。2 方案论证2.1 方案设计思路温湿度报警系统的设计以单片机AT89C51为核心,通过控制单片机的P1口的一些端口来调节当前温湿度的显示,完成了温湿度的显示报警功能,在程序中设置温湿度范围后,达到指定范围后让LED灯的闪亮来实现温湿度控制的效果,让LED1602液晶屏接到单片机的串口上,赋值来控制1602的显示。因此,整个方案设计包含四个部分,即:单片机最小系统部分、显示部分、温湿度数据采集部分、报警部分。2.2 方案选择方案:单片机编程,用单片机设计电路,充分利用好AT89C51单片机的I/O口,使用软硬件结
9、合的方式,具体的基本框图如图161所示:图1 单片机设计电路的基本框图第3页(共43页)基于单片机温湿度显示报警系统设计方案选择:从上述原理图看来,这种设计方案电路结构简单,条理清晰,调试也相对方便,易于实现。2.3 设计流程对于温湿度显示报警系统的设计,先用PROTEUS做电路仿真,再在KEIL软件中编写程序生成源代码,最后将PROTEUS和KEIL连接起来进行在线仿真。设计流程如图172所示。图2 系统设计流程图2.4 软件环境2.4.1 PROTEUS软件本设计主要用Proteus7.5电子设计软件进行电子线路的设计和仿真。Proteus软件的功能很强大,它不仅可以在线仿真模拟电子,数字
10、电子和单片机,还可以将设计直接转换成PCB版图18,因此,受到众多电子工程师的喜爱。电路原理图的设计是仿真中的第一步,也是非常重要的一步。电路原理图设计得好坏将直接影响到后面的工作。首先,原理图的正确性是最基本的要求,因为在一个错误的基础上所进行的工作是没有意义的;其次,原理图应该布局合理,这样不仅可以尽量避免出错,也便于读图、便于查找和纠正错误;最后,在满足正确性和布局合理的前提下应力求原理图的美观。电路原理图的设计过程可分为以下几个步骤:(1)置电路图纸参数及相关信息根据电路图的复杂程度设置图纸的格式、尺寸、方向等参数以及与设计有关的信息,为以后的设计工作建立一个合适的工作平面。(2)装入
11、所需要的元件第4页(共43页)方案论证将所需的元件装入设计系统中,以便从中查找和选定所需的元器件。(3)设置元件将选定的元件放置到已建立好的工作平面上,并对元件在工作平面上的位置进行调整,对元件的序号、参数、显示状态等进行定义和设置,以便为下一步的仿真工作打好基础。(4)连线电路图利用Proteus所提供的各种工具、命令进行画图工作,将事先放置好的元器件用具有电气意义的导线、网络标号等连接起来,布线结束后,一张完整的电路原理图基本完成。(5)调整、检查和修改利用Proteus所提供的各种工具对前面所绘制的原理图做进一步的调整和修改。(6)补充完善对原理图做一些相应的说明、标注和修饰,增加可读性
12、和可观性。(7)仿真这部分工作主要是对设计完成的原理图结合KEIL在线仿真,调试并修改程序。2.4.2 Keil C51软件Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现
13、高级语言的优势。单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种Keil软件图标是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂第5页(共43页)基于单片机温湿度显示报警系统设计商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接
14、器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。下面详细介绍Keil C51开发系统各部分
15、功能和使用。(1)Keil C51单片机软件开发系统的整体结构:C51工具包的整体结构,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目
16、标板进行调试,也可以直接写入程序存贮器如EPROM中。(2)使用独立的Keil仿真器时,注意事项:仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。 仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。3 过程论述3.1 AT89C51单片机最小系统3.1.1 AT89C51单片机最小系统原理图最小系统包括晶体振荡电路、复位开
17、关和电源部分19。下面图3为AT89C51单片机的最小系统电路图。第6页(共43页)过程论述图3 单片机最小系统电路图3.1.2 电源引脚Vcc 40 电源端 GND 20 接地端工作电压为5V,另有AT89LV51工作电压则是2.7-6V, 引脚功能一样。3.1.3 外接晶体引脚XTAL1 19XTAL2 18第7页(共43页)基于单片机温湿度显示报警系统设计图4 晶振连接的内部、外部方式图晶振连接的内部、外部方式如上图4所示。XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲
18、二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可
19、能的选择陶瓷电容,电容值约为22F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。3.1.4 复位RST 9在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位是由外部的第8页(共43页)过程论述复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑
20、制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。当时钟频率选用6MHz时,C取22F,Rs约为200,Rk约为1K。复位操作不会对内部RAM有所影响。常用的复位电路如下图6所示:图5 常用复位电路图3.1.5 输入输出引脚(1) P0端口P0.0-P0.7 P0是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端。作为输出口时能驱动8个TTL。对内部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。在访问外部程序和外部数据存储器时,P0口是
21、分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。(2) P1端口P1.0P1.7 P1是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接收低8位地址信息。第9页(共43页)基于单片机温湿度显示报警系统设计(3) P2端口P2.0P2.7 P2是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时,P2口送出高8
22、位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。(4) P3端口P3.0P3.7 P2是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接控制信息。除此之外P3端口还用于一些专门功能,具体如下表1。表1 P3端口引脚兼用功能表3.2 LCD1602显示系统3.2.1 LCD1602显示系统液晶显示器普遍地用于直观地显示数字系统或字符的运行状态和工作数据,按照材料及产品工艺20,单片机应用系统中常用的显示器有: 发光二极管LED显示器、液晶LCD显示器、CRT显示器等
23、。LCD显示器是现在最常用的显示器之一,其仿真电路图如下所示。第10页(共43页)过程论述图6 LED1602显示器的符号 3.2.2 液晶显示器简介(1) 在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。发光管和LED数码管比较常用,软硬件都比较简单,在前面章节已经介绍过,在此不作介绍,本章重点介绍字符型液晶显示器的应用。在单片机系统中应用晶液显示器有以下几个优点:显示质量高由于液晶
24、显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。数字式接口液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。功耗低相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。第11页(共43页)基于单片机温湿度显示报警系统设计3.2.3 LCD1602引脚功能说明1602LCD 采用标准的14 脚(无背光)或16 脚(带
25、背光)接口,各引脚接口,编号符号引脚说明如下所示:第1 脚:VSS 为地电源。第2 脚:VDD 接5V 正电源。第3 脚:VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生鬼影,使用时可以通过一个10K 的电位器调整对比度。第4 脚:RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5 脚:R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS 和R/W共同为低电平时可以写入指令或者显示地址,当RS 为低电平R/W 为高电平时可以读忙信号,当RS 为高电平R/W 为低电平时可以写入数据。第6 脚:E 端为使能端,当E 端
26、由高电平跳变成低电平时,液晶模块执行命令。第12页(共43页)过程论述第714 脚:D0D7 为8 位双向数据线。 第15 脚:背光源正极。 第16 脚:背光源负极。 3.2.4 LCD1602的指令说明及时序第13页(共43页)基于单片机温湿度显示报警系统设计基本操作时序表与读写操作时序如表3和图8,9所示。表3 基本操作时序表 第14页(共43页)过程论述图8 读操作时序图9 写操作时序 3.2.5 程序流程图(详细程序见附录)第15页(共43页)基于单片机温湿度显示报警系统设计图10 程序流程图 3.3 SHT10传感器3.3.1 温湿度传感器电路图图11 温湿度传感器电路图 第16页(
27、共43页)过程论述3.3.2 产品简介SHT10属于Sensirion温湿度传感器家族中的贴片封装系列22。传感器将传感元件和信号处理电路集成在一块微型电路板上,输出完全标定的数字信号。传感器包括一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件,并在同一芯片上,与14 位的A/D 转换器以及串行接口电路实现无缝连接。因此,该产品具有品质卓越、响应迅速、抗干扰能力强、性价比高等优点。传感器芯片此说明书适用于SHT1x-V4。SHT1x-V4 是第四代硅传感芯片,除了湿度、温度敏感元件以外,还包括一个放大器,A/D 转换器,OTP 内存和数字接口。材质传感器的核心为CMOS芯片,外围材料
28、顶层采用环氧LCP ,底层为FR4。传感器符合ROHS 和WEEE 标准,因此不含Pb, Cd, Hg, Cr(6+), PBB,PBDE。3.3.3 SHT10引脚图12 SHT10引脚图 (1)电源引脚VDD、GNDSHT10的供电电压范围为2.4-5.5V, 建议供电电压为3.3V。在电源引脚(VDD,GND)之间须加一个100nF的电容,用以去耦滤波。SHT10 的串行接口,在传感器信号的读取及电源损耗方面,都做了优化处理;传感器不能按照I2C协议编址,但是,如果I2C 总线上没有挂接别的元件,传感器可以连接到I2C 总线上,但单片机必须按照传感器的协议工作。(2)串行时钟输入SCKS
29、CK 用于微处理器与SHT10之间的通讯同步。由于接口包含了完全静态逻辑,第17页(共43页)基于单片机温湿度显示报警系统设计因而不存在最小SCK频率。(3)串行数据 DATADATA 引脚为三态结构,用于读取传感器数据 . 当向传感器发送命令时, DATA 在SCK 上升沿有效且在SCK 高电平时必须保持稳定。DATA 在SCK 下降沿之后改变。为确保通讯安全,DATA 的有效时间在SCK 上升沿之前和下降沿之后应该分别延长至 TSU and THO 参见图 11。 当从传感器读取数据时, DATA TV 在 SCK 变低以后有效,且维持到下一个SCK 的下降沿 。为避免信号冲突,微处理器应
30、驱动DATA 在低电平。需要一个外部的上拉电阻(例如:10k)将信号提拉至高电平。上拉电阻通常已包含在微处理器的I/O 电路中加重的DATA线由传感器控制,普通的DATA 线 由单片机控制. 有效时间依据SCK 的时序.图13 时序图图14 启动传输时序图后续命令包含三个地址位(目前只支持000),和五个命令位。SHT1x 会以下第18页(共43页)过程论述述方式表示已正确地接收到指令:在第8 个SCK 时钟的下降沿之后,将DATA 下拉为低电平(ACK 位)。在第9 个SCK时钟的下降沿之后,释放DATA(恢复高电平)。3.3.4 传感器的通讯(1)启动传感器首先,选择供电电压后将传感器通电
31、,上电速率不能低于1V/ms。通传感器需要11ms 进入休眠状态,在此之前不允许对传感器发送任何命令。(2 )发送命令用一组 启动传输时序,来完成数据传输的初始化。它包括:当SCK 时钟高电平时DATA 翻转为低电平,紧接着SCK 变为低电平,随后是在SCK时钟高电平时DATA 翻转为高电平。参见图12。启动传输 时序后续命令包含三个地址位(目前只支持000),和五个命令位。SHT1x 会以下述方式表示已正确地接收到指令:在第8 个SCK 时钟的下降沿之后,将DATA 下拉为低电平(ACK 位)。在第9 个SCK时钟的下降沿之后,释放DATA(恢复高电平)。命令 代码预留 0000x温度测量00011湿度测量00101读状态寄存器 00111写状态寄存器 00110预留 0101x-1110x软复位, 接口复位, 状态寄存器复位即恢复为默认状态.在要发送下一个命令前,至少等待11ms.(3)温湿度测量23发布一组测量命令(00000101表示相对湿度RH,00000011表示温度T)后,控制器要等待测量结束。这个过程需要大约20/80/320ms,分别对应8/12/14bit 测量。确切的时间随内部晶振速度,最多可能有-30%的变化。SHT1x 通过下拉D
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1