毕业论文-基于 STC89C52单片机多功能生活小助手的设计.docx_第1页
毕业论文-基于 STC89C52单片机多功能生活小助手的设计.docx_第2页
毕业论文-基于 STC89C52单片机多功能生活小助手的设计.docx_第3页
毕业论文-基于 STC89C52单片机多功能生活小助手的设计.docx_第4页
毕业论文-基于 STC89C52单片机多功能生活小助手的设计.docx_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

辽宁科技大学本科生毕业设计(论文) 第V页基于STC89C52单片机多功能生活小助手的设计摘 要伴随着物联网技术的快速发展,智能家居也快速的走进了我们的生活,大家对于智能家居要求也越来越高。在智能家居温度控制系统中,当环境温度波动不大时,采用传统时间触发控制模式将造成不必要的节点能量浪费。多功能生活小助手的设计是基于STC89C52单片机为主控核心,外接了DS1302时钟芯片、DHT11温度与湿度传感器、LCD12864液晶显示屏和继电器构成的控制电路,可以实现时间、温度与湿度、闹铃的显示、设置以及检测,设计中将空调,加湿器等用电设备、温度湿度参数集中给单片机处理,通过检测到的温度控制空调的开关,检测到的空气湿度控制加湿器的工作,全部信息可通过LCD12864点阵式液晶直观显示。整机电路使用3-5V稳压电源,有掉电保护功能,可长时间工作。关键词:单片机;智能家居;LCDABSTRACTWith the rapid development of Internet of things technology, smart home is becoming more and more widespread, and people are demanding more and more smart home. In the intelligent home temperature control system, when the ambient temperature fluctuates little, the traditional time trigger control mode will cause unnecessary node energy waste. The design of multi-function life assistant is based on STC89C51 microcontroller, combined with DS1302 clock chip DHT11 temperature and humidity sensor LCD12864 liquid crystal display screen and relay to form control circuit to realize display, setting and rubber detection of time, temperature and humidity, alarm bell, etc. In the design of air conditioning, add The temperature and humidity parameters are centralized to single chip microcomputer, the switch of air conditioning is controlled by temperature, and the work of humidifier is controlled by air humidity. All the information can be displayed directly by 12864 lattice liquid crystal. The whole circuit uses 5 V power supply with power loss protection function and can work for a long time.Key words: MCU;smart home;LCD目 录摘 要IABSTRACTII1 绪论11.1物联网的概念简介11.1.1物联网简介11.1.2物联网市场/应用发展趋势21.1.3物联网技术架构21.2设计背景及意义31.3国内外研究现状41.3.1智能家居在中国的状况41.3.2智能家居在国外的状况41.4本文的研究内容52 多功能生活小助手的系统工作原理62.1总体思路62.1.1总体功能的实现62.1.2各单元模块功能62.2系统整体工作原理62.3时钟芯片的工作原理72.3.1DS1302时钟模块的寄存器和控制命令82.4湿度传感器83 多功能生活小助手的系统硬件电路设计93.1 STC89C52最小系统电路图93.2 时钟模块电路图113.3 温度湿度模块电路图123.4 LCD12864液晶显示屏模块133.5音频模块装置电路图143.6继电器控制模块154 多功能生活小助手的软件设计164.1 主机程序流程图164.2 Keilc51开发系统164.3 写入的程序174.3.1 主程序174.3.2 初始化程序194.4时钟采集设计204.5温湿度采集设计214.6 12864显示设计243 4.7 继电器控制设计245 功能实现255.1系统功能测试内容255.2 调试遇到的问题255.2.1显示屏乱码问题255.2.2 温湿度显示误差25结 论27致 谢28参考文献29附录A电路原理图30附录B部分程序31 辽宁科技大学本科生毕业设计(论文) 第32页1 绪论1.1 物联网的概念简介1.1.1 物联网简介物联网理念最早可以追溯到比尔盖茨1995年未来之路一书。在未来之路一书中,比尔盖茨已经提及物物互联,只是当时受限于无线网络、硬件及传感设备的发展,并未引起重视。1998年,美国麻省理工学院创造性的提出了当时被称作EPC系统的物联网构想。1999年在美国移动计算和网络国际会议上美国AutoID中心首先提出物联网概念(当时叫作传感网)。物联网可以理解成“物物相连的互联网”。综合国内外有关物联网概念的描述,基本认同如下定义:物联网是通过各种信息传感设备及系统(传感网、射频识别系统、红外感应器、激光扫描等)、条码与二维码、全球定位系统,按约定的通信协议,将物秘物、人与物联接起来,通过各种接入网、互联网进行信息交换,以实现智能化识别、定位、跟踪、监控和管理的一种信息网络。物联网的主要特征是每一个物件都可以寻址,每一个物件都可以控制,每一个物件都可以通信。显然 ,它作为“感知、传输、应用”三项技术相结合的一种产物,是一种全新的信息获取和处理技术。物联网是能过射频识别(RFID)、红外感应器、全球定位系统、激光扫描等信息传感技术,按给定的协议,反任何物品与互联网,移动通信等相连接,进行信息交换和通信,以实现智能化识别、定位、跟踪、监控和管理的一种网络概念。1.1.2 物联网市场/应用发展趋势 物联网的应用没有一个严格的定义,几乎只要是运用科技通讯的技术来带动的都可以列入。如果讲狭义一点,科技通讯应用里具备传感器去收集数据并能送往后端作分析应用者。像是家用智慧节能应用的例子,美国有个公司所提出的智能插座,也就是在电器插座上持续收集各电器的用电数据并汇集到云端,让用户可以通过系统去检视电器的用电状况,作为消费者使用电器的参考值,以达到省电的目的。还有会判断购物者的年龄层的自动贩卖机,机器除了销售还能主动推荐该年龄层喜欢的物品,甚至可以通过NFC的手机付款。此外贩卖机还能做到个人化喜好推荐,进一步提供哪些物品可以在哪些贩卖机购买的信息。智能乐园也是一例,提供结合穿戴式设备和物联网技术的智能手环,在智能手环中输入用户的基本数据,并具备门票、通行证及结合信用卡功能。走在路上,如果米老鼠突然跑过来喊你的名字跟你打招呼,别太惊喜,这都是物联网的强大威力。1.1.3 物联网技术架构一般在谈物联网时,我们把系统架构分成三层,最底下就是感知层,它可以去撷取、收集及感测我们应用上所需的相关信息。比方说,我们想知道市区目前的交通状况,以提供给用路人有更多路径选项,但要如何收集交通状况呢?方法有很多,例如在每个路口装摄影机,摄影机将实时路况往后端传送到云端,再将实时信息累积起来进行分析;另一种是在马路上装传感器,只要车子一通过,单位时间内有多少车子从这里通过,就可以知道这条路上有多少车在走、这条路堵不堵。从这里可以看出,物联网跟海量数据的关系相当密切,在物联网架构最底层,就是万物连网,目的就是去撷取及感测数据,这过程中会收集到非常大量的资料,但要筛选出对我们有用的数据,就要经过收集处理分析的阶段,因为数据的收集与分析在整个物联网的应用架构中扮演相当重要的角色。现今谈物联网的应用多半以智能城市为例,包含城市中所需的环保、交通、能源、物流、医疗以及智慧建筑等等。1.2 设计背景及意义国家十二五规划中已经明确将智能家庭产业与新能源、文化创意产业等并列为战略性新兴产业,将投入重金予以扶持发展。家居智能化必然会是未来人们家居生活发展的趋势,而智能家庭行业作为战略性新兴产业的重要组成部分,也将取得飞跃式的发展。多功能生活小助手属于智能家居的范畴,在未来将拥有广阔的市场前景。比尔盖茨当年花巨资打造的豪宅成为20世纪智能家庭的典范,但从当时的技术发展来说,家庭的智能化耗资巨大,智能家庭只能是少数富裕家庭的专利。不过,随着信息化技术的逐步发展、网络技术的日益完善、可应用网络载体的日益丰富和大带宽室内网络入户战略的逐步推广,智能化信息服务进家入户成为可能。居民通过电视机遥控器、手机等终端即可实现互动,方便快捷地享受到智能、舒适、高效与安全的家居生活。智能家庭服务作为与千家万户息息相关的民生工程,这一领域的各项相关应用受到广泛重视并得到迅速发展。 在智能家居相关技术的迅速发展下和广大居民对于幸福便利生活的日益增长的需求下,市场对于智能家居控制的需求也越来越大。而国内能够进行智能家居控制系统研发的公司才刚刚起步不久。为了实现广大家居用户对于智能、舒适、高效、便利与安全家居生活环境的需求,本设计实现了时间、日期的显示,家居环境测量及报警,以及测量值和对事先输入的参考量进行对比,然后做出相应的操作。1.3 国内外研究现状1.3.1 智能家居在中国的状况如今,智能化家电、智能化照明系统、智能化保安系统,乃至智能化小区等各种提法早己见怪不怪。中国智能化家居的前进步伐开始越走越快。智能家居是住宅智能化的核心部分,目前我国的智能家居市场有三个特点:1、市场潜力大,现在房地产业在全国的发展都很火爆,作为其下游产业,智能家居市场前景还是非常乐观的;2、产品多,厂家多,这些厂家大部分集中在上海、北京、深圳、广州等地,但到目前为止还没有一家形成规模化;3、在智能家居行业国家还没有统一的行业标准,使得很多中小企业各自为政,按自己对市场的理解来开发产品,相互间的产品不具兼容性,这种局面就好像春秋战国时代诸侯争霸的感觉。因此,今后几年智能家居市场会进入一个行业整合阶段,最终可能会出现几家规模比较大、品牌影响力好的厂家。而就智能家居市场的发展来说,近几年智能家的概念已经被逐步推广,我国自行设计和生产的可联网的家用电器/设备也将有相当的规模。同时,在国内家电市场中,包括美的、海尔等知名品牌在内的不少厂商已经着手开发智能化家电产品,如真善美遥控智能照明系统、美的智能空调、海尔智能冰箱等,由于其价格大众化、操作简便,占据的市场份额逐渐扩大。1.3.2 智能家居在国外的状况自从世界上第1幢智能建筑1984年在美国出现后,美国、加拿大、欧洲、澳大利亚和东南亚等经济比较发达的国家先后提出了各种智能家居方案。智能家居在美国、德国、新加坡、日本等国都有广泛的应用。新加坡模式的家庭智能化系统包括三表抄送功能、安防报警功能、可视对讲功能、监控中心功能、家电控制功能、有线电视接入、住户信息留言功能、家庭智能控制面板、智能布线箱、宽带网接入和系统软件配置等。1.4 本文的研究内容本论文的主要工作集中在以下内容:1、单片机多功能生活小助手的总体方案设计;2、 系统功能的设计与实现;(1)时间日期的显示;(2)温湿度的检测;(3)空调和加湿器的开启与关闭;3、 单片机通信的设计与实现2 多功能生活小助手的系统工作原理2.1 总体思路总体设计思路是将家中的温度与湿度等信息采集后集中由单片机处理、显示 ,通过与事先设置好的要求来控制输出对象,同时,也可以通过手动按钮来控制被控对象。2.1.1 总体功能的实现1、单片机相关各模块的录入及设置功能;2、单片机与各模块之间的通讯;2.1.2 各单元模块功能1、 时间日期的显示;2、温度与湿度的采集;3、闹钟功能;4、空调工作的控制;5、加湿器工作的控制;2.2 系统整体工作原理多功能生活小助手系统主要分为动态时间日期的更新、显示和室内温度湿的检测并对此分析去控制空调和加湿器两大部分,本课题研究的主要内容是在了解对多功能生活小助手系统的工作内容及原理的前提下,以单片机STC89C52作为系统控制核心部件并且用C语言来编辑STC89C52的单片机程序,再结合时钟芯片、温湿度传感器、LCD液晶显示屏、继电器以及蜂鸣器等组成。采用C语言编写单片机程序,实现通过温湿度传感器检测温湿度以及通过继电器来完控制空调和加湿器,实现相应部分电路的功能时间日期显示,温湿度检测显示,蜂鸣器报警,空调、加湿器控制等。要求各系统能正确,有效地执行命。根据设计的要求,可将系统的框图总结为如图2-1所示。图2-1 系统总体框图2.3 时钟芯片的工作原理 这次设计要实现动态时间功能,因此我选择了DS1302这个型号的时钟模块,这个时钟模块工作的时候要先对所有数据进行初始化,因为该模块与单片机之间的数据传送需要进行这一步骤,单片机发送电信号给DS13302,把它的复位脚置为高电平,在这个同时单片机会把大小为8位的地址和命令信息存入时钟模块移位寄存器。接收到的数据在会模块时钟的上升沿时行串行输入,并且它前8位会指定的访问地址,在该命令字存入移位寄存器之后,会在后面的时钟周期,读取操作时输出的数据和写入操作时的获得的输出数据。时钟脉冲的个数是在单字节的下使用8位地址加上8位数据的的方式,要这种在多字节方式下可以是8位地址加上最多可以达到248位的数据。2.3.1 DS1302时钟模块的寄存器和控制命令我们要进行DS1302的操作实际上就是对这个模块的内部寄存器的操作,它一共有着12个寄存器在DS1302模块里,在它们之中有7个寄存器是与时钟和日历相关的,它们以BCD码形式来存放的数据。而另外的寄存器分别是充电寄存器、年份寄存器和RAM相关的寄存器等。此外,还有控制寄存器。见下表2-1是部分寄存器的控制字的对照表。表2-1日历、时钟寄存器与控制字对照表寄存器名称765432101RAM/CKA4A3A2A1A0RD/W秒寄存器1000000分寄存器1000001小时寄存器1000010日寄存器1000011月寄存器1000100星期寄存器1000101年寄存器1000110写保护寄存器1000111慢充电寄存器1001000时钟突发寄存器10111112.4 湿度传感器这次设计要可以实现温度与湿度的检测并且记录,所以这次设计我选用了DHT11温湿度传感器这一种传感模块,DHT11温度与湿度传感器是具备了核准数字信号输出的温度湿复合型的传感器。3 多功能生活小助手的系统硬件电路设计这次课题设计使用STC89C52单片机作为系统的控制核心,此设计的外围电路除了有动态时钟电路和DHT11温度与湿度检测电路,还带有蜂鸣器驱动电路,LCD12864显示电路以及继电器控制驱动电路等。多功能生少小助手系统主要由CPU、DHT11电路、蜂鸣器电路、动态时间、继电器、LCD12864显示模块等组成。多功能生活小助手系统能实现显示动态时间、温度和湿度,如果检测到的温度与湿度与大于或者小于用户设定的数值的时候,LED指示灯点亮一会儿,蜂鸣器也是响起一小段时间,这个同时驱动电路将空调或者加湿器打开,当温湿度都合适的时候,空调和加湿器都不工作且处于电路断开状态。如果用户设置了闹铃的功能,蜂鸣器会在用户设定的时间响起,用户按上蜂鸣器控制按钮,蜂鸣器会立即停止响动。3.1 STC89C52最小系统电路图图3-1是一个最小电路图系统电路图,这个设计选择使用了是51系列的STC89C52这一类型的单片机,之所以使用这个单片机,是因为它发展成熟而且也挺功能也比较完善,这次设计上的功能算不上特别复杂,而且也没有太过复杂的算法,在这个最小系统上外接了一个复位电路和给单片机电能的开关电路 ,这个版本的单片机不单单成本会比较低,而且功能也足以满足这次的课题设计;没有使用DSP和ARM系统,是因为它们不仅在价格比51相对较贵,即使它们在功能和扩展上会比单片机要高,但是相对于我们这次的课题设计来说,它们的性能有些过剩浪费;所以最终考虑到性价比和所需要的功能,经过了认真的分析和对比最终选择了技术成熟、价格更便宜,设计还简单、使用也方便的单片机平台。图3-1 单片机最小系统电路图单片机STC89C52,使用的是MCS-51指令系统,这个版本的兼容性也相对较强,而我们经常说的那些单片机,其用作存储数据的字节通常只有128-256字节,对于数据量较大的应用程序来说,不能满足设计需求所要的数据容量,STC89C52系列的产品则在容量上比较有优势,相比较之下可多存储字节,在一定程度上可满足工程量较大256字节的设计需求,其实在实际的生产实践当中,该单片机也正在逐步取代传统的小容量单片机。在最小系统中,我们使用+5V工作电源是,上下有0.5V浮动,它的工作电流是200mA,并且其工作的总电流小于或等于500mA,功耗在2.5W之下或者等于2.5W。在单片机的XTAL1脚和XTAL2脚这两个引脚间外接了一个大小为11.0592MHZ石英晶体和两个大小为30Pf的电容构成我们所说的定时元件,这个定时元件的内部振荡器可以自己产生振荡。一般来说,晶振可以在1.2-12MH的范围内选择,如果有需要还可以达到使用24MHz或者更高的晶振,但是频率越高那么所产生的功耗也就越大。所以在这个最小电路中晶振的选择我选用了11.0592MHZ,两个电容则选择用为30Pf的电容。GND(20脚)外接地。电源脚(21脚)外接一个+5V电源,且添加了一个开关来控制单片是否供电。3.2 时钟模块电路图DS1302的驱动电路一个重点就是时钟电路,图3-5中在x1(2脚)和x2(3脚)这两个引脚之间串接一个大小为32.768的晶振,晶振的外部也不需要添加别的电容或者电阻电路。VCC2脚接的是一个大小为+5V电源,在VCC2上接一下3V的干电池组,电池组的另一端与GND脚一起接地,SCLK脚接的是单片机的P1.2口,I/O口接的是单片机的P1.3口,RST复位脚接的是单片机的P1.4口,通过这个连接从而来实现单片机控制时钟模块的设置与校准。DS1302是一个实时的、动态的时钟芯片,它可以提供到精确到时秒的时间,日期,年月等信息,而且它还具有软件自动调整的能力,可以通过配置来选择十二小时制还是二十四小时制,它拥有31个字节的数据RAM存储,使用的是I/O通信的方式,而且对于并行来说它相对比较节省I/O口的使用,它可以在大小2.0-5.5V的电压之间正常工作。图3-2 时钟模块电路图3.3 温度湿度模块电路图在DHT11温湿度模块中,VDD可接3-5V的电压,本设计这边选择的是3V电压,在VDD与接地端之间接一个0.1uF的电容从而来实现去耦滤波,DATA脚(2脚)与单片机P1.5口连接并且和VDD脚(1脚)并联,同时在电源和DATA脚间接一个4.7K的上拉电阻,NC口则空置。在给DHT11传感器通上电源后,我们还需要等待大概1S的时间来越过这一段不稳定的状态,而在这个时间段内没有发送指令的要求。图3-4所表示的是DHT11的驱动电路图。表3-1 DHT11的引脚说明引脚号引脚名称类型引脚说明1VCC电源正电源输入,3V5V,DC2DATA输出单总线,数据输入/输出引脚3NC空空脚,扩展未用4GND地电源地图3-3 DHT11温湿度模块DHT11温度与湿度传感器的湿度量程是20-90%RH,它的湿度量程的精度有上下5%RH的误差,它的温度量程是0-50之间,温度精度有上下2的误差范围,DHT11每次接收到单片机发送的高电平开始信号时,DHT11传感器就会开始工作,进行一次温度与湿度的检测和记录,如果说STC89C2单片机没有发送开始检测的信号或者DHT11没有接收到发送的开始信号,DHT11是不会主动的去进行湿度与温度的检测和记录的,而且每次采集数据之后,它就会切换到时低速模式。DHT11温湿度传感器它有卓越的并且长期的稳定性,而且还不需要其它额外的部件,它不仅能源消耗超低而且有超长的信号传输距离,还可以全部校准并且还可以数字输出的优秀特性。3.4 LCD12864液晶显示屏模块LCD12864模块是我们常用液晶显示屏,它拥有大小为128*64的分辨率,它可以显示图形的汉字,并且LCD12864它的内部有大小为8192个中文汉字组(16*16点阵)和128个字符以及64*256点阵显示RAM。在LCD12864显示模块电路中使用的是+5V电源,接在12864的VDD引脚上来为显示屏提供电源,且与VO脚并联一个滑动电阻来实现亮度等的对比调整,显示屏的4-6管脚分别与单片机的P3.2-P3.4这三个管脚相连接,16脚和19脚则空置不使用,显示屏的7-14脚分别与单片机的P2口分别连接,17脚接STC89C52单片机的P1.0脚,19脚接大小为+5V电源,20脚接地端。表3-2 LCD12864脚功能定义引脚功能定义引脚功能定义VSS接地端PSB串行模式选择,串行模式下接地,并行下接+5VVDD电源正,接+5VNC空引脚,不需要连接VO对比度调整,一般接+5VRSTB复位端,低电平有效,一般接+5VD/I(CS)片选,也叫使能,接+5VVEE空引脚,不需要连接R/W数据输入端BLA背光正极,接+5V714DB0DB7,并行数据总线BLK背光负极,接地图3-4 LCD12864显示模块电路图3.5音频模块装置电路图图3-5蜂鸣器模块电路图如图3-5所示,这个电路是通过一个蜂鸣器、一个PNP三极管、一个大小为2K电阻和大小为+5V的电源组成的一个简单电路。三极管1脚接一个+5V电源,共用脚与STC89C52单片机的P1.6口间串接一个1k的电阻,3脚接蜂鸣器的一个管脚,而蜂鸣器的另一个管脚接地端。当P1.6口为低电平时三极管导通,蜂鸣器两端有了电压和电流就开始工作。在单片机的P1.6口发送高电平给三极管基极时,三极管会截止,蜂鸣器两端没有电压就不再工作,反过来是发送了低电平,那么蜂鸣器就会响起。在这个电路中引入三极管是因为如果直接用单片机的管脚的电压和电流直接驱动蜂鸣器,那么引脚驱动能力不够,所以用单片机管脚的小驱动能力来驱动三极管,三极管导通,放大信号再驱动蜂鸣器,这样的话就可以使蜂鸣器正常工作。3.6继电器控制模块图3-6是一个继电器驱动电路,管脚3接地端并与管脚1串联一个二极管以防止回流扰动,三极管的1脚接+5V电源,公共脚与继电器的一管脚串联一个4.7K的。电阻,并将公共脚与STC89C52单片机的P3.3口相连作为信号脚且串联一个100的电阻。这里的三极管同样是起了一个放大电信号的作用。继电器的4管脚空置,管脚5接用电器,这里接的是空调。另一同样的继电器接的是加湿器。图3-6 继电器模块控制电路图4 多功能生活小助手的软件设计4.1 主机程序流程图4.2 Keilc51开发系统我们使用的编程是美国KeilSoftware公司所出品的51系列兼容的单片机C语言开发系统Keilc51,使用的这个编程软件与普通汇编语言软件相对比,C语言不仅在功能上、结构性上、可读性上和可维护性上都有着明显的优势,所以它比较容易学习,并且使用起来也会比较的简单。C编译器、宏汇编、连接器和库管理都是Keil提供的一些功能,而且它还有一个功能强大的仿真调试器等在内的完整开发方案,将这些部分通过一个集成开发环境组合在一起。而且它在不同方面都有卓越表现,该系统渐渐深受广大编程人员的欢迎。Keilc51程序编译界面:4.3 写入的程序 4.3.1 主程序设计流程:初始化、蜂鸣、切屏、显示第一屏(作品名和作者)、显示第二屏、显示温湿度和星期、整点提醒等。void main() CYB_int(); BEEP_LONG; LCD_Puts(0,1/FutureTimer4); LCD_Puts(0,3, BY:陈覆兴); Max_delay(9); LCD_Tabe_Show(0); /熄灭LCD LCD_Puts(0,1,多功能生活小助手); LCD_Puts(0.3, ); LCD_Tabe_Show(1); /点亮LCD Max_delay(7); LCD_Tabe_Show(0); /熄灭LCD LCD_Puts(0,0,“FutureTimer4 ” ); LCD_Puts(0,3,星期 ); LCD_SHOW_CGRAM(5,3,0); LCD_Tabe_Show(1); /点亮LCD SYS_MODE=1; FLAG_SYS_GETDATA=1;/初始化时候先得到一次数据 while(1) Get_CYB_data(); /系统数据 Task_LCD(); /显示 task_key(); /扫描键盘 task_BG(); Task_Alarm_Clock(); /整点提醒 Task_report(); task_Show_FeastDay(); Task_RELAY_TIMER(); 4.3.2 初始化程序初始化要做的事情还是比较多的,比如我们要设置TMOD,还有ADC通道和根据硬件接线通过设置控制字来使IO口可以有效的工作、初始化内部ACD、初始化液晶显示屏、初始化DS1302等。void CYB_init() TMOD=0x01; EA=ET0=TR0=1; EADC=1; ADC_CH=1;/设置ADC通道 POM1=0x00; P3M0=0x80; P3M1=Ox00; STC12C_Init_ADC();/初始化内部ACD Init_();/初始化内部PWM ds_init(); w_ds(0xcc); w_ds(0x44);/初始化DS1302 LCD_SET_VGRAM(TP,0);/向CGRM写入自造图形“温度” LCD_SET_VGRAM(LABA,1);/向CGRAM写入自造图形“喇叭” memset(EEPROM_BUF,0,13); Ispread(0,EEPROM_BUF,13)/读取0扇区上存入的闹钟时间ALARM_TIME10=EEPROM_BUF0;/上电获取EEPROM中的数据ALARM_TIME11=EEPROM_BUF1;/获取三个闹钟数据ALARM_TIME12=EEPROM_BUF2;ALARM_TIME20=EEPROM_BUF3;ALARM_TIME21=EEPROM_BUF4; ALARM_TIME22=EEPROM_BUF5;ALARM_TIME30=EEPROM_BUF6;ALARM_TIME31=EEPROM_BUF7;ALARM_TIME32=EEPROM_BUF8;ALARM_ALL=EEPROM_BUF9;/闹钟总开关PEPORT =EEPROM_BUF10;/报时时间段变化量AUTO_LUM =EEPROM_BUF11;/自动背光Get_Ds1302_time();/得到所有的时间LCDTASK_LEN+=1; 4.4时钟采集设计DS1302时钟模块的控制字的最高有效位要是逻辑1,否则的话它是没有办法在DS1302时钟模块上写入数据的,如果控制位6设置成0的话,表示的是日历时钟数据的存取,反之设置成1的话是存取RAM的操作的表示;从控制位5一直到控制位位1是操作单元的地址的控制位;最低位0位置为0是进行写操作,反之设置为1的话表示的是进行读操作,而且这些控制字都是要从最低位向最高位开始输出的。在单片机发送控制字命令到时钟模块后,SCLK时钟会在下一个时钟上升沿时开始DS1302的数据写入,数据输入从最低位位0开始。和这个相同的是在控制字写入的下一个SCLK脉冲的下降沿单片机会读出DS1302的数据,读出数据也是从最低位位0开始,一直到位7。DS1302与RAM有关的寄存器可以分为两类:第一类是单个的RAM单元,它一共有31个8位字节,COH-FDH是它的命令控制字,在这之中读操作的控制字是奇数,反之为偶数的话表示的就是写操作了;而另外的一类是突发方式下的RAM寄存器,在这个方式下可以一次性读写31个的RAM字节,命令控制字是FEH(写)、FFH(读)。下边我截取了一些程序,这简单程序段是使DS1302与STC89C52单片机之间建起连接并写入时间日期等数据的存储地址,详细程序见附录:sbit lcd_rs=P20; sbit lcd_e=P21; sbit ds1302_rst=P14; sbit ds1302_sclk=P12;sbit ds1302_io=P13; uchar time_date=0x50,0x59,0x23,0x00,0x00,0x00,0x00;4.5温湿度采集设计DHT11的数据格式是5个8字节,即温度整数的数据、湿度整数的数据、温度小数的数据、湿度小数的数据和校验和这五个数据各八位。其中温度湿度小数部分带扩展。微理器与DHT11之间的通讯和同步,使用的是单总线格式,4ms左右的一次通讯时间。DHT11的单总线编程相对简单。图4-1是DHT11起始部分时序图:第一阶段控制器先拉低至少18ms延迟,然后拉高20到40us后等待DHT11的应答;第二阶段在DHT11检测到信号后,先将总线拉低约80us再拉高80us作为应答信号。下面是部分程序代码:(详见附录)图4-1 DHT11起始部分时序图sbit THR=P15;/温湿度传感器DHT11接入uchar str=0,0,0,0,0,0,0;uint TH,TL,RH,CK;uint THc,TLc,RHc,RLc,CKc;uint xh,sum;void delay(uchar s)/延时10us uchar v; for(;s0;s-); for(v=25,v0;v-);void delay(uchar b) /误差 0us unsigned shar a; for(;b0;b-) for(a=2;a0;a-); void delay1(uchar c) /误差 0usunsigned char a,b;for(;c0;c-)for(b=142;b0;b-) for(a=2;a0;a-); void delay2()/显示用的延时uchar l,j,k;for(l=2;l0;l-) for(j=4;j0;j-) for(k=100;k0;k-);void start()TRH=1;delay(2);TRH-0;/主机拉低18msdelay1(20);TRH=1;/DATA总线由上拉就能被主机延时20 4.6 12864显示设计本设计所采取的是8位并行接口方式,并借助于此展开LCD12864显示模块的控制,把D0-D7与单片机的P2.0-P2.7相互对接,并将数据信息从单片机STC89C52所具备的端口P2输送进去。3 4.7 继电器控制设计本设计中的继电器的控制是通过单片机发送来的电信号来控制继电器的吸合与断开,在湿度温度不在预设值内的时侯,STC89C52单片机发送一个低电平信号给继电器的控制口,这个时候三极管将会导通,通过PNP三极管来驱动;反之,单片机则发送一个高电平信号,三极管截至。sbit JDQ1=P02; /继电器1sbit JDQ2=P03; /继电器2void Delay(unsigned ynt ii)/MSwhile(1)if(str335&str315)JDQ1=1; /继电器1吸合else JDQ1=0;/继电器1断开if(str020)JDQ2=1;/继电器2吸合 else JDQ2=0;/继电器2断开5 功能实现5.1系统功能测试内容这次的作品设计过程总的来说分为了硬件制作和软件编程两个过程。在设计制作硬件电路的同时,还要检测传感器件的功能是否正常,检查硬件电路没有错误以后,才可以进行软件编程。软件的编程也是按照不同的功能模块一步一个来完成的,一块功能实现后再进行下一个功能的实现,最后再整合资源实现所有功能程序可以正常加载运行。5.2 调试遇到的问题5.2.1显示屏乱码问题调试中遇到了显示屏乱码问题,首先检查了硬件问题,查看显示屏是否能正常显示,排除之后,就查看程序问题,因为显示屏显示字符都需要建立一个字库,显示屏的驱动程序也是正常的,所以,最后查看字库是否有问题,在认真的查看字库程序后,发现有一行程序有问题,在需要显示的温湿度的字样都写成了取反的程序,所以就会出现乱码。5.2.2 温湿度显示误差本系统有温湿度采集功能,在调试的过程中,遇到了温湿度采集显示与当前的温湿度值存在很大的偏差,为了解决问题,我分了两个方向去寻找该问题的产生原因。第一是查看程序,在认真的查看的自己写的程序之后,也经过仿真调试,结果是程序方面没有问题;第二是查看硬件电路与所处环境,因为本次使用的是模块化的温湿度传感器,在换了三个模块之后,显示的数据还是没有变化,之后在换了相对比较干燥的环境后,发现温湿度的数据显示变正常了,最后得出的结论是本次使用的温湿度模块采集对当前的环

温馨提示

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

最新文档

评论

0/150

提交评论