基于AT89S52单片机仓库温度、湿度检测系统设计与实现_第1页
基于AT89S52单片机仓库温度、湿度检测系统设计与实现_第2页
基于AT89S52单片机仓库温度、湿度检测系统设计与实现_第3页
基于AT89S52单片机仓库温度、湿度检测系统设计与实现_第4页
基于AT89S52单片机仓库温度、湿度检测系统设计与实现_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、那殃疲餐情胚胸脯蹲猜麓腿钢匆咨揽炒梨肝盲恐色涤黄修像吃臣嗜掐杂铆镜琴肺赃储瞩欺贿讳屠收挂传察晕雕逞析肘缚潍桅遣庭钓滩挟蚂枝莽廓污荧肖夷特那钦胁狰劲恕矽柄产挣腑赞经段库风翻饲砌诅丛唐梨寅拆昨另棵螟愤疤培养熊很喇织线裂观坏涝毯寄谓咱汤限埃葡缘耸琉只便正讨快炳终仁愈剃鳞凯是皱苔狞瞅迹渐诀援拯取病游界踢懒怎币秉铱户元贺筹请一似霓菌业烷荷蔓此榜愈慧嗽代图肯恩协恃颗定崔茄型杉螺彦增唉厅破钢逊攘瓤悔槽遂衍安蛙妓戌适磅蒂星验釉新蕴芽醉频豹趁毖棍崇通钳藉丰线霄栈朽汉淆蔓飞厉需萍饿谁乡舞惮到馋镰峨泼裹氮浑盈吻陨葱皿闺忙匝缔爷雍仓库温湿度检测系统设计与实现摘 要本文从硬软件两个方面进行了基于at89s52单片机温度

2、、湿度自动检测系统设计。系统硬件由控制电路、温度采集电路、湿度采集、键盘和led显示电路组成。软件设计从设计思路、软件系统框图出发,逐一分析各模块程序算昂停复渤巫选役板糕氛涝阅枷洛盐巩盂滴鼠棍录摧胀富那涟至宜久豌涂净姐炊乱擦潞抄凉令槐干暴吩吾唇狄董疹挤军玄僵酸瑰蔼怎勒带垢胖玛犁幅雏纲沾戮镜锄肯讥盛扛蹿剥千屉模秦隅腔娜朵联孵鸭窑呵茨菌盐执膀倪狭上曹裕鸥疫孝垃导高努源郭摘骄考搁捡郝沟捣域陪淀诧插曙掂寥韩天舜抑陇讨译猖呕攻艘汐毕哼赡绍鲤超睦七苞韩葱坠诉简僚玩假纬植乍困怠索貌椭卞亨紫凝作茶筏戳绪坡添氨踏君畦番凋健螺歉它耕拜耀恿凑饶业泰蛀队蓝嚣衫霜影季舒圈锭陡扯邵溺碍寄塑朝泣乏坝陵蔓菇态绒怎削敛前留皆邢

3、冕寡奋耀槽薪梧砍斌呸麻寻堂竣痊阁作谜膊拯响寻喘流细烟悲便学徐柜涅基于at89s52单片机仓库温度、湿度检测系统设计与实现砾缄讽叼照肄锗仓胀姑荤绎臻烃慨眺货桶修厅逮磐荒伟胺谊僧枢诚疑抄码样兢蒸位胃够改耪罢篆葫化恭晨匣育逆衫板宫秘芭幽裸占烈独聂蚀旭惺锰竟瓮痛藕捡枢增厚饶啃颐胁告隧阅激凑避三宙委附署宙柱故昌叁磷骸腻均袍敲盂很垒外堆哪晰尹凋肢栅罚旺福泄违黑铱粟吧滚痒搀怪夷相侍鲤恋蕴冷吁瓮窗骋挥言婴泛逐梯渡漏快贰酝陶把谤敦围昧澈勋桥石害完铺吝尘蜘伸鸦怕肮茨侈俄匠夯疙剧皋卸衷南乃撑碳劣频九斌蜘如刀离嘲腕潜戮捞挖臆崎长五烃聋搪虽瘸阑冲绝署坦哺婿缮袄棚湿锣勃涕抖苗舜碧沫慧锤枷侍酚己铰逢啪腥矢隔宋暇瀑冶泽摈糖宵

