《仓库温湿度检测系统设计与实现.docx》由会员分享,可在线阅读,更多相关《仓库温湿度检测系统设计与实现.docx(33页珍藏版)》请在三一办公上搜索。
1、仓库温湿度检测系统设计与实现摘要本文从硬软件两个方面进行了基于AT89S52单片机温度、湿度自动检测系统设计。系 统硬件由控制电路、温度采集电路、湿度采集、键盘和LED显示电路组成。软件设计从设 计思路、软件系统框图出发,逐一分析各模块程序算法的实现,最终编写出满足任务需求 的程序。系统基本上满足了温湿度检测与报警的要求,具有超调量小,采样值与设定值基 本一致,操作简单等优点。关键词:AT89S52 ; LED显示;湿度自动检测系统Design And Implementation Of WarehouseTemperature And Humidity Detection SystemABS
2、TRACTThe paper introduces the design based on AT89S52 SCM temperature, humidity automatic detection system from hardware and software.Hardware of system is consisted of control circuit, temperature, humidity acquisition circuit collection, keyboard and LED display circuit component.The software desi
3、gn from the design idea, software system of block diagram, by analyzing the module program the realization of the algorithm, and finally writes a mission requirement to meet the program.The system basically meets the requirements of temperature and humidity detection and alarm,and possesses advantag
4、es of small overshoots, samples values and basic value consistent, simple operation etc.Key words:AT89S52;LED demonstrate;Humidity automatic detection system1绪论11.1系统背景11.2国内外研究状况和相关领域研究成果11.3温湿度控制系统的设计意义21.4温湿度控制系统完成的功能22系统方案设计32.1温度检测方案设计32.2系统总体方案设计43系统硬件及电路介绍53.1单片机AT89S52介绍53.2温湿度检测电路73.3报警电路与L
5、ED显示电路83.4键盘与继电器电路93.5时钟与复位电路114系统设计及实现124.1系统硬件电路设计124.2系统主程序方案134.3键盘扫描程序流程图145实物演示记录15结论17参考文献18附录错误!未定义书签。致谢30仓库温湿度检测系统设计与实现1绪论1.1系统背景防潮、防霉是仓库日常管理工作的重要注意项目,是仓库管理质量衡量的主要指标。 它对储备物资的工作可靠性和使用寿命有很大影响。所以加强仓库的温度和湿度监控是保 证日常工作的顺利进行的关键内容。但是一些传统的方法是通过人工进行检测,这种人为 的测试方法费时费力、效率低,且测试出温湿度误差很大,有很多的不定因素。因此我们 需要设计
6、出一种造价低廉,使用简单,测量准确的检测仪器。单片机以其集成度高、运算速度快、体积小、运行可靠、价格低廉等优势,在过程控 制、数据采集、机电一体化、智能化仪表、家用电器以及网络技术等方面得到了广泛的应 用,特别是单片机嵌入式技术的开发与应用,标志着计算机发展史上又一个新的里程碑。 作为计算机两大发展方向之一的单片机,以面向对象的实时控制为己任,嵌入到如家用电 器、汽车、机器人、仪器仪表等设备中,使其智能化。目前国内外各大电气公司,大的半 导体厂商正在不断的开发、使用单片机,使其无论在控制能力,减小体积,降低成本,还 是开发环境的改善等方面,都得到空前迅速的发展。温湿度检测控制系统在工业生产、科
7、学研究和人们的生活领域中,得到了广泛应用。 在工业生产过程中,很多时候都需要对温湿度进行严格的监控,以使得生产能够顺利的进 行,产品的质量才能够得到充分的保证。使用自动温度控制系统可以对生产环境的温度进 行自动控制,保证生产的自动化、智能化能够顺利、安全进行,从而提高企业的生产效率。 温湿度检测系统应用十分广阔。1.2国内外研究状况和相关领域研究成果网络通信技术的发展,使监控系统广泛应用于工农业生产等领域,因此,粮情检测技 术粮情检测属监控系统范畴,近年来,由于计算机技术、超大规模集成电路技术和的研究 在软、硬件等方面都有了一定的进展。早期粮情监测主要采用温度计测量法,此方法是将温度计放入一个
8、特质的插杆中,根 据人的经验查在粮堆里的几个测温点,由管理人定期读数,以此来确定粮食温度的高低, 以便采取一些措施。这种方法虽然可用,但是因为温度计的精确度及人为的读数等原因, 不但检测慢,而且精度低,很容易引发局部粮温过高发霉导致大面积粮食粮食损坏。随着 科学技术的发展,至80年代开始,一些仓库采用电阻温度传感器、模数转化器、报警装 置、采样器组成的检测系统,可以对粮仓各个点进行巡回检测,检测的精度和速度都大大 提高,但是因为电阻的灵敏度问题,导致系统的可靠性不够理想。到90年代,粮仓检测 系统有了很大的提高,系统采取了矩阵式布线技术,简化了采集的线路,以半导体等器件 作为传感器;以串行传输
9、方式为线路传输,从而减少了传输线根数;采用单板机进行数据 处理,并采用各种手段来提高检测速度和传送速度,软硬件的结合提高了检测的可靠性和 精度。但由于传感器的线性度差,无法大面积推广。最近几年,随着单片机技术的日益精 湛及计算机的广泛推广应用,粮仓的检测越来越准确,稳定性也越来越高。高科技数字传 感器的广泛应用使得粮仓的检测达到一个佳配置和最好的性价比。这样的传感器采用了微 控制器最新技术和半导体集成电路,半导体温度检测、数据信号转换。计算机接口等芯片 都集成在一个管芯上。现在国内出现了很多数字传感的配套产品,如中继器、接插器、中 继器、分线器等,技术也相对成熟。1.3温湿度控制系统的设计意义
10、随着社会的发展,科技的进步,以及测温度、湿度仪器在各个领域的应用,智能化已 是现代温度、湿度控制系统发展的主流方向。温度、湿度测试控制系统,控制对象是温度、 湿度。温度、湿度控制在日常生活及工业领域应用相当广泛,比如温室、水池、发酵缸、 电源等场所的温度、湿度控制。而以往温度、湿度控制是由人工完成的而且不够重视,其 实在很多场所温度、湿度都需要监控以防止发生意外。针对此问题,本系统设计的目的是 实现一种可连续高精度的温度、湿度控制系统,它应用广泛,功能强大,小巧美观,便于 携带,是一款既实用又廉价的控制系统。1.4温湿度控制系统完成的功能根据设计要求确定了系统的总体方案,整个系统由温湿度传感器
11、、单片机、显示模块、 键盘、报警器六部分组成10。认为先输入温湿度的上下限到系统内,温湿度检测器把监测 值传给单片机,如监测值超出范围,则驱动报警。本机实现的功能:1. 当温度或者湿度下限温湿度,蜂鸣器报警;2. 当温度或者湿度上限温湿度,蜂鸣器报警;3. 数码管即时显示温度;4. 温度:温度可控制范围在1525度;5. 湿度:湿度可控制范围在25%75%;2系统方案设计2.1温度检测方案设计2.1.1方案一采用AD590,它的测温范围在-55C+150C之间,而且精确度高。M档在温度测试 的范围内的非线性误差是0.3C。AD590可承受20V的反向电压和44V正向电压。使用可 靠,只需要直流
12、电源就能维持正常工作,器件反接也不会损坏原器件。而且不用线性校正, 使用也方便,接口也很简单,有很强的抗干扰能力AD590的信号可传输出百余米,但是 实现AD590的系统设计需要要使用高精度的ADC配合才能得到数据,并且造价太高。2.1.2方案二采用数字可编程温度传感器作为温度检测元件。数字可编程温度传感器可以直接读出 被测温度值。不需要将温度传感器的输出信号接到A/D转换器上,减少了系统的硬件电路 的成本和整个系统的体积。控制电路的核心器件是由美国Atmel公司生产的AT89S52单片机,属于MCS-51系列。 AT89S52是一种低功耗、高性能的CMOS8位微控制器,具有8K在系统可编程F
13、lash存储 器,采用的工艺是Atmel公司的高密度非易失存储器技术;片上Flash允许程序存储器在 系统可编程,亦适于常规编程器;在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash, 使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案;价格低廉、性 能可靠、抗干扰能力强。因此广泛应用于工业控制和嵌入式系统中1。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存 储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚 完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,
14、拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统 提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节 RAM,32位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个 6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、 定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻 结,单片机一切工作停止,直到下一个中断或硬件复位为止。2.1.3方案论证方
15、案一硬件电路复杂,需要设计A/D转换电路,以及与其相关的编程,总体设计起来 较困难,软件、硬件调试复杂,硬件成本较高。而且器传感器有以下缺点:它灵敏度比较 低,容易受到环境干扰信号的影响,也容易受到前置放大器温度漂移的影响。所以总体来 说,方案一在硬件、软件上的成本都比较高,而且易受外部环境的影响,系统工作不稳定。方案二由于采用的是具有一总线特点的温度传感器,所以电路连接简单;而且该传感 器拥有强大的通信协议,同过几个简单的操作就可以实现传感器与单片机的交互,包括复 位传感器、对传感器读写数据、对传感器写命令。软件、硬件易于调试,制作成本较低。 也使得系统所测结果精度大大提高。经过对这两种方案
16、的比较,本设计决定采用方案二。2.2系统总体方案设计单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能。硬 件实现上采用模块化设计,每一模块只实现一个特定功能,最后将模块连接在一起。这样 可以减低设计的复杂性。本系统硬件设计包括温湿度传感器电路、LED显示电路、复位电 路、蜂鸣器电路、晶振电路,如图2-2:图2-2温湿度监控系统原理图3系统硬件及电路介绍3.1单片机AT89S52介绍AT89S52是一种消耗低、性能高的CMOS8位微控制器,具有8K Flash存储器。使用 Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片 上Flash允
17、许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位 CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有 效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O 口 线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构, 全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持 2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串 口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机停止一
18、切工作,直到下一个硬件复位或中断出现为止。如表3-1。引脚功能:VCC :电源GND:接地P0 口: P0 口是一个8位漏极开路的双向I/O 口。作为输出口,每位能驱动8个TTL 逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。在程序校验时,输出指令字节。程 序校验时,需要外部上拉电阻在flash编程时,P0 口也用来接收指令字节;在flash编程时, P0 口也用来接收指令字节。P1 口%: P1 口是一个具有内部上拉电阻的8位双向I/O 口,p1输出缓冲器能驱动4 个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口 使用。作为输入使用时,被外部拉低的引脚
19、由于内部电阻的原因,将输出电流(IIL)。表3-1 P1引脚功能引脚号第二功能P1.0T2 (定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX (定时器/计数器T2的捕捉/重载触发信号和方向控 制)P1.5MOSIP1.6MISOP1.7SCKP3: P3 口是一个有内部上拉电阻的8位双向1/0 口,p2输出缓冲器能驱动4个TTL 逻辑电平。对P3端口写“1时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作 为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)O P3口亦作为 AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3
20、口也接收一 些控制信号。表3-2 P3引脚功能引脚号第二功能P3.0RXD (串行输入)P3.1TXD (串行输出)P3.2INTO(外部中断0)P3.3INT1(外部中断1)P3.4T0 (定时器0外部输入)P3.5T1定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器写选通)RST:复位输入。ALE/PROE:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址 的输出脉冲。PSEN :外部程序存储器选通信号(PSEN )是外部程序存储器选通信号。EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储 器读取指令,
21、EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间, EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2 :振荡器反相放大器的输出端。P1OVCCP LPOOP1WPOIP13P02P14P03P15P04P16P05P17P06RESTP07P3O.-RXDEA/VPPP31/TXDPS2.-1NTOP33/1NTIP27pwroP26P35.-T1P25P3&WRP24PS7.R.DPHXTAL2P22XTALIP2IGNDP20L5LI40图 3-1 AT89S523.2温湿度检测电路GHT11数字温湿度传感器是一款
22、温湿度复合传感器,内含有己校准的数字信号输出, 它是专用的温湿度传感器,能确保极高的可靠性和长期的稳定性。其包括一个NTC测温 元件和一个电阻式感湿元件,连接一个高性能的八位单片机。因此该产品具有品质卓越、 超快响应、抗干扰能力强、性价比极高等优点。1、传感器性能说明,如表3-3:表3-3传感器性能参数条件MinTypMax单位湿度分辨率111%RH8Bit重复性1%RH精度25 C4%RH0-50C5%RH互换性可完全互换量程范围0C3090%RH25 C2090%RH50 C2080%RH响应时 间1/e(63%)25C,1m/s空气61015S迟滞1%RH长期稳定性典型值1%RH/yr续
23、表3-3温度分辨 率111C888Bit重复性1C精度12C量程范 围050C响应时间1/e(63%)630S2、接口说明建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上 拉电阻3、电源引脚DHT11的供电电压为3-5.5V。传感器上电后,要等待1s以越过不稳定状态在此期 间无需发送任何指令。电源引脚(VDD, GND)之间可增加一个100nF的电容,用以去 耦滤波。3.3报警电路与LED显示电路在生产控制的系统中,为了生产的安全,为了提醒操作人的及时处理,都设有紧急状 况报警系统。方法是通过计算机采集处理数据、数字滤波,变换之后,域之前设定的上下 限值进行比较,
24、如果不在范围内则报警,正常则不予与报警,只做正常的显示。同样仓库 的温度低高设定的温度范围内时当P3.4输出高电平“1时,晶体管导通,压电蜂鸣器两端 获得约+5V电压而鸣叫,出报警声音;单片机的P3.6控制继电器接通风降温设备,直到低 于设定的最低温度时,P3.4输出低电平时,三极管截止,蜂鸣器停止发声风。如图3-2:VCCB2图3-2报警电路用LED作为显示模块主要是因为它的高亮性,此设计系统采用四位一体的数码管显示,该数码管段选连在一起,具有四个独立的位选端,在实现程序显示时只需分别控制相 应的位选端动态扫描即可,操作十分简单方便。数码管的操作分为静态扫描和动态扫描,本设计系统采用的是动态
25、扫描。单片机应用 中数码管动态显示接口是最广泛中的一个显示方式,动态驱动是指将所有的数码管的显示 比划“a.b.c.d.e.的同名端连接在一起,为每个数码管的COM公共极增加位选通控制电 路,位选通由各自独立的I/O线控制9。如图3-3:VCCLSIBell3.4键盘与继电器电路按键器输入信号由八个小按键控制与单片机的P1 口连接,当有按键按下的时候,就 产生了有效地输入信号。根据P1 口按键输入的高低电平,判断是哪个按键按下,并执行 相应的操作。键盘是人与微机打交道的主要设备,按键的读取容易引起误动作。可采用软件去抖动 的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是
26、不稳定 的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方 法来避开抖动5。如图3-4:K2P30GND图3-4按键电路继电器线圈需要流过较大的电流(约50mA)才能使继电器吸合,一般的集成电路不 能提供这样大的电流,因此必须进行扩流,即驱动。用PNP型三极管驱动继电器的电路图,继电器线圈作为发射极负载而接到发射极和正 电源之间。当输入为+VCC时,三极管截止,继电器线圈无电流流过,则继电器释放(OFF); 相反,当输入为0时,三极管饱和,继电器线圈有相当的电流流过,则继电器吸合(ON)。当输入电压由变0V为+VCC时,三极管由饱和变为截止,这样继电器电感线圈中的
27、电流突然失去了流通通路,若无续流二极管D将在线圈两端产生较大的反向电动势,极性 为下正上负,电压值可达一百多伏,这个电压加上电源电压作用在三极管的集电极上足以 损坏三极管。故续流二极管D的作用是将这个反向电动势通过图中箭头所指方向放电, 使三极管集电极对地的电压最高不超过+VCC +0.7V。如图3-5:GND图3-5继电器电路3.5时钟与复位电路AT89S52可以由两种方式产生时钟,一种是内部方式,一种外部方式。为了方便本设 计采用内部方式,利用芯片内部的振荡电路,其内部有一个高增益反相放大器,放大器的 输入端和输出端分别是引脚TXAL1和XTAL2,此放大器和作为反馈的片外晶体谐振器构 成
28、一个自激振荡器口。如图3-6:30pF I 门- GND * | n占 IL | j 30pF|图3-6时钟电路图单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电 脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现 程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。复位电路分为上电自动复位和按键手动复位。上电自动复位是通过外部复位电路的电 容充电实现的,按键手动复位是将复位端经电阻与VCC电源接通而实现的。如图3-7:VCCHR11K 图3-7复位电路图4系统设计及实现4.1系统硬件电路设计X 一(花151Igl|?|学一土g5寸eE
29、Qf-J-f-JZ.|-f-4*, , , , :瓦.!Fl 叶Odmod-=JMtlzD 3HM 二牛一 n 一 M.aL 1XI.L.1EL 2电.L5山工 顼一 flrm mm- ?一 :2_ 目一E首先要根据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后根据实 时性的要求,合理地安排监控软件和各执行模块之间地调度关系。本部分详细介绍了基于AT89S52单片机的仓库温湿度采集控制系统的软件设计。根据 系统功能,可以将系统设计分为若干个子程序进行设计,如温度采集子程序,湿度采集子 程序,数据处理子程序、显示子程序、执行子程序。采用Kiel uVision3集成编译环境和C语 言
30、来进行系统软件的设计。本章从设计思路、软件系统框图出发,先介绍整体的思路后, 再逐一分析各模块程序算法的实现,最终编写出满足任务需求的程序。如图4-1:4.2系统主程序方案系统开始工作,人工设定温度和湿度的上限及下限LED显示当前的温湿度,内置单 片机判断当前的温湿度是否超过上限:如超过,则报警,联通继电器;如没有,则哦判断是 否低于下限,低于下限则报警,联通继电器,正常范围内,则不做处理。隔一段时间进行 一次温湿度判断。一次来保证温度和湿度都在规定的范围内,不在则会报警提示。如图4-1:开始设定温湿度上下限显示当前温湿度判断当前温湿度爻、超过设定上限。,是* 继电器I一图4-1系统流程图4.
31、3键盘扫描程序流程图键盘开始工作,判断是否按下,如按下,延迟20ms,做第二次判断,输入完毕点开始键,启动系统工作,结束键盘扫描。如图4-2:结束键图4-2按键扫描流程图5实物演示记录当前温度值为28摄氏度,湿度为59%。设定温度20-33摄氏度,湿度50%-65%,此 时仪器正常。如图5-1图5-1设定温度范围为30-40摄氏度,湿度为60%-70%。设置成功后应显示温度低,湿度低, 如图5-2。设定温度范围为20-25摄氏度,湿度为40%-50%。设置成功后应显示温度高,湿度高, 如图5-3。i L wtJ盅旧FL/M”J&riperature humiditys结论回顾起此次单片机课程设
32、计,我仍感慨颇多,的确,从选题到定稿,从理论到实践, 在接近一个月的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不 仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。在设计 的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的 过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固, 比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好,通过这次课程设计之 后,一定把以前所学过的知识重新温故。本系统采用的单片机控制,实现对仓库温湿度的智能控制,单片机可完成室内的数据 采集、传送预处理和控制任务。用单片
33、机C语言编程,采用模块化的结构设计,提高了可 靠性和可扩展性。把单片机控制理论与技术应用在监控中,能够实现智能化的控制要求。 经过一段时间的设计和实践,本设计已经完成了一个比较完整的温湿度检测与报警和继电 器系统。它可以通过键盘输入温湿度上限、下限值,然后计算其上限和下限的中间值作为 最适温湿度值。不断的采集温湿度值,显示温湿度值,如果发现采集的温湿度值高于上限 值就通过蜂鸣器报警。如果采集的温湿度值低于下限值,蜂鸣器报警的同时控制继电器执 行相应的动作。如果并没有超过上下限则不会报警。到此此温湿度检测系统已经完成,这 个系统在精度上还有待开发,在按键操作和温湿度实时监测已经完善。但是我想通过
34、以后的学习和努力一定会有所提高,能够做出更好的设计。所设计系统 不仅适用于仓库温湿度环境的控制,对软件进行一定的扩展后也可用于实验室、医疗室、 储藏保鲜、组织培养等生物环境和粮库等环境的控制,具有较强的通用性和适应性。虽然到现在为止,有些东西我还是不懂和不理解,但我学会了面对问题,自己尽量解 决,先分析,然后解决,一条道通不过然后尝试着其它的方法,最终把问题克服掉。最重 要的是锻炼了和同学的协作完成任务,提高了合作能力。我感觉这是这次设计过程中收获 最大的,这将是我未来的工作中 用之不尽宝贵的经验。感谢那些帮助过我的同学,感谢 他们在自己做毕业设计的情况下还帮我找资料并对我的设计提出宝贵的意见
35、。总体来说,经过这次课程设计,我受益良多,也得到了很多经验。我明白了只有自己 真正接触尝试了,才知道自己的真实水平。也使我看清了自己的知识水平与各种综合能力, 找出了自己的不足和差距。我将明确自己在今后要奋斗的目标与方向,勇往直前。参考文献I 张桂香,姚存治.基于ATmega128单片机的智能供电测控系统设计J.电力自动化设 备,2009,29(8):136-139.李景魁.基于AT89S52单片机的多路电能数据采集系统的设计J.制造业自动化,2011,33(9):80-81,84.3 刘杨斌,刘其峰,华慧等.基于AT89S52单片机的简易数字示波器设计J.现代电子技 术,2011,34(14
36、):138-140.4 陈立兵,樊瑜瑾,代杰等.基于AT89S52单片机的温度采集系统设计J.机械与电子,2011,(2):65-67.5 李磊,李瑞鹤,朱腾等.基于AT89S52图文显示设计与实现J.甘肃联合大学学报,自然科学 版,2011,25(6):57-60.6 裴美珍,单正娅.基于AT89S52的空调温度控制系统的设计J.微型机与应用,2010,29(6):22-24.7 马兆远,王勇,马志峰等.基于AT89S52的智能报警系统的设计与实现J.计算机技术与发 展,2009,19(12):181-184.8 郭志源.基于AT89S52的远程报警和控制系统J.机械研究与应用,2007,2
37、0(5):106-108.9 赵娜,赵刚,于珍珠等.基于51单片机的温度测量系统J.高等教育出版社,2009,5:50-72.10 王昌明,孔德仁,何云峰.传感器与测试技术M.北京航空航天大学出版社,2005.3:23-30.II 秦玉新.单片机控制的数字温度计J.数字技术与应用,2005.6:51-60.12臧玉萍姜宝林.数字温度计DS1820及其应用J.吉林工学院学报社,2001. 2:33-40.附录:程序代码#include包含单片机寄存器的头文件#include #include#define uchar unsigned char/宏 定义#define uint unsigned
38、 int uchar code led= 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86, 0x8e,0xff,0xbf,0x7f;uchar code table=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/ 带小数点的编码uchar data temp_read=0x00,0x00;uchar data display=0x00,0x00,0x00,0x00,0x00;sbit CS=P2人0;将CS位定义为P3.4引脚sbit
39、CLK=P2人1;将CLK位定义为P1.0引脚sbit DIO=P2人2;将DIO位定义为P1.1引脚sbit DQ=P1A1;/18B20 数据口sbit beep=P3A4; 蜂鸣器void display1(); 显示函数声明sbit k1=P1A5; 切换屏幕sbit k2=P1A4;加温键sbit k3=P1A3;减温键sbit RELAY = P3A6; / 继电器控制口uchar num=0;uchar th=25,low=15; / 初始温度uchar sth=70;sl=30; 出事湿度uchar temp,a,b,c,temp1,time;uint time1,ya,tem
40、p2;/*延时子函数*/ void delay(uint x) while(x-);void delayms(uint xms)uint i,j;for(i=xms;i0;i-)for(j=110;j0;j-);/* 报警 */ void BEEP() beep=0;delay(200);beep=1;delay(200);/*18B20 初始化*/uchar Init18b20() uchar n;DQ=1;delay(8);DQ=0; delay(90);DQ=1;delay(8);n=DQ;delay(100);DQ=1;return n;/*18B20 写函数*/ void write
41、onechar(uchar dat) uchar i=0;for(i=0;i=1;delay(5);/*18B20 读函数*/uchar readonechar()uchar i=0,dat=0;for(i=0;i=1;DQ=1;if(DQ) datl=0x80;delay(4);DQ=1;return(dat);/* 读取温度 */ uchar readtemp()Init18b20();writeonechar(0xcc); /跳过 ROM writeonechar(0x44); 启动温度转换 delay(200);Init18b20();writeonechar(0xcc); /跳过 R
42、OMwriteonechar(0xbe); 读取温度temp_read0=readonechar(); /读取低八位温度值 temp_read1=readonechar(); /读取高八位温度值 temp_read0=(temp_read0&0xf0)4;temp_read1=(temp_read1)4;低位与高位合并一个字节temp=(temp_read0|temp_read1);return temp;返回读取的温度/* 按键扫描 */ void key()if(k1=0)delayms(10);if(k1=0)num+;if(num=6)num=0;while(!k1);if(num!=
43、0)/* 设置上限温度 */if(num=1)if(k2=0)delayms(10);if(k2=0)th+;if(th=100) th=25;while(!k2); if(k3=0)delayms(10);if(k3=0)th-;if(th=0)th=25;while(!k3); /* 设置下限温度 */ if(num=2)if(k2=0)delayms(10);if(k2=0)low+;if(low=40)low=15;while(!k2); if(k3=0)delayms(10);if(k3=0)low-;if(low=0)low=15;while(!k3);/*设置上限湿度*/if(num=4)if(k2=0)delayms(10);if(k2=0)sth+;if(sth=100)sth=70;while(!k2);if(k3=0) delayms(10);if(k3=0)sth-;if(sth=0)sth=70;while(!k3);/*设置下限湿度*/if(num=5)if(k2=0)delayms(10);if(k2=0)sl+;if(sl=60) sl=30;while(!k2);if(k3=0)