版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、BACHELORS DEGREE THESISOF HOHAI UNIVERSITYAuxiliary control system of solar waterheater based on single chipputerCollege:College of Mechanical and Electrical EngineeringSubject:Mechanical and Electrical EngineeringName:YuDirected by :ZhangWeiwei ProfessorNANJING CHINA郑 重本人呈交的毕业设计,是在导师的指导下,独立进行研究工作所取
2、得的成果,所有数据、资料真实可靠。尽我所知,除文中已经注明的内容外,本设计()的研究成果不包含他人享有著作权的内容。对本设计()所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本设计()的知识归属于培养。本人签名:日期:目录摘要3ABSTRACT4第一章1.11.2第二章2.12.22.32.42.52.62.7第三章3.13.2概述5设计背景5设计任务7能热水器及控制系统简介8热水器及系统工作原理8控制系统设计原则9主控方案9温度检测方案9水位检测方案10显示方案10时钟方案11控制系统硬件设计12总体设计12主控模块14单片机接口配置14复位电路14时钟电路15温度测
3、量模块153.3.1DS18B20 简介153.3.2 温度测量电路接线图16水位检测模块18显示模块19LCD1602 电气接线图19LCD1602 技术参数及接口说明19实时时钟203.6.1DS1302 简介203.6.2时钟电路电气原理图20驱动模块21上水电磁阀驱动电路21自动加热驱动电路21按键模块23按键模块简介23按键抖动处理233.33.43.53.63.73.8第四章4.1控制系统实时时钟设计25设计254.1.1DS1302 时钟地址及数据格式25流程264.1.3DS13024.1.4时间子程序26时间设置子程序27日期BCD 转字符程序27时间BCD 转字符程序27水
4、温检测设计294.24.2.1传感器操作指令29流程304.2.2DS18B204.2.3获取温度子程序30显示模块设计324.34.3.1LCD1602 指令及说明324.3.2LCD1602RAM 地址. 32初始化过程32显示子程序33水位检测设计34按键模块设计354.44.5键值子程序354.5.14.5.2键值处理子程序35控制系统调试与仿真38总体仿真结果展示38自动加热仿真39水位检测及上水仿真41总结与展望43第五章5.15.25.3第六章参考文献44摘要随着社会的发展和科技的不断进步,人们的生活水平也在逐渐提高。与之而来的问题也很多,例如能源与环境污染,绿色环保理念因而开始
5、深入人心。能作为新兴的清洁能源得到了大家的普遍认可,首先能取之不尽、用之不竭,其次干净无污染又是一大特点,因此积极推广能的应用具有意义。本设计将研发一款高性能的能热水器控制系统,产品具有智能化的特点。本篇的设计可以作为单独的控制系统销售也可以安装在普通的能热水器上使之作为智能型热水器来出售。这一设计会更广泛地推动能的使用,在将来还可以与物联网系统结合,吸引消费者的眼球,同时符合国家当前的发展理念。本在介绍单片机、传感器、实时时钟的特点基础之上,详尽地说明了能热水器控制系统的工作原理与方案设计。根据本设计的要求,采用 STC89C52 作为主控芯片。其他硬件部分包括:水温模块、水位监测模块、按键
6、输入部分、LCD 显示窗口及继电器控制模组,继电器控制模组有自动上水和加热部分。在方面,本设计采用模块化方式对系统进行分组设计,使得设计工作稳步展开,并且经过本系统的各个模块均正常工作,符合设计要求。,:能热水器;控制系统;单片机ABSTRACTWith the development of society and the progress of science and technology, peoples living standards are gradually improving. However, problems come with it, such as the energyc
7、risis and environmental pollution, thus green development ideas gained ground. Solar energyas a new clean energy has been widely recognized, due tot its inexhaustible and clean,and followed by a major feature. So, promoting the use of solar energy actively is of greatsignificance. This article will
8、set out to design anelligent, high-performanolar waterheater control system which was designed withelligent automation features. This designcan be used as a separate control system sales also it can be installed on ordinary solar waterheater to make it as a smart water heater to sell. The design wil
9、l be more benefil to promotethe use of solar energy. Combined with theernet of things will attract the attention ofconsumershe future and be in line with the countrys current development concept.This pr describes the basic features of the microcontroller, sensors, real-time clock,and a detailed illu
10、stration of the working principle and design of solar water heater control system. According to the design requirements, STC89C52 used here as a master chip. Other hardware includes: temperature acquisition module, water level monitoring module, key inputsection, LCD display window and relay control
11、 module, relay control module has automaticpumwatart and programming heating part. On the software side, using modulardesign makes the works steady progress. After simulation, eaodule of the system isworking properly, whieeting to the design requirements.Key words: Solar water heater ;Control system
12、;Microcontroller第一章概述1.1设计背景能源对于人类的发展与新能源的成长。近代工业。每一次人类文明的进步,都可以看到旧能源的落幕于英国,当时蒸汽机的发明与改进使得煤炭资源取代了木材,成为主导能源。到 20 世纪初,石油得到大规模开采与使用,全世界对石油的需求激增,石油逐步取代煤炭成为主导能源。根据 Sistical Review of World Energy 20153估算,在 2014 年的能源消费结构中,石油仍然是主导,约占全球能源消费的 33.3%;煤炭和天然气资源分别占全球能源消费的 30.1%和 24.0%。作为化石,三者合计达到全球能源消费的 87.4%,传统依然
13、支撑起现代商业文明主导力量。自从传统能源作为主导能源以来,两大安全问题便显现出来。一是传统化石的供应问题,其越来越难以满足市场的需要。因为化石是不可再生的能源,有限的储量却要应付世界经济和的飞速增长。二是传统能源的安全问题。一方面,由于开采技术,煤矿事故频繁发生;再者,资源的肆意无须开采,对水、地表生态环境造成了难以恢复的破坏。另一方面,传统能源的使用还会产生废气废渣,特别是燃烧处理的煤炭会排放SO2、粉尘等污染物。应对传统化石能源日益严峻的安全形势,世界各国开始调整供应策略,积极引导开发新能源,以降低对传统能源的依赖性。政策,采取多元化就我国的发展来说,积极推广新能源,以节约和代替部分化石能
14、源,这是保障我国能源安全、优化能源结构、促进社会与经济可持续发展、保护环境、应对气候生态变化、调整产业结构的部署。近年来,新能源的发展受到的大力支持。自 2011 年起,可再生能源发展的脉络日渐清晰,我国将在推广新能源和提高传统能源效率两方面加速能源结构调整。未来新兴能源开发利用的定位是:到 2020 年,核能、风能、能等新兴能源要成为能源总需求中增量部分的主力军,加上水能共提供约 6 亿吨标准煤,占一次能源消费总量的 15%;到 2030 年,新兴能源要成为主流能源之一,加上水能共提供 20%以上的一次能源消费量1。作为一个幅员辽阔的国家,中国有着丰富的累计安装量居世界第一位,但是由于中国庞
15、大的能资源。虽然我国在数量,意味着能热水器均占有的能热水器还少于像、以色列、希腊和奥地利等国家。根据我国可再生能源发展规划,能热水器累计安装应在 2010 年达 3 亿平方米和在 2020 年达到 1 亿 7000 万平方米,每拥有量达 128 平方米到 203 平方米。根据这一计划,在 2020 年中国能热水器的持有率只相当于 2000 年奥地利的水平,仍远低于 2000 年的和以色列的能热水器安装量2。目前,中国正处于快速发展阶段,城乡居民对生活热水的需求急剧增加5。而在农村地区和中小城市,能热水器已经成为提高人民生活质量、全面建设小康社会的一个快捷的技术方法2。随着传统能源价格的持续上涨
16、,社会上的环保意识日益提高。另外由于能热水器产业的升级改进和能热水器与建筑技术的发展,使得太阳能热水器将保持增长势头。中国热水器市场自上世纪 90 年代以来,保持了十多年的快速增长。我国能热水器的年铺设量由 2000 年的 610 万平方米,快速增长到2009 年的 4200 万平方米,年平均增长速度 246。能热水器运行保有量由 2000年的 2600 万平方米,增长至 2009 年的 14500 万平方米,年平均增长速度为 21%6。尤其是 2006 年可再生能源法实施以来,国家可再生能源开发政策进一步加强,更是由于新农村建设的开展和地方开始实施新建建筑强制安装政策,对能热水器的应用和推广
17、起到了极大的推动作用。2006 年至 2009 年能热水器销售量年均增长率为 33%,总保有量年均增长率为 17%,2。能热水器应用又进入了一个新的面对巨大的市场,对能热水器也提出了新的技术要求。目前能热水器普遍都没有自动控制系统,这让能的推广工作达到了技术瓶颈。因此设计一个智能化的能热水器控制系统迫在眉睫。1.2设计任务本课题旨在设计一个小成本、低功耗、多用途的能热水器控制系统。热水系统采用单片机作为微型控制器,该系统是设计目标有:通过传感器,将水位水温采样信号传送给单片机进行处理,并进行水位及温度的显示;当水位到达低限,系统自动上水,高限停止上水;3) 可调预置水温设计,用户可以节;设置温
18、度保持范围,以应对不同地区不同季4) 可以设定时段温度,如果在时段内,温度过低系统将循环加热;5) 允许自动/手动进行上水、加热设置。在设计系统的过程中,同时学习了单片机的开发与程序编制以及电路的设计与仿真等操作。本科阶段的知识得到了进一步提高,另外有了 Proteus 和 Keil 等的使用。在下文,提供了不同满足设计要求的方案,最终选择最优设计。第二章能热水器及控制系统简介2.1热水器及系统工作原理目前市场上能热水器的主要分类有:玻璃真空管热水器、平板型热水器、陶瓷中空平板型热水器以及热管式热水器等。而在国内,能热水器市场份额的 90%是全能2,因此本设计采用真空管玻璃真空管器基本构造能热
19、水器作为控制对象。能热水,包括有:、集热管、进出水接口、排气孔、安装架等组件。阳光照射在真空式的集热管上,集热管吸收热量,管内冷水被加热成热水。由于热水比重低于冷水,热水上浮冷水下沉进行冷热交替加热,最终热水被收集到储内,以上是能热水器的基本原理。图 2.1能原理图在光照良好的情况下,上述过程比较顺利。如果遇到连续阴雨天气,则不能收集热水,因此需要加热电辅加热功能。当单片机到温度低于设定值,并且在预设时间段内,将开启加热,保持水温在程序设置的范围内。水位监测模块安装在中,监测水位的变化并发出水位信息。当水位低于设定位置,单片机发出指令停止加热同时开始上水;水位被监测到达高水位时,停止上水。实时
20、时钟为系统提供时间信息,既可以显示日期时间等信息,又能让用户设置水温保持时间段。在该时间段内开启辅助加热功能,其他时间只显示温度而不加热以节约能源。系统还提供有手动按钮,允许用户控制上水电磁阀、加热器等器件。在手动模式下系统依然发生上水溢出、干烧等事故。水位水温信息,防止安装架排气孔储出水口集热管进水口2.2控制系统设计原则本控制系统将单片机及电路与能热水器结合起来。运用温度、水位监测技术,将水温、水位信息进行处理、控制。该系统设计遵循的原则如下:1)可靠性。本能热水器控制系统是基于单片机的系统,在设计单片机的硬件与方案时,要考虑到各种了来保证系统的高可靠性。例如在测量温度时,如何保持温度数据
21、地准确传输;如何保证单片机工作不被电磁干扰等等。因此系统需要综合考虑,保证境与使用、传输以及处理过程中的可靠性,才能使得系统能够应对各种复杂的环。2)准确性。本系统使用的测量电路较为先进,能够精确地反映被测量的变化。3)经济性。本设计针对的是广大民用客户,所以在选用电路器件时要比如何,尽可能控制成本以提高竞争力。其性价4)人性化。由于本系统要面向广大客户,所以在进行软硬件设计时,要充分考虑诸多。2.3主控方案选择单片机有以下两种方案:方案一: 选用STC89C52作为主控制器。STC89C52RC 单片机是STC 宏晶电子公司生产的兼容MCS-51 的高性能/低功耗单能力强,工作电压:5.5V
22、3.3V(5V 单片机)片机。该型号单片机性价比高、/3.8V2.0V(3V 单片机)。工作频率范围:040MHz,相当于普通 8051 的 080MHz,实际工作频率可达 48MHz。用户应用程序空间为 8K 字节,片上集成 512 字节 RAM。方案二:采用 AT89S52。AT89S52 是 Atmel 公司制造,也和MCS-51 系列单片机兼容,片内具有 8K 字节程序空间,256 字节的数据空间,具有编程可擦除技术。两种单片机都完全能够满足设计需要,STC89C52 相对 ATS89C52 价格便宜,且抗干扰能力强。考虑到成本,因此选用STC89C52。2.4温度检测方案温度是整个能
23、热水器工作状态的指标,系统根据到的储温度判断接下来的动作,温度测量的准确性直接关系到控制系统能否正常工作。设计温度测量方案时,有以下备选方案:热敏电阻+模数转换器,数字式温度测量器件。其中第一个方案从设计角度考虑较为复杂,测量过程如图 3.4 所示4。而后一方案有众多的温度传感器可供选择,常见的有LM355Z、DS18B20 等等,使用方便。图 3.4 温度测量流程图其中 DS18B20 是一款高性能的数字式温度测量,可以将温度量直接转化为数字量,因此单片机可以方便的通过总线数据。综上,本设计采用 DS18B20 传感器。2.5水位检测方案在考虑水位检测模块时,有以下几种传感器可以实现:超声波
24、传感器、感器、电容液位传感器、以及电子液位检测器。具体如表所示:传表 水位检测传感器电极式水位检测电路结构简单,其精度也足够控制系统的使用。利用导电液体开关电路的原理,适用于单片机等逻辑控制器。当水漫过电极,电路接通,电平发生改变,主控依靠电平的状态判断液位。采用电极式液位检测电路控制了成本,降低了系统复杂度,也方便选择安装位置。这里注意电极在中容易生锈或被电化学腐蚀,影响检测的准确性。为了防止这种现象发生,本设计拟采用石墨涂层不影响检测,也不会发生腐蚀等不良结果。电极,这样既压敏式传感器精度高,与此同时带来成本;电容式传感器具有精度高的特点但是热内极易产生水垢,会影响测量精度;电极式电路成本
25、低、应用方便、适用性强,是本次设计控制系统所采用的。分类超声波式电容式电子式器件超声波探测器压力传感器电容液位器电极式液位器描述价格贵使用不便,价格贵性差使用方便精度不高2.6显示方案显示输出模块要求能够显示水温、水位,日期、时间以及以上信息的设置选项。有如下三种方案可供选择:一、LED 指示灯显示水位,占用 4 个I/O 口,数码管显示水温以及时间等信息,占用 12 个I/O 口;二、LCD1602 显示以上全部信息,但是不能同时显示,占用 11 个I/O 口;三、采用 LCD12864 液晶,可以同时输出全部设计要求的信息,但是成本较高。本设计显示的信息量较多但是实时更新速度要求较低,并因
26、此选取 LCD1602 液晶屏作为显示输出器件。2.7时钟方案本控制系统需要时间信息进行控制驱动电路,目前市场上有多种时钟可供选择,而且单片机本身也有定时功能,因此考虑以下两种方案:一是直接使用单片机的定时计数器提供信号:用程序计算年、月、日、时、分、秒等计数信息。此种方案虽然减少的使用,成本低,但是,实现的时间误差较大。二是采用 DS1302 时钟:DS1302 是一款高性能的时钟,其特点有:计时提供时钟信息具有较准确、接口简单、使用方便以及功耗较低。所以采用 DS1302多的优点。第三章控制系统硬件设计3.1总体设计能热水器控制系统主要功能的实现有STC89C52RC 单片机控制水温、水位
27、等与输出、控制继电器开通与关断,进而使用户在消耗少量能源的情况下获取信息的热水。如图 3.1 所示,控制系统主要包括温度检测模块、水位检测模块、实时时钟模块、按键输入模块、LCD 显示模块以及继电器驱动电路,驱动电路包括有辅助加热模块和自动上水模块。水温水位检测模块负责温度与水位的检测工作,温度检测传感器采用达拉斯半导体公司生产的 DS18B20,通过与单片机的 I/O 口相连;水位检测电路采用电极式的测量方法;实时时钟为整个系统提供实时时间,用户可以设置自动加热的时间段,其他时间可以手动加入以节约能源;键盘输入模块实现对系统控制信息的输入;LCD 显示模块采用LCD1602 器件输出控制系统
28、的信息;驱动电路有继电器负责通断电磁阀上水,向晶闸管接通加热器件电路可以避免继电器启动时产生电弧带来的3.2 所示。电气原理图如图图 3.1 系统硬件框图时钟模块键盘输入模块自动上水模块驱动电路辅助加热模块水温水位显示模块水温水位检测模块STC89C5图 3. 2 控制系统电气原理图3.2 主控模块3.2.1单片机接口配置水温检测模块:P1.7;水位检测电路:P3.4P3.7;键盘输入模块:P1.0P1.6;实时时钟模块: P2.5P2.7;自动上水模块:P2.3 辅助加热模块:P2.4;水温水位显示模块:数据口P0、使能等等P2.0P2.2(LCD1602)。图 3.3 单片机接口配置图3.
29、2.2复位电路单片机在运行时难免会遇到各种问题,快速的解决方案是进行系统复位,使 CPU和其他器件处于初始状态。图 3.4 复位电路3.2.3时钟电路时钟电路是单片机CPU 的心脏,它控制着 CPU 的工作节拍,可以通过提高时钟频率来提高CPU 的计算速度5。图 3.5 89C52 时钟震荡电路3.3 温度测量模块3.3.1DS18B20 简介本设计采用 DALLAS ()公司出产的 DS18B20,该产品特点有:独特的1-Wire 接口仅仅占用一个通信端口;内置温度传感器和 EEPROM 减少外部元件的数量;测量温度范围:-55C 至+125C (-67F 至+257F),-10C 至+85
30、C 范围内测量精度为0.5C;9 位至 12 位可编程分辨率;无需另接外部元件;寄生供电模式下只需要2 个操作引脚(DQ 和GND);多点通信以简化分布式温度测量工作;每个器件具有唯一64 位序列号,在器件的ROM 内;用户可以灵活地定义温度门限,通过搜索指令来找到温度超出门限的器件;提供 8 引脚SO,8 引脚SOP,3 引脚 TO-92 多种封装形式,如图 3-7 展示了 DS18B20.各种封装及引脚图。图 3.7 DS18B20 封装形式本设计中采用的是 TO-92 形式的封装,其尺寸形状便于安装在热水器中。通双绞线与单片机相连,可以实现长距离测量工作。各种封装的引脚定义见过下表。表
31、3.1DS18B20 管脚说明3.3.2 温度测量电路接线图DS18B20 采用的独特的一线式结构,其仅需一根线就能够实现通信。温度传感器一共有三条线:电源线、电源及数据线,其电源即可通过电源供电如图 3-5所示,但使用外部电源可以提高测量速度。以上所述特点表明 DS18B20 非常适合用于长距离多点温度检测系统。图 3.6 DS18B20 外部供电电路图温度测量模块的组成器件有:DS18B20 和 4.7k 上拉电阻。注意在长距离传输时使用类双绞线,应该适当减少上拉电阻阻值,以补偿线阻。SO*SOP*TO-92符号描述备注: NC 引脚为悬空标识标号541GND接地引脚412DQ数据输入输出
32、引脚 单总线开漏引脚 当使用寄生电路供电模式时也可以为器件提供电力383VDD可选电力引脚图 3.8DS18B20 接线图DS18B20 检测的温度经单片机处理、判断,可以进行 LCD 输出显示和控制加热器件工作。对于加热温度,我国目前没有相关行业标准。出于安全考虑,最高加热温度控制在 55C ,最低加热温度为 40C 。3.4水位检测模块水位监测模块采用的电极式测量电路原理。电极A 对应 10%水位下限,电极 B 对应 40%水位,电极 C 对应 70%水位,电极 D 对应 95%水位上限。水箱底部放置公共地线,每当水位到达某一个电极位置,比如在 70%水位,电极A、B、C 与公共地线短接。
33、根据原理图所示,电极A、B、C 接地,电信号经74LS04 反相,P3.7 ,P3.6,P3.5 将需查询数据便可判断出水位的信息。到,P3.4 保持低电平。此时单片机仅对于水位监测模块的设计要注意电极在中容易生锈或被电化学腐蚀,影响检测的准确性。为了防止这种现象发生,本设计拟采用石墨涂层样既不影响检测,也不会发生腐蚀等不良结果。电极,这图 3.9 水位检测模块电气原理图3.5 显示模块3.5.1LCD1602 电气接线图显示电路有排阻、电位器以及LCD1602,电位器调节显示对比度。STC89C52 的P0 口和排阻、LCD1602 的数据I/O 口相连,P20 接 RS 引脚,P21接R/
34、W 引脚,P22 接E 引脚。图 3.10LCD1602 电气原理图3.5.2LCD1602 技术参数及接口说明LCD1602 主要性能指标有:16X2 个字符显示容量;4.55.5V 的工作电压;2.0mA 工作电流;字符尺寸为 2.95X4.35mm。引脚说明见下表表 3.2LCD 引脚说明符号引脚说明符号引脚说明1VS S电源地9D2数据I/O2VDD电源正10D3数据I/O3VL液晶偏压信号11D4数据I/O4RS数据/命令选择(H/L)12D5数据I/O5R/W读/写选择(H/L)13D6数据I/O6E使能14D7数据I/O7D0数据I/O15BLA背光灯正极8D1数据I/O16BL
35、K背光灯负极3.6 实时时钟3.6.1DS1302 简介DS1302 是 DALLAS (时钟/日历和 31 字节静态 RAM钟/日历提供秒、分、时、日、自动调整,时钟操作可通过)公司推出的涓流充电时钟。片内包含有实时,通过简单的串行接口与单片机进行通信。实时时、月、年的信息,每月天数和闰年天数可实现M 指示决定采用 24 或 12 小时格式。DS1302 与单片机之间采用同步串行的方式进行通讯,仅需用到三根线:RST 复位、 I/O 数据线、 SCLK 串行时钟。时钟/RAM 的读/写数据可以一个字节或多达 31 个字节的字符组方式通信。DS1302 工作时功耗很低,保持数据和时钟信息时功率
36、小于1mW。3.6.2时钟电路电气原理图实时时钟模块由电池、晶振、电容以及 DS1302 时钟片机的P2.5 相连,SCLK 与P2.6 相连,I/O 与 P2.7 相连。组成。RST 引脚与单图 3.11 实时时钟电路图3.7驱动模块驱动模块包括上水电磁阀驱动电路和加热元件驱动电路。3.6.1上水电磁阀驱动电路上水电磁阀驱动电路主要元件有:两个 1k 电阻、一个二极管 1N4007、一个三极管 2N3905,一个 5V 的 LED 以及继电器。该驱动电路控制信号低电平有效,这时三极管导通,继电器工作,电磁阀开启实现低水位自动上水。当水位检测模块监测水位到达高水位时,P2.3 置 1,三极管关
37、断,继电器停止工作,电磁阀闭合。图 3.11 自动上水驱动电路3.6.2自动加热驱动电路自动加热驱动电路由双向晶闸管 Q4015N5、光电耦合器件 MOC3022、以及一个 47 欧姆的电阻。该电路设计构想是:电热元件功率比较高,普通继电器在开通、关断瞬间会产生电弧。由于电弧会损坏器件,因而普通继电器难以胜任开关工作,即使可以,成本也比较高。这里采用固态继电器的原理,向晶闸管当作交流开关。双向晶闸管的门极控制电路的开通与关断:当单片机程序判断需要开启加热功能时,I/O口信号经光耦产生门极电流使晶闸管导通;当加热到指定温度,光耦关断门极电路,流过双向晶闸管的工作电流最多在一个周期内,就会低于晶闸
38、管的最小导通电流,晶闸管关断。图 3.12 自动加热驱动电路3.8 按键模块3.8.1 按键模块简介本热水器控制系统涉及到一些功能设置键和一个系统复位键,功能键分别是: “加”键、“减”键、“设置”键、“选项”键、“返回”键、“加热”键以及“上水”键。图 3.13按键模块原理图在显示模式中,按下设置键,进入设置模式;设置模式中按下返回键,退出到显示模式。在设置模式中,按下选项键选择设置选项。在特定选项中,由加、减键上下设置数值。加热键和上水键可以手动运行加热及上水功能,方便客户多样性地使用本控制系统。3.8.2 按键抖动处理按键模块是操作输入系统信息的,所以精确识别每个按键的动作是决定系统能否
39、正常工作的关键。现在市场上的按键多采用机械弹性开关,电信号在机械触点的闭合和断开过程中,完成高低电平的转换。但是按键在闭合及断开瞬时间由于弹性作用,必然产生一连串的抖动。图 3.14按键抖动示意图要防止抖动的发生,为了消除抖动的影响,可以从硬件为了稳定操作,和两方面解决:1)硬件延时消抖:计算好电容放电时间,利用放电延时不失为一个方案。但本设计选用的单片机程序空间足够放下消抖的函数,且考虑到批量生产增加电容的成本,故采用下一方案。2)延时消抖:如果按键较多,常用延时的方法去抖动。流程如下:检测到按键闭合延时 5-10ms再次检测按键状态,如果再次检测仍是闭合状态,则认为确实有按键按下。第四章控
40、制系统设计4.1 实时时钟设计4.1.1DS1302 时钟地址及数据格式对 DS1302 的时钟操作需要的数据地址及格式如下表所示12。表 4.1 时钟地址及数据格式下面介绍使用到的寄存器含义:CH(时钟停止位):CH=0 振荡器工作允许;CH=1 振荡器停止。寄存器 2 第 5 位(M 定义):AP=0上午模式;AP=1下午模式。WP(写保护位):WP=0 数据能够写入;WP=1 数据不能写入。寄存器 2 第 7 位 (12/24 小时标志):bit7=0:24 小时模式;bit7=1:12 小时模式。4.1.3DS1302流程图 4.1 DS1302控制流程图4.1.4时间子程序void
41、ds_get_time(systemtime *time)unsigned char readvalue;/second readvalue=dsread(dssecond);time-second=(readvalue&0 x70)4)*10+(readvalue&0 x0F);/minute readvalue=dsread(dsminute);time-minute=(readvalue&0 x70)4)*10+(readvalue&0 x0F);/hour readvalue=dsread(dshour);time-hour=(readvalue&0 x70)4)*10+(readva
42、lue&0 x0F);/day readvalue=dsread(dsday);time-day=(readvalue&0 x70)4)*10+(readvalue&0 x0F);/kreadvalue=dsread(dsk);time-/monthk=(readvalue&0 x70)4)*10+(readvalue&0 x0F);readvalue=dsread(dsmonth);time-month=(readvalue&0 x70)4)*10+(readvalue&0 x0F);/year readvalue=dsread(dsyear);time-year=(readvalue&0
43、x70)4)*10+(readvalue&0 x0F);时间设置子程序voiddssettime(unsigned char addr,unsigned char byte)dsprotect(0); dswrite(addr,(byte/10)year/10+0;*(datestr+1)=time-year%10+0;*(datestr+2)=-;*(datestr+3)=time-month/10+0;*(datestr+4)=time-month%10+0;*(datestr+5)=-;*(datestr+6)=time-day/10+0;*(datestr+7)=time-day%10
44、+0;*(datestr+8)=0;4.1.7时间 BCD 转字符程序voidtimezstr(systemtime *time,char *timestr)*timestr=time-hour/10+0;*(timestr+1)=time-hour%10+0;*(timestr+2)=-;*(timestr+3)=time-minute/10+0;*(timestr+4)=time-minute%10+0;*(timestr+5)=-;*(timestr+6)=time-second/10+0;*(timestr+7)=time-second%10+0;*(timestr+8)=0;4.2
45、水温检测设计4.2.1传感器操作指令本小节介绍 DS18B20 的数据操作指令,为程序设计提供原理性指导。首先要了解 DS18B20 的空间,器由一个高速暂存器和一个非易失性E2PROM,其原理如表 3.2 所示。表 4.2 DS18B20 温度传感器内存空间Byte 0Byte 1Byte 2Byte 3Byte 4Byte 5Byte 6Byte 7Byte 8E2PROM由于 DS18B20 的单总线设计,在数据传输是要满足一定格式要求的方能进行操作。根据的通信协议,主机与 DS18B20 的通信要具有初始化、ROM 操作指令、功能操作指令三个步骤。下表列出本设计需要使用的一些指令及其说
46、明。TH 寄存器或用户数据1*TL 寄存器或用户数据 2*控制字寄存器*高速暂存器SCRATCHPAD温度值低八位LSB(85C)温度值高八位MSBTH 寄存器或用户数据 1*TL 寄存器或用户数据 2*控制字寄存器*保留保留保留CRC*表 4.3 ROM 操作指令表和功能指令表4.2.2DS18B20流程描述指令字备注ROM 操作指令忽略 ROM忽略ROM 命令允许主机不提供 64 位 ROM 编码以提高访问器的速度。CCh总线上只有一个 DS18B20 时方可使用,否则会发生。功能指令温度转换启动温度转换44hDS18B20 发送温度转换状态给主机读暂存器整个暂存器包括 CRC 字节BEh
47、DS18B20 发送最多 9 个字节的数据给主机,主机可以随时停止 数据。写暂存器写数据到暂存器中的第二、第三、第四字节空间(TH, TL和控制字寄存器)4Eh主机发送三个字节的数据到 DS18B20.暂存器暂存器中TH, TL 和控制字寄存器的数据到E2PROM。48h调取E2PROME2PROM 中的数据到暂存器的TH, TL 和控制字寄存器。B8hDS18B20 发送调取状态给主机图 4.2DS18B20流程4.2.3获取温度子程序void dsgettemp(unsigned char *eger,unsigned char *decimasigned char *symbol)uns
48、igned char high,low,temp,tempth,temptl,tempconfig; sendChangeCmd();/发送温度转换指令 delay_ms(800);sendReadCmd();/发送暂存器指令low=readByte(); high=readByte(); tempth=readByte(); temptl=readByte(); tempconfig=readByte();sendChangeCmd(); /为下一次温度做准备temp=high4; if(0=temp)/温度计算(*symbol)=0;(*eger)=(high4);(*decimal)=(
49、low&0 x0f)*0.625;else(*symbol)=1;(*eger)=(high4);(*decimal)=10-(low&0 x0f)*0.625; if(10=*decimal)(*eger) += 1;(*decimal) = 0;4.3显示模块设计4.3.1LCD1602 指令及说明4.3.2LCD1602RAM 地址LCD1602 液晶控制器0 x80h。RAM 有 80 x8 的缓冲空间,注意数据地址还应与上4.3.3初始化过程延时 15mS;写指令 38H(延时 5mS;写指令 38H(延时 5mS;写指令 38H(测忙信号);测忙信号);测忙信号);以后每次写指令、
50、读/写数据操作均需要检测忙信号;写指令 38H:显示模式设置;写指令 08H:显示关闭;写指令 01H:显示清屏;写指令 06H:显示光标移动设置;写指令 0CH:显示开及光标设置;4.3.4显示子程序voidlcdoutput(unsigned char x,unsigned char y,unsigned char *str)if(y)/此由有坐标x,y 值计算地址y=1 则显示在第二行x|=0 x40;x|=0 x80;/LCD1602地址第七位为 1,所以地址要与上 0 x80lcdwrite(d,x);/写入地址while(*str!=0)/写入数据lcdwrite(data,*st
51、r); str+;4.4水位检测设计水位检测程序比较简单,有图 3.9 水位检测模块电气原理图所示,仅需P3 口,在低四位就可判断水位信息。水位检测模块的原理是:水位检测接口,然后进行查表,再根据预设的关键水位信息操作继电器驱动电路。部分程序如下:unsigned char depthpros()unsigned char depth; unsigned char depthvalue; P3=0 xff;depth=P3; depth&=0 xf0; P3=0 xff; switch(depth)case 0 xf0:water=1; depthvalue=100; break;case 0
52、 x70:depthvalue=70; break;case 0 x30:depthvalue=40; break;case 0 x00:water=0; depthvalue=10; break;default:break;return depthvalue;4.5 按键模块设计4.5.1键值子程序unsigned char readkeys()unsigned char keystemp,keysvalue; doP1=0 xff; keystemp=P1; delay_ms(8); P1=0 xff; keysvalue=P1;while(keystemp!=keysvalue); re
53、turnkeysvalue;4.5.2键值处理子程序由于键值处理子程序较长,这里摘录一段修改日期的程序:voidkeyspros()unsigned char x;/零时变量 chardatestring9,timestring9; charyearnum1; charmonthnum1; chardaynum1; charhournum1; charminnum1;charthnum1; chartlnum1; systemtimedatetime; unsigned char keys;unsigned char pagcount=1;/计次移动charaddnum7;unsigned c
54、har set,add,sub,hea,wat,mov,sav;/设置,加键,减键,加热,上水,移动,保存 keys=readkeys();set=keys&0 x01; add=keys&0 x02; sub=keys&0 x04; hea=keys&0 x08; wat=keys&0 x10; mov=keys&0 x20; sav=keys&0 x40;if(set=0)dsgettime1(&datetime); datezstr1(&datetime,datestring);/获取时间 timezstr1(&datetime,timestring); if(mov=0)pagcount+;if(pagc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度房地产销售代理合同标的及代理服务条款2篇
- 2024年度企业间产品代理销售合同
- 煤厂空地出租合同范例
- 湖南软件定制开发合同范例
- 2024年度企业展厅设计装修知识产权保护合同
- 2024年度汽车美容店原料供应承包合同
- 2024年度新能源汽车研发与生产承包合同
- 2024年度广告发布合同标的及其执行细节
- 2024年度大连房屋租赁合同标准协议
- 2024年度产品研发合作开发合同
- 山西省大同市2024-2025学年九年级上学期11月期中数学试题(无答案)
- 企业2024年年度目标规划
- 金矿地质勘探合同范本
- 医院培训课件:《新进护士职业规划》
- 网约车服务管理手册
- 园林绿化安全生产培训
- 临床护理带教老师培训
- 2024年创意产业联盟协议
- 辽宁省大连市金州区2024-2025学年八年级上学期11月期中考试数学试题(含答案)
- 水电站管护协议书范文范本
- 酒店直播方案
评论
0/150
提交评论