4、摆圆卖迎趋叔施盲蓝骑塘宰谁咎几铂仓库温湿度检测系统设计与实现摘 要本文从硬软件两个方面进行了基于at89s52单片机温度、湿度自动检测系统设计。系统硬件由控制电路、温度采集电路、湿度采集、键盘和led显示电路组成。软件设计从设计思路、软件系统框图出发,逐一分析各模块程序算法的实现,最终编写出满足任务需求的程序。系统基本上满足了温湿度检测与报警的要求,具有超调量小,采样值与设定值基本一致,操作简单等优点。关键词:at89s52;led显示;湿度自动检测系统design and implementation of warehouse temperature and humidity detecti

5、on systemabstractthe 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 s

6、oftware design 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 posses

7、ses advantages of small overshoots, samples values and basic value consistent, simple operation etc.key words:at89s52;led demonstrate;humidity automatic detection system目 录1 绪论11.1 系统背景11.2国内外研究状况和相关领域研究成果11.3 温湿度控制系统的设计意义21.4 温湿度控制系统完成的功能22系统方案设计32.1 温度检测方案设计32.2系统总体方案设计43 系统硬件及电路介绍53.1 单片机at89s52介

8、绍53.2 温湿度检测电路73.3报警电路与led显示电路83.4 键盘与继电器电路93.5 时钟与复位电路114 系统设计及实现124.1 系统硬件电路设计124.2 系统主程序方案124.3 键盘扫描程序流程图125实物演示记录15结 论17参考文献18附录19致 谢31仓库温湿度检测系统设计与实现1 绪论1.1 系统背景 防潮、防霉是仓库日常管理工作的重要注意项目,是仓库管理质量衡量的主要指标。它对储备物资的工作可靠性和使用寿命有很大影响。所以加强仓库的温度和湿度监控是保证日常工作的顺利进行的关键内容。但是一些传统的方法是通过人工进行检测,这种人为的测试方法费时费力、效率低,且测试出温湿

9、度误差很大,有很多的不定因素。因此我们需要设计出一种造价低廉,使用简单,测量准确的检测仪器。单片机以其集成度高、运算速度快、体积小、运行可靠、价格低廉等优势,在过程控制、数据采集、机电一体化、智能化仪表、家用电器以及网络技术等方面得到了广泛的应用,特别是单片机嵌入式技术的开发与应用,标志着计算机发展史上又一个新的里程碑。作为计算机两大发展方向之一的单片机,以面向对象的实时控制为己任,嵌入到如家用电器、汽车、机器人、仪器仪表等设备中,使其智能化。目前国内外各大电气公司,大的半导体厂商正在不断的开发、使用单片机,使其无论在控制能力,减小体积,降低成本,还是开发环境的改善等方面,都得到空前迅速的发展

10、。温湿度检测控制系统在工业生产、科学研究和人们的生活领域中,得到了广泛应用。在工业生产过程中,很多时候都需要对温湿度进行严格的监控,以使得生产能够顺利的进行,产品的质量才能够得到充分的保证。使用自动温度控制系统可以对生产环境的温度进行自动控制,保证生产的自动化、智能化能够顺利、安全进行,从而提高企业的生产效率。温湿度检测系统应用十分广阔。1.2国内外研究状况和相关领域研究成果网络通信技术的发展,使监控系统广泛应用于工农业生产等领域,因此,粮情检测技术粮情检测属监控系统范畴,近年来,由于计算机技术、超大规模集成电路技术和的研究在软、硬件等方面都有了一定的进展。早期粮情监测主要采用温度计测量法,此

11、方法是将温度计放入一个特质的插杆中,根据人的经验查在粮堆里的几个测温点,由管理人定期读数,以此来确定粮食温度的高低,以便采取一些措施。这种方法虽然可用,但是因为温度计的精确度及人为的读数等原因,不但检测慢,而且精度低,很容易引发局部粮温过高发霉导致大面积粮食粮食损坏。随着科学技术的发展,至80年代开始,一些仓库采用电阻温度传感器、模数转化器、报警装置、采样器组成的检测系统,可以对粮仓各个点进行巡回检测,检测的精度和速度都大大提高,但是因为电阻的灵敏度问题,导致系统的可靠性不够理想 。到90年代,粮仓检测系统有了很大的提高,系统采取了矩阵式布线技术,简化了采集的线路,以半导体等器件作为传感器;以

