水族箱温度控制系统设计
智能水族箱的设计

智能水族箱的设计介绍本文档旨在介绍智能水族箱的设计。
智能水族箱将结合现代科技与水族养殖,提供用户更便捷、智能化的养殖体验。
主要功能1. 自动调控水温:智能水族箱将配备温度传感器和控制系统,能够自动调节水温,保持水温恒定,为鱼类提供适宜的生存环境。
2. 水质监测与调节:智能水族箱将设有水质传感器,能够实时监测水质指标,如水酸碱度、氨氮含量等。
并通过水质调节系统,自动添加适量的水质调节剂,保持水质稳定。
3. 光照控制:智能水族箱将配备可调光的LED灯,能够模拟日光变化,提供适宜的光照条件。
用户可根据不同鱼类的需求,调整光照强度和时间。
4. 饲料定时投放:智能水族箱将设有定时投食器,能够按照设定的时间和剂量,自动投放鱼食。
用户无需每天手动喂养,也能保证鱼类的正常生长。
5. 远程监控与控制:用户可通过手机APP或电脑端软件,远程监控智能水族箱的状态,并进行相关控制。
无论用户身在何地,都能实时了解水族箱的情况。
设计要点1. 安全性:智能水族箱应具备良好的安全性能,防止漏电、过载等安全事故的发生。
水族箱的外壳材质应采用防水防火材料,并设有安全开关和保护装置。
2. 界面友好:智能水族箱的操作界面应设计简洁、直观,并提供多种语言选择。
用户能够轻松上手,进行各项设置与操作。
3. 优质材料:水族箱的制作材料应选用高品质的玻璃或有机玻璃,确保透明度和耐用性。
同时,配件和管道等零部件应选用耐腐蚀、耐磨损的材料。
4. 节能环保:智能水族箱应考虑节能环保因素,优化能源利用,降低能耗。
同时,应提供废水处理设施,减少对环境的影响。
5. 智能化扩展:智能水族箱应支持插件式设计,用户可以根据自身需求,增加其他智能化设备,如水草养殖系统、氧气供应系统等,实现更全面的智能化养殖。
结束语本文档介绍了智能水族箱的设计,以提供用户更便捷、智能化的养殖体验。
智能水族箱的功能涵盖了自动调控水温、水质监测与调节、光照控制、饲料定时投放等,同时具备安全、界面友好、节能环保等设计要点。
毕业设计-水族箱温度控制设计

软件设计
数据采集
编写程序以定时或实时采 集温度传感器数据,并将 数据传输到微控制器。
数据分析
对采集到的温度数据进行 处理和分析,判断是否需 要调节温度。
温度控制
根据数据分析结果,通过 微控制器控制加热器的开 关或调节功率,以实现温 度的调节。
控制策略设计
温度阈值控制
设定一个温度阈值,当水族箱温度低于该阈值时,加热器 自动开启或功率增加;当温度高于该阈值时,加热器自动 关闭或功率减小。
冷却装置等硬件设备。
电路设计
02
根据硬件设备的功能和接口,设计合理的电路连接,确保各部
件能够正常工作。
硬件组装
03
按照电路设计图,将各硬件设备组装到水族箱上,并确保连接
牢固可靠。
软件编程
编程语言选择
选择适合微控制器的编程语言,如C或C。
程序编写
根据设计需求,编写控制程序,实现温度检测、加热和冷却控制等 功能。
毕业设计-水族箱温度 控制设计
• 引言 • 水族箱温度控制原理 • 方案设计 • 实施过程 • 结果与分析 • 总结与展望
目录
01
引言
主题简介
主题背景
水族箱温度控制对于维持水生生 对观赏鱼和其他水生生 物的热爱增加,水族箱温度控制 系统的需求也日益增长。
节能环保
精确的温度控制可以减少能源浪费,符合绿色环 保的理念。
温度控制原理简介
温度传感器
执行机构
通过温度传感器检测水族箱中的实时 水温。
加热器或制冷机根据控制电路的指令, 对水族箱中的水进行加热或制冷,以 实现温度的调节。
控制电路
根据传感器检测到的水温与设定值进行 比较,通过控制电路调节加热器或制冷 机的运行状态,实现对水温的调节。
基于单片机的智能鱼缸温控系统设计

