




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 毕业设计(论文)(2015届)2014年 10 月 01 日题 目: 家居环境检测 专业名称: 应用电子工程技术 姓 名: 徐日达 学 号: 1210401031 班 级: 12 应用电子技术 指导教师: 吴小玲 目 录一 绪论11.1引言11.2选题背景11.3 国内外发展状态1二 设计目标和要求2三 方案论证与设计2方案论证.2 设计.23.1控制部分的方案选择23.2测温、湿部分的方案选择23.3显示部分的方案选3四 硬件设计34.1电路设计框图34.2系统硬件概述44.3主要单元电路设计44.3.1 AT89S52单片机简介44.3.2单片机主控制模块的设计64.3.3温、湿度传感器
2、电路设计94.3.4 显示模块的设计94.3.5 按键模块的设计9五 软件设计105.1系统程序流程图105.2按键程序流程图105.3 LED程序流程图105.4 温、湿度程序流程图105.5 液晶显示流程图10六 仿真与调试116.1 Proteus软件运行流程116.2 硬件调试结果11七 总结13参考文献14附录一:系统程序14致谢22一 绪 论1.1引言 随着科技水平的日益进步,人类的生活水平也在逐步的提高,对家居智能化也有了渴求,智能家居在今后的市场将越来越大。下面介绍一种温湿度采集系统在智能家居的应用方案。该方案采用DHT11温湿度传感器,STC89S52单片机MCU, LCD1
3、28*64驱动和显示器构建一个家庭温湿度采集系统,用来检测室内外温湿度数据。 温湿度采集系统的工作原理:分别在室内外安装两个2个DHT11温湿度传感器,定时唤醒采集温湿度的原始数据,在DHT11内部进行AD转换,经过I2C总线送往AT89S52处理。AT89S52可以根据需要启用哪个采集节点的数据来降低能耗,并控制LCD驱动,最终的数据在LCD显示屏上显示,方便用户读取。1.2选题背景环境的监测与控制在日常生活、农业、国防等行业有着广泛的应用。由于应用的场合不同监测对象的不同,其系统设计也是千差万别。在实际生活中此类系统有着广泛的应用,温室环境检测系统中温度和湿度是两个重要的显示和分析指标,
4、必须定期抽样检查室温环境温度和度,以便采取相应的措施。最宜人的室内温湿度是:冬天温度1825,湿度3080%;夏天温度2328,湿度3060%。 湿度是与温度有关的,此时,人的精神状态好,工作效率高,思维最敏捷。因此,温湿度测试仪意义很重大是生活中不可或缺的必备品。1.3国内外发展状态目前国内外的温湿度检测使用的温湿度检测元件种类繁多、 应用范围也较广泛加之单片机和大规模集成电路技术的不断提高,出现了高性能、高可靠性的单片数据采集系统。基于单机片的温湿度监测控制系统的设计研究较少。 随着经济和社会的不断发展, 人们对自己的生活环境越来越严格。特别在温室大棚中,对温湿度要求更为严格。基于单片机的
5、温湿度监测控制系统, 将对环境的温湿度监测控制系统做详细的设计与实现。 采用高性能的控制芯片89C51,高精度数字温湿度传感器 AM2301。向模块化、高速化、智能化的单片机数据采集系统靠近。将此系统应用到温室大棚当中无疑为植物的生活提供了更加适宜的环境,符合植物的生活环境要求,具有良好的发展前景。二 设计目标和要求本毕业设计目标和要求如下:1.基于单片机的温度、湿度检测系统的设计;2.测量范围:湿度20-90%RH,温度0503.测量精度:湿度+-5%,温度+-214.显示效果设计:所测的温、湿度值可以由液晶直接显示5. 运用Proteus仿真,并利用Protel软件设计硬件三 方案论证与设
6、计 方案一:测温、湿电路。使用热敏电阻之类的器件利用其感温效应,将被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,通过液晶就可以将被测温、湿度显示出来。方案二:使用温、湿度传感器。现在流行使用单片机设计电路,所以可以采用一只温、湿度传感器DHT11,此传感器可以很容易就能读取到温度值。 论证:方案一由于需要对被测温、湿度变化的电压或者电流采集,以及进行A/D转换,感温、湿度电路设计会比较麻烦,成本高。而方案二设计只需一个单片机和一个DHT11就能很容易读取温度值,电路设计简单,况且成本低,体积小,因而采用方案二。3.1 控制部分的方案选择用可编程逻辑器件设计,
7、但从性价比考虑,主控芯片使用AT89S52单片机,对温度传感器的数据进行采集以及传送给液晶显示。3.2 测温、湿度部分的方案选择DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测型号的处理过程中要调用这些校准系数。单线制串行接口
8、,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为同类应用甚至最为苛刻的应用场合的最佳选择。产品为4针单排引脚封装,连接方便。技术参数供电电压:3.35.5V DC输出:单总线数字信号测量范围:湿度20-90%RH,温度050测量精度:湿度+-5%RH, 温度+-2分辨率:湿度1%RH, 温度1互换性:可完全互换 长期稳定性:1%RH/年3.3 显示部分的方案选择带中文字库的128X64 是一种具有4 位/8 位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体 中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192 个16*16 点汉字,和128 个1
9、6*8 点ASCII 字符 集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84 行1616 点 阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。四 硬件设计4.1电路设计框图综上所述,按照系统设计功能的要求,确定硬件由主控制器、测温、湿电路、显示模块、按键模块、复位模块等模块组成,设计了硬件整体的框图:Led指示 AT89S52主控电路DHT11温、湿度探测128*64液晶显示器Led指示复位
10、电路电源电路按键输入图4.1 数字体温计构成框图用DHT11来检测当前的环境温、湿度;AT89S52单片机通过输出各种电脉冲信号来驱动控制各部分正常工作;温、湿度等数据则最终通过液晶模块显示出来。2. 系统硬件概述本电路是以AT89S52单片机为控制核心,该芯片具有在线编程功能,功耗低,能在3.3V的超低压下工作;驱动部分采用74HC537,它是一款高性能、低功耗、,其工作电压为2.5V5.5V;温、湿4度检测模块由DHT11构成, DHT11由一个电阻式感湿元件和一个NTC测温元件组成, 具有测量精度高、测量范围广等优点,其温度050,工作电压为3v5.5v;显示部份使用液晶显示屏来实现,该
11、显示具有内容丰富的特点。3. 主要单元电路设计 3.1 AT89S52单片机简介 AT89S52是一种低功耗、高性能的8位CMOS微控制器,具有8K的可编程Flash 存储器。使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级
12、中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。引脚排列如图4.2所示。 图4.2 AT89S52引脚图从引脚功能来看,可将引脚分为三部分:a、电源及时钟引脚VCC:接+5V电源;VSS:接地;XTAL1和XTAL2:时钟引脚,外接晶体引线端。当使用芯片内部时钟时,此两引脚端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。b、控制
13、引脚RST/VPT:RST是复位信号输入端,VPT是备用电源输入端。当RST输入端保持2个机器周期以上高电平时,单片机完成复位初始化操作。当主电源VCC发生故障而突然下降到一定低电压或断电时,第2功能VPT将为片内RAM提供电源以保护片内RAM中的信息不丢失。ALE/PROG:地址锁存允许信号输出端。在存取外存储器时,用于锁存低8位地址信号。当单片机正常工作后,ALE端就会周期性地以时钟振荡频率的1/6固定频率向外输出正脉冲信号。此引脚的第2功能PROG是对片内带有4K字节EPROM的8751固化程序时,作为编程脉冲输入端。PSEN:程序存储允许输出端。是片外程序存储器的读选通信号,低电平有效
14、。CPU从外部程序存储器取指令时,PSEN信号会自动产生负脉冲,作为外部程序存储器的选通信号。EA/VPP:程序存储器地址允许输入端。当EA为高电平时,CPU执行片内程序存储器指令,但当PC中的值超过0FFFFH时,将自动转向执行片外程序存储器指令;当EA为低电平时,CPU只执行片外程序存储器指令。对8031单片机,EA必须接低电平。在8751中,当对片内EPROM编程时,该端接21V的编程电压。C、I/O口引脚P0.0P0.7:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作
15、为低8位地址/数据复用。P1.0P1.7:P1口是一个具有内部上拉电阻的8位双向I/O口。作为输出口,每位能驱动4个TTL逻辑电平。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。在flash编程和校验时,P1口接收低8位地址字节。 P2.0P2.7:P2口是一个具有内部上拉电阻的8位双向I/O口。作为输出口,每位能驱动4个TTL逻辑电平。在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接
16、收高8位地址字节和一些控制信号。 P3.0P3.7:P3口是一个具有内部上拉电阻的8位双向I/O口。作为输出口,每位能驱动4个TTL逻辑电平。P3口亦作为AT89S52特殊功能(第二功能)使用。在flash编程和校验时,P3口也接收一些控制信号。3.2 单片机主控制模块的设计本设计中单片机主要负责对外设的控制和各个功能模块间的协调,没有复杂的数据计算,因此,8位的51系列单片机足以胜任。51单片机以其低廉的价格以及较出色的性能成了很多控制系统的首选。它具有丰富的内部资源,较大的数据、程序存储区。一个典型的单片机最小系统一般由时钟电路、复位电路、电源指示灯和外部扩展接口等部分组成,本系统也不例外
17、,当单片机具备了这些最基本的条件后,就可以正常工作了。单片机的最小系统如图4.3所示,单片机的XTAL0和XTAL1引脚用于连接晶振电路。XTAL0接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL1接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。RESET为复位引脚,连接复位电路,它用于对单片机进行初始化。复位电路包括复位电容(C6)、复位电阻(R3)和复位开关(S4)。VSS为电源地,VCC为电源正。图4.3 单片机最小系统单片机最小系统复位、晶振电路简介(1)复位电路的设计复位电路是使单片机的CPU或系统中的其他部件处于某一确定的初始状态,并从这上状态
18、开始工作。 单片机常见的复位电路通常单片机复位电路有两种:上电复位电路,按键复位电路。上电复位电路:上电复位是单片机上电时复位操作,保证单片机上电后立即进入规定的复位状态。它利用的是电容充电的原理来实现的。按键复位电路:它不仅具有上电复位电路的功能,同时它的操作比上电复位电路的操作要简单的多。如果要实现复位的话,只要按下RESET键即可。它主要是利用电阻的分压来实现的在此设计中,采用的上电自动复位电路。按键复位电路如图4.4所示。图4.4复位电路 复位电路工作原理 上电复位要求接通电源后,单片机自动实现复位操作。上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降
19、。RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。上电与按键均有效的复位电路不仅在上电时可以自动复位,而且在单片机运行期间,利用按键也可以完成复位操作(2)晶振电路的设计 晶振电路用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地工作。通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,如图4. 5Y1、C1、C2。可以根据情况选择6MHz、12MHz或24MHz等频率的石英晶体,补偿电容通常选择30p
20、F左右的瓷片电容。 图4.5晶振电路3.3 温、湿度传感器电路设计数字温、湿度传感器DHT11适用于各种狭小空间设备数字测温和控制领域。图4.6 DHT11封装图4.7 DHT11接线图DHT11的主要特性 适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电。 独特的单线接口方式,DTH11在与微处理器连接时仅需要一条口线即可实现微处理器与DHT11的双向通讯。 DHT11支持多点组网功能,多个DHT11可以并联在唯一的三线上,实现组网多点测温。 DHT11在使用中不需要任何外围元件,全部 传感元件及转换电路集成电路内。 温度范围050,温度测量精度+-2。 3.4 显
21、示模块的设计本设计中由于要对温、湿度及万年历进行显示,所以选择液晶模块作为输出。外围电路配置相对简单,显示内容丰富,便于人机互动。图4.8 液晶显示模块3.5 按键模块的设计 本设计采用按键接低的方式来读取按键,单片机初始时,因为为高电平,当按键按下的时候,会给单片机一个低电平,单片机对信号进行处理图4.9 按键模块单片机键盘有独立键盘和矩阵式键盘两种:独立键盘每一个I/O 口上只接一个按键,按键的另一端接电源或接地,这种接法程序比较简单且系统更加稳定;而矩阵式键盘式接法程序比较复杂,但是占用的I/O少。根据本设计的需要这里选用了独立式键盘接法。五 软件设计 5.1系统程序流程图如下所示开始初
22、始化读取AD转换温湿度判断当前温湿度范围执行相应程序N判断按键是按下Y设置相应参数显示相应内容结束图5.1系统程序流程图5.2按键程序流程图下图所示(a) 判别键盘上有无键按下。其方法为扫描键盘接入口,若全为“1”,则键盘无键按下,若不全为“1”,则有键按下。(b) 去除键的抖动影响。其方法为判断到有键按下后,软件延时一段时间(一般为10ms左右)后,再判断键盘状态,如果仍为按下状态,则认为有一个确定的键按下,否则按键抖动处理。当键盘释放时,判断到有键释放也软件延时一段时间,如果仍为键释放状态,则认为键确实释放了。(b)求按键位置,对各键进行逐个扫描,最后却定按下的键号。图5.2按键程序流程图
23、图5.3 LED 显示流程图N结束执行相应程序Y有控制指令Led端口初始化开始5.3 LED程序流程图5.4 温、湿度程序流程图开始初始化DHT11应答脉冲发起SkipRom命令发起Convert T命令延时1s等待温度转换完成初始化DHT11应答脉冲?读取第1,2字节即为温、湿度数据发起Read Scratchpad命令YesNoNoYes温、湿度读取流程图如图5.4所示。流程图分析:开始进入初始化DHT11,就是通过主机拉低单线产生复位脉冲然后释放该线,如果有应答脉冲,即发起ROM命令当成功的执行操作命令后,就使用Convert T命令即开始温度转换,当转换完后,又初始化DHT11是否有应
24、答脉冲,若有,就发起Read Scratchpad(读取暂存器和CRC字节)命令,既同时读出第1,2个字节,即为温度的数据。图5.4 DHT11测温程序流程5.5 液晶显示程序流程图显示程序流程图如图5.4。流程图分析:首先对液晶段控制端P2口赋值P2=0x00,然后打开位控制端P2.0,这样的作用是消除显示残影,使显示清晰。显示时先向段控制写入数据,再打开位控制,这样就可以把数据准确地显示到液晶。六 仿真与调试6.1 Proteus软件运行流程Proteus ISIS的工作界面是一种标准的Windows界面,如图所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对
25、象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。 运行Proteus程序后,进入软件的主界面。通过左侧工具栏中的P(从库中选择元件命令)命令,在Pick Devices 左侧窗口中选择所需元件的关键字,然后放置元件并调整方向和位置以及参数设置,最后进行连线。 将所需要的元器件放置好后,绘制成原理图,导入程序仿真图如下图6.1温、湿度传感器仿真图2. 硬件调试结果 数字体温、湿计的电路,对于焊接方面不可轻视,只要电路系统中出于一处的错误,就会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺破带有包皮的导线,则会对电路造成短路现象。在本次数
26、字体温计的设计调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:(1)由于没有做复位电路,使得输出信号不正常,跟所设计的电平不一样。(2)烧入程序后,显示亮度不好。解决:对电路进行测试,如对单片机的输出管脚信号进行测试,观察是否存在漏焊,虚焊,或者元件损坏的现象。若无此问题查看烧写的程序是否正确无误,对程序进行认真修改。当显示亮度不好时阻器的阻值,直到看到合适的亮度为止。经过多次的反复调试与分析,可以对电路的原理及功能更加熟悉,同时提高了设计能力与及对电路的分析能力。同时在软件的编程方面得到更到的提高,对编程能力得到加强,同时对所学的知识得到很大的提高与巩固。
27、如下为硬件实物图: 图6.2硬件实物图按下设置键:屏幕的右下角会显示数字07,其分别设置星期、最高温湿度、最低温湿度、分、时、日、月、年;按下加减键:分别对应个数值的加减;七 总 结 经过一番努力后,数字温湿计设计的终于完成。在未做该项设计前,我对DHT11这个温、湿度传感器不怎么了解,由于设计的需要我查阅了关于DHT11 的资料才发现它的功能是如此强大的,使用又很方便。在设计该温、湿计的过程中,我首先按照温、湿计的功能设计出其大致的电路方框图,然后分析各个功能模块:温度、湿采集模块、信号转换模块、液晶显示模块的。选好材后画出电路原理图,再到编写程序,最后进行仿真,这次课题设计可以说成功完成。
28、说到编写程序是可花了不少功夫,因为该设计需要精确到小数位的个位,这个可给我带来了苦恼,在同学的帮助下最终解决了这个问题。实验结果表明此温度体温计实现后具有读取方便、显示直观、电路简洁等优点,符合电子仪器仪表的发展趋势,具有良好的市场前景。 在整个设计过程中,充分发挥了人的主观能动性,自主学习,学到了许多没学到的知识。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考查资料,和同学讨论,向老师请教,理清了思路,完成对程序的编写。通过设计提高了对单片机的认识,进一步熟悉和掌握单片机的结构及工作原理。通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术,提高软件设计、调试能
29、力;通过这次设计熟悉以单片机核心的应用系统开发的全过程,掌握硬件电路设计的基本方法和技术,掌握相关电路参数的计算方法。最终较好的完成了设计,达到了预期的目的。但是由于个人能力的原因,没能解决所显示的数字有些闪动的效果,以及焊接技能需要加强锻炼,在功能方面是显得的简单一些,只实现了一个最基本的功能,还有许多不足和可以扩展的地方。例如多页面操作或语音报警等,这些有待以后来弥补,还望各位老师予以指正和修改。致 谢在学校领导的关怀下;在吴小玲老师的耐心指导下;在各位同学、朋友的贴心帮助下,本设计成功完成。由于该设计较为普通,为了突出它体温湿计的特点,吴老师给我提了建议,要在精确度上要突出,把小数的显示
30、提高到两位,这样可以让使用者对温度的准确性更为乐观。我想如果没有吴老师这开放性思想的指导我就很难在此有所突破了。她待人和蔼、认真求实的工作作风,对指导毕业设计工作积极负责的态度都深深影响着即将走出社会的我。让我不仅系统的掌握了专业知识体系,也让我有了正确的态度和坚定地信念去面对未来。当然我的亲朋好友、同学也给予了我太多的帮助,大家互相鼓励、一起探讨,让我们的毕业设计顺利完成。最后,我对所有关心我们的领导、老师和同学、朋友表示最为真切的感谢!参考文献【1】杨黎,基于C语言的单片机应用技术与Proteus仿真,2012年第1版 【2】 宋卫海、杨德现,数字电子技术,北京大学出版社,2009年第1版
31、附录一:系统程序主程序/*/*毕业设计:家居环境监测*/*芯片AT89S52,显示128*64,温湿传感器DHT11*/*作者:徐日达*/*时间:2014-9-14 */*/#include#define uchar unsigned char#define uint unsigned intuchar lcd_x,lcd_y,data_byte=0,count; /LCD128 * 64 显示参数uint TH_data,TL_data,RH_data,RL_data,CK_data; /DTH11温湿度参数uint TH_temp,TL_temp,RH_temp,RL_temp,CK_te
32、mp; /DTH11温湿度参数uchar code CCW8=0x98,0x9c,0x94,0x96,0x92,0x93,0x91,0x99;uchar code CW80=0xf9,0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8;uint p;/*时间*/unsigned int year=14; /初始化年year:2014uchar num,RH_dat=30,RH_da=60;char hour = 21, min = 56, sec = 0,N=0,moth=9,day=26,week=3,miao=0; /hour:时;min:分;sec:秒;N:选择提示;m
33、oth:月;day:日;week:星期;miao:秒;/初始化要显示的值sbit S3 = P32; /定义开关s3选择键sbit S4 = P35;/s4加一键sbit S5 = P34;/s5减一键sbit RS=P20;sbit RW=P21;sbit EN=P22;sbit PSB=P23;sbit RST=P11;sbit io=P30;/io=DHT11数据接收/发送口sbit led=P15;/*函数声明*/void T1_ini();/定时器int Adjustment();/调整时钟部分void read_io();void delay(uint a);/延时void LCD
34、_init();/*初始化*/void write_cmd(uchar cmd);void write_data(uchar dat);bit check_busy();void clock_delay(unsigned i);void delay1();void lcd_dis_code(uint cmd_addr,uchar num,uchar dis);void lcd_pos(unsigned char X,unsigned char Y);void shizhong(); /时钟void delay2(int t); /电机延时void dianji(); /电机/*/uchar c
35、ode SEG_TAB =0,1,2,3,4,5,6,7,8,9;/0-9数字uchar code lcd=日期: 20;uchar code lcd5=时间: ;uchar code lcd1=温度: ;uchar code lcd2=湿度: ;uchar code lcd3=;uchar code lcd4=%RH;uchar code lcd6=比较;uchar code lcd6_1=干燥;uchar code lcd7=温度适宜;uchar code lcd7_1=适宜;uchar code lcd8=天气;uchar code lcd8_1=潮湿;uchar str1=;uchar
36、 str2=; /*/void shiwen() read_io();lcd_pos(4,3); /地址write_data(str10); /湿度write_data(str11); /湿度write_data(.);write_data(str12);lcd_pos(3,3); write_data(str20); /温度write_data(str21); /温度write_data(.);write_data(str22); delay(500); void main() LCD_init(); lcd_dis_code(0x80,9,lcd); /显示函数 lcd_dis_code(
37、0x90,9,lcd5); lcd_dis_code(0x88,6,lcd1); lcd_dis_code(0x98,6,lcd2); lcd_dis_code(0x8d,2,lcd3); lcd_dis_code(0x9d,5,lcd4); while(1) shizhong(); shiwen();dianji(); int Adjustment()/调整时钟部分if(S3=0) delay(3); N+; if(N6) N=0; lcd_pos(4,7); write_data(SEG_TABN); /显示切换键位所示的位置 N/0:湿度,1:分,2:时,3:日,4:月,5:年 6:星期
38、 while(!S3); if(S4=0)/时间调整-加 delay(3); if(N=1) RH_dat=RH_dat+5;str13=(char)(0x30+RH_dat/10); /湿度 str14=(char)(0x30+RH_dat%10); if(RH_dat=95) RH_dat=30; lcd_pos(4,3); /地址 write_data(str13);/湿度write_data(str14);/湿度return RH_dat; if(N=2) / 分 min+; if(min=60) min=0; if(N=3)/时 hour +;if(hour=24) hour=0;
39、if(N=4) /日 day+;if(moth=2&(year%4=0)&day=30)day=1; /闰年2月天数计算 if(moth=2&(year%4!=0)&day=29)day=1; /平年2月 if(moth=4|moth=6|moth=9|moth=11)&day=31)day=1;/4,6,9,11月计算 if(day=32)day=1;/1,3,5,7,8,10,12月天数计算 if(N=5) /月 moth+; if(moth=13)moth=1; if(N=6) /年 year+; if(year=51)year=0; if(N=0) week+; if(week=8)
40、week=1; while(!S4); if(S5=0)/时间调整-减 delay(3); if(N=1) /电机正转 RH_da=RH_da+5; str13=(char)(0x30+RH_da/10); /精确度 str14=(char)(0x30+RH_da%10); if(RH_da=95) RH_da=60; lcd_pos(4,3);/地址 write_data(str13); /湿度 write_data(str14); /湿度return RH_dat; if(N=2) min-; if(min0) min=59; if(N=3) hour-; if(hour0) hour=2
41、3; if(N=4) day-; if(moth=2&(year%4=0)&day1)day=29; if(moth=2&(year%4!=0)&day1)day=28; if(moth=4|moth=6|moth=9|moth=11)&day1)day=30; if(day1) day=31; if(N=5) moth-; if(moth=0)moth=12; if(N=6) year-; if(year0)year=50; if(N=0) week-; if(week=0) week=7; while(!S5); return RH_dat;void delay1()/延时 unsigne
42、d char i; for(i=0;i3;i+); void lcd_pos(unsigned char X,unsigned char Y) /128*64地址 unsigned char pos; if(X=1) pos=0x80; else if(X=2) pos=0x90; else if(X=3) pos=0x88; else pos=0x98; write_cmd(Y|pos); /*DHT11*/*温湿传感*/uchar receive_byte()uchar i,temp;for(i=0;i8;i+)count=2;while(!io)&count+)/io=DHT11数据接收
43、/发送口temp=0;delay1();delay1();delay1();if(io=1) temp=1; count=2; while(io&count+); else temp=0; data_byte=1; data_byte|=temp; return(data_byte); void read_io() /湿温 io=0; delay(18); io=1; delay1(); delay1(); delay1(); delay1(); io=1; if(!io) count=2; while(!io)&count+); count=2; while(io&count+); RH_t
44、emp=receive_byte(); RL_temp=receive_byte(); TH_temp=receive_byte(); TL_temp=receive_byte(); CK_temp=receive_byte(); io=1; num=(RH_temp+RL_temp+TH_temp+TL_temp); if(num=CK_temp) RH_data=RH_temp; RL_data=RL_temp; TH_data=TH_temp; TL_data=TL_temp; CK_data=CK_temp; str10=(char)(0x30+RH_data/10); /精确度 str11=(char)(0x30+RH_data%10); str12=(char)(0x30+RL_data/10); str20=(char)(0x30+TH_data/10); str21=(char)(0x30+TH_data%10); str22=(char)(0x30+TL_data/10); void lcd_dis_code(uint cmd_addr,uchar num,uchar dis) /*128*64读取数据*/ uint i; write_cmd(cmd_addr); for(i=0;inum;i+) write_data(disi);void L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国考1号17套数学试卷
- 农民工工资垫付保障措施
- 中国热汽供应行业市场调查报告
- 淮北高二下数学试卷
- 2025年中国数字显示焦度计市场运行态势及行业发展前景预测报告
- 四年级上册体育课时安排计划
- 2025年陶瓷过滤器、过滤管项目发展计划
- 2025年中国小叶黄杨行业市场运营现状及行业发展趋势报告
- 2025年高三英语听力专项复习计划
- 衡阳初中入学数学试卷
- 基础会计-中职课件
- 平安建设评估方案(3篇)
- 2025年安庆怀宁县事业单位招聘考试试题【答案】
- 2025年上海市中考招生考试数学真题试卷(真题+答案)
- 集团知识产权管理办法
- 华为品牌宣传管理办法
- 灭鼠灭蟑螂培训课件
- 2025年广东省中考英语试题卷(含答案解析)
- DB32∕T 4549-2023 绿色港口评价指标体系
- 浙江省温州市瑞安市2023-2024学年四年级下学期英语期末试卷6月(含答案)
- 高二文科考试数学试卷
评论
0/150
提交评论