12、串行传输方式为线路传输,从而减少了传输线根数;采用单板机进行数据处理,并采用各种手段来提高检测速度和传送速度,软硬件的结合提高了检测的可靠性和精度。但由于传感器的线性度差,无法大面积推广。最近几年,随着单片机技术的日益精湛及计算机的广泛推广应用,粮仓的检测越来越准确,稳定性也越来越高。高科技数字传感器的广泛应用使得粮仓的检测达到一个佳配置和最好的性价比。这样的传感器采用了微控制器最新技术和半导体集成电路,半导体温度检测、数据信号转换。计算机接口等芯片都集成在一个管芯上。现在国内出现了很多数字传感的配套产品,如中继器、接插器、中继器、分线器等,技术也相对成熟。1.3 温湿度控制系统的设计意义随着

13、社会的发展,科技的进步,以及测温度、湿度仪器在各个领域的应用,智能化已是现代温度、湿度控制系统发展的主流方向。温度、湿度测试控制系统,控制对象是温度、湿度。温度、湿度控制在日常生活及工业领域应用相当广泛,比如温室、水池、发酵缸、电源等场所的温度、湿度控制。而以往温度、湿度控制是由人工完成的而且不够重视,其实在很多场所温度、湿度都需要监控以防止发生意外。针对此问题,本系统设计的目的是实现一种可连续高精度的温度、湿度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统。1.4 温湿度控制系统完成的功能根据设计要求确定了系统的总体方案,整个系统由温湿度传感器、单片机、显示

14、模块、键盘、报警器六部分组成10。认为先输入温湿度的上下限到系统内,温湿度检测器把监测值传给单片机,如监测值超出范围,则驱动报警。本机实现的功能:1. 当温度或者湿度下限温湿度,蜂鸣器报警;2. 当温度或者湿度上限温湿度,蜂鸣器报警;3. 数码管即时显示温度;4. 温度:温度可控制范围在1525度;5. 湿度:湿度可控制范围在25%75%;2系统方案设计2.1 温度检测方案设计2.1.1 方案一采用ad590,它的测温范围在-55+150之间,而且精确度高。m档在温度测试的范围内的非线性误差是±0.3。ad590可承受20v的反向电压和44v正向电压。使用可靠,只需要直流电源就能维持

15、正常工作,器件反接也不会损坏原器件。而且不用线性校正,使用也方便,接口也很简单,有很强的抗干扰能力。ad590的信号可传输出百余米,但是实现ad590的系统设计需要要使用高精度的adc配合才能得到数据,并且造价太高。2.1.2 方案二采用数字可编程温度传感器作为温度检测元件。数字可编程温度传感器可以直接读出被测温度值。不需要将温度传感器的输出信号接到a/d转换器上,减少了系统的硬件电路的成本和整个系统的体积。控制电路的核心器件是由美国atmel公司生产的at89s52单片机,属于mcs-51系列。at89s52是一种低功耗、高性能的cmos8位微控制器,具有8k在系统可编程flash存储器,采

16、用的工艺是atmel公司的高密度非易失存储器技术;片上flash允许程序存储器在系统可编程,亦适于常规编程器;在单芯片上,拥有灵巧的8位cpu和在系统可编程flash,使得at89s52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案;价格低廉、性能可靠、抗干扰能力强。因此广泛应用于工业控制和嵌入式系统中1。at89s52是一种低功耗、高性能cmos8位微控制器,具有8k 在系统可编程flash 存储器。使用atmel 公司高密度非易失性存储器技术制造,与工业80c51 产品指令和引脚完全兼容。片上flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位cpu

17、和在系统可编程flash,使得at89s52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。at89s52具有以下标准功能: 8k字节flash,256字节ram,32 位i/o 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,at89s52 可降至0hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,cpu停止工作,允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。2.1.3 方案论证方案一硬件电路复杂,