基于单片机的智能鱼缸温控系统设计摘要本文针对传统鱼缸温控系统的不足,提出了一种基于单片机的智能鱼缸温控系统设计方案,该系统具有自动控制、实时监测、定时提醒等特点,可实时保持鱼缸水温在合适的范围内,保障鱼类健康成长。
本文首先对传统温控系统的缺陷进行介绍,然后详细阐述了智能鱼缸温控系统的硬件设计和软件设计,最后进行系统实验验证。
关键词:智能鱼缸,温控系统,单片机,健康成长,实时监测AbstractThis paper proposes a design scheme of intelligent fish tank temperature control system based on single chip microcomputer to solve the shortcomings of traditional fish tank temperature control system. The system has the characteristics of automatic control, real-time monitoring, timing reminder, etc. It can keep the water temperature offish tank in the appropriate range in real time, and ensurethe healthy growth of fish. Firstly, the deficiencies of traditional temperature control system are introduced. Then, the hardware design and software design of intelligent fish tank temperature control system are elaborated in detail. Finally, the system experiment is verified.Keywords: intelligent fish tank, temperature control system, single chip microcomputer, healthy growth, real-time monitoring1. 引言鱼类是人们生活中非常重要的食品来源,鱼缸的养殖已经成为一项风靡全球的爱好。
鱼缸温度控制系统

目录
CONTENTS
• 系统概述 • 硬件组件 • 软件组件 • 系统设置与调试 • 系统的使用与维护 • 未来发展与改进方向
01 系统概述
系统定义与功能
定义
鱼缸温度控制系统是一种用于自动调 节鱼缸水温和保持水温恒定的装置。
功能
该系统能够实时监测鱼缸水温,并根 据设定的温度范围自动调节加热或制 冷设备,以保持水温稳定。
02 硬件组件
温度传感器
温度传感器是鱼缸温度控制系统的核 心组件之一,用于监测鱼缸内的温度。
温度传感器的精度和稳定性对整个温 度控制系统的性能有很大影响,因此 选择高精度、高稳定性的温度传感器 是必要的。
常见的温度传感器有热敏电阻和热电 偶等类型,它们能够将温度转换为电 信号,以便控制器进行处理。
数据传输
通过有线或无线方式将温度数据传输至控制器。
3
定时采集
设置定时采集时间间隔,确保数据的实时性和准 确性。
温度数据处理
数据滤波
采用滤波算法对采集到的温度数据进行处理,去除噪 声和异常值。
温度范围判断
根据设定的温度范围,判断鱼缸内的温度是否正常。
数据存储
将处理后的温度数据存储在控制器或上位机中,便于 后续分析。
温度控制策略
控制算法
采用PID控制算法或其他适合的温度控制算法, 实现快速、准确的温度控制。
加热/制冷设备
根据控制策略,自动调节加热棒或制冷机的工 作状态。
报警机制
当温度异常时,触发报警机制,通知用户及时处理。
人机界面设计
界面布局
设计简洁、直观的用户界面,方便用户查看 和操作。
数据展示
实时显示鱼缸内的温度数据和设备状态。
答辩PPT智能水族箱控制系统.dps智能鱼缸温度控制

