【《基于单片机的自动晾衣架系统设计》8700字】_第1页
【《基于单片机的自动晾衣架系统设计》8700字】_第2页
【《基于单片机的自动晾衣架系统设计》8700字】_第3页
【《基于单片机的自动晾衣架系统设计》8700字】_第4页
【《基于单片机的自动晾衣架系统设计》8700字】_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的自动晾衣架系统设计摘要鉴于智能家具不断步入人们的生活中,我们考虑将自动化检测及控制技术运用到晾衣架上去,设计一个检测环境温湿度、光照等功能的智能晾衣架。本设计可以减轻人们在无人的情况下依然可以保持衣服的整洁干净。本设计由STM32单片机电路配合光敏电阻、DHT11温湿度传感器、风速检测仪以及LCD1602显示电路、电机电路、电源电路等组成。该系统可以实时采集温湿度、风速光照强度等,来判断是否驱动电机的伸缩。该系统有手动模式和自动模式,对应可以设置温湿度、光照强度、风速的阈值,切换工作状态。关键词:单片机、DHT11温湿度传感器、步进电机;目录TOC\o"1-2"\h\u13715一、引言 420845(一)智能家具的发展背景 48212(二)智能家居的发展前景 52224(三)本文主要研究内容 524472二、总体设计方案 515703(一)系统功能要求 532420(二)系统整体方案设计 625938(三)元器件的选择 717142三、系统硬件的设计 9173(一)最小系统电路设计 1024721(二)显示电路设计 1024314(三)按键电路设计 113564(四)A/D转换电路 1113631四、系统软件的设计 1219131(一)、系统软件整体设计 1312315(二)、显示函数软件设计 1430194(三)、按键电路软件设计 1519513(四)、处理子函数程序设计 1629937五、实物调试 1720307(一)、软件调试 1831993(二)、实物组装 1920049(三)实验调试 1922873总结 2220803参考文献 23引言智能家具的发展背景现在随着互联网的发展,经济水平提高和科学技术的发展,人们的生活逐渐智能化。互联网科技影响人们的生活,随之智能家具也应运而生。由于传统的晾衣架已经无法满足现代人们的生活需求,加之传统晾衣架的缺点也逐渐体现出来,使用寿命短,保养繁琐等,无法满足消费者的日益发展的需求。智能家具不仅包含了传统家具的功能,还兼备自动化,提供全方位的信息交互。智能家居的发展前景从智能家具的发展来看,提出智能家具的概念,不断的研究更新,融合的新生活中去,时代的推动。智能家居在智能照明、智能门锁、环境监测、安全警示等应用广泛,实用性强方便人们的生活。智能家居设备通过不断的改进,推动智能生态的建立。智能家具互联平台控制,远程控制家中的设备,对家中的安全状态实时上报,保证住家的安全性,高性能、自动化、语音助手等不断地方便着我们生活,智能已经成为潮流的趋势。本文主要研究内容本课题设计制作的仪器是运用STM32芯片主导的STC89C52控制传输转换核心。它由软件系统设计和硬件系统设计两方面系统组成。通过在学校对元器件的学习,以及对编程的一些了解学习,对电子元件进行相应的组装,对问题的检测、排除、解决方案。总体设计方案系统功能要求本设计由STM32单片机电路配合DHT11温湿度传感器、风速检测电路、光敏电阻以及LDC1602液晶显示电路,电机电路、电源电路组成。系统主要实现功能如下所示:通过DHT11、风速检测、光敏电阻检测当前温湿度、风速、光照强度,低于或高于阈值,晾衣架收回或伸出;通过按键设置各传感器的上下限值和定时;通过显示屏显示温湿度,光照强度值,风速值,定时时间;系统整体方案设计本设计是以STC89C52单片机为核心控制器,加上其他的模块组成智能晾衣架系统。其中包括中控部分、输出部分、输入部分。其中中控系统是由STC89C52芯片进行控制处理数据,经过处理而控制。其中输出部分由显示电路和电机电路组成,显示电路可以显示温湿度,光照强度,风速,调定时间以及对各个数值的设置;电机电路是由步进电机组成,由此来控制模拟晾衣架的伸缩。最后是输入部分由光敏电阻,风速检测模组,温湿度检测模组,独立按键以及供电电路组成,以此来检测当前的光照强度,风速,温湿度。其中按键电路是来切换界面以及设置各个数值。供电电路是为整个系统提供电源,来支持整个系统的运行。元器件的选择主控制器选择通过对上面的了解,为了能够实现自动晾衣架每一项的功能指标,我将选择STC89C52芯片来帮助我完成实验。STC89C52芯片相比较于其他的芯片,STC89C52芯片功耗更低,性能更高,而且价格也比较低,能够完全的实现目前的所有功能,就目前而言,STC89C52芯片是最优的选择。显示模块的选择为了能够感知周围的实时情况,更加的直观的了解周围情况,显示屏恰好可以为我们解决所有的问题,需要显示屏实时的反应周围环境。因此在这里我将选择LCD1602显示模块。LCD1602显示模块是一款专门用于显示数字,字母等的点阵液晶显示器。LCD1602显示屏是指现实的内容为16*2,意思为可以显示两行,每行显示16个字符,即可以同时显示32个字符。提供了丰富的指令设置:清显示;游标回原点;显示开/关;游标开/关;显示字符闪烁;游标移位;显示移位元等。模/数转换芯片的选择在实验中,绝大多数的物理量都是连续变化的模拟量,例如温湿度,风速,光照强度等,他们的数值都是随着时间的变化而变化,而这些的模拟量经过传感器的转换后依然是模拟信号,如果需要运用数字系统来处理这些模拟量,我们就必须要将这些模拟信号进行处理,需要将这些电信号转换为数字信号,即模数转换。因此我们就需要用到模数转换模块。在选择模数转换模块时,我们需要考虑几个主要技术指标:分辨率,转换误差,转换速度以及电源抑制比。位数越多,其量化误差越小,转换精度越高,分辨率也越高。转换时间越短,转换速度越快,因此为了完成实验目标,我们将选用ADC0832模数转换模块。温湿度模块的选择温湿度传感器就是利用物质随温度湿度变化的特性,把温湿度转换为电量的传感器。在这个实验中,我将选择DHT11温湿度传感器来进行实验,使得智能家具能够检测周围温度湿度的效果。该产品响应时间快,抗干扰能力强,物美价廉,品质好,因此我将选择这款模组来帮助我实现各种效果。本实验目的就是通过环境的检测变化来对电机的控制。风速传感器的选择风速传感器在我们日常的生活中也十分常见。例如在路过气象台的时候,经常可以看见一个东西在转,那个东西就是风速传感器。在这里我就选用三环式旋转风杯风速传感器。风速传感器是由一个直流发电机和一个三环式旋转风杯组成的。当由风流经过三环式风杯时,风带动风杯转动,风杯再带动直流发电机转动,直流发电机的电机产生电压,利用此信号电压,进行风速检测。步进电机的选择继电器使用特点是用小电压小电流控制大电压大电流电路的通与断,继电器内部对大电流和小电流进行了隔离,所以在很多小电流控制大电流的场合都使用继电器。通断的实现原理是,内部应用小电流控制电磁线圈是否得电,如果得电则带有铁芯的线圈就会有磁性,会使继电器的触点动作,这样就实现了小电流控制大电流。电动机也俗称马达,它有直流马达和交流马达之别。一般的马达是通过通电,使得马达中心的线圈产生磁性,使得线圈和马达壁上的磁铁相互排斥,达到运动的标准。物理课上学习的电磁铁,也就运用到这里面,通电线圈会产生磁性,形成一个磁铁。光敏电阻元器件的选择光敏电阻一般用于对光线的测量,光的转换。光敏电阻是由一种半导体材料制成的,利用了光电效应。一般的情况下光敏电阻在无光的情况下,能够保持高额的电阻,并且光敏电阻对光十分敏感,在光照强度稍微改变,电阻阻力就会改变。光敏电阻器的光照特性在大多数情况下是非线性的,只有在微小的范围内呈线性,光敏电阻器的电阻值有较大的离散性。系统硬件的设计最小系统电路设计1、通过对书本知识的了解得知晶振电路的构造简单。本课题选用的晶振是11.0592M的无源晶振,将两片30pF的电容连到晶振的两端,使其运行产生11.0592MHz的时钟信号,传输到STC89C52单片机中让其执行各种指令。2、复位电路也是最小电路的组成部分。复位电路主要作用是当外界出现干扰时,实验无法继续进行下去,我们可以通过复位按钮来进行相关操作,使其电路恢复至初始化。复位电路与单片机的REST引脚相连。当电路通路时,此情况下电路进行初始化,程序重新运行。显示电路设计LCD1602液晶显示器是一款可以显示2行16列的显示屏。首先GND是电源负极,VCC是电源正极。其中VO引脚是LCD驱动电压输入端,RS引脚是指令和数据选择信号。RW是读写选择信号,EN是使能信号,数据信号是由DB0到DB7信号端口来控制的。LCD1602的显示实验是初学时期必须学习的实验,因此开发设计资料也比较全。LCD1602内部集成了HD44780控制方案和HD44100驱动方案,搭配常用电阻电容器件,对液晶显示屏进行控制。虽然不同品牌的LCD1602使用的集成芯片方案不同,但是在开发操作上是一样的。由于有了驱动芯片的支持,在控制液晶显示的时候只需要写入对应的字符即可,驱动芯片会将对应显示内容的数据输入到液晶屏进行显示。按键电路设计本课题的按键设计是由三个独立的按键组合而成。通过不同的按键组合,来达到不同的效果显示。我设计的电路中,第一个按钮起到设置的作用,用来设置不同的数值显示,例如:温湿度的设定、风速的设定,光照强度的设定以及定时设置等。由此以来可以模拟不同季节下对数值的要求。第二和第三个按钮可以分为两个作用,首先第一个作用是:当界面调试为设置界面时,第二和第三个按钮分别做为加减按钮;第二个功能是:第二个按钮可以作为切换界面按键,以观察不同的状态,第三个按钮作为手动切换按钮,可以手动切换步进电机的状态。A/D转换电路A/D转换是将时间和数值上连续变化的模拟量转换成时间和数值都是离散的数字量。A/D转换需要经过采样、保持、量化、编码这四个过程。其中CS,CLK,DO和DI是与STC89C52单片机的串口连接。DO,DI引脚由于是双向的,所以DO,DI引脚可以并联连接。当进行模数转换时,CS端必须处于低电平的状态,否则该芯片将处于禁用状态。系统软件的设计C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境便能运行的高效率程序设计语言。选用C语言有一下的几种有点:语言简便,方便灵活;可移植性好;表达能力强;表达方式灵活;可进行结构化程序设计;可以直接操作计算机硬件;生成的目标代码质量高。、系统软件整体设计首先我们对整个系统进行初始化,初始化过后就是对整个系统的编辑了。开始我们需要对按键的判断是否有变化,如果没有,我们将直接获取相关的数据,例如温度湿度,光照强度以及风速等祥光的环境变量;如果按键变化,则需要我们对相关的数值设定以及界面切换,例如温湿度界面与风速数值显示界面的切换,或者是对限定范围的设置。接下来我们就是对检测函数的编辑:通过我温湿度模块,光照检测模块以及风速检测模块等相关模块的检测,来进行相关的模块设计。接下来就是显示模块的设计,该设计需要我们将各个模块的检测数据,用此设计来具体显现出来,以便我们更直观的了解周围环境的状况,和对设定界面的显示。最后一个函数的设计就是整个系统的综合:我们需要用这个函数设计来进行处理判断。当所设定的数值范围内,各个检测数据任意一个不在限定范围内,则步进电机强制收回,此状态为晾衣架为收回状态,若数据测量都在设定范围内,晾衣架为伸出状态,或者可以手动调整晾衣架的位置。紧接着就是定时设置,设置时间在此时间内可进行数据测量,不必要时可以关闭,以节约能源。主程序编码如下:voidmain(){ Lcd1602_Init(); //LCD1602初始化 Delay_function(50); //延时50ms lcd1602_clean(); //清屏 Delay_function(50); //延时50ms while(DHT11_Init()); //DHT11初始化 Delay_function(50); //延时50ms Timer0_Init(); //定时器0初使化 Delay_function(50); //延时50ms、显示函数软件设计显示函数顾名思义就是设计显示屏的函数,我们设计几个界面:分别为温湿度显示界面,光照强度和风速检测显示界面,定时界面的设计,以及温度,湿度,光照强度,风速,时间数值设置界面。因为我们只有三个按键,需要对这么多的数据进行规划设计,就需要我们统一规划分类,因此我将显示数值归为一类,设置数值归为一类。根据函数的设计,我们将会根据不同的按键来进行相关的设定。其函数程序如下:voidDisplay_function(void){ switch(flag_display) //根据不同的显示标志位,显示不同的设置界面 { case0: //界面0 switch(flag_display_change) //根据切换显示标志位,显示不同的测量界面 { case0: lcd1602_display_str(1,0,"Temp:"); //显示温度 lcd1602_display_temp(1,5,temp_value);、按键电路软件设计按键电路设计,三个按键都有独立的作用。我们设计按键,首先扫描是否有按键改动,若没有则直接结束该过程;若有按键改动,则需要我们判断有哪个按键改动:我设计的电路中,第一个按钮起到设置的作用,用来设置不同的数值显示,例如:温湿度的设定、风速的设定,光照强度的设定以及定时设置等。由此以来可以模拟不同季节下对数值的要求。第二和第三个按钮可以分为两个作用,首先第一个作用是:当界面调试为设置界面时,第二和第三个按钮分别做为加减按钮;第二个功能是:第二个按钮可以作为切换界面按键,以观察不同的状态,第三个按钮作为手动切换按钮,可以手动切换步进电机的状态。当我们进行第一个按钮操作时,我们将进行数据的设置,此时我们还将扫描其余的按钮是否改动,当其余的按钮没有改动时,此过程直接结束;当发生改动时则需要我们判断是哪一个按键改动,第二个和第三个按键此时分别的作用是进行数值的加减运行。其代码程序如下:voidKey_function(void){ key_num=Chiclet_Keyboard_Scan(0); //按键扫描 if(key_num!=0) //有按键按下 { switch(key_num) { case1: //按键1 flag_display++; //显示标志位+1 if(flag_display>5) //一共6个模式 flag_display=0; lcd1602_clean(); //清屏 break;、处理子函数程序设计处理子函数的设计就是对整个函数的处理,判断数值以及对步进电机的控制。当所设定的数值范围内,各个检测数据任意一个不在限定范围内,则步进电机强制收回,此状态为晾衣架为收回状态,若数据测量都在设定范围内,晾衣架为伸出状态,或者可以手动调整晾衣架的位置。紧接着就是定时设置,设置时间在此时间内可进行数据测量,不必要时可以关闭,以节约能源。当所有的数值都在范围内,我们便可以随意的改变电机的状态。程序如下所示:voidManage_function(void){ if(flag_display==0) //显示标志位为0时 { if((temp_value<(temp_min*10)||humi_value>(humi_max*10)||light_value<(light_min*10)||wind_value>(wind_max*10)||(time_value!=0&&time_all==0))&&motor_state==1) //温度、湿度、光照、风速、定时、电机状态限定之外,强制电机反转,收回晾衣架 { Motor_Reversal(); //电机反转 motor_state=0; //电机状态置0,代表晾衣架处于收回状态 flag_motor=0; //电机标志位置0,手动控制下,晾衣架处于收回状态 }实物调试、软件调试Keil5软件调试Keil5是由美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能、结构性、可读性、可维护性上有明显的优势,因而易学易用。KeilC51生成的目标代码效率非常高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。本设计所使用的编程环境是Keil5,相对于其他软件编程环境,Keil5更加的轻便快捷,操作更加的简单,深受广大嵌入式软件开发者的喜爱。Keil5支持多种芯片,包括51单片机、STM32、HC32、NXP等,生成的HEX文件,可通过烧录器直接烧录到单片机中,非常方便。另外,Keil5编译有三种,一种是单编,一种是部分编译,还有一种是全部编译,这样给开发人员更多的选择,并且编译的结果,显示在界面的最下方,供开发者查找错误。Poteus7.8软件调试Proteus7.8官方版软件是来自英国LabcenterElectronics公司的EDA工具软件,Proteus软件除了其具有和其它EDA工具一样的原理布图,PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器,逻辑分析仪等,您不需要别的,Proteus为您建立了完备的电子设计开发环境。通过使用Proteus7.8软件,我们可以模拟仿真实际情况,不需要通过实物来观察实验效果,从中寻找问题并解决问题以防在PCB板焊接时出现问题,从而浪费实验材料,节约时间精力。、实物组装焊接前准备工作:准备工具:电烙铁、锡丝、镊子、斜口钳、万用表等必要工具;检查与清理元器件;在单元电路焊接之前工作:根据电路板组装原则,先高后低、先里后外、先小后大。按照课堂要求进行。焊接时准备工作:大多数的元器件都没有正负极之分,焊接十分简单,只需要注意焊接时不要虚焊,会影响实验操作甚至出现故障。最需要注意的是二极管的焊接。用万用表的欧姆档,并选择R*100或R*1K挡位。红表笔所连接的是表内电池的负极,黑表笔则连接的是表内电池的正极。测量二极管的正反向电阻,黑表笔接阳极,红表笔接阴极,指针偏角大正向电阻小;反之,指针偏角小电阻大。则此二极管是好的。实验调试首先我们设定好温度的最小值,湿度的最大值,光照强度的最小值,风速的最大值。在这里我们分别设定为10℃,50%,40Lx,10m/s,如图:我将发动机的此刻位置认为是伸出状态,现在我将改变一些的变量来测试。首先我改变了光照强度,当光照强度高于40Lx时,发动机不动,当光照强度低于40Lx时,此刻模拟天黑,发动机将收回,如下图所示:其次我改变了风速,实验结果是当风速高于10m/s时,发动机自动收回,如下图所示:在整体实验中,当其中的任意一个变量改变时,在所设定的范围之外,步进电机就会随之改变状态。总结本实验通过对一些成功案例参考,成功的实现基本的实验要求。在11月份,在指导老师的帮助引导下,确定了论文的选题,让我有了明确的目标,从茫然到思路清晰,经历了几个月的努力通过上网查阅资料,翻阅书籍,,并在指导老师的指导下,终于完成了毕业设计,并按照要求完成论文的写作。本设计是通过STC89C52单片机芯片,经过程序指令编辑,使得它在各个模块都能发挥其作用。然而在设计的过程中,最难的是系统的调试与运行。此过程是需要在对软件和硬件都完成设计后,进行合并操作。调试过程中难免会遇到一些问题以及系统故障,一旦出现问题,很难察觉排查,无法找到快捷有效的解决方案,则需要我们从头开始,一点一点的排查故障,翻阅资料,查看成功案例以及别人的解决办法,直到排查解决出所有问题,适当改进和优化方案。在指导老师一次次的指导下,我的论文也逐渐成型。在整个毕业论文设计的过程中,让我所学过的知识得到巩固和加强。此外还学到了许多课本以外的知识,整个写作的过程中也是我再次学习的机会。参考文献孙绍翔:基于单片机和传感器的智能晾衣架系统设计[J],机械工程师,2013颜丽娜:基于DHT11温湿度测控系统的设计[J],海南大学学报,2012周润景,徐宏伟,丁莉:单片机电路设计、分析与制作[M],北京,机械工业出版社,2010.5姜志海,黄玉清,刘连鑫:单片机原理与应用[M],北京,电子工业出版社,2013胡宴如:模拟电子技术[M],北京,高等教育出版社,2018范佳午,杨军,张灿坤等:光明电阻响应时间的研究实验[J],物理实验,2007年27期俞阿龙:传感器原理及其应用[M],南京:南京大学出版社,2010戴玉梅,戴玉洁:光传感技术实验研究[J],沈阳大学学报(自然科学版)2012年24期李庆亮.C语言程序设计实用教程[M],北京:机械工业出版社,2015邵立群:数字电子技术项目教程[J],北京:中国工信出版社集团,2017薛小铃:单片机接口模块应用与开发实例详解[M],北京北京航空大学出版社2010.5附件一元器件列表附录二PCB原理图附录三程序#include"main.h"#include"lcd1602.h"#include"key.h"#include"adc.h"#include"dht11.h"#include"timer.h"#include"motor_bujin.h"/**********************************变量定义**********************************/ucharkey_num=0; //按键标志位ucharflag_display=0; //显示标志位ucharflag_display_change=0; //切换显示标志位uinttime_num=0; //计时变量uintlight_value=0; //光照强度uintlight_min=30; //光照强度最小值uintwind_value=0; //风速uintwind_max=10; //风速最大值uinttemp_value=0; //温度uinttemp_min=10; //温度最小值uinthumi_value=0; //湿度uinthumi_max=60; //湿度最大值uinttime_value=0; //定时uinttime_all=0; //定时总时间ucharflag_motor=0; //电机标志位ucharmotor_state=0; //电机状态/**********************************函数声明**********************************/voidDelay_function(uintx); //延时函数voidKey_function(void); //按键函数voidMonitor_function(void); //监测函数voidDisplay_function(void); //显示函数voidManage_function(void); //处理函数voidTime1_Init(void); //定时器1初使化函数/*********** 主函数*****/voidmain(){ Lcd1602_Init(); //LCD1602初始化 Delay_function(50); //延时50ms lcd1602_clean(); //清屏 Delay_function(50); //延时50ms DHT11_Init(); //DHT11初始化 Delay_function(50); //延时50ms Timer0_Init(); //定时器0初使化 Delay_function(50); //延时50ms while(1) { Key_function(); //按键函数 Monitor_function(); //监测函数 Display_function(); //显示函数 Manage_function(); //处理函数 Delay_function(10); //延时10ms time_num++; //计时变量+1 if(time_num>5000) { time_num=0; } }}/*********** 延时xms函数*****/voidDelay_function(uintx){ uintm,n; for(m=x;m>0;m--) for(n=110;n>0;n--);}/***********按键函数*****/voidKey_function(void){ key_num=Chiclet_Keyboard_Scan(0); //按键扫描 if(key_num!=0) //有按键按下 { switch(key_num) { case1: //按键1 flag_display++; //显示标志位+1 if(flag_display>5) //一共6个模式 flag_display=0; lcd1602_clean(); //清屏 break; case2: //按键2 switch(flag_display) //根据不同的显示标志位,改变不同的标志位 { case0: //改变测量显示界面 flag_display_change++; if(flag_display_change>2) flag_display_change=0; lcd1602_clean(); //清屏 break; case1: //改变温度最小值,进行+1 if(temp_min<99) temp_min++; break; case2: //改变湿度最大值,进行+1 if(humi_max<99) humi_max++; break; case3: //改变光照最小值,进行+1 if(light_min<99) light_min++; break; case4: //改变风速最大值,进行+1 if(wind_max<99) wind_max++; break; case5: //改变定时时间,进行+1 if(time_value<24) { time_value++; time_all=time_value*60; } break; default: break; } break; case3: //按键3 switch(flag_display) //根据不同的显示标志位,改变不同的标志位 { case0: //手动控制电机正转、反转 flag_motor++; if(flag_motor>1) flag_motor=0; break; case1: //改变温度最小值,进行-1 if(temp_min>0) temp_min--; break; case2: //改变湿度最大值,进行-1 if(humi_max>0) humi_max--; break; case3: //改变光照最小值,进行-1 if(light_min>0) light_min--; break; case4: //改变风速最大值,进行-1 if(wind_max>0) wind_max--; break; case5: //改变定时时间,进行-1 if(time_value>0) { time_value--; time_all=time_value*60; } break; default: break; } break; default: break; } }}/***********监测函数*****/voidMonitor_function(void){ if(time_num%50==0) //500ms检测一次 { wind_value=(40*((Adc0832_Get_Value(0)/256.0)*5))*10; //获取风速 light_value=(40*((Adc0832_Get_Value(1)/256.0)*5))*10; //获取光照值 Dht11_Get_Temp_Humi_Value(&temp_value,&humi_value); //获取温湿度 }}/***********显示函数*****/voidDisplay_function(void){ switch(flag_display) //根据不同的显示标志位,显示不同的设置界面 { case0: //界面0 switch(flag_display_change) //根据切换显示标志位,显示不同的测量界面 { case0: lcd1602_display_str(1,0,"Temp:"); //显示温度 lcd1602_display_temp(1,5,temp_value); lcd1602_display_str(2,0,"Humi:"); //显示湿度 lcd1602_display_humi(2,5,humi_value); break; case1: lcd1602_display_str(1,0,"Light:"); //显示光照强度 lcd1602_display_light(1,6,light_value); lcd1602_display_str(2,0,"Wind:"); //显示风速 lcd1602_display_wind(2,5,wind_value); break; case2: lcd1602_display_str(1,0,"Time:"); //显示定时剩余时间 lcd1602_display_time(1,5,time_all); break; default: break; } break; case1: //设置界面1,设置温度最小值 lcd1602_display_str(1,2,"SetTempMin"); if(time_num%20==0) { lcd1602_display_num(2,7,temp_min); } if(time_num%40==0) { lcd1602_display_str(2,7,""); } break; case2: //设置界面2,设置湿度最大值 lcd1602_display_str(1,2,"SetHumiMax"); if(time_num%20==0) { lcd1602_display_num(2,7,humi_max); } if(time_num%40==0) { lcd1602_display_str(2,7,""); } break; case3: //设置界面3,设置光照最小值 lcd1602_display_str(1,1,"SetLightMin"); if(time_num%20==0) { lcd1602_display_num(2,7,light_min); } if(time_num%40==0) { lcd1602_display_str(2,7,""); } break; case4: //设置界面4,设置风速最大值 lcd1602_d

温馨提示

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

最新文档

评论

0/150

提交评论