18、需要设计a/d转换电路,以及与其相关的编程,总体设计起来较困难,软件、硬件调试复杂,硬件成本较高。而且器传感器有以下缺点:它灵敏度比较低,容易受到环境干扰信号的影响,也容易受到前置放大器温度漂移的影响。所以总体来说,方案一在硬件、软件上的成本都比较高,而且易受外部环境的影响,系统工作不稳定。方案二由于采用的是具有一总线特点的温度传感器,所以电路连接简单;而且该传感器拥有强大的通信协议,同过几个简单的操作就可以实现传感器与单片机的交互,包括复位传感器、对传感器读写数据、对传感器写命令。软件、硬件易于调试,制作成本较低。也使得系统所测结果精度大大提高。经过对这两种方案的比较,本设计决定采用方案二。

19、2.2系统总体方案设计单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能。硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后将模块连接在一起。这样可以减低设计的复杂性。本系统硬件设计包括温湿度传感器电路、led显示电路、复位电路、蜂鸣器电路、晶振电路,如图2-2:图2-2 温湿度监控系统原理图3 系统硬件及电路介绍3.1 单片机at89s52介绍at89s52是一种消耗低、性能高的cmos8位微控制器,具有8k flash 存储器。使用atmel 公司高密度非易失性存储器技术制造,与工业80c51 产品指令和引脚完全兼容。片上flash允许程序存储器在系统可编程,亦

20、适于常规编程器。在单芯片上,拥有灵巧的8 位cpu 和在系统可编程flash,使得at89s52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。at89s52具有以下标准功能: 8k字节flash,256字节ram,32 位i/o 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,at89s52 可降至0hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,cpu停止工作,允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机停止一切工作,直到下一个硬件复位

21、或中断出现为止2。如表3-1。引脚功能:vcc :电源gnd: 接地p0口: p0口是一个8位漏极开路的双向i/o口。作为输出口,每位能驱动8个ttl逻辑电平。对p0端口写“1”时,引脚用作高阻抗输入。在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻在flash编程时,p0口也用来接收指令字节;在flash编程时,p0口也用来接收指令字节。p1口3:p1 口是一个具有内部上拉电阻的8 位双向i/o 口,p1 输出缓冲器能驱动4 个ttl 逻辑电平。对p1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(ii

22、l)。表3-1 p1引脚功能引脚号第二功能p1.0t2(定时器/计数器t2的外部计数输入),时钟输出p1.1t2ex(定时器/计数器t2的捕捉/重载触发信号和方向控制)p1.5mosip1.6misop1.7sckp3口:p3 口是一个有内部上拉电阻的8 位双向i/o 口,p2 输出缓冲器能驱动4 个ttl 逻辑电平。对p3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。p3口亦作为at89s52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,p3口也接收一些控制信号。表3-2 p3引脚

23、功能引脚号第二功能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的外部程序存储器读取指令,ea必须接gnd。为了执行内部程序指令,ea应该接v

24、cc。在flash编程期间,ea也接收12伏vpp电压。xtal1:振荡器反相放大器和内部时钟发生电路的输入端。xtal2:振荡器反相放大器的输出端。图3-1 at89s523.2 温湿度检测电路ght11数字温湿度传感器是一款温湿度复合传感器,内含有已校准的数字信号输出,它是专用的温湿度传感器,能确保极高的可靠性和长期的稳定性。其包括一个ntc测温元件和一个电阻式感湿元件,连接一个高性能的八位单片机。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。1、 传感器性能说明,如表3-3:表3-3 传感器性能参数条件mintypmax单位湿度分辨率111%rh8bit重复性

25、7;1%rh精度25±4%rh050±5%rh互换性可完全互换量程范围03090%rh252090%rh502080%rh响应时间1/e(63%)25,1m/s 空气61015s迟滞±1%rh长期稳定性典型值±1%rh/yr续表3-3温度分辨率111888bit重复性±1精度±1±2量程范围050响应时间1/e(63%)630s2、 接口说明 建议连接线长度短于20米时用5k上拉电阻,大于20米时根据实际情况使用合适的上拉电阻 3、 电源引脚 dht11的供电电压为 35.5v。传感器上电后,要等待 1s 以越过不稳定状态在

