基于单片机的仓库温湿度控制系统设计(附原理图及源代码)_第1页
基于单片机的仓库温湿度控制系统设计(附原理图及源代码)_第2页
基于单片机的仓库温湿度控制系统设计(附原理图及源代码)_第3页
基于单片机的仓库温湿度控制系统设计(附原理图及源代码)_第4页
基于单片机的仓库温湿度控制系统设计(附原理图及源代码)_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

PAGEPAGE29计算机控制设计课程设计报告班级B电气姓名学号

课程设计题目:仓库温湿度控制系统设计本课程设计要求设计仓库温湿度控制系统设计仓库的温湿度是保存货物的重要参数,如果不能对其进行良好的控制,直接导致货物损坏或者变质,造成重大损失!本设计通过使用STC89C52单片机、DHT11传感器模块、1602液晶显示屏模块以及报警模块。简单明了的实现的可提要求。DHT11数字温湿度传感器把采集到的温湿度数据传给单片机。经过单片机的处理。准确的显示到液晶屏上。并对温湿度设置上下限。越限报警。技术参数和设计任务:1、利用单片机89C52实现对温湿度的控制,以实现对仓库进行温湿度控制;2、为准确检测控制仓库的温湿度,采用DHT11传感器采集的温湿度;3、达到方便人工监控和观察记录,采用LCD液晶屏设计;4、使电路更稳定运行,采用保护电路;5、为了及时控制温湿度,采用报警设计;6、避免一些瞬间干扰量,软件设计中采用延时设计。一、本课程设计系统概述温度、湿度和人类的生产、生活有着密切的关系,同时也是工业生产中最常见最基本的工艺参数,例如机械、电子、石油、化工等各类工业中广泛需要对温度湿度的检测与控制。并且随着人们生活水平的提高,人们对自己的生存环境越来越关注。而空气中温湿度的变化与人体的舒适度和情绪都有直接的影响,所以对温度湿度的检测及控制就非常有必要了。随着科技的飞速发展和普及,高性能设备越来越多,各行各业对温湿度的要求也越来越高。传统的温湿度检测模式是以人为基础,依靠人工轮流值班,人工巡回查看等方式来测量和记录环境状况信息。在这种模式下,不仅效率低不利于人才资源的充分利用,而且缺乏科学性,许多重大事故都是由人为因素造成的,人工维护缺乏完整的管理系统。而问世监控系统就可以解决这样人才资源浪费,管理不及时的问题,这是由于它的智能化设计所决定的。故本次设计对于类似项目还具有普遍意义。1、系统原理本设计最关键部分是关于温度和湿度的采集以及检测、显示。STC单片机执行指令的速度很快,对工作环境的要求比较低;传感器模块我选择了DHT11数字温湿度传感器。告别了以前的单独测量温度以及湿度的方式,更简洁,更方便。连接好外围电路。通过DHT11准确的检测出当前环境下的温湿度,并且将所测数据交给STC单片机进行分析和处理。再将所得数据有单片机发送给HJ1602A液晶屏。成功完成显示。控制模块采用蜂鸣器报警方式。预先设置好所需温度和湿度的限值,将蜂鸣器接入电路。通过温度和湿度的上下限值控制蜂鸣器的报警。若逾越限值,实现蜂鸣器鸣响。但是需要注意的是温度超标和湿度超标需设置两种不同的鸣响方式,用来加以区别。提醒工作人员此时温度湿度数据出现异常、需及时调整,及时启用升温器、加湿器、降温风扇以及喷雾器来有效的调整实验室内温湿度。从而简单实现了控制。总体来说,本次设计主要涉及了温湿度的测量以及实现简单控制。硬件方面有四个模块,即传感器模块、STC89C52单片机主控模块、LCD1602液晶显示模块以及报警模块,从硬件制作方面。也相对简便。原理清晰、连线方便,不需要额外的焊接等技术。给硬件的制作带来了极大的便捷。电路总体上分为温湿度采集部分、中央处理器、显示模块以及报警模块部分。以STC89C52单片机最小系统作为核心控制电路,控制DHT11传感器采集的温湿度的转换,控制1602液晶屏的显示,以及蜂鸣器的报警。具体显示内容及方式由软件来完成。采集温湿度方面由DHT11传感器来完成,它是一个数字温湿度传感器、内置模数转换,可以直接与单片机相连接。而1602液晶屏是插针式,也可以直接与单片机相连接。因此不需要手动焊接等复杂的过程。具体步骤是:按照原理图将传感器、1602液晶显示屏分别接入单片机。通过DHT11传感器采集当前的温湿度值、再经单片机,将处理后的数据传送到液晶屏上显示出来。并且接入蜂鸣器。设置温度的上下限值。实现越限报警。电路总体上分为温湿度采集部分、中央处理器、显示模块以及报警模块部分。以STC89C52单片机最小系统作为核心控制电路,控制DHT11传感器采集的温湿度的转换,控制1602液晶屏的显示,以及蜂鸣器的报警。具体显示内容及方式由软件来完成。采集温湿度方面由DHT11传感器来完成,它是一个数字温湿度传感器、内置模数转换,可以直接与单片机相连接。而1602液晶屏是插针式,也可以直接与单片机相连接。因此不需要手动焊接等复杂的过程。具体步骤是:按照原理图将传感器、1602液晶显示屏分别接入单片机。通过DHT11传感器采集当前的温湿度值、再经单片机,将处理后的数据传送到液晶屏上显示出来。并且接入蜂鸣器。设置温度的上下限值。实现越限报警。2、控制方案a.传感器选择DHT11数字温湿度一体传感器。DHT11是一款集成型的数字温湿度一体传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。测量范围20%~90%RH,0℃~50℃。测温精度为-\+2℃,测湿精度为-\+5%RH。完全符合本次毕业设计的要求。b.显示器选择采用HJ1602液晶显示屏。HJ1602A是一种工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)。1602只能显示字母、数字和符号能显示16*2个字符,但寄存器不止32个,有一些显示效果,如字符一个个显示、字符从左到右或从右到左显示等等,显示效果简单。c.单片机主芯片选择STC89C52系列单片机。3、总体设计框图按照系统功能的具体要求,在保证实现其功能的然础上,尽可能降低系统成本。总体设计方案围绕上述思想,初步确定系统的方案如图1所示。图1总设计框图从图中可以看出,系统有微处理器模块、1602字符液晶显示模块、DHT11传感器模块和报警模块组成。在方案设计中,遵循简洁至上的原则,因此所有的外围模块采用串行方式与微处理器模块接口。该设计以STC89C51系列单片机为控制核心,实现温湿度采集及显示的基本功能。在设计系统时,为了更好地采用模块化设计法,分步的设计各个单元功能模块,系统的硬件部分可以分为传感器的使用、单片机控制、1602液晶显示和实现报警四大部分。硬件设计此次的设计主要由4个大的模块构成,分别是主控模块、传感器模块、LCD液晶显示模块及报警模块,其中主控模块是此次毕业设计的核心模块,主要是指STC89C52芯片,它控制整个系统的运行,利用其各个口分别控制其他模块,使其他模块能够成为一个整体,实现功能的需要;报警模块主要指将蜂鸣器接入单片机电路。通过对时时温度的检测,并给定所需要的温度区间,即给定上下限值,实现越限报警;传感器模块用于实验室实时温湿度的检测、由于DHT11的数字一体性,集成了模数转换等模块。直接接单片机即可。LCD液晶显示模块同样接入单片机,完成对单片机处理后的数据进行显示。主控模块设计STC89C52芯片的简介STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案,如图3-1所示。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。管脚介绍:图2STC89C52VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为STC89C52的一些特殊功能口,如下表所示:管脚备选功能:表3-1P3口的第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。主控模块电路原理图单片机主程序模块通过对DHT11传感器采集到信号的读取,将得到的数据信号进行分析和处理,再将处理后的信号发送给1602液晶显示模块。完成信息的接收与发送。并且连接蜂鸣器。控制报警系统。如图3图3STC89C52模块电路原理图DHT11传感器模块设计DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。引脚介绍:Pin1:(VDD),电源引脚,供电电压为3~5.5V。Pin2:(DATA),串行数据,单总线。Pin3:(NC),空脚,请悬浮。Pin4(VDD),接地端,电源负极。图4DHT11电路原理图1602液晶显示模块设计HJ1602A是一种工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)。在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。发光管和LED数码管比较常用,软硬件都比较简单。在单片机系统中应用晶液显示器作为输出器件有以下几个优点:由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。引脚说明:第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端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。1602LCD的RAM地址映射以及标准字库表LCD1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字符图有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母。它的读写操作、屏幕和光标的操作都是通过指令编程来实现的(说明:1为高电平,0为低电平)。指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移。S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示。C:控制光标的开与关,高电平表示有光标,低电平表示无光标。B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线。N:低电平时为单行显示,高电平时双行显示。F:低电平时显示5X7的点阵字符,高电平时显示5x10的点阵字符(有些模块是DL:高电平时为8位总线,低电平时为4位总线)。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读出忙信号和光标地址。BF为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙,模块就能接收相应的命令或者数据。指令10:写数据。指令11:读数据。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。图51602显示模块报警模块蜂鸣器是一种一体化结构的电子讯响器。采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”。图6蜂鸣器工作原理图三、软件设计在对我们所要设计的课题有了整体的了解之后,需要先建立程序框架的流程图,对整个设计划分模块,逐个模块实现其功能,最终把各个子模块合理的连接起来,构成总的程序。主程序首先要对整个系统进行初始化,然后将采集到的温湿度指令传给系统的主流程图如图7所示:图7主程序流程图1、1602液晶显示模块设计液晶显示模块是一个慢显示器件,在执行每条指令之前要确认模块的忙标志为低电平,表示不忙,则此指令失效,要显示字符时要先输入显示字符地址,告诉模块在哪里现实了字符。1602液晶显示模块可与STC89C52直接接口的。软件流程图如图8所示:图81602液晶显示模块程序流程图2、传感器模块设计设计温湿度模块DH11数字温湿传感器加湿器温湿度传感器随着科技的不断发展,汽车、空调、除湿器、烘干机等种类繁多的电器都已进入人们的日常生活,而这些电器设备很多都离不开对温度、湿度等环境因素的要求。因此,温度、湿度传感器用途越来越广泛。新一代的数字传感器不再需要外置的AD转换模块,并具有标准接口,使用方便,得到了越来越多的应用。DHT11作为一种新型的单总线温湿度数字传感器,具有更多的优点,它使系统设计更加简单,控制方便,易于实现。1单总线通信简介目前常用的微机与外设之间进行数据传输的串行总线主要有I2C总线、SPI总线和SCI总线。其中I2C总线以同步串行两线方式进行通信(1条时钟线,1条数据线),SPI总线则以同步串行三线方式进行通信(1条时钟线,1条数据输入线,1条数据输出线),而SCI总线是以异步方式进行通信的(1条数据输入线,1条数据输出线)。这些总线至少需要两条或两条以上的信号线。DHT11传感器模块的软件流程图如下图所示:图9DHT11传感器模块程序流程图四、小结本系统以单片机为核心部件的控制系统,利用软件编程,最终基本上实现了各项要求。虽然系统还存在一些不足,比如温湿度测量不够精确,特别是湿度,波动较大。尝试了各种改进方法。仍然不太理想。不过大体能反映出设计的目的和要求。与预期的结果相差不多。足够能够应用与仓库的温湿度检测和控制,可以很好的帮助仓库保存货物。经过近两个礼拜的奋斗,从确定题目,到后来查找资料,理论学习,实验编程调试,这一切都使我的理论知识和动手能力有了很大的提高。了解了单片机的硬件结构和软件编程方法,对单片机的工作方式有了很大的认知。同时,对一些外围设备比如传感器、液晶屏、键盘、蜂鸣器等有了一定的了解!学会了对一项工程如何设计:首先,要分析需要设计的系统要实现什么功能,需要什么器件;然后,针对设计购买相应的硬件,选用硬件时不仅要选用经济的,更重要的是如何能更精确更方便的完成系统的要求;再次,对各个硬件的软件实现要弄清楚,如何更好的实现各个硬件的协调,更好的通过主控制器件实现硬件的功能。最后,通过各种测试与调试,让设计更好的完成系统要求。但因为我们的水平有限,此设计中也存在一定的不足。就比如说对湿度的控制方面,由于温度时刻都在发生着变化。而湿度的变化又大体上取决于温度。因而对于湿度的控制有点困难。同时由于湿度变化波动比较大。造成报警频繁,为湿度限值的设定也带来了不小的麻烦。温湿度控制已经成为了21世纪热门研究话题之一。无论是从生产还是生活,与我们人类都是息息相关的。而智能化的控制温湿度已经发展成为一种必然。随着世界经济的发展,人们生活水平的提高以及社会的进步。我们不可能一直墨守陈规,不能在恪守以前利用人力资源来控制温湿度的方法。不仅浪费大量的人力资源、财力资源,并且控制系统也更加单一化。而采用自动控制的办法、既节省了人力资源,更体现了与时俱进的思想、世界在进步、而这种进步就该体现在各个方面。五、参考文献[1]于海生.计算机控制技术[M].北京:机械工业出版社,2021.[2]韩志军.单片机应用系统设计-入门向导与设计实例[M].北京:机械工业出版社,2021.[3]雎丙东.单片机应用技术与实例[M].北京:电子工业出版社,2021.[4]靳达.单片机应用系统开发实例导航[M].北京:人民邮电出版社,2021.[5]戴佳.51单片机应用系统开发典型实例[M].北京:中国电力出版社,2021.[6]孙传友.测控系统原理与设计[M].北京:北京航空航天大学出版社,2021.[7]沈红卫.单片机应用系统设计实例与分析[M].北京:北京航空航天大学出版社,2021.[8]陈明荧.8051单片机课程设计实训教材[M].北京:清华大学出版社,2021.[9]吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用[M].北京:清华大学出版社,2021.[10]张毅刚.MCS-51单片机应用设计[M].哈尔滨工业大学出版社,2021.附录1运行程序#include<reg51.h>#include<intrins.h>#include<absacc.h>typedefunsignedcharU8;/*definedforunsigned8-bitsintegervariable 无符号8位整型变量*/typedefunsignedintU16;/*definedforunsigned16-bitsintegervariable 无符号16位整型变量*/#definelcd_H#include<reg51.h>#defineHIGH1#defineLOW0#defineTRUE1#defineFALSE0#defineZERO0#defineMSB0x80#defineLSB0x01//********液晶屏部分****#defineLINE10#defineLINE21#defineLINE1_HEAD0x80#defineLINE2_HEAD0xC0#defineDATA_MODE0x38#defineOPEN_SCREEN0x0C#defineDISPLAY_ADDRESS0x80#defineCLEARSCREENLCD_en_com(0x01)#defineLCDIOP1sbitLCD1602_RS=P2^4;//定义端口sbitLCD1602_RW=P2^3;sbitLCD1602_EN=P2^2;//////IO口定义区//////sbitP2_0=P2^0;sbitSPK=P0^7;intt1,t2,ss;//////定义区//////U8U8FLAG;U8U8count,U8temp;U8U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;U8U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;U8U8comdata;unsignedcharstr1[]={'s','h','i','d','u',':'};unsignedcharstr2[]={'w','e','n','d','u',':'};LCD_init();voidDelay(U16j){U8i; for(;j>0;j--) { for(i=0;i<27;i++); }}voidDelay_10us(void){U8i;i--;i--;i--;i--;i--;i--;} voidCOM(void){ U8i;for(i=0;i<8;i++) { U8FLAG=2; while((!P2_0)&&U8FLAG++); Delay_10us(); Delay_10us(); Delay_10us(); U8temp=0; if(P2_0)U8temp=1; U8FLAG=2; while((P2_0)&&U8FLAG++); //超时则跳出for循环 if(U8FLAG==1)break; //判断数据位是0还是1 //如果高电平高过预定0高电平值则数据位为1 U8comdata<<=1; U8comdata|=U8temp;//0 }//rof }voidLCD_Read_BF(void){unsignedcharread=0;LCD1602_RS=LOW;LCD1602_RW=HIGH;LCD1602_EN=HIGH;LCDIO=0XFF;read=LCDIO;}voidLCD_en_com(unsignedcharcommand)//写指令{LCD_Read_BF();LCD1602_RS=LOW;LCD1602_RW=LOW;LCD1602_EN=HIGH;LCDIO=command;LCD1602_EN=LOW;}voidLCD_en_dat(unsignedchardat)//写数据{LCD_Read_BF();LCD1602_RS=HIGH;LCD1602_RW=LOW;LCD1602_EN=HIGH;LCDIO=dat;LCD1602_EN=LOW;}voidLCD_set_xy(unsignedcharx,unsignedchary)//写入地址函数{unsignedcharaddress;if(y==LINE1) address=LINE1_HEAD+x;elseaddress=LINE2_HEAD+x; LCD_en_com(address);}voidLCD_write_char(unsignedcharx,unsignedchary,unsignedchardat)//写入字符函数{LCD_set_xy(x,y);LCD_en_dat(dat);}voidLCD_write_string(unsignedcharx,unsignedchary,unsignedchar*s)//写入字符串函数{LCD_set_xy(x,y);while(*s){LCDIO=*s;LCD_en_dat(*s);s++;}}voidLCD_Init(void)//初始化函数{LCD_en_com(0x38);/*显示模式设置*/Delay(5);LCD_en_com(0x38);Delay(5);LCD_en_com(0x38);Delay(5);LCD_en_com(0x38);LCD_en_com(0x08);/*显示关闭*/LCD_en_com(0x01);/*显示清屏*/LCD_en_com(0x06);/*显示光标移动设置*/Delay(5);LCD_en_com(0x0C);/*显示开及光标设置*/} // //湿度读取子程序 // //以下变量均为全局变量 //温度高8位==U8T_data_H //温度低8位==U8T_data_L //湿度高8位==U8RH_data_H //湿度低8位==U8RH_data_L //校验8位==U8checkdata //调用相关子程序如下 //Delay();,Delay_10us();,COM(); // voidRH(void) { //主机拉低18msP2_0=0; Delay(180); P2_0=1; //总线由上拉电阻拉高主机延时20us Delay_10us(); Delay_10us(); Delay_10us(); Delay_10us(); //主机设为输入判断从机响应信号 P2_0=1; //判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行 if(!P2_0) //T! { U8FLAG=2; //判断从机是否发出80us的低电平响应信号是否结束 while((!P2_0)&&U8FLAG++); U8FLAG=2; //判断从机是否发出80us的高电平,如发出则进入数据接收状态 while((P2_0)&&U8FLAG++); //数据接收状态 COM(); U8RH_data_H_temp=U8comdata; COM(); U8RH_data_L_temp=U8comdata; COM(); U8T_data_H_temp=U8comdata; COM(); U8T_data_L_temp=U8comdata; COM(); U8checkdata_temp=U8comdata; P2_0=1; //数据校验 U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp); if(U8temp==U8checkdata_temp) { U8RH_data_H=U8RH_data_H_temp; U8RH_data_L=U8RH_data_L_temp; U8T_data_H=U8T_data_H_temp; U8T_data_L=U8T_data_L_temp; U8checkdata=U8checkdata_temp; }//湿度整数部分str1[6]=(char)(0X30+U8RH_data_H/10);str1[7]=(char)(0X30+U8RH_data_H%10);//湿度小数部分str1[9]=(char)(0X30+U8RH_data_L/10);//温度整数部分str2[6]=(char)(0X30+U8T_data_H/10);str2[7]=(char)(0X30+U8T_data_H%10);//温度小数部分str2[9]=(char)(0X30+U8T_data_L/10); t1=(int)(0X30+U8T_data_H/10); t2=(int)(0X30+U8T_data_H%10); ss=t1*10+t2; } }voidxianshi(void){LCD_write_char(0x00,0,'s');LCD_write_char(0x01,0,'h');LCD_write_char(0x02,0,'i');LCD_write_char(0x03,0,'d');LCD_write_char(0x04,0,'u'); LCD_write_char(0x05,0,':');LCD_write_char(0x06,0,str1[6]);LCD_write_char(0x07,0,str1[7]);LCD_write_char(0x08,0,'.');LCD_write_char(0x09,0,str1[9]);LCD_write_char(0x0B,0,'%');LCD_write_char(0x0C,0,'R');LCD_write_char(0x0D,0,'H'); LCD_write_char(0x00,1,'w');LCD_write_char(0x01,1,'e');LCD_write_char(0x02,1,'n');LCD_write_char(0x03,1,'d');LCD_write_char(0x04,1,'u'); LCD_write_char(0x05,1,':');LCD_write_char(0x06,1,str2[6]);LCD_write_char(0x07,1,str2[7]); LCD_write_char(0x08,1,'.');LCD_write_char(0x09,1,str1[9]);LCD_write_char(0x0B,1,0x27); LCD_write_char(0x0C,1,'C');}//**蜂鸣器**//voidlaba() {unsignedinti;if(ss>554||ss<500){for(i=0;i<200;i++)//喇叭发声的时间循环,改变大小可以改变发声时间长短{Delay(160);//参数决定发声的频率,估算值,可以自行更改参数并SPK=!SPK;} SPK=1; Delay(60000);}//喇叭停止工作,间歇的时间,可更改}////main()功能描述:AT89C5111.0592MHz 串口发//送温湿度数据,波特率9600//voidmain(){ LCD_init();Delay(4);while(1){ //调用温湿度读取子程序 RH(); xianshi();laba(); }} 附录2硬件原理图