使用便捷
03
系统操作简单,用户可轻松设置温度参数,并通过智能设备远
程监控和控制。
用户反馈与改进建议
用户满意度高
大多数用户对智能水族箱温度控制系统的使用效果表示满意,认为它能够提供稳定、适宜的温度环境 。
改进建议
部分用户提出希望增加更多智能功能,如自动喂食、水质监测等,以提高水族箱的整体智能化水平。
降低水族箱水温波动 对鱼类生长的影响
02
智能水族箱温度控制系统概述
系统简介
智能水族箱温度控制系统是一种集成了温度传感器、微控制器、执行器和人机界面等部件的自动化系 统。
该系统能够实时监测水族箱内的温度,并根据设定的参数自动调节加热器或冷却器,以保持水温的恒定。
智能水族箱温度控制系统广泛应用于观赏鱼养殖、水草种植等领域,为水生生物提供适宜的生活环境。
项目成果与贡献
技术成果
介绍项目开发的技术和方法,包 括智能水族箱温度控制系统的设 计、实现和测试等。
应用前景
阐述智能水族箱温度控制系统的 应用前景,包括在家庭、商业和 科研等领域的应用。
社会效益
分析项目实施后可能带来的社会 效益,如提高生活质量、促进经 济发展等。
未来工作与展望
研究方向
提出项目未来的研究方向,包括技术改进、拓展应用 领域等。
03
设计与实现过程
硬件设计
硬件架构
传感器选择
采用微控制器为核心,连接温度传感器、 执行器、显示屏等外围设备,构建完整的 硬件系统。
选用高精度数字温度传感器,实时监测水 族箱温度,确保数据采集的准确性和稳定 性。
执行器
显示屏
选用高效加热棒和风扇,实现对水族箱温 度的精准控制。
选用高分辨率的LCD显示屏,实时显示水族 箱温度和系统状态。
基于单片机的智能鱼缸温控系统设计