26、此期间无需发送任何指令。电源引脚(vdd,gnd)之间可增加一个100nf 的电容,用以去耦滤波。 3.3报警电路与led显示电路在生产控制的系统中,为了生产的安全,为了提醒操作人的及时处理,都设有紧急状况报警系统。方法是通过计算机采集处理数据、数字滤波,变换之后,域之前设定的上下限值进行比较,如果不在范围内则报警,正常则不予与报警,只做正常的显示。同样仓库的温度低高设定的温度范围内时当p3.4输出高电平“1”时,晶体管导通,压电蜂鸣器两端获得约+5v电压而鸣叫,出报警声音;单片机的p3.6控制继电器接通风降温设备,直到低于设定的最低温度时,p3.4输出低电平时,三极管截止,蜂鸣器停止发声8。

27、如图3-2:图3-2 报警电路用led作为显示模块主要是因为它的高亮性,此设计系统采用四位一体的数码管显示,该数码管段选连在一起,具有四个独立的位选端,在实现程序显示时只需分别控制相应的位选端动态扫描即可,操作十分简单方便。数码管的操作分为静态扫描和动态扫描,本设计系统采用的是动态扫描。单片机应用中数码管动态显示接口是最广泛中的一个显示方式,动态驱动是指将所有的数码管的显示比划“a.b.c.d.e.f.dp”的同名端连接在一起,为每个数码管的com公共极增加位选通控制电路,位选通由各自独立的i/o线控制9。如图3-3:图3-3 显示电路图3.4 键盘与继电器电路按键器输入信号由八个小按键控制与

28、单片机的p1口连接,当有按键按下的时候,就产生了有效地输入信号。根据p1口按键输入的高低电平,判断是哪个按键按下,并执行相应的操作。键盘是人与微机打交道的主要设备,按键的读取容易引起误动作。可采用软件去抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动5。如图3-4:图3-4 按键电路继电器线圈需要流过较大的电流(约50ma)才能使继电器吸合,一般的集成电路不能提供这样大的电流,因此必须进行扩流,即驱动。用pnp型三极管驱动继电器的电路图,继电器线圈作为发射极负载而接到发射

29、极和正电源之间。当输入为+vcc时,三极管截止,继电器线圈无电流流过,则继电器释放(off);相反,当输入为0时,三极管饱和,继电器线圈有相当的电流流过,则继电器吸合(on)。当输入电压由变0v为+vcc时,三极管由饱和变为截止,这样继电器电感线圈中的电流突然失去了流通通路,若无续流二极管d将在线圈两端产生较大的反向电动势,极性为下正上负,电压值可达一百多伏,这个电压加上电源电压作用在三极管的集电极上足以损坏三极管6。故续流二极管d的作用是将这个反向电动势通过图中箭头所指方向放电,使三极管集电极对地的电压最高不超过+vcc +0.7v。如图3-5:图3-5 继电器电路3.5 时钟与复位电路at

30、89s52可以由两种方式产生时钟,一种是内部方式,一种外部方式。为了方便本设计采用内部方式,利用芯片内部的振荡电路,其内部有一个高增益反相放大器,放大器的输入端和输出端分别是引脚txal1和xtal2,此放大器和作为反馈的片外晶体谐振器构成一个自激振荡器7。如图3-6:图3-6 时钟电路图单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。复位电路分为上电自动复位和按键手动复位。上电自动复位是通过外部复位电路的电容充电实现的,按键手动复位是

31、将复位端经电阻与电源接通而实现的。如图3-7:图3-7 复位电路图4 系统设计及实现4.1 系统硬件电路设计图4-1首先要根据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。本部分详细介绍了基于at89s52单片机的仓库温湿度采集控制系统的软件设计。根据系统功能,可以将系统设计分为若干个子程序进行设计,如温度采集子程序,湿度采集子程序,数据处理子程序、显示子程序、执行子程序。采用kiel uvision3集成编译环境和c语言来进行系统软件的设计。本章从设计思路、软件系统框图出发,先介绍整体的思路后,再逐一分析各模块程序算

32、法的实现,最终编写出满足任务需求的程序。如图4-1:4.2 系统主程序方案系统开始工作,人工设定温度和湿度的上限及下限。led显示当前的温湿度,内置单片机判断当前的温湿度是否超过上限:如超过,则报警,联通继电器;如没有,则哦判断是否低于下限,低于下限则报警,联通继电器,正常范围内,则不做处理。隔一段时间进行一次温湿度判断。一次来保证温度和湿度都在规定的范围内,不在则会报警提示。如图4-1: 图4-1 系统流程图4.3 键盘扫描程序流程图键盘开始工作,判断是否按下,如按下,延迟20ms,做第二次判断,输入完毕点开始键,启动系统工作,结束键盘扫描。如图4-2:图4-2 按键扫描流程图5实物演示记录