社会实践报告系别:班级:学号:姓名:作为祖国未来的事业的继承人,我们这些大学生应该及早树立自己的历史责任感,提高自己的社会适应能力。假期的社会实践就是很好的锻炼自己的机会。当下,挣钱早已不是打工的唯一目的,更多的人将其视为参加社会实践、提高自身能力的机会。许多学校也积极鼓励大学生多接触社会、了解社会,一方面可以把学到的理论知识应用到实践中去,提高各方面的能力;另一方面可以积累工作经验对日后的就业大有裨益。进行社会实践,最理想的就是找到与本专业对口单位进行实习,从而提高自己的实战水平,同时可以将课本知识在实践中得到运用,从而更好的指导自己今后的学习。但是作为一名尚未毕业的大学生,由于本身具备的专业知识还十分的有限,所以我选择了打散工作为第一次社会实践的方式。目的在于熟悉社会。就职业本身而言,并无高低贵贱之分,存在即为合理。通过短短几天的打工经历可以让长期处于校园的我们对社会有一种更直观的认识。实践过程:自从走进了大学,就业问题就似乎总是围绕在我们的身边,成了说不完的话题。在现今社会,招聘会上的大字报都总写着“有经验者优先”,可还在校园里面的我们这班学子社会经验又会拥有多少呢?为了拓展自身的知识面,扩大与社会的接触面,增加个人在社会竞争中的经验,锻炼和提高自己的能力,以便在以后毕业后能真正真正走入社会,能够适应国内外的经济形势的变化,并且能够在生活和工作中很好地处理各方面的问题,我开始了我这个假期的社会实践-走进天源休闲餐厅。实践,就是把我们在学校所学的理论知识,运用到客观实际中去,使自己所学的理论知识有用武之地。只学不实践,那么所学的就等于零。理论应该与实践相结合。另一方面,实践可为以后找工作打基础。通过这段时间的实习,学到一些在学校里学不到的东西。因为环境的不同,接触的人与事不同,从中所学的东西自然就不一样了。要学会从实践中学习,从学习中实践。而且在中国的经济飞速发展,又加入了世贸,国内外经济日趋变化,每天都不断有新的东西涌现,在拥有了越来越多的机会的同时,也有了更多的挑战,前天才刚学到的知识可能在今天就已经被淘汰掉了,中国的经济越和外面接轨,对于人才的要求就会越来越高,我们不只要学好学校里所学到的知识,还要不断从生活中,实践中学其他知识,不断地从各方面武装自已,才能在竞争中突出自已,表现自已。在餐厅里,别人一眼就能把我人出是一名正在读书的学生,我问他们为什么,他们总说从我的脸上就能看出来,也许没有经历过社会的人都有我这种不知名遭遇吧!我并没有因为我在他们面前没有经验而退后,我相信我也能做的像他们一样好.我的工作是在那做传菜生,每天9点钟-下午2点再从下午的4点-晚上8:30分上班,虽然时间长了点但,热情而年轻的我并没有丝毫的感到过累,我觉得这是一种激励,明白了人生,感悟了生活,接触了社会,了解了未来.在餐厅里虽然我是以传菜为主,但我不时还要做一些工作以外的事情,有时要做一些清洁的工作,在学校里也许有老师分配说今天做些什么,明天做些什么,但在这里,不一定有人会告诉你这些,你必须自觉地去做,而且要尽自已的努力做到最好,一件工作的效率就会得到别人不同的评价。在学校,只有学习的氛围,毕竟学校是学习的场所,每一个学生都在为取得更高的成绩而努力。而这里是工作的场所,每个人都会为了获得更多的报酬而努力,无论是学习还是工作,都存在着竞争,在竞争中就要不断学习别人先进的地方,也要不断学习别人怎样做人,以提高自已的能力!记得老师曾经说过大学是一个小社会,但我总觉得校园里总少不了那份纯真,那份真诚,尽管是大学高校,学生还终归保持着学生的身份。而走进企业,接触各种各样

温馨提示

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

评论

0/150

提交评论