基于单片机的智能鱼缸温控系统设计智能鱼缸温控系统是一种基于单片机技术的创新设计,旨在为鱼缸提供稳定的温度环境,以促进鱼类的生长和健康。
本文将详细介绍智能鱼缸温控系统的设计原理、硬件组成和软件实现,并对其在实际应用中的效果进行评估和分析。
一、引言随着人们对休闲娱乐生活的需求不断增加,养殖观赏鱼成为了一种越来越流行的养殖方式。
然而,不同种类的观赏鱼对水温要求不同,过高或过低的水温都会对其健康产生负面影响。
因此,设计一个能够自动调节水温的智能鱼缸温控系统势在必行。
二、设计原理智能鱼缸温控系统主要由传感器、单片机、执行器以及人机交互界面组成。
传感器用于实时监测水温,并将监测结果传输给单片机进行处理;单片机根据预设设定值与实际监测值之间的差异来判断是否需要调节水温;执行器负责控制加热器或制冷器的开关状态,以实现水温的调节;人机交互界面则提供了对系统参数进行设置和监测的功能。
三、硬件组成智能鱼缸温控系统的硬件组成主要包括传感器、单片机、执行器和人机交互界面。
传感器:系统采用高精度的水温传感器,能够准确测量鱼缸内水温,并将测量结果以数字信号的形式传输给单片机。
单片机:系统采用高性能的单片机作为控制核心,具有强大的处理能力和丰富的外设接口。
通过与传感器和执行器进行连接,实现对水温进行监测和调节。
执行器:系统根据单片机处理结果控制加热器或制冷器。
加热器通过加热元件将电能转化为热能,提高鱼缸内水温;制冷器则通过压缩循环原理将热量从鱼缸中排出,降低水温。
人机交互界面:为了方便用户对系统参数进行设置和监测,智能鱼缸温控系统还配备了一个直观友好的人机交互界面。
用户可以通过触摸屏或按钮等方式与系统进行交互,实现对温度设定值、工作模式等参数进行调整。
四、软件实现智能鱼缸温控系统的软件实现主要包括传感器数据采集、数据处理与控制策略、执行器控制以及人机交互界面。
传感器数据采集:单片机通过与传感器进行通信,实时获取鱼缸内的水温数据。
水族箱智能控制系统的设计与实现
水族箱智能控制系统的设计与实现刘大川;李钊合;孙淑杰;袁驰;张志佳【摘要】Based on the single chip computer,this paper described the design of a fish tank intelligent control system ba-sing on time control and multithreading technology. It adopts an arduino mega 2560 single chip computer as a processor of system to control temperature modular,water changing modular,time display modular,water condition modular and other modular. Totally,the system is based on time control,which uses a clock chip to provide the whole system time,and the system will run in the preset sequence. Unless actuate the trigger point,it will cycle infinitely. The system has the advanta-ges of various functions and low cost,and also can realize the intelligent control of aquarium.%本文基于单片机技术,设计了一套基于时间控制与多线程技术的水族箱智能控制系统。
通过一台arduino mega 2560单片机作为系统的处理器,控制控温模块,换水模块,时间显示模块,自动喂食模块,水位控制模块等。
水族箱温度控制系统
水族箱温度控制系统(一)系统的概述本系统以AT89C51单片机为控制核心的测控仪,主要是为了对水族箱内的温度控制而设计的。
该测控仪具有检测精度高、使用简单、成本较低和工作稳定可靠等特点,所以具有一定的应用前景。
(二)系统的要求本系统通过单片机AT89C51控制,用18B20数字温度计采集温度。
通过LCD 显示屏显示当前温度,当温度高于20℃,马达将带动风扇的转动,实现自动控制水族箱里的温度.并且随着温度每升高2℃,马达的转动速率提高一倍。
当检测到的温度高于25℃时,发出报警信号。
本设计将实现水族箱温度的自动化控制。
用protues软件绘制电路原理图,再根据电路原理图捍接电路板。
捍接的电路板实现温度的自动化控制。
(三)系统的主要模块1.本系统的主要组成部分本系统为一个全自动温度检测与控制系统,由以下几个部分组成:AT89C51单片机,温度检测,显示电路,马达,及报警装置等组成。
组成图如图1-1。
温度检测装置AT89C51显示设备马达控制报警装置图 1-1 温度自动控制主要组成部分由图1-1所示,本系统的核心部分是AT89C51,此芯片是该电路的枢纽。
由它先控制着温度的检测,用检测到的温度实现马达的自动控制,以及显示。
若检测到的温度高于设定的值,则发出报警信号。
2. 各部分的功能(1)AT89C51单片机:它是系统的中央处理器,担负着系统的控制和运算。
(2)温度检测装置:18B20数字温度计对水族箱内温度进行采集,将温度转换成数字。
(3)显示设备:主要是用于显示检测到的水族箱温度。
(4)马达:主要用于带动风扇的转动。
(5)报警装置:产生报警信号。
二、系统的硬件组成电路设计系统的硬件组成部分包括:主控制器AT89C51单片机、温度传感器DS18B20、显示电路LED、马达、报警装置等构成。
AT89C51连接各模块的主控制端口,初步选定将要运用到的电子元器件,再用Protues绘制原理图,再根据原理图捍接电路板。
如何设置水族箱的水温调节器
如何设置水族箱的水温调节器水温调节器在水族箱养殖中扮演着重要的角色,确保水中温度适宜是鱼类和水生植物健康成长的关键。
本文将介绍如何正确设置水族箱的水温调节器,以帮助水族爱好者提供理想的生活环境。
1. 选择合适的水温调节器在选择水温调节器之前,需要首先了解自己的水族箱及其中的生物种类对水温的要求。
根据需求,可以选择以下几种常见的水温调节器:- 加热器:用于在水族箱中升温,可调整加热功率和温度范围。
- 冷却器:用于降低水族箱中的水温,常用于热带鱼类的养殖。
- 温控器:能够监测和调节水温,可用于同时控制加热器和冷却器。
2. 安装水温调节器根据水族箱的尺寸和形状,选择合适的位置安装水温调节器。
通常,应将其放置在水族箱的一侧或者隐藏在过滤系统中。
确保调节器的电线与水分隔,以防止电击事故的发生。
同时,确保水温调节器能够方便地调节和监测水温。
3. 设置理想水温在设置水温之前,需要根据水族箱中的生物种类确定所需的水温范围。
不同的鱼类和水生植物对水温有不同的需求,应该根据其习性和习惯来调节水温。
通过调节水温调节器上的控制按钮或旋钮,可以设置所需的水温。
相对稳定的水温有助于提供一个舒适的生活环境,并可以减少鱼类和植物的压力。
4. 监测和调整水温一旦设置了理想的水温,应对水温进行定期监测以确保其保持在所需的范围内。
合适的水温范围通常可以在鱼类的养殖指南或者水生植物的资料中找到。
在监测的过程中,如果发现水温偏高或偏低,可以通过增加或减少加热器或冷却器的功率来调整水温。
要注意逐渐调整,避免水温的突变对生物造成伤害。
5. 注意水温的季节性变化根据不同季节的变化,室内环境温度可能会有所波动。
在冬季,室内供暖会升高水温,而在夏季,室内空调可能会降低水温。
因此,在温度变化明显的季节,需要注意及时调整水温调节器的设置,以确保水温保持在适宜的范围内。
6. 定期维护水温调节器水温调节器是一个电子设备,定期维护可以确保其正常工作并延长使用寿命。
基于WiFi技术的水族箱自动控制系统设计
DS12C887 是 一 款 纯 数 字 式 芯 片 袁 能 够 自 动 产 生 世 纪 尧年 尧月 尧星 期 尧日 尧时 尧分 尧秒 等 时 间 信 息 遥 1 . 2 . 5 液 晶 12684 显 示 模 块
0 引言
随着我国经济的发展和人们生活水平不断完善袁 人 们 的 生 活 品 味 越 来 越 高 [1]袁与 之 相 关 的 居 家 装 饰 行 业 迎 来 了 新 一 轮 的 发 展 空 间 遥由 于 城 市 经 济 发 展 速 度 比 农 村 快 袁越 来 越 多 的 年 轻 人 选 择 在 繁 华 的 都 市 里 生 活 和 工 作 袁这 里 充 满 了 竞 争 袁因 此 他 们 需 要 承 受 更 多 的 压 力 袁于 是 他 们 内 心 十 分 渴 望 身 处 在 宁 静 与 和 谐 的 环 境 中 袁而 一 个 苍 翠 欲 滴 尧生 机 盎 然 的 鱼 草 水 族 箱 可 以 给 人 一 种 宽 松 舒 适 的 美 感 袁还 能 调 节 居 室 环 境 遥与 此 同 时 袁当 代 都 市 生 活 节 奏 越 来 越 快 袁人 们 很 少 有 时 间 来 打 理 水 族 箱 袁本 设 计 为 这 些 问 题 提 供 了 解 决 方 法遥
淫 基 金 项 目 院 2018 年 宁 波 财 经 学 院 校 级 科 研 项 目 渊 1042118078 冤 遥 作 者 简 介院 何鹏渊1998.09要冤袁男袁浙江金华人袁汉族袁本科袁主要研究方向为控制科学与工程遥
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目二:水族箱温度控制系统设计(M~Z)设计背景:小型热带鱼观赏鱼缸的温度检测、控制系统,具有温度设定、冷水注入、水温加热等功能,温度精度达到1℃,键盘里有功能键和数字键。
当处于冷水注入状态时,绿灯显示;当处于加热状态时红灯显示。
设计要求:1.画出电路原理图(手绘、电脑绘图均可)2.对电路中所选用的各个模块进行必要的文字说明,包括AD的选型依据、采样周期的确定、键盘设计说明、数据处理的方法说明等等。
3.考虑一定的抗干扰措施(硬件、软件两方面)4.画出主要的程序流程图并给出主要代码和文字说明。
5.除了电路图可电脑绘图以外,其余均手写完成。
6.上交日期:第六周最后一次课。
7. 依个人情况可适当完善系统功能,考虑周全者成绩会酌情提分。
水族箱温度控制系统(一)系统的概述本系统以AT89C51单片机为控制核心的测控仪,主要是为了对水族箱内的温度控制而设计的。
该测控仪具有检测精度高、使用简单、成本较低和工作稳定可靠等特点,所以具有一定的应用前景。
(二)系统的要求本系统通过单片机AT89C51控制,用18B20数字温度计采集温度。
用protues 软件绘制电路原理图,再根据电路原理图捍接电路板。
捍接的电路板实现温度的自动化控制。
(三)系统的主要模块1. 本系统的主要组成部分本系统为一个全自动温度检测与控制系统,由以下几个部分组成:AT89C51单片机,温度检测,显示电路,马达,及报警装置等组成。
组成图如图1-1。
图 1-1 温度自动控制主要组成部分由图1-1所示,本系统的核心部分是AT89C51,此芯片是该电路的枢纽。
由它先控制着温度的检测,用检测到的温度实现自动控制,以及显示。
若检测到的温度高于设定的值,则发出报警信号。
2. 各部分的功能(1)AT89C51单片机:它是系统的中央处理器,担负着系统的控制和运算。
(2)温度检测装置:18B20数字温度计对水族箱内温度进行采集,将温度转换成数字。
(3)显示设备:主要是用于显示检测到的水族箱温度.二、系统的硬件组成电路设计系统的硬件组成部分包括:主控制器AT89C51单片机、温度传感器DS18B20、显示电路LED、报警装置等构成。
AT89C51连接各模块的主控制端口,初步选定将要运用到的电子元器件,再用Protues绘制原理图,再根据原理图捍接电路板。
(一)系统总硬件设计AT89C51的复位电路AT89C51单片机通常采用上电自动复位和开关手动复位两种方式。
本系统采用上电复位电路,如图2-3所示,所谓上电复位,是指单片机只要一上电,便自动地进入复位状态。
在通电瞬间,电容C通过电阻R充电,RST端出现正脉冲,用以复位。
撤销复位信号。
以现上述基本功能,但解决不了电源毛刺和电源缓慢下降等问题,而其调整 RC 常数改变延时会令驱动能力变差。
单总线数字温度传感器DS18B20检测电路DQ图2-4为DS18B20报警电路2-7所示图 2-7 报警电路二极管和普通扬声器相比,最重要一个特点是只要按照极性要求加上合适的直流电压,就可以发出固有频率的声音,因此使用起来比扬声器简单。
三、系统软件的设计一个应用系统要完成各项功能,首先必须有较完善的硬件做保证。
同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。
甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编和有时会变得很简单。
因此充分利用其内部丰富的硬件资源和软件资源。
程序设计语言有三种:机器语言、汇编语言、高级语言。
本系统运用的是高级语言所编写,也就是C语言。
从软件的功能不同可分为四大类:一是检测软件,它是用来检测温度。
二是显示部分,用来显示所检测到的温度。
三是调控部分,用来控制马达的转速。
四是当温度大于25℃,二极管发出报警信号。
每一个执行软件也就是一个小的功能执行模块。
这里将各执行模块一一列出,并为每一个执行模块进行功能定义。
下图为软件设计流程图(程序见附录)。
附录A:*-----------------------------------------------名称:基本单片机AT89C51的水族箱温度自控系统------------------------------------------------*/#include<at89c51.h>#include"stdio.h"#include<math.h>#include<intrins.h>#include"lcd1602.h"#define uchar unsigned char#define uint unsigned int;/******************************************************************/ /* 定义端口*/ /******************************************************************/ sbit DQ=P1^3;//ds18b20 端口sbit Fan=P1^5; //风扇端口sbit Tru=P1^7;//喇叭的端口sfr dataled=0x80;//显示数据端口/******************************************************************/ /* 全局变量*/ /******************************************************************/ uint temp,i,TempH;uchar flag_get,count,num,minute,second,x;long str[6];/******************************************************************/ /* 函数声明*/ /******************************************************************/ void delay1(uchar MS);unsigned int ReadTemperature(void);void Init_DS18B20(void);unsigned char ReadOneChar(void);void WriteOneChar(unsigned char dat);void delay(unsigned int i);/******************************************************************/ /* 延时函数声明*//******************************************************************/ void mDelay(unsigned char j){unsigned int i;for(;j>0;j--){for(i=0;i<125;i++){;}}}/******************************************************************/ /* 主函数*/ /******************************************************************/main(){unsigned char TempH,TempL;TMOD|=0x01;//定时器设置TH0=0xef;TL0=0xf0;IE=0x82;TR0=1;P2=0x00;count=0;InitLcd();mDelay(20);while(1){Fan=1;mDelay(10);Tru=1;mDelay(10);if((TempH>20)&&(TempH<=25)){Fan=0;mDelay(10);}if(TempH>25) //产生报警信号{Tru=0;mDelay(10);Fan=0;mDelay(150);}for(i=1;i<5;i++)Tem[i]=str[i];disp();str[0]=TempH/100; //十位温度str[1]=(TempH%100)/10; //十位温度str[2]=(TempH%100)%10; //个位温度,带小数点str[3]=TempL;if(flag_get==1) //定时读取当前温度{temp=ReadTemperature();if(temp&0x8000){str[0]=0x40;//负号标志temp=~temp; // 取反加1temp +=1;}elsestr[0]=0;TempH=temp>>4;TempL=temp&0x0F;TempL=TempL*6/10;//小数近似处理flag_get=0;}}}/******************************************************************/ /* 定时器中断*/ /******************************************************************/ void tim(void) interrupt 1 using 1//中断,用于温度检测间隔{TH0=0xef;//定时器重装值TL0=0xf0;num++;if (num==50){num=0;flag_get=1;//标志位有效second++;if(second>=60){second=0;}}}/******************************************************************/ /* 延时函数*/ /******************************************************************/ void delay(unsigned int i)//延时函数{while(i--);}/******************************************************************/ /* 初始化*/ /******************************************************************/ void Init_DS18B20(void){unsigned char x=0;DQ = 1; //DQ复位delay(8); //稍做延时DQ = 0; //单片机将DQ拉低delay(80); //精确延时大于480usDQ = 1; //拉高总线delay(10);x=DQ; //稍做延时后如果x=0则初始化成功x=1则初始化失败delay(5);}/******************************************************************/ /* 读一个字节*/ /******************************************************************/ unsigned char ReadOneChar(void){unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){DQ = 0; // 给脉冲信号dat>>=1;DQ = 1; // 给脉冲信号if(DQ)dat|=0x80;delay(5);}return(dat);}/******************************************************************/ /* 写一个字节*/ /******************************************************************/ void WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat>>=1;}delay(5);}/******************************************************************/ /* 读取温度*/ /******************************************************************/ unsigned int ReadTemperature(void){unsigned char a=0;unsigned int b=0;unsigned int t=0;Init_DS18B20();WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x44); // 启动温度转换delay(200);Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器)前两个就是温度a=ReadOneChar(); //低位b=ReadOneChar(); //高位b<<=8;t=a+b;return(t);}附录B#include<at89c51.h>#include<stdio.h>#include<intrins.h>sbit RS = P2^0;//Pin4sbit RW = P2^1; //Pin5sbit E = P2^2;//Pin6#define Data P0 //数据端口unsigned char Tem[5];unsigned char SecondLine[]=" ";unsigned char FirstLine[] =" ";unsigned char time[]=" ";/******************************************************************/ /* 函数声明*/ /******************************************************************/ void DelayUs(unsigned char us)//delay us{unsigned char uscnt;uscnt=us>>1;/* Crystal frequency in 12MHz*/while(--uscnt);}/******************************************************************/ void DelayMs(unsigned char ms)//delay Ms{while(--ms){DelayUs(250);DelayUs(250);DelayUs(250);DelayUs(250);}}void WriteCommand(unsigned char c){DelayMs(5);//short delay before operationE=0;RS=0;RW=0;_nop_();E=1;Data=c;E=0;}/****************************************************************/ void WriteData(unsigned char c){DelayMs(5); //short delay before operationE=0;RS=1;RW=0;_nop_();E=1;Data=c;E=0;RS=0;}/******************************************************************** */void ShowChar(unsigned char pos,unsigned char c){unsigned char p;if (pos>=0x10)p=pos+0xb0; //是第二行则命令代码高4位为0xcelsep=pos+0x80; //是第二行则命令代码高4位为0x8WriteCommand (p);//write commandWriteData (c); //write data}/******************************************************************** *****/void ShowString (unsigned char line,char *ptr){unsigned char l,i;l=line<<4;for (i=0;i<16;i++)ShowChar (l++,*(ptr+i));//循环显示16个字符}/******************************************************************** */void InitLcd(){DelayMs(15);WriteCommand(0x38); //display modeWriteCommand(0x38); //display modeWriteCommand(0x38); //display modeWriteCommand(0x06); //显示光标移动位置WriteCommand(0x0c); //显示开及光标设置WriteCommand(0x01); //显示清屏}。