《基于单片机的温湿度检测系统毕业(设计)论文说明书.doc》由会员分享,可在线阅读,更多相关《基于单片机的温湿度检测系统毕业(设计)论文说明书.doc(41页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、福建农林大学金山学院本科毕业设计说明书目录摘要IAbstractII1 引言11.1 课题的研究背景及意义11.2 单片机的意义和本设计特点12 硬件设计32.1系统总设计结构图32.2 LCD1602液晶简介32.3 DHT11温湿度传感器简介42.4 按键、LED和蜂鸣器简介42.5主控芯片STC89C52单片机的简介52.6 系统电路设计72.6.1 晶振电路72.6.2 复位电路82.6.3 电源电路92.6.4 LCD1602显示电路92.6.5 温湿度检测电路102.6.6 按键电路102.6.7 报警电路102.6.8 加热加湿电路112.6.9 降温去湿电路122.7 总电路设
2、计123 软件设计143.1 系统概述143.2 程序设计流程图144 仿真及程序调试164.1 程序调试用到的软件及工具164.2 KEIL C51简介164.3 调试过程164.4 Proteus介绍164.5 仿真电路设计175 结束语18参考文献19致谢20附录21附录1 完整电路图21附录2 完整PCB图21附录3 源程序22摘要本设计研究基于单片机的温湿度检测系统,旨在实现对机房内温湿度自动控制,解决人才资源浪费,管理不及时的问题。随着科学技术的快速发展,尤其是进入21世纪以来微处理器及传感器的发展,使得单片机的应用越来越广泛,因此也将单片机技术应用到机房温湿度检测控制系统上。本文
3、首先对背景及意义进行叙述切入主题,然后对整个系统的硬件设计和软件设计重点分析,其中在硬件设计中还分别对所选器件做了一个简单的叙述介绍,比如LED,LCD1602,STC89C52单片机,DHT11温湿度传感器及蜂鸣器按键等,最后再对这一设计进行总结。本设计中采用数字温湿度传感器DHT11对机房内温度及湿度的检测,通过按键来设定温湿度的上下限值,将检测值与设定值比较驱动对应的加热加湿和降温去湿装置。整个控制过程使用无源蜂鸣器作为超限报警,选择液晶LCD1602作为整个系统的显示器,实时显示检测的温湿度值。本系统硬件结构简单,操作灵活,以高级语言C语言开发,KEIL4程序开发软件为开发工具设计而成
4、。关键词: STC89C52单片机;DHT11温湿度传感器;蜂鸣器;LCD1602液晶;KEILIIAbstractThis design based on MCU temperature and humidity testing system, in order to achieve automatic control of room temperature and humidity, solve the waste of human resources, management is not timely issues. With the rapid development of scien
5、ce and technology, especially the development of microprocessor and sensor since twenty-first Century, making more and more extensive application of single-chip microcontroller, so will technology applied to room temperature and humidity measurement and control system. This paper first describes the
6、 background and significance of the subject, then the whole system hardware design and software design are emphatically analyzed, which in the hardware design of the selected device are described, such as LED, LCD1602, STC89C52 microcontroller, DHT11 temperature and humidity sensor and the buzzer bu
7、tton, then the this design is summarized. This design uses digital temperature and humidity sensor DHT11 to detect the temperature and humidity inside the room, through the button to set upper and lower values of temperature and humidity, the detected value is compared with the set value of the driv
8、e and corresponding cooling heating and humidifying dehumidifying device. The whole control process using passive buzzer as the alarm, select the system LCD1602 as a liquid crystal display, real-time display of temperature and humidity detection value. The hardware of this system has the advantages
9、of simple structure, flexible operation, with the language C language development, KEIL4 application development software development tools and design.Key Words: STC89C52 microcontroller; DHT11 temperature and humidity sensor; buzzer; LCD1602 crystal; KEILI1 引言 1.1 课题的研究背景及意义早期的机房对温湿度的检测都是通过人工来不断测量记
10、录数据,如果需要一个准确的机房温湿度,那么就需要记录员不断采样记录。这时负责采样记录的人员就不能花时间做其他的工作,这对人才是一个极大的浪费。即使采样员在不断的采样记录,也会存在一个误差,而且此误差会比较大,并且就算记录比较精确,但是如果温湿度高于规定值或者低于规定值,系统不能自动进行加热和加湿等操作。还需要人工来进行加热加湿,因此这中状况急需改变。随着科技的发展,尤其是单片机技术及传感器技术的发展,人们开始将单片机和传感器技术应用到了机房的温湿度检测控制系统上,通过设计几个按键用于对系统温湿度上下限的设定,采用温湿度传感器DHT11进行温湿度检测,不断检测机房内的温湿度,通过外围继电器电路驱
11、动对应的加热加湿,降温去湿装置。我们仅仅只需要一块非常小的单片机芯片配合外围电路就能完成整个系统的控制工作。因此其设计体积是非常小的,成本也是非常低的。所以本文研究基于单片机设计温湿度检测系统将是非常有意义和价值的。 1.2 单片机的意义和本设计特点在现代生活的各个领域中,单片机几乎已经完全控制了整个行业,甚至已经潜移默化的改变了人们的生活方式和生活习惯,大到航空航天领域,小到马路上各式各样的花样灯控制等等。这无不体现单片机的智能以及重要性。可以预示单片机未来的发展趋势:1) 低功CMOS耗化;2) 微型单片化;3) 主流与多品种共存化;4) 大容量、高性能化:以往单片机内的ROM为1KB4K
12、B,RAM 为64128B;单片机又称单片微控制器,它把一个计算机系统集成到一个芯片里。简单的来讲,就是把我们电脑主板上是由CPU处理、程序存储器、数据存储器、输入输出电路IO、显示设备等模块集成到了一块微小的芯片之内。它体积小,价格便宜,功能丰富,调写程序便利。因为它兼容了传统的8051系列MCS-51指令单片机,移植性能强,相对高性能的单片机来讲,它使用起来是很便利的。4k的flash存储器,8bit的位宽处理,128的RAM。该设计使用它可以满足我们的所有需求。我们在这个设计中采用了51内核单片机STC89C52作为核心部件,主要起主控作用,引领整个系统的运行控制,当作控制器的核心部位,
13、本设计使用DHT11温湿度传感器对机房内的温湿度进行检测,通过设置4个按键用于对温湿度上下限值设定,当检测的温湿度值高于或低于设定上下限值时驱动对应的加热加湿降温去湿装置且蜂鸣器报警,此蜂鸣器采用无源蜂鸣器。整个系统使用液晶LCD1602进行显示,将检测的温湿度数据实时显示在上面,整个系统就可以实现自动控制,实现无人操作。整个设计界面美观,设计硬件体积小,成本低,适合家庭机房等小型场合使用。2 硬件设计 2.1系统总设计结构图本设计由主控芯片STC89C52单片机,晶振电路,复位电路,电源电路,温湿度检测电路,加热电路,降温电路,加湿电路,去湿电路,LCD1602显示电路,按键电路及蜂鸣器报警
14、电路组成。51单片机负责整个系统的控制运行。如图:图2-1 系统结构框图2.2 LCD1602液晶简介LCD1602为字符型,通常只能显示字符和数字,如果想显示汉字的话一般选择LCD12864,LCD1602能够显示2行字符,每一行显示16个字符,故得名为1602。其内部含有许多个RAM,我们使用到的是40个。通过控制1602的控制管脚RS,RW,E我们即可向LCD1602显示器中写入数据,具体的显示位子第一行起始地址是0x80,第二行显示的起始地址是0x40+0x8。其具体的图形如下:图2-2 LCD1602液晶显示器2.3 DHT11温湿度传感器简介DHT11数字温湿度传感器是一款含有已校
15、准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,
16、特殊封装形式可根据用户需求而提供。其具体实物图如下:图2-3 DHT11数字温湿度传感器2.4 按键、LED和蜂鸣器简介按键,它是常用控制器件的一种,通常被用来对需要控制的电路开或断即接通状态或者断开状态,内部的电流是很小的,应而可以达到手动控制的作用。在这里我们设计中使用的常用的按键,其按下后会有些许的波动,导致高低电平不稳,所以在后面的程序编写过程中需要专门用软件来消抖,一般其抖动的时间在10ms左右,如果不想再软件上做消抖处理也可以在硬件上做消抖,可以在按键那并接一个RC电路,那样就可以起到充放电延时的作用。这样一来单片机就可以对按键按下和按键断开有一个稳定的判断识别了。图2-4 按键蜂
17、鸣器可分为2种,一种是无源蜂鸣器,一种是有源蜂鸣器,此二者的区分在于,有源蜂鸣器直接给高或低电平就能驱动发声,但是无源蜂鸣器需要给他一定的脉冲触发信号才能使蜂鸣器发声,在此设计中我们使用的是无源蜂鸣器,即在控制他的时候我们必须输出一定频率的脉冲方能时此蜂鸣器发声报警。图2-5 无源蜂鸣器LED也叫做发光二极管,具有正负极,它是一种半导体固态的器件,其具有将电能转化为光能的功能,它的英文名全称是Light emitting diode。其内部有一个PN结组成,当给发光二极管正极加上约2V电压的时候就会发光,如果正负极接反的话不导通,电压过大会烧坏发光二极管。一般其导通电压是2V左右,电流是10m
18、a。2.5主控芯片STC89C52单片机的简介单片机又称单片微控制器,它把一个计算机系统集成到一个芯片里。简单的来讲,就是把我们电脑主板上是由CPU处理、程序存储器、数据存储器、输入输出电路IO、显示设备等模块集成到了一块微小的芯片之内。它体积小,价格便宜,功能丰富,调写程序便利。因为它兼容了传统的8051系列MCS-51指令单片机,移植性能强,相对高性能的单片机来讲,它使用起来是很便利的。它具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置2KB EEPROM,拥有3个16位的定时器和计数器,还有外部中断2个,和全双工串行口等等。它的最高运作
19、频率35MHz,6T/12T可选。其特性有:8K字节程序存储空间;512字节数据存储空间;内带2K字节EEPROM存储空间;可直接使用串口下载;芯片参数:1. 它是51单片机的加强版,拥有2种时钟模式,一种是6个时钟机器周期的,还有一种是12个时钟机器周期的,它完全兼容传统51单片机的指令系统。2. 工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V 单片机)。3.工作频率范围:040MHz,相当于普通8051 的080MHz,实际工作 频率可达48MHz。4. 用户应用程序空间为8K字节。5. 片上集成256 字节RAM。6. 通用I/O 口(32 个),复位后为:单片机拥有4
20、0个管脚,P0,P1,P2,P3各8个,还有复位1个,晶振2个,电源2个,EA一个,ALE一个。P0口内部无上拉电阻,是漏极开路的,所以在使用P0口的时候一定要外接上拉电阻。其他3个口都有内部的上拉电阻,所以可以不用外接。7. 单片机可以直接通过P30 P31 RXD和TXD串口管脚下载程序。8. 具有EEPROM 功能。9. 该单片机拥有3 个定时器和计数器其为16位的。即定时器T0、T1、T2。10.有2个外部中断,可以通过下降沿或者低电平触发中断。11. 可以使用定时器模拟出多个异步串行口。12. 工作温度范围:-40+85(工业级)/075(商业级)。13. PDIP封装,引脚图如下:
21、图2-6 STC89C52单片机管脚图2.6 系统电路设计 本设计中使用51内核芯片单片机是STC89C52,通过2个20P电容和1个12MHz的晶振组成的晶振电路,系统的时钟脉冲就是由它提供,还有通过1个电阻和1个电解电容和1个按键组成的复位电路,使用1个数字温湿度传感器DHT11对机房内温度及湿度的检测,通过4个按键来设定温湿度的上下限值,如果检测温度高于设定上限温度驱动降温电路,如果检测温度低于设定下限驱动加热电路,如果检测湿度高于设定湿度上限驱动去湿电路,如果检测湿度低于设定下限驱动加湿电路。整个控制过程使用1个蜂鸣器作为超限报警,选择液晶LCD1602作为整个系统的显示器,实时显示检
22、测的温湿度值。2.6.1 晶振电路电路中C2无极性电容和C3无极性电容是起振电容。当12MHz晶振在高频的情况工作时,会产生一定的寄生的电感。为了使电感达到平衡和产生谐振,那么可以加上2个10-33pf的无极性电容。具体的大小可以参考下晶振厂家提供的参数手册。单片机的内部有一振荡电路,我们需要在外部接上晶振电路单片机才能工作。晶振和电容与内部的电路组成振荡电路。只要单片机一上电,电容启振,晶振工作,这样单片机就有一个持续的时钟信号。51单片机内部有一个12分频器,因此时钟周期为 t = 1/12 1us。图2-7 晶振电路2.6.2 复位电路此系统使用的51单片机是高电平复位。对STC89C5
23、2来说,在复位引脚加上2个机器周期的高电平,可使单片机复位。单片机的IO口呈现高电平,程序计数器从零开始执行。采用的手动复位,按钮按下,复位引脚得到高电平,单片机复位,按钮松开后,单片机开始工作。单片机的 9 脚 RST(Reset)复位引脚,如图。当我们的程序运行到1000行的时候,单片机重启启动了,之前运行的数据将会丢失,因为RAM是不储存在我们的flash区域的,这个时候,那么我们的单片机会重新开始运行,这个过程就是复位。当我们的程序运行中,遇到一些特殊情况造成系统奔溃了,我们把这种情况叫做死机,类似我们的电脑的,这个时候我们可以手动按下复位按键,单片机会重新运行。复位电路的存在,就是防
24、止一些特殊情况的发生,在程序跑飞的时候能够还原。复位电路的工作原理:51单片机高电平复位。对STC89C52来说,在复位引脚加2个机器周期的高电平,可使单片机复位。单片机的IO口呈现高电平,程序计数器从零开始执行。采用的手动复位,按钮按下,复位引脚得到高电平,单片机复位,按钮松开后,单片机开始工作。当这个电路处于稳定状态时,电容隔离直流电,隔离+5V。此时复位按键在弹起的状态,R1的电阻是没有电压差的。我们的这个到单片机是高电平复位,低电平工作,当按下去的时候,电容起到放电的作用,瞬间是+5V的高电平。所以,在按下的一瞬间,高电平复位成功。我们再来分析从没有电到上电的过程。电容C1上方是5V电
25、压,这个时候哦电容C1进行充电,正离子从上往下充电,负电子从GND往上充电,这个时候电容对电路来说是短路的,相当于一根导线,电压都加在了R1这个电阻上,那么RST上的电压值,Vrst = R1*I,随着电容充电越多,在充满的时候,电流就会越来越小的,那么此时Vrst上的电压也会变小,直到电容充满后,线路中不再有电流,那么这个时候Rst和GND的电位就相等了,也即是0V。从这个过程中,Rst复位引脚是先高电平一段时间,然后再低电平,之后单片机正常工作运行的。我们可以根据一条充放电的公式得到:T = 1.2RC,把我们上图的参数带入,求得是564us,大于2个机器周期。重要一点的是,每个单片机复位
26、高电平的时候都是不,具体的要参考手册。图2-8 复位电路2.6.3 电源电路向单片机供电。单片机电源:STC89C52单片机的工作电压范围:3.3V5.5V, 一般给51单片机外接一个5V的直流稳压电源。连接方式为VCC(40脚):接电源+5V端VSS(20脚):接电源地端。2.6.4 LCD1602显示电路此设计中采用的是字符型LCD1602,它只能显示数字及字符,可以显示2行,每一行可以显示16个字符,通过控制LCD的数据命令RS管脚和读写RW管脚还有使能E管脚。即可实现对LCD1602的读写了。将我们要显示的温湿度数据发送到LCD上实时显示。我们将LCD数据口接到单片机的P0口,用于数据
27、的发送,将LCD的命令数据及读写还有使能控制端口接在单片机的P10 P11 P12上,通过单片机的这写管脚控制即可实现在LCD上显示,如下图:图2-10 LCD1602显示电路2.6.5 温湿度检测电路此设计中我们使用1个温湿度传感器进行对机房内的温度及湿度的检测,传感器使用的是DHT11,此传感器采用单总线通信模式,因此其数据管脚只有一个,其他的是VCC和GND管脚。由于我们使用的单片机不具有此接口,因此需要单片机管脚模拟单总线通信时序,设计中将DHT11的数据管脚接在单片机的P35上。具体电路如下:图2-11 温湿度检测电路2.6.6 按键电路在本设计中我们使用了4个按键接到单片机管脚P2
28、7,P26, P25,P24上,另一端共地,如果有按键按下去了,单片机的对应管脚就会被拉为低电平,因此可以使用此方法来判断,按键是否按下,然后做出相应的动作。具体电路如下图2-12 按键电路2.6.7 报警电路 设计中需要设计一个超限报警装置,当检测的温湿度高于或低于设定值时就报警,设计中采用一个无源蜂鸣器,即只有触发一定频率的脉冲才能使蜂鸣器发声。我们将单片机的P13管脚接在PNP型三极管上,当单片机P13口输出一定频率的脉冲即可触发蜂鸣器发声了。具体电路如下:图2-13 报警电路 2.6.8 加热加湿电路 设计中我们需要检测的温度高于或者湿度低于设定值,系统能够自动进行加热加湿,因此就需要
29、一个驱动控制加热加湿的电路,本设计采用继电器来控制加热加湿模块的工作,通过单片机端口P17和 P37接在三极管PNP上,当P17 P37输出低电平的时候,三极管导通,继电器线圈得电,D1指示灯、D3指示灯发亮,开始加热加湿。反之如果输出高电平的话,三极管截止,继电器线圈不得电。D1指示灯、D3指示灯灭,加热加湿电路不工作。具体电路如下:图2-14 加热加湿电路 2.6.9 降温去湿电路 设计中我们需要检测的温度低于或者湿度高于设定值,系统能够自动进行降温去湿,因此就需要一个驱动控制降温去湿的电路,本设计采用继电器来控制降温去湿模块的工作,通过单片机端口P16和 P36接在三极管PNP上,当P1
30、6 P36输出低电平的时候,三极管导通,继电器线圈得电,D2指示灯、D4指示灯亮,开始降温去湿。反之如果输出高电平的话,三极管截止,继电器线圈不得电。D2指示灯、D4指示灯灭,降温去湿电路不工作。具体电路如下:图2-15 降温去湿电路 2.7 总电路设计用Protel画图软件绘制的完整电路图如下:图2-16 总电路图3 软件设计3.1 系统概述电路实现的基本功能是温湿度检测。通过液晶LCD1602实时环境温湿度的基本信息。增强功能是超过上下限会有对应的报警指示灯亮和蜂鸣器报警。软件设计是本设计的关键,软件程序编写的好坏直接影响着系统运行情况的良好。因本程序涉及的模块较多,所以程序编写也采用模块
31、化设计,C语言具有编写灵活、移植方便、便于模块化设计的特点,所以本系统的软件采用C51编写。3.2 程序设计流程图图3-1 主程序流程图主程序流程图如图4-1所示,先对液晶显示进行初始化,然后判断gFunctioncount的值是否为0,为0则进入显示子函数,否则进行下一步操作,最后执行按键扫描子程序。按键扫描子程序原理图是这样的。一次完整的击键过程,包含以下5个阶段: 1.等待阶段:此时按键尚未按下,处于空闲阶段。2.前沿(闭合)抖动阶段:此时按键刚刚按下,但按键信号还处于抖动状态,这个时间一般为520ms。为了确保按键操作不会误动作,此时必须有个前沿消抖动延时。3.键稳定阶段:此时抖动已经
32、结束,一个有效的按键动作已经产生。系统应该在此时执行按键功能;或将按键所对应的键值记录下来,待按键释放时再执行。4.后沿(释放)抖动阶段:一般来说,考究一点的程序应该在这里再做一次消抖延时,以防误动作。但是,如果前面“前沿抖动阶段”的消抖延时时间取值合适的话,可以忽略此阶段。5.按键释放阶段:此时后沿抖动已经结束,按键已经处于完全释放状态,如果按键是采用释放后再执行功能,则可以在这个阶段进行按键操作的相关处理。图3-2 LCD1602初始化子函数流程图LCD1602初始化子函数流程图如图4-2所示。LCD1602初始化子函数先设置其显示参数和输入方式,再清除屏幕显示。 4 仿真及程序调试在KE
33、IL中我们编写好程序,通过KEIL中的编译器编译,使程序确保语法是无错误的,在没有错误的情况下我们在使用KEIL中的软件仿真一步步仿真,通过查看相关寄存器的值确认程序无误。或者通过编译生成的HEX文件烧写到仿真软件中,看具体的效果,直到效果无误即可。4.1 程序调试用到的软件及工具在编写程序我们使用的是KEIL C51,在期内可以软件调试或者也可以使用仿真芯片来仿真测试。4.2 KEIL C51简介KEIL C51是由ARM公司开发的,针对51单片机开发设计,内部具体编译调试软件仿真等等一系列功能,是一个非常强大的单片机开发工具。还可以开发ARM程序。只需要在KEIL软件内设定生成HEX,即可
34、将高级语言转化为机器能识别的机器语言。4.3 调试过程 在KEIL中我们打开编写好的程序,通过KEIL中的编译器编译,使程序确保语法是无错误的,在没有错误的情况下我们在使用KEIL中的软件仿真一步步仿真,通过查看相关寄存器的值确认程序无误。或者通过编译生成的HEX文件烧写到设计好的硬件仿真电路的单片机中,看具体的效果,直到效果无误即可。4.4 Proteus介绍Proteus仿真软件是英国的一家公司开发设计的。此软件专门用于电子开发设计自动化设计,因此也简称是EDA工具软件。此软件不仅具有其它的EDA软件的仿真的功能,关键是他开可以仿真到单片机及其外围数字器件及模拟器件。到目前Proteus仿
35、真软件是最好的数字仿真设计开发软件。Lab Center Electronics公司因此闻名。在我国,由于电子技术发展不是非常的快速,EDA的推广也只是刚刚起步,但是此软件的设计框架完美性得到了广大的电子及单片机技术爱好者和一直从事教研的老师和单片机应用开发设计者的青睐。此仿真软件既可以在原理图布线,通过KEIL编写编译好的程序直接下载到单片机内就可以仿真,看到和实际电路一样的效果,还可以通过此软件直接导出PCB设计图,完全实现了从理论到实践的跨越,通过此仿真我们就可以按照此电路搭建实物电路,实现仿真到实际开发的一个平台。Proteus也是目前唯一能将电路的仿真及PCB设计和虚拟的模拟三个软件
36、相结合的一个大平台。软件内部自带有目前市场上主流的多种处理器,主要有8051和PIC的12,16,18等,还有MSP430系列单片机及AVR单片机,甚至还能实现ARM及DSP处理器仿真,随着日益不断的更新,后面还有很多种型号的单片机及高端处理器模型在推出。此软件在编译器上它能够支持IAR及Keil和MATLAB等多种。4.5 仿真电路设计图4-1 仿真电路图5 结束语通过这次毕业设计,我学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。经过我长时间的设计及调试,本系统基本能实现温湿度检测系统的所有功能。不足之处有:1.硬件的稳定性有待进一步提高2.系统人性化还
37、不足。我的综合设计主要涉及硬件和软件两方面的内容,通过这些我的硬件和软件开发能力都获得了提高。首先硬件方面,基本了解了电子产品的开发流程和所要做的工作。基本掌握了Protel99SE原理图的方法,并设计了一个单片机最小系统。通过开发板的设计和硬件搭建的过程,使我对51系单片机的接口有了更深层次的理解,熟悉了一些单片机常用的外围电路引脚和连接方法,如LCD液晶,键盘等。并且我学会了分析问题解决问题的能力,加深了对所学理论知识的理解和运用。 我的动手能力得到了很大的提高,创新意识得到了锻炼。参考文献1 李朝青.单片机原理及接口技术(简明修订版)M.北京:北京航空航天大学出版社,1998.2 李全利
38、.单片机原理及接口技术M.高等教育出版社,2003.3 PROTEL99 SE电路设计与制板M.机械工业出版社,2007.4 杨将新,李华军,刘到骏等.单片机程序设计及应用(从基础到实践)J电子工业出版社,2006.5 Steven F.Barrett.Daneil J.Pack.Embedded SystemM.北京:电子工业出2006.6 周立功.LPC900系列Flash单片机应用技术J.北京航空航天大学出版社,2004.7 黄智伟.全国大学生电子设计竞赛训练教程M.北京:电子工业出版社, 2005.8楼然苗.51系列单片机设计实例.北京:北京航空航天出版社,20049黄仁欣.单片机原理
39、及应用技术.北京:清华大学出版社,200510何立民.单片机高级教程第1版北京:北京航空航天大学出版,200111赵晓安.MCS-51单片机原理及应用.天津:天津大学出版社,2001.312李广第单片机基础第1版北京:北京航空航天大学出版社,199913徐惠民、安德宁单片微型计算机原理接口与应用第1版北京:北京邮电大学出版社,1996致谢本文是在导师陈老师的悉心指导下完成的,感谢陈老师的总体指导,从论文选题、研究方向及至最终成文的字里行间无不凝结着导师的心血与期望。导师严谨的治学态度、诲人不倦的热情、求索务实的敬业精神和宽以待人的处世哲学,深深感染并鞭策我不断前进。附录附录1 完整电路图附录2
40、 完整PCB图附录3 源程序#include#includetypedef unsigned char u8;typedef unsigned int u16;sbit rs=P10;sbit rw=P11;sbit e=P12;sbit k1=P27; sbit k2=P26; sbit k3=P25; sbit k4=P24; sbit beep=P13;sbit led1=P17;sbit led2=P16; sbit led3=P37; sbit led4=P36; sbit dq=P35;u8 code d1=Temp: ;u8 code d2=Humi: ;u8 code d3=T
41、empH:;u8 code d4=TempL:;u8 code d5=HumiH:;u8 code d6=HumiL:;u16 temp,humi;u8 wendu5,shidu5;u8 mode,shedingok;int wdh=30,wdl=20,sdh=30,sdl=20;u8 sbuf4;void delay(u16 i)while(i-);void wrc(u8 c) delay(1000);rs=0;rw=0;e=0;P0=c;e=1;delay(10);e=0;void wrd(u8 dat) delay(1000);rs=1;rw=0;e=0;P0=dat;e=1;delay
42、(10);e=0;rs=0;void init()delay(1000);wrc(0x38);wrc(0x38); wrc(0x38);wrc(0x06); wrc(0x0c); wrc(0x01); void sound() u8 i=100;while(i-)beep=beep;delay(300);led=led;void time0init() TMOD=0X01;TH0=0Xfc;TL0=0X18; TR0=1;EA=1;ET0=1;void keypros()if(k1=0) delay(1000);if(k1=0)mode+;shedingok=0;if(mode=5)mode=
43、0;if(mode=1)wrc(0x01);if(mode=3)wrc(0x01);while(!k1);if(mode=1) if(k2=0) delay(1000);if(k2=0)wdh+=5;if(wdh80)wdh=80;while(!k2);if(k3=0) delay(1000);if(k3=0)wdh-=5;if(wdh80)wdh=80;while(!k2);if(k3=0) delay(1000);if(k3=0)wdl-=5;if(wdh80)sdh=80;while(!k2);if(k3=0) delay(1000);if(k3=0)sdh-=5;if(sdh80)sdh=80;while(!k2);if(k3=0) delay(1000);if(k3=0)sdl-=5;if(sdh0)wdh=0;while(!k3);if(k4=0