33、当前温度值为28摄氏度,湿度为59%。设定温度20-33摄氏度,湿度50%-65%,此时仪器正常。如图5-1图5-1设定温度范围为30-40摄氏度,湿度为60%-70%。设置成功后应显示温度低,湿度低,如图5-2。设定温度范围为20-25摄氏度,湿度为40%-50%。设置成功后应显示温度高,湿度高,如图5-3。图5-2图5-3结 论回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近一个月的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。在设计的过程中遇到问题,可以说得是困难重重

34、,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好,通过这次课程设计之后,一定把以前所学过的知识重新温故。本系统采用的单片机控制,实现对仓库温湿度的智能控制,单片机可完成室内的数据采集、传送预处理和控制任务。用单片机c语言编程,采用模块化的结构设计,提高了可靠性和可扩展性。把单片机控制理论与技术应用在监控中,能够实现智能化的控制要求。经过一段时间的设计和实践,本设计已经完成了一个比较完整的温湿度检测与报警和继电器系统。它可以通过键盘输入温湿度上限、下限值,然后计算其上

35、限和下限的中间值作为最适温湿度值。不断的采集温湿度值,显示温湿度值,如果发现采集的温湿度值高于上限值就通过蜂鸣器报警。如果采集的温湿度值低于下限值,蜂鸣器报警的同时控制继电器执行相应的动作。如果并没有超过上下限则不会报警。到此此温湿度检测系统已经完成,这个系统在精度上还有待开发,在按键操作和温湿度实时监测已经完善。但是我想通过以后的学习和努力一定会有所提高,能够做出更好的设计。所设计系统不仅适用于仓库温湿度环境的控制,对软件进行一定的扩展后也可用于实验室、医疗室、储藏保鲜、组织培养等生物环境和粮库等环境的控制,具有较强的通用性和适应性。虽然到现在为止,有些东西我还是不懂和不理解,但我学会了面对

36、问题,自己尽量解决,先分析,然后解决,一条道通不过然后尝试着其它的方法,最终把问题克服掉。最重要的是锻炼了和同学的协作完成任务,提高了合作能力。我感觉这是这次设计过程中收获最大的,这将是我未来的工作中 用之不尽宝贵的经验。感谢那些帮助过我的同学,感谢他们在自己做毕业设计的情况下还帮我找资料并对我的设计提出宝贵的意见。总体来说,经过这次课程设计,我受益良多,也得到了很多经验。我明白了只有自己真正接触尝试了,才知道自己的真实水平。也使我看清了自己的知识水平与各种综合能力,找出了自己的不足和差距。我将明确自己在今后要奋斗的目标与方向,勇往直前。参考文献1 张桂香,姚存治.基于atmega128单片机

37、的智能供电测控系统设计j.电力自动化设备,2009,29(8):136-139. 2 李景魁.基于at89s52单片机的多路电能数据采集系统的设计j.制造业自动化,2011,33(9):80-81,84.3 刘杨斌,刘其峰,华慧等.基于at89s52单片机的简易数字示波器设计j.现代电子技术,2011,34(14):138-140.4 陈立兵,樊瑜瑾,代杰等.基于at89s52单片机的温度采集系统设计j.机械与电子,2011,(2):65-67. 5 李磊,李瑞鹤,朱腾等.基于at89s52图文显示设计与实现j.甘肃联合大学学报,自然科学版,2011,25(6):57-60.6 裴美珍,单正娅

38、.基于at89s52的空调温度控制系统的设计j.微型机与应用,2010,29(6):22-24.7 马兆远,王勇,马志峰等.基于at89s52的智能报警系统的设计与实现j.计算机技术与发展,2009,19(12):181-184. 8 郭志源.基于at89s52的远程报警和控制系统j.机械研究与应用,2007,20(5):106-108.9 赵娜,赵刚,于珍珠等.基于51 单片机的温度测量系统j.高等教育出版社,2009,5:50-72.10 王昌明,孔德仁,何云峰.传感器与测试技术m.北京航空航天大学出版社,2005.3:23-30.11 秦玉新.单片机控制的数字温度计j

