引言第1页(共43页)基于AT89C51单片机温湿度显示报警系统设计1引言1.1选题背景20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快[1]。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势[2]。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法[3]。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命[4]。单片机模块中最常见之一的是传感器,温湿度显示报警系统是一种基于单片机的用数字电路技术实现温湿度控制的装置,在实践社会生产当中拥有广泛的应用。1.2目的和意义随着社会的发展,人们对时间和环境中的温度及湿度的要求越来越高,尤其在日常的生活中和人们的生活和健康有着紧密的联系,特别是当人们乘坐公共交通工具时,温湿度以及实时时间和人们的出行都有着密切的联系。温湿度控制在日常生活中使用比较普遍,如各种仪器控制箱、温室或生产车间的温度湿度控制、空调列车车厢空气环境的控制等[5]。常见的低端产品多采用机械指针式或水银柱式温湿度计,体积小、质量轻、价格低、安装简便。但是,此类产品测量精度低,没有LED显示屏,不能向智能化方向发展,不利于进行功能扩展,如不能自动报警[6]。目前,虽然在工业生产中和科研实验中通过对温湿度测量来进行自动控制的设备越来越普及,应用场合也越来越多。但是,随之而来的问题是如何能够测得精确的温湿度以保证自动控制设备能够正确地发出控制指令来控制生产过程。另一方面,如果温度或者湿度过高过低可能会对一些设备中的一些半导体元器件造成损坏[7]。因此,对于自动基于单片机温湿度显示报警系统设计第2页(共43页)温湿度报警的需求也在逐渐增加。本文基于以上方面的考虑,研究并设计了一种基于单片机的自动温湿度显示与报警系统。一般温湿度控制系统中的温湿度测量均采用热敏电阻与湿敏电容,这种传统的模拟式温湿度传感器一般都需要设计信号调理电路并经过复杂的校准和标定过程,因此测量精度难以保证,且在线性度、重复性、互换性等方面也存在一定问题[8]。这种传感器只适合那些测量点数较少,对精度要求不高的场合。因此设计出一款基于单片机的精度高、稳定性好、成本低的温湿度显示报警系统具有重要实际意义。1.3技术要求和设计范围现代社会越来越多的实验都要求在严格的环境条件下完成,而温度和湿度是实验室最基本的环境条件,也是对实验影响较大的因素。一般温湿度控制系统中的温湿度测量均采用热敏电阻与湿敏电容[9],这种传统的模拟式温湿度传感器一般都需要设计信号调理电路并经过复杂的校准和标定过程,因此测量精度难以保证,且在线性度、重复性、互换性等方面也存在一定问题。这种传感器只适合那些测量点数较少,对精度要求不高的场合。因此设计出一款精度高、稳定性好、成本低的温湿度检测控制系统将具有一定的市场。本系统采用具有高精度[10]、防干扰等优点的数字式传感器SHT11,不需要外部元件,可适配各种单片机。这为开发新一代的温湿度测控系统提供了有利条件,同时也有助于将温湿度测控技术提高到新的水平。1.4发展现状单片机诞生于20世纪70年代末,经历了SCM、MCU、SOC三大阶段[11]。(1)SCM即单片微型计算机阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。(2)MCU即微控制器阶段[12],主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。(3)单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素[13],就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SOC化趋势。随着微电子技术、IC设计、EDA工具的发展[14],基于SOC的单片机应用系统设计会有较大的发展。方案论证第3页(共43页)智能温度传感器在20世纪90年代中期问世。它是微电子技术、计算机技术和自动测试技术的结晶。目前,国际上已开发出多种智能温度传感器系列产品。智能温度传感器内部包含温度传感器、A/D传感器[15]、信号处理器、存储器和接口电路。有的产品还带多路选择器、中央控制器、随机存取存储和只读存储器。智能温度传感器能输出温度数据及相关的温度控制量,适配各种微控制器,并且可通过软件来实现测试功能,温度计也越来越智能化。跟电子温度计一样湿度计随着湿度传感器的发展趋于成熟。随着智能检测系统的飞速发展,基于单片机的温湿度检测系统将多传感器系统结合在一起。如何把多传感器集中于一个检测控制系统,综合利用来自多传感器的信息,获得对被测对象的可靠了解和解释,以利于系统做出正确的响应、决策和控制以及报警,是智能检测控制统中需要解决的重要问题。2方案论证2.1方案设计思路温湿度报警系统的设计以单片机AT89C51为核心,通过控制单片机的P1口的一些端口来调节当前温湿度的显示,完成了温湿度的显示报警功能,在程序中设置温湿度范围后,达到指定范围后让LED灯的闪亮来实现温湿度控制的效果,让LED1602液晶屏接到单片机的串口上,赋值来控制1602的显示。因此,整个方案设计包含四个部分,即:单片机最小系统部分、显示部分、温湿度数据采集部分、报警部分。2.2方案选择方案:单片机编程,用单片机设计电路,充分利用好AT89C51单片机的I/O口,使用软硬件结合的方式,具体的基本框图如图[16]1所示:图1单片机设计电路的基本框图单片机AT89S51温湿度传感器被测对象显示部分报警部分基于单片机温湿度显示报警系统设计第4页(共43页)方案选择:从上述原理图看来,这种设计方案电路结构简单,条理清晰,调试也相对方便,易于实现。2.3设计流程对于温湿度显示报警系统的设计,先用PROTEUS做电路仿真,再在KEIL软件中编写程序生成源代码,最后将PROTEUS和KEIL连接起来进行在线仿真。设计流程如图[17]2所示。图2系统设计流程图2.4软件环境2.4.1PROTEUS软件本设计主要用Proteus7.5电子设计软件进行电子线路的设计和仿真。Proteus软件的功能很强大,它不仅可以在线仿真模拟电子,数字电子和单片机,还可以将设计直接转换成PCB版图[18],因此,受到众多电子工程师的喜爱。电路原理图的设计是仿真中的第一步,也是非常重要的一步。电路原理图设计得好坏将直接影响到后面的工作。首先,原理图的正确性是最基本的要求,因为在一个错误的基础上所进行的工作是没有意义的;其次,原理图应该布局合理,这样不仅可以尽量避免出错,也便于读图、便于查找和纠正错误;最后,在满足正确性和布局合理的前提下应力求原理图的美观。电路原理图的设计过程可分为以下几个步骤:(1)置电路图纸参数及相关信息根据电路图的复杂程度设置图纸的格式、尺寸、方向等参数以及与设计有关的信息,为以后的设计工作建立一个合适的工作平面。(2)装入所需要的元件Proteus电路设计源程序设计生成目标代码基于proteus仿真方案论证第5页(共43页)将所需的元件装入设计系统中,以便从中查找和选定所需的元器件。(3)设置元件将选定的元件放置到已建立好的工作平面上,并对元件在工作平面上的位置进行调整,对元件的序号、参数、显示状态等进行定义和设置,以便为下一步的仿真工作打好基础。(4)连线电路图利用Proteus所提供的各种工具、命令进行画图工作,将事先放置好的元器件用具有电气意义的导线、网络标号等连接起来,布线结束后,一张完整的电路原理图基本完成。(5)调整、检查和修改利用Proteus所提供的各种工具对前面所绘制的原理图做进一步的调整和修改。(6)补充完善对原理图做一些相应的说明、标注和修饰,增加可读性和可观性。(7)仿真这部分工作主要是对设计完成的原理图结合KEIL在线仿真,调试并修改程序。2.4.2KeilC51软件KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种Keil软件图标是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂基于单片机温湿度显示报警系统设计第6页(共43页)商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。下面详细介绍KeilC51开发系统各部分功能和使用。(1)KeilC51单片机软件开发系统的整体结构:C51工具包的整体结构,其中uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。(2)使用独立的Keil仿真器时,注意事项:仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。仿真器上的复位按钮只复位仿真芯片,不复位目标系统。仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。3过程论述3.1AT89C51单片机最小系统3.1.1AT89C51单片机最小系统原理图最小系统包括晶体振荡电路、复位开关和电源部分[19]。下面图3为AT89C51单片机的最小系统电路图。过程论述第7页(共43页)图3单片机最小系统电路图3.1.2电源引脚Vcc40电源端GND20接地端工作电压为5V,另有AT89LV51工作电压则是2.7-6V,引脚功能一样。3.1.3外接晶体引脚XTAL119XTAL218基于单片机温湿度显示报警系