水族箱智能控制器

上传人:沈*** 文档编号:95588007 上传时间:2022-05-24 格式:DOC 页数:30 大小:159KB
返回 下载 相关 举报
水族箱智能控制器_第1页
第1页 / 共30页
水族箱智能控制器_第2页
第2页 / 共30页
水族箱智能控制器_第3页
第3页 / 共30页
点击查看更多>>
资源描述
-南京工程学院 自动化学院 本科毕业设计(论文)题 目:水族箱智能控制器设计专 业:自动化班 级:自动化122学 号:203120220学生姓名:刘文军指导教师:徐 开 芸 高级实验师 起止日期: 2016.22016.6 设计地点:南京工程学院 Graduation Design (Thesis)The Design of Intelligent Controller ofMultifunctional AquariumByLIU WenjunSupervised bySenior E*perimentalist*U KaiyunSchool of AutomationNanjing Institute of Technology June, 2016. z.-摘 要随着社会的发展,人们对生活质量的要求越来越高,观赏类的产品受到人们的青睐,因此智能水族箱深受消费者欢迎。在一些公共场合,观赏类水族箱起到了美化环境、提升档次的作用。本课题设计了水族箱智能控制器。根据一些常见的水族箱的问题,设计了一种以STC89C52RC为核心的单片机控制系统,通过结合传感器让水温,水位,充氧等实现智能化控制。其中实现的主要功能是:温度控制部分是结合DS18B20传感器,对温度进行实时检测,温度过低则升温,过高则降温;水位控制部分通超声波传感器,对水深检测,水位低了则加水;并通过红外线遥控器进行充氧的开断控制以及参数的设置;LCD1602对实时参数的显示,以及操作步骤的显示。并且分别对此系统的温度显示与控制模块,控制充氧模块,水位显示与控制模块等进行硬件电路的设计,以及软件方面的设计,从而进行结合调试形成一个完整的智能化控制系统。经过一段时间对该设备的调试与运行,实验的结果显示该设备性能稳定,操作方便,实用性教强,由于其结构控制简单,成本较低,所以可以普及,并且适用于大多数水族箱场所。关键词:水族箱;单片机;智能化ABSTRACTWith the development of society, peoples quality of life become increasingly demanding, ornamental products by people of all ages, so intelligent aquarium welcomed by consumers. In some public places, ornamental aquarium played a landscaping to improve the grade of the role. This topic is designed aquarium intelligent controller. According to some common aquarium problems with STC89C52RC designed a microcontroller as the core control system, through a combination of sensor lets water temperature, water level, o*ygenation and other intelligent control.The main function of which is to achieve: the temperature sensor DS18B20 control section is a combination of real-time detection temperature, the heating temperature is too low, too high cooling; water level control section through an ultrasonic sensor to detect water depth, water level is low, add water; and via infrared remote control o*ygenation of breaking and setting control parameters; LCD1602 display of real-time parameters, and the procedure is displayed. And respectively of this system temperature display and control module, the control module o*ygenation, hardware circuit design level display and control module, and software designs to be combined to form a complete debugging intelligent control system. After a period of commissioning and operation of the equipment, the e*perimental results show that the equipment stable performance, easy operation, practical teaching is strong, due to its control structure is simple, low cost, so it can be universal and applicable to most places aquarium.Keywords: Aquarium; Microcontroller; Intelligent目 录第一章 绪论11.1 选题背景11.2 研究与发展现状11.3 主要研究内容2第二章 总体方案设计42.1 设计要求42.2 总体方案与功能42.2.1 硬件结构框图4 功能组成与控制参数52.3 主要元器件的选取52.3.1 单片机的选取5 温度传感器的选取72.3.3 液晶显示屏的选取7 超声波传感器选取82.3.5 红外线模块的选取8第三章 硬件设计93.1 硬件总体设计思路93.2 主控制电路设计93.3 水温控制电路设计113.4水位控制电路设计123.5 充氧控制电路设计133.6 状态显示电路设计143.7按键设置电路设计143.8 红外线电路设计153.9原理图及电路板设计16第四章 软件设计184.1 软件设计方法184.2 主控制模块184.3 液晶显示模块214.4 温度控制显示模块214.5 水位控制与显示模块224.6 红外线遥控设置模块224.7 充氧设置与显示模块23第五章 设计调试中遇到的问题255.1水温控制与显示模块问题255.2 水位控制与显示模块问题265.3按键控制和设置模块问题305.4 显示与优化30第六章 结 论316.1 论文总结316.2 展望32致 34参 考 文 献35附录A:硬件设计原理图与PCB图37附录B:软件程序清单39. z.-第一章 绪论1.1 选题背景随着时代的进步,技术的更新,人们对自然环境的追求也慢慢开始有了变化,水族箱不仅仅局限于是一个供金鱼水草等动植物生存的水容器,而且还是一个小型的生态系统,可以把它当做一个自然域的缩影1。如今水族进入了一个蓬勃发展的阶段,水族箱慢慢的进入了越来越多的场合当中,诸如办公室1,展览区,家庭等各种场合,已然变成了一种社会化的趋势。然而随着水族箱的普及,一些问题开始慢慢暴露出来,尤其是体现在上班族照看的场合当中,由于缺乏相应的专业知识以及技巧,一些水族箱会出现没人喂食,水长期没换,水中氧气不足,水位不够,水温过高或者偏低等问题。这样往往会导致水族箱生态系统的破坏以及水族生物的死亡等诸多后果。如今,市面上大部分水族箱的智能功能较单一,一般只能实现一个到两个功能的智能化控制,并不能真正起到生态系统智能化的作用,甚至因为*些原因滞后可能加速水族箱生态系统的衰败。这些因素导致了部分人想利用水族箱进行放松、减压的目的难以达到,使得观赏的价值大打折扣甚至望而却步,因此诸类问题的集中,往往抑制了水族产业的发展。1.2 研究与发展现状由于经济的高速发展,百姓的生活水平的提高,人们不再仅仅满足于物质层面的温饱问题,开始了对文化等精神层次的更高追求。因此更多文化、精神等高层次物品引来了人们的关注,得到了一个飞速的发展。人们对身边的住宿环境,工作环境也开始有了新的追求。在这种形式下,观赏性建筑,和物品,休闲养生类等迎来了一个发展的黄金时机,得到了一个井喷式的发展。当然,隶属于观赏性物品的水族行业,也同样得到了一个高速发展的黄金时机。这种好的形式下,一些投资商也瞄准这块市场,因为它带来的巨大经济效益,使得人们不得不对其投入更多关注2。根据当前的调查表明,目前水族行业的产业规模每年以15.6%的速率增长,并且每年在此产业的消费已经达到了300多亿元。并且其中各类水族箱的份额就占到了接近三分之一,尤其是各种壁挂式的水族箱经历了一个爆发型的增长到一个迅速下滑的极端,然而按照现在发展的趋势,水族箱的增长又会重新回到一个稳定发展的状态,但是由于基数的庞大,所以仍是一个相当可观的行业。由于市场上对这块的重视,不少新型含有高科技含量的水族箱被研究出来,也为未来水族箱的发展带来了一个好的期望。由于中国市场的庞大,所以诸多国外行业也盯着中国水族行业。目前,全国各大生活质量较高的城市:譬如北上广等一线城市,越来越多的开发商把壁挂水族作为一个亮点,来吸引顾客们的注意,从而达到更好的营销楼盘的目的。由此可见将来大部分消费者家中都会有水族身影的日子也不会太遥远了。诸多因素促使了水族行业的高速稳定发展。目前市面上存在着各种各样的水族箱,虽然水族箱的产品有很多,但是功能大多比较单一,仅仅体现在外观和造型上,所以基本能解决的问题大都不多。传统的水族箱大多是不智能的,仅仅配备了充氧泵和抽水泵,用以更换水源和提供水族足够的氧气。由于这些产品大多是由人控制开关数,所以会由于水族数量的多少而一天进行多次的开启和关闭操作。由于设备的经常性开关,会对设备造成巨大的损耗,这样不仅会减短设备的使用时间,还会大量的浪费资源。因此市面上开始出现了各种单一的智能控制系统,形如智能水位循环控制,智能水温控制,智能照明控制,智能喂食控制等等各种单一的控制系统设备。但是往往一个生态系统需要多个系统的配合,所以要是一个水族箱上增加多个单一的控制设备,成本会比较高,水族箱整体承受的负担也比较大,所占空间相对较多看起来比较凌乱复杂。所以不少水族箱厂家开始争相研发多功能智能水族箱,但是由于其功能较齐全,系统性比较完整等因素,所以造价以及售价上会比较高。针对以上诸多因素,本次课题主要依据市面上流转的各种水族箱所存在的一些问题以及一些功能上的缺陷,设计制作了一种基于STC89C52单片机实现智能控制的系统,此系统能够实现的功能主要是对水温的自动检测与显示、对水温的恒温控制、水位的深度检测与显示并控制水位的高度以及充氧等诸多功能的智能控制设备。此设备制作价格相对实惠,功能较齐全、实用性比较强、操作简单等,因此可以广泛适用于多种水族场合。1.3 主要研究内容本课题是基于STC89C52RC单片机的智能控制器,实现对水温,水位等环境参数智能检测、控制和显示等功能。此控制器主要实现的是通过结合传感器的监测数据对水位,温度等参数对水位高低和水温的温度控制,以及充氧实现开关控制,使水位和温度保持在一个系统设定的范围之内,超出范围实现报警,并实现升温和加水等功能操作,并且控制充氧从而完成对整个水族箱的水质的自动监测和智能控制。此系统不仅大大减轻了人们的负担,减少了资源的浪费而且形成了一个小型的循环系统,使得这个微型的生态系统可以更好的保存,维持下去。本系统通过LCD1602液晶显示屏,进行对水位和水温等参数的实时显示,利用DS18B20传感器进行水温的检测;以及超声波传感器,进行对水位深度的检测,从而可以更好地了解目前的水位和水温的状况3。本系统还增加了红外线遥控设置,通过遥控器进行远程控制温度设置,从而使得使用更加方便。 根据上文所提到的智能系统的一些要求和将要实现的功能,本课题初步设计了方案,将设计主要分为两大部分:硬件设计部分和软件设计部分。硬件设计分别对应温度显示,温度检测,温度控制,水位检测,水位控制,控制充氧,红外线遥控设置几大模块。相应的在软件方面也是针对这几大模块在Kiel环境下编写程序。然后进行软件和硬件的联合,调试,并进行对系统的差错和修改,然后把完成的程序下载到开发板中,进行最后的脱机运行,检查核实是否能够实现所需的以上所有功能。第二章 总体方案设计2.1 设计要求课题设计要求如下:(1)能够实现对水族箱中的温度进行实时检测,并且把温度控制的范围在:17-27。(2)通过万能遥控器输入来进行对水族箱预期温度的设置。(3)利用超声波传感器,通过距离差来判断水位的高低,从而通过水深高度的值来将水位划分高、低档。(4)利用LCD1602液晶显示器进行对水温的温度值和设定值进行显示,并且按键输入超出温度范围的时候会做出相应的指令,表示温度超出范围。以及对水位高度的显示。(5)基于STC89C52RC单片机,结合红外线遥控设置,对充氧模块实现远程开关控制。2.2 总体方案与功能2.2.1 硬件结构框图水族箱智能控制器是基于STC89C52RC单片机,该控制器利用DS18B20温度传感器对水温的温度值进行自动检测,把温度参数传送给单片机,与通过红外线远程控制设定温度数值相比较,并且对实时温度值在LCD1602液晶显示屏上刷新显示,比较判断之后如果温度不够时,液晶显示屏上会显示“its heating now”状态,并且系统会通过单片机发出指令,对加热器进行控制,从而达到设定温度的效果4。水位检测模块通过超声波传感器进行对水位的测量判断传出数据到单片机中,与系统设定的水位高、低档值相比较,单片机进行指令的发放,从而控制水泵的工作状态来控制水位的高度。通过万能遥控器按键进行充氧设置。硬件的总体结构设计框图如下图2.1所示。按键设置模块水温检测与控制STC89C52RC单片机水位检测与控制状态显示模块氧气的控制设置图2.1 总体结构框图功能组成与控制参数结合目前市场上现有的各种水族箱,了解这些水族箱的功能并分析其中的优缺点,从而完成本课题研究。本课题研究水族箱智能控制器主要分为以下几个部分:主机控制部分、水温控制部分、水位控制部分、充氧控制部分、状态显示部分、红外线设置部分,这些共同组成了一个功能完善的多功能智能水族箱控制器。课题研究设计的智能控制器的控制对象是水族箱,智能控制器的主要目的是自动地控制相关参数,从而为水族箱中的鱼类提供最合适的水质和生活环境5。在设计时需要注意的相关控制参数有:水温、水位的高低、水中的溶氧量6等。下表2 - 1显示该控制器对各项控制参数的处理7。表2 - 1 控制参数项目控制参数相应处理措施1水温根据设定的温度范围控制加热器的启动或停止2水位根据水位高低控制进水泵的启动与停止3水溶氧量根据所需时间要求定时控制氧气泵的启动与停止2.3 主要元器件的选取2.3.1 单片机的选取本课题我们引用的是由STC公司最新推出的性价比相对比较高的STC89系列单片机。STC89系列单片机的性能STC89系列单片机是MCS-51系列单片机的派生产品8。它们在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,DIP40封装系列与8051为pin-to-pin兼容9。STC89C52RC单片机具有8K的可编程Flash存储器,512字节RAM,32位I/O口线,看门狗定时器,内置4KB EEPROM,MA*810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口10。另外STC89C52RC可降至0Hz静态逻辑操作,支持2种软件可选择节电模式11。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作12。其引脚图如图2.2所示。图2.2 STC89C52RC单片机引脚图利用的相关STC89C52RC单片机的部分重要参数如下:增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。工作电压:5.5V3.3V(5V单片机)/3.8V2.0V(3V单片机)。通用I/O口(32个),复位后为:P0/P1/P2/P3是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需加上拉电阻。共3个16位定时器/计数器。即定时器T0、T1、T2。外部中断4路,下降沿中断或低电平触发电路,Power Down 模式可由外部中断低电平触发中断方式唤醒。 温度传感器的选取Dallas半导体公司的DS18B20支持“一总线”接口13,温度测量范围为-55+125,可以程序设定912位的分辨率,精度为0.514。设值计数器,所设的值是对应于-55,如果在周期结束前,计数器到达0,则温度寄存器的值就会增加,这表明所测得的温度是大于-55的14。这个时候计数器复位,而复位值是由补偿感温振荡器抛物线特性的斜坡式累加器电路来确定的,然后又开始计数,一直计数到014。在给定温度下必须知道计数器的值和每一度的计数值,这样才能获得所需要的分辨力,对此计算的结果,DS18B20 内部可提供0.5的分辨力15。DS18B20是可以采用两种方式供电的,一种是电源供电方式,此时,DS18B20的1号引脚接地,2号引脚作为信号线,3号引脚接电源。而另一种是寄生电源的供电方式,这时候的单片机端口是接单线总线的,因此要使用MOSFET管上拉总线,从而保证在DS18B20的时钟周期内能够提供足够的电流16。此外,DS18B20通过每个期间内的唯一序列号,允许在一条总线上连接多个设备,并且准确无误的控制任何一个设备。2.3.3 液晶显示屏的选取随着科学技术的发展,液晶显示器的价格也逐步降低。液晶显示器一般可按显示方式分为字符式、点阵式、段式等,它既可进行黑白显示,也可以进行彩色显示,还能调节亮度。它按驱动方式可分为静态驱动、单纯矩阵驱动、主动矩阵驱动三种17。当用LCD显示字符时,则找到对应显示的RAM区的8字节,让每字节的不同位为“1”,使它在LCD点亮;而其它的则为“0”,而它在液晶显示屏上就不亮,这样就显示成字符了17。在这之后开始设立光标,然后再将对应的代码传送到LCD就能显示字符。LCD是采用显示图形的方式来显示汉字的18,而每个汉字分为左右两半各占16B。所以,首先要将汉字的点阵码从单片机传送到LCD内19,然后根据LCD上的行列号和每一行的列数,找出显示RAM区相对应的地址,设立一个光标,再把汉字的第一字节传输给LCD,接着使光标的位置加上1,再送第二个字、第 三个字节、,当32B的汉字的代码内容在LCD上显示完毕时,则就可以在LCD上看到一个完整的汉字了19。 超声波传感器选取水族箱利用超声波传感器进行的水位检测的工作原理是:超声波传感器在40HZ的频率下工作,基于超声波发射器发出的脉冲信号,利用超声波在空气中传播遇到水族箱的水面之后,声波返回,超声波接受器接受返回信号,从而计算在空中和遇到水面之后传回的传播的时间从而计算出传播距离。将超声波传感器在水族箱中的摆放位置和水族箱底部的距离减去传播距离,得到的就是水族箱的水深深度值,通过LCD液晶显示屏进行实时刷新传送数值,从而可以更好地知道水位的深度值。其中超声波传感器的计算公式如下: T 式中:V为超声波在空气中传播速度;T为环境温度。 式中:S为被测距离;t为发射超声脉冲与接收其回波的时间差;t1为超声回波接收时刻;t0为超声脉冲发射时刻。选用超声波传感器的优点有:首先传回的数值是一个精确值,不是普通的水位传感器的模糊概念值,其次超声波传感器没有机械传动部件,也不需要直接接触水面,不用担心电磁干扰,不会被水面触碰氧化等,具有很高的稳定性,可靠性,使用期限较长。另一个因素是超声波传感器的响应时间比较短可以进行实时检测。2.3.5 红外线模块的选取在本系统中我们采用红外一体化接收头HS0038。HS0038的主要材料是 黑色环氧树脂,因此不受到日光、荧光灯等光源的干扰,并且其内附磁屏蔽,功耗低,灵敏度高20。在使用小功率发射管发射信号情况下,其接收距离可达35m21。它接收红外信号频率为38 kHz,周期约26 us,同时能对信号进行放大、检波、整形,得到TTL 电平的编码信号22。其三个管脚分别是接地、接5 V 电源、以及解调信号输出端23。红外接收电路一体化的红外接收装置将遥控信号的接收、放大、检波、整形集于一身,并且输出可以让单片机识别TTL信号,这样大大简化了接收电路的复杂程度和电路的设计工作,方便使用24。第三章 硬件设计3.1 硬件总体设计思路本次课设的硬件部分分为了六个大的子系统模块:主控制电路设计、水温控制电路设计、水位控制电路设计、充氧控制电路设计、按键设置电路设计、红外线电路设计。这六大子系统共同构成了水族箱智能控制器的硬件电路设计。 3.2 主控制电路设计主系统是基于STC89C52单片机设计的控制系统,其硬系统的结构成分主要分为以下几个板块:(1)温度检测和控制部分:温度传感器的输出信号由I/O口传出,经处理传送到单片机的P2.2口,单片机处理判断之后从P2.4发出高、低电平,来控制温度控制电路从而控制加热器的制热或者停止。(2)水位控制和检测部分:超声波传感器通过P2.0和P2.1两个端口接入单片机,传入信号,然后单片机通过P1.0-P1.3信号口,通过ULN2003芯片放大信号从而控制抽水泵的开断状态。(3)控制部分的设置:系统可以通过红外线设置部分进行对通过红外线感应器传出信号到P3.2口,单片机进行信号处理从而控制温度的设置。(4)充氧控制部分的设计:单片机通过P3.2口与充氧控制电路相连接,从而控制氧气泵的开断状态,达到控制充氧的目的。主系统控制电路图如图3.1所示。图3.1主系统控制电路图(5)晶振电路:晶振电路由两个电容和晶振片构成,形成了稳定的自激振荡器。电容通常选择30PF,对震荡频率有微调的作用,晶振的频率为11.0592MHZ。由于晶振的频率对单片机的时钟频率产生决定性因素,因此晶振所提供的时钟频率越高,就会使得单片机的运行速率越快,所以是单片机的“心脏”。晶振电路的产生的振荡脉冲都是通过一个2分频的触发器而成为内部时钟信号。时钟信号经过3分频产生ALE信号,经过6分频产生机器周期信号。因而,对于内部振荡时钟电路而言,ALE信号频率为晶振固有频率的1/6,机器周期信号频率为晶振固有频率的1/12。其电路图如下图3.2所示。图3.2 晶振电路图(6)复位按键电路:外部RST引脚复位就是从外部向RST引脚施加一定宽度的复位脉冲,从而实现单片机复位。将RST管脚拉高并维持至少24个时钟加10us后,单片机会进入复位状态。将RST复位管脚拉回低电平后,单片机结束复位状态并从用户程序区的0000H状态开始正常工作。其电路图如图3.3所示。图3.3 复位按键电路原理图(7)电源开关电路:其主要的作用是就是为了使单片机上电,从而单片机可以正常工作。其电路图如图3.4所示。图3.4电源开关电路3.3 水温控制电路设计DS18B20温度传感器1号引脚接地,3号引脚接电源,2号数据输入/输出引脚端接单片机的P2.2口。其硬件电路如图3.5所示。图3.5 温度检测电路将温度传感器放入水中,然后被测温度用符号扩展的16位数字量方式串行输出通过P22口传送数字信号到STC89C52RC单片机系统中。单片机将传感器传出的温度值,从P1口传送到LCD1602液晶显示屏上,显示出当前的实时温度。该温度值还将与按键控制部分输入的设定的温度值相比较,如果当前水族箱中的水的实时温度值低于设定的温度值下限,则单片机将会给P2.2端口一个低电平,触发继电器吸合,加热泵开始工作,水温开始增加,LCD1602液晶显示屏开始刷新现在的温度。当水温温度值上升时达到了温度设定范围之内,单片机将发出高电平,从而使得继电器断开,水温停止加热。当水温高于设定的最高值时候,单片机会通过P2.5端口给蜂鸣器发出指令,这时蜂鸣器会发出声响,从而来报告水温过高。如此循环,可以使得水族箱中的水温保持在一个设定的温度范围之内。根据不同鱼种生存环境如表一所示25。锦鲤 金鱼 热带鱼幼鱼期 2225 22252022成鱼期 2325 24271720繁殖期 1720 17201921表1 不同鱼种生存环境规则表所以将水温的温度范围设定在17-27的范围之内,将更加适合水族箱中各种鱼类的生存。其水温控制电路图如图3.6所示. z.-图3.6 水温控制电路图3.4水位控制电路设计本课题采用的是HC-SR04超声波传感器集成模块,该模块4号引脚接地,1号引脚接电源,TRIG触发控制信号输入接的是单片机的P1.6口,ECHO回响信号输出端口接的是单片机的P1.7口。其中两个电阻值设定为10K大小,是进行限流的作用。超声波传感器通过声波测水位液面的距离,进行内部转换成数字信号传给单片机,单片机将水深的数值通过P0口传送到LCD1602液晶显示屏上,通过显示屏显示当前水位值。并且传感器传送到单片机的实时数据会和系统设定值相比较,当数值比较之后低于设定值,则单片机通过P1.0口传送信号经ULN2003放大处理,通过C1口控制抽水泵工作,当水位高度达到设定范围之后,单片机会发出低电平使得抽水泵停止转动,并且液晶显示屏会刷新当前水深数值,在显示屏上显示。其水位检测电路图和水位控制电路图,分别如下图图3.8 a,b所示。图3.7 水位检测电路图图3.8 水位控制电路图3.5 充氧控制电路设计如今生物的生存基本都离不开氧气,同样水族们的生存也需要氧气的支撑。所以本课题针对这方面设计了充氧设置。由于溶氧量的不容易检测,或者检测设备成本过高,所以通过按键来控制氧气泵的开断状态。由于一般常识可知,氧气泵一般都是一直开着的,所以只需要按键控制氧气泵的开关状态即可。为了设置方便,增加了在万能遥控器上设置了控制开关,通过当按下遥控控制键之后,单片机会发出低电平信号,通过P2.3口传送到继电器,使得继电器吸合,氧气泵开始工作。当不需要充氧的时候,按键控制键,单片机发出高电平给控制系统,继电器断开,氧气泵停止工作。在充氧过程中增加了4个LED指示灯,通过单片机P1.2-P1.5四个LED指示灯表示水中氧气浓度的不同层次。从而可以更好地了解水中的氧气状态。其控制设计电路图如下图3.9所示。图3.9 充氧控制原理图3.6 状态显示电路设计本课题一些主要的系统参数都是通过LCD1602液晶显示屏显示,充氧含量的部分则通过4个LED灯来显示其含氧状态。其中液晶显示屏显示的主要是系统控制主界面,水族箱中水的水温值,和水位的水深深度值以及操作步骤显示。其中LCD的2号引脚和15号引脚接电源,1号引脚和16号引脚接地。7号到14号引脚接单片机的P0口,该引脚是双向的既可以写数据也可以读数据,接受单片机的相应指令。LCD的RS数据/命令选择功能口接单片机的P3.5接口,当发出高电平时为数据存储器,发出低电平时为指令存储器。RW读写/选择端口接单片机的P3.6接口,高电平时读操作,低电平时写操作,可以让单片机实现自由读取和写命令功能。LCD上的使能端LCDEN接单片机的P3.4端口,高电平变为低电平的时候可以进行写入命令操作。LCD的3号引脚接了一个电位器,是为了更好地调整LCD液晶显示屏的显示亮度,对比度等。当RS和R/W共同为低电时可以写入指令或则显示地址,当RS为低电平R/W为高电平时候,可以读数据,当RS为高电平,R/W为低电平时可写入数据。其电路原理图如下图3.10所示。图3.10 LCD1602液晶显示电路图3.7按键设置电路设计这次主要应用的是开发板上的几个独立按键。其中S2接的是单片机的P3.0口,用来进入温度显示模块的按键。S3接的是单片机的P3.1口,是用来进入红外线模式,从而可以通过红外线来进行对主要参数的设定以及充氧的控制,和手动加水的控制。S4接的是单片机的P3.2口。S5接的是单片机的P3.3口,其功能使进入超声波控制水位深度模块,通过感应水位的高低,从而和系统的设定值相比较,从而控制水泵的工作状态。其电路原理设计图如下图3.11所示。图3.11 按键设置模块电路原理图3.8 红外线电路设计此次课题利用了红外线万能遥控器模块进行对水位,水温等参数值得设定。一般而言,红外遥控系统由发射装置和接收装置两大部分组成。其中发射装置主要包括键盘电路、红外编码芯片、电源和红外发射电路组成(例如万能遥控器);红外接收设备可由红外接收电路、红外解码芯片、电源和应用电路组成(例如开发板上有红外接收电路,单片机充当解码芯片)。用红外线是为了实现使用更加方便的功能。2号引脚和3号引脚分别接地和电源。1号引脚一端串联一个1K的电阻到上拉电源,这是为了分流,免得电流过大影响单片机的正常使用,另一端接的是单片机的P3.2口,HS0038通过信号进行内部解码传送数据到单片机,然后进行对设定值进行改变,并且通过LCD1602显示出目前的操作,这样相比按键功能起到了很大的便捷作用。其电路图如下图所示3.12所示。图3.12 无线控制模块3.9原理图及电路板设计 此次毕业设计针对系统的原理图和PCB的绘制我采用了Altium2004软件。由于Protel D*P软件是第一个将各种设计工具集于一体的板级设计系统,并且让电子设计者从最初的项目模块规划一直到最终形成生产数据都可以按照自己的独特的设计理念来实现。其中设计输入仿真、PCB绘制编辑、拓扑自动布线、信号完整性分析和设计输出等技术融合,使得Protel D*P为使用者提供了各种解决的设计方案。该软件能够从概念设计,到输出生产数据。所有分析的验证、设计的数据管理都实现一体化26。并且该软件的元件库十分丰富,并且每个元件都有自己的封装图,也拥有一定的封装库,使用起来十分方便。在使用的时候首先创建了项目工程Project,然后在其项目下面增加SCHDOC文件和PCB文件,在其中利用已有的元件库,画出元件图。在原理图绘画当中在各个模块相连接的地方,本次没有选择使用连线,而是使用了网络标签,这样可以使得整个系统看起来更加美观,清晰,但是同样起到了连接的功能。其中针对几个没有的模块,继电器,DS18B20温度传感器,HS2003红外线,HC-SR04超声波传感器传感器等没有的元件,需要在SCHDOCDE的 library界面画出元件以及在PCB的library界面画出封装图。在其中要原理图的封装图时注意引脚,焊盘,位置标记等的设置。将原理图导入PCB设计时候要注意检查元器件的数量和连线等,从而间接检查电路设计连线的合理性。在布线的时候要注意层次性,一般在两个层次布线在TOP Layer层和Bottom Layer层,在Multi Layer层布置禁止布线层是为了防止有线路超出范围从而防止制作板子的时候导致线路不通。其中TOP层布线是红色的,Bottom层布线是蓝色的,Multi Layer层是紫色的,在布线的时候注意层次感。其次在布线的时候同层线不能相互穿插只能,这是为了防止线路短接。在Altium2004中布线其中有两种,自动布线和手动布线,由于自动布线无法将电源线,接地线凸显出来,所以就没有使用,本次布线当中,选择的是手动布线,手动布线的好处是可以把各个模块的部分选择性的连接起来,这样较为美观,另外电源线基本是在顶层布线的粗细选择了30mm,底线采用的是20mm,其余线选择的是10mm。从而可以直观的从PCB原理图上看到元器件的电源线和地线的接线情况。在布线的时候我选择的是模块化,将温度传感器模块,水位检测模块,水位控制和水温控制模块等按照电路连接方便性放在一起并保持一定的距离,这样可以方便布线的穿插。另外芯片附近都尽量放置小型电容,这样可以起到一定的屏蔽信号的作用。在PCB绘制完成之后使用DRC检查PCB图,这样可以确保PCB板完全符合要求。PCB图如下图3.13所示。图3.13 PCB图第四章 软件设计4.1 软件设计方法本次使用的软件是Keil uVision 4开发软件,这个软件提供了一个良好的开发环境,可以让开发者更加方便操作和使用。由于如今51单片机的软件部分,几乎都是模块化的,通过几个模块的整合,然后进行调试、修整、优化等从而达到整体预期的效果,所以此次我也将整体系统的软件分为了几个模块化。其中主要分为6个大的模块:主控制模块、液晶显示模块、温度控制与显示模块、红外线遥控设置模块、水位控制与显示模块、充氧控制与显示模块。4.2主控制模块主控制模块软件流程图如图4.1所示。图4.1 主程序流程图为了方便后面的操作,我把主控制部分设置成了菜单界面,通过三个独立按键S2、S3、S5三个独立按键来控制界面菜单的选择。独立按键是最简单的键盘输入设计,每个按键单独占有一个I/O,当按下和释放按键时候,输入到I/O端口的电平是不一样的,程序中按照端口的电平不同判断是否有按键按下,并执行相应的程序段。为了用户的理解和方便,将S2、S3、S5三个功能选择键用简写代替,也就是(0,0,S2:wdS3:hwS5:csb)和(0,1,Smart Fishtank)。其中改程序语句第一个0表示从第一个显示位开始显示,后面的1和0分别表示在第二行和第一行的显示,再后面是根据优化使用的显示字符。第一个循环是判断独立键盘的按键按下情况,通过判断按下的情况不同,可以跳转到相应的子功能当中,为更好的响应操作每个独立按键按下后会延迟10ms。按下S2功能键,会跳转到温度显示和控制部分,进入该界面之后会显示第二行显示Push S2 to ret,第一行会显示当前的实时温度值并判断是否打开加热泵。按下S3的功能键,则跳转到红外线万能遥控器设定部分液晶显示屏上会显示Welcometo set wd和Push CH to manu!则进入了温度设置值和水位设置值部分利用遥控器进行操作。按下S5的功能键,则跳转到超声波测水位并控制部分并显示welcome to echo!,会显示出当前的水深数值并判断是否打开抽水泵。其实物效果图如下图4.2所示.图4.2 主界面显示4.3 液晶显示模块LCD1602液晶模块是一种专门用于显示数字、英文字母和符号的点阵式液晶模块,可以显示两行字符。首先对液晶显示屏的主要参数进行定义,在该子系统中主要用了两种功能即写数据和写指令两种基本操作时序,分别对应的引脚定义为RS=1,RW=0,D0D7=数据,EN=1;RS=0,RW=0,D0D7=指令,EN=1,其中给P0口定义为DataPort,DataPort = byte表明数据从P0口传送到LCD1602液晶显示屏上。通过单片机的不停地刷新命令,从而显示不同的状态。初始化状态中有重要的指令:需要调用LCD1602_Write_Cmd()函数,其中0*38表示设置16*2显示,8位数据的接口;0*0c表示开显示;0*06表示读写一字节后指针加一,即向后移位一;0*01则是清除指令,用以清除显示,在这里不进行过多的介绍27。 除了上述的指令之外,本模块软件设计部分还有一个重要的工作,就是将实时温度显示到液晶显示屏上,由于是显示变动的单个字符,因此调用了另外一种功能函数,此函数的主要功能是写指令和数据,其中一个是“LcdWriteCom”,而另一个则是LcdWriteData28。该程序中定义了*变量和Y变量,其中*变量:要显示的横坐标取值0-40,y变量:要显示的行坐标取值0-1(0为第一行,1为第二行)“lcd1602_write_(0*80 + *)”所以该指令表示从*位开始显示。在该系统中,LCD1602液晶显示屏主要显示的是操作界面的提示,温度操作指令提示,实时温度值,水位深度值,红外线遥控界面和设定操作界面等主要参数。4.4 温度控制显示模块单片机每次对每次对DS18B20发起操作都必须严格按照下面的流程执行:初始化,发送ROM命令(包含数据交互),DS18B20功能命令(包括需要的数据交互)这个交互顺序非常重要,每次访问DS18B20都需要按照这个序列执行,如果*个序列中*个步骤丢失或则顺序出错,DS18B20将没有响应,只有一种例外就是搜索命令ROM命令F0h和搜索警报命令ECh。当命令序列执行完毕之后,主控制返回初始化。此程序部分主要实现的是对水温一块的控制和显示,程序部分首先分为几个小的模块。最重要的模块之一就是对传感器的初始化和复位操作,在初始化过程中需要先拉低总线480us960us,然后再调用延时函数进行延时642us,之后再把总线拉高。如果DS18B20有反应,就会在15us60us后拉低总线。在这之后,就等待DS18B20拉低总线,当等待的时间超过5ms时,那就意味着初始化失败,如果等待的时间没有超过5ms,就表示初始化已经成功29。其次就开始写命令操作和读字节命令操作,就是需要将所测温度值写入传感器当中。在写字节的时候,所有写时序时间必须60us以上,包括需要先将总线拉低1us时间,当总线把数据线拉低到低总线的时候,就可以写数据了,写完之后延时30us之后再把数据线拉高。温度数值被写进传感器之后,就需要将温度值使用起来,需要对传感器中的温度值进行读取。在读取时序的时候,同样需要1us的恢复时间,并且所需总时间也是60us,所以在读取之前需要拉低,等1us恢复之后,在读取后面的数据,待读取数据之后再将数据总线拉高。温度控制与显示的主控制模块,需要先将写入的数据存入暂存器,再将暂存器中的数据读取出来,数据进行处理然后乘以0.0625,得到温度值30。得到的温度值,首先和最高温度值相比较,如果温度值超过最高设定值给蜂鸣器一个高电平,蜂鸣器响10us时间,然后停止,这样起到一个报警的作用,可以用手动的加水,从而降低温度。温度值再与最低温度相比较,如果温度值低于设定最低值,则单片机给继电器发出低电平,继电器吸合通电,控制加热泵工作,并且液晶屏上会显示its heating now字样,当水温升高到最低温度之后会,给继电器高电平,停止工作it stops heating。由于加热泵会有余温,温度会升高,然后会持续循环。4.5 水位控制与显示模块水位这块,由于采用的是超声波传感器集成模块,所以数据在超声波传感器模块传出的是数字信号而不是模拟信号。该部分主要分为该模块的引脚定义、初始化程序、延迟时间、超声波测距、水位深度显示与控制、定时器设置几个子模块。由于模拟一个真实水族箱,所以找了一个深度20cm的小水桶模拟水族箱。通过中断,Trig引脚置1,超声波发出信号,延时20us后检测回来波形,Echo回波引脚变高电平。然后与设定的20cm构成减法,20cm减去测出的距离值,就是此时水族箱的水位深度值,并且在液晶屏上显示出当前的水深数值:distance:0000mm。显示器前八位显示距离的英文单词,从第九位开始显示出水位的深度,水位的单位mm在13为开始显示。此水位值会与设定值相比较当水深低于150mm时,会给蜂鸣器一个低电平从而使得蜂鸣器报警,并且此时给继电器一个低电平,继电器工作从而控制抽水泵开始抽水,并且这个状态持续2s,2s钟抽水的量也不大便于控制。之所以持续2s是因为,这时候开了中断,抽水泵开始工作,免得水位过高,此时超声波传感器没有工作,所以不能实时检测,如果换做多系统操作的话,也许可以同时工作,避免这个情况。通过定时器控制中断,在2s抽水泵停止工作,中断结束,超声波继续检测此时水位深度并显示在显示屏上,如果水深深度超过了15cm此时,会发出一个高电平给继电器,从而使得继电器停止工作,抽水泵停止抽水。显示器里不停地刷新出当前的实时水位深度,并且能实现水位智能控制系统。4.6 红外线遥控设置模块 本次课题选择使用了HS0038红外传感器,红外线模块的功能主要是在按键S3跳转之后,在液晶屏上第一行显示出Welcometo set wd第二行显示Push CH to manu!。通过按下不同的红外万能遥控器的按键,遥控器会发出不同的模拟信号,经过解码、翻译成数字信号,从而可以跳转到不同的case当中。其中:引导码高电平约9000us 左右,低电平约4500us 左右;用户码16 位,数据码16 位,共32位;通常为了使信号能更好的被传输,发送端将基带二进制信号调制为脉冲串信号,通过红外发射管发射。在编写的时候需要定义全局变量,进行红外线的数据处理,unsigned char irtime 可以计算脉冲的持续时间,unsigned char ircode4用来储存解码后的4个字节数据分别是两个字节的用户码,一个字节的数据码和一个字节的数据反码。unsigned char irdata33,这个数组有33个元素,包括起始码在内的33位数据。bit irok 表示33位接受完成标志。该程序中其中需要定时器去计数,和外部中断,需要串口以9600比特率通过串口发送出去,从而完成初始化操作。其中主要实现的功能如以下几个方面:按下CH键时,会进入了参数设置主界面,里面第一行显示的CH-:SL CH+:SH +W是控制温度的最高最低温度的设定,第二行是|:AH -W,表示的是对水位最高值和最低值得设置。由于设计操作方便起见,按下CH-键时候,最低温度会在20的基础上+1,按一下加一度,当达到26度时候开始跳转到20度,从而形成一个单循环。最高温的键的设置和水位深度的高低值的设置也是如此。为了方便充氧,我把充氧设置模块也加入了此模快当中,按下0键会一直充氧,通过4个指示灯的不同状态表示当前氧气浓度的程度。按下设置键之后,需要按下CH键再进入操作主界面,然后在进入各个子界面,当各种参数在设置的时候,显示屏上都会实时刷新出当前的操作,完成各种参数设置的时候,需要按下|,键这是跳出红外线设置界面。然后在按下S3键退出红外线遥控设置模块。这样的操作为人们带来了方便,以后进行优化,各种操作都在遥控器上实行,这样能更加使得用户感受到各种方便。其中实物显示图,如图4.3,图4.4所示。 图4.3 红外线进入界面图4.4 参数设置界4.7 充氧设置与显示模块此次的充氧模块,我选择了在万能遥控器中进行设计。所以控制键是万能遥控器的0功能键和LED1、LED2、LED3、LED4 4个显示灯。由于含氧量检测的成本和检测数据不方便等因素,所以这里用简单的LED灯表示其含氧量的状态。当按下万能遥控器的0键时候,LED1灯亮,此时表示此时的溶氧量达到低,再按下LED2灯亮表示溶氧量中低档,再按下0功能键,会达到中高档,以及后面的高档。这样可以直观的看到水中的氧气的含氧状态。其实物图如下图4.5所示。图4.5 充氧显示部分第五章 设计调试中遇到的问题5.1水温控制与显示模块问题在水温检测部分,首先就是针对温度传感器的选择性问题,由于目前大多使用的是DS18B20,并且此传感器自带模/数转换模块,所以传出的数据是数字量,从而可以直接将数据传送给单片机。但是由于温度传感器需要放置到水面下,所以需要选择不锈钢的传感器,由于事先准备的不足,身边有此款传感器,所以在使用的时候将传感器用塑料包裹住,然后用导线牵引进入水中,实现检测。此次温度检测只用了一个传感器,应该选择使用多个传感器,这样就可以进行均值处理,就可以实现对区域化温度的准确检测。本次课题是模拟水族箱智能控制器,所以就使用一个从而达到检测的目的,水温数据可能不是则准确。另外此次的加热棒采用了热得快,为了防止强电的伤害,引出一根地线,在检测的时候由于传感器离热得快有一定的距离,所以热得快的远近距离也对传感器对水温的检测造成了一定的影响。本模块出现的问题,当温度过高的时候应该采用制冷操作,由于成本等问题的限制所以没有选择制冷操作,温度显示与调制模块在软件部分出现的问题主要是一开始当红外和温度一起使用时,程序出现了不稳定,系统出现了卡死状态。然后我关闭了系统电源,进行程序重新下载,打开之后发现还是这个现象我就开始寻找程序上的问题,系统逻辑感觉是正确的,由于编译并不能显示出我的错误,所以这个问题一直没法解决。待我询问了老师和同学之后,让他们和我一起看了下程序,理了下思路,才发现,是我的红外线控制模块中的中断打开了,如果不关掉,红外线的程序就会一直响应,运行,这时再运行温度设置的时候就会出现了系统的不稳定状态。所以我就在红外线的结束状态加入了一个退出模式,当退出时候再次按下S3功能键,红外线模块程序停止运行,从而退出红外线模块。此时再按下S2模块是,温度模块的程序就会正常运行起来,不会出现刚刚那个错误。经过优化处理,其中水温模块的一些功能实物图如下图5.1 a,b所示。图5.1 a 温度显示图5.1 b 继电器控制加热棒5.2 水位控制与显示模块问题一开始想设计的水位检测模块并没有使用超声波检测模块,而是采取以下这种设计模块。水位控制模块的所选择的水位检测元件是3根金属棒A、B、C构成的传感器。其中将A帮放在水族箱的底端,B棒通过固定,固定在水族箱中间,这个地方设定为水位下限点位。然后将C棒固定在离B棒一定距离的上方,这个点就设为水位上限点位。然后将A棒引出一根线接+5V电源,B棒和C棒各引出一根导线,接到两个电阻的一端,电阻的另一端接地,然后B,C棒接分别在引出一根线接单片机的P3.2和P3.3端口。并且,该简易的传感器2脚和3脚分别接LED1灯和LED2灯,然后灯的另一端接地,这是用来显示水位的高低状态。在这个设计当中,LED1灯在单片机发出低电平的时候会发亮,表示低档水位,LED2灯在单片机发出高点平时候会亮,表示高水位。其硬件电路图如下图5.2所示:图5.2 水位检测电路图当水位下降到B棒点位的之前,A棒与B,C两棒都不能导通,LED1和LED2都是熄灭状态。当水位下降到下限水位以下,也就是B棒的位置点以下时候,B,C两端均为低电平,由于LED1是低电平亮,所以此时LED1灯
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!