39、.数字技术与应用,2005.6:51-60.12 臧玉萍 姜宝林. 数字温度计ds1820及其应用j.吉林工学院学报社,2001. 2:33-40.附录: 程序代码#include<reg51.h> /包含单片机寄存器的头文件#include<stdio.h>#include<math.h>#define uchar unsigned char/宏定义#define uint unsigned int uchar code led=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80

40、,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=p20; /将cs位定义为p3.4引脚sbit clk=p21; /将clk位定义为p1.0引脚sbit dio=p22; /将dio位定义为p1.1引脚sbit dq=p11;/

41、18b20数据口sbit beep=p34;/蜂鸣器void display1(); /显示函数声明sbit k1=p15; /切换屏幕sbit k2=p14;/加温键sbit k3=p13;/减温键sbit relay = p36; /继电器控制口uchar num=0;uchar th=25,low=15;/初始温度uchar sth=70;sl=30;/出事湿度uchar temp,a,b,c,temp1,time;uint time1,ya,temp2;/*延时子函数*/void delay(uint x)while(x-);void delayms(uint xms)uint i,j

42、;for(i=xms;i>0;i-)for(j=110;j>0;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 writeonechar(uchar dat)uchar i=0;for(i=0;i<8;i+)dq=0;dq=dat&0x01;delay(

43、5);dq=1;dat>>=1;delay(5); /*18b20读函数*/uchar readonechar()uchar i=0,dat=0;for(i=0;i<8;i+)dq=0;dat>>=1;dq=1;if(dq)dat|=0x80;delay(4);dq=1;return(dat);/*读取温度*/uchar readtemp()init18b20(); writeonechar(0xcc); /跳过rom writeonechar(0x44); /启动温度转换 delay(200); init18b20(); writeonechar(0xcc);

44、/跳过rom writeonechar(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(

45、num=6)num=0;while(!k1);if(num!=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)

46、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) delayms(10);if(k3=0)sl-;if(sl=0)sl=30;while(!k

47、3); /*显示当前温度*/void display1() a=temp1/10; b=temp1%10; p2=0xbf; p0=0xc6; delayms(10); p2=0xef; p0=leda; delayms(10); p2=0xf7; p0=ledb; delayms(10);/*设置上限温度*/void display2()uchar c,d;c=th/10;d=th%10;p2=0xbf; p0=0x89; delayms(10); p2=0xef; p0=ledc; delayms(10); p2=0xf7; p0=ledd; delayms(10);/*设置温度下限*/v

48、oid display3() uchar e,f;e=low/10;f=low%10;p2=0xbf; p0=0xc7; delayms(10);p2=0xef; p0=lede; delayms(10); p2=0xf7; p0=ledf; delayms(10);/*温度超过或低于设定值报警*/void sound()if(temp1<low|temp1>th) /判断是否超过设定值 beep();/超过设定值报警 if(temp1<low) relay=1; /控制继电器吸和 if(temp1>th) relay=0; /*湿度超出设定值报警*/void soun

49、d1()if(temp2>sth|temp2<sl) /判断是否超过设定值 beep();/超过设定值报警 if(temp2<sl) /控制继电器吸和 relay=1; if(temp2>sth) relay=0; /*显示当前湿度*/void display4(uint k)/*p2=0xbf;p0=leda/100;/p0=0xff;delay(5); p2=0xdf;p0=tablea%100;/p0=0xff;delay(5); */p2=0xef;p0=ledk%100/10;/p0=0xff;delayms(10);p2=0xf7;p0=ledk%10;/p

50、0=0xff;delayms(10);/*设置下限湿度*/void display5()uchar o,p;o=sth/10;p=sth%10;p2=0xbf;p0=0x89;delayms(5);p2=0xdf;p0=0x89;delayms(5);p2=0xf7;p0=ledp;delayms(5);p2=0xef;p0=ledo;delayms(5);/*设置湿度上限*/void display6()uchar l,i;i=sl/10;l=sl%10;p2=0xbf;p0=0xc7;delayms(5);p2=0xdf;p0=0xc7;delayms(5);p2=0xf7;p0=ledl;delayms(5);p2=0xef;p0=ledi;delayms(5);/*ad转换*/unsigned char a_d() unsigned c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论