基于单片机的水温水位控制系统_第1页
基于单片机的水温水位控制系统_第2页
基于单片机的水温水位控制系统_第3页
基于单片机的水温水位控制系统_第4页
基于单片机的水温水位控制系统_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的水温水位控制系统基于单片机的水温水位控制系统 Water Temperature-Level Control System Based on SCM 摘摘 要要 本设计温度传感器采用 DS18B20,DS18B20 是美国 Dallas 公司生产的一线 数字式温度计芯片,现在已完全取代 DS1820。它具有结构简单,不需要外接元 件,采用一根 I/O 数据线既可以供电又可以传输数据、并可以设有用户设置温度 报警界限等特点。此次设计主控制器采用 Philips 公司生产的 AT89S52 单片机, 关键词:关键词:单片机;DS18B20;水温水位控制 Abstract The design temperature sensors used DS18B20 which is a digital thermometer chip produced by the Dallas company and now completely replaced DS1820. Its simple and doesnt need the components. Just use a piece of I/O data line can not only supply the power, but the data transmission. Moreover, it has a user setting, you can use it to set the alarm boundaries. The design of master controller used the Philips companys AT89S52 monolithic integrated circuits, which is the usual type. It has a powerful function and reliable performance. Keywords: singlechip; water levels examination; water temperatures examination 目目 录录 引引 论论1 第一章第一章 系统设计方案讨论与选择系统设计方案讨论与选择2 1.1 系统设计方案的选择.2 1.2 总体系统设计方框图.2 1.3 温度控制系统的设计方案讨论.3 1.4 水位控制系统的设计方案讨论.3 1.5 数据显示系统的设计方案讨论.3 第二章第二章 系统系统方案设计方案设计4 2.1 水温控制系统设计.4 2.2 水位控制系统设计.4 2.3 水温水位显示系统设计.4 2.4 报警系统设计.4 第三章第三章 系统系统硬件硬件设计设计5 3.1 系统功能.5 3.2 系统框图.5 3.3 单片机的介绍.5 3.4 DS18B20 的介绍9 3.5 LED 数码管15 第四章第四章 系统软件设计系统软件设计18 4.1 单片机最小电路系统.18 4.2 DS18B20 测温电路18 4.3 报警电路.19 4.4 数码管显示电路.20 4.5 报警温度设置按键电路.20 4.6 水位检测电路.21 4.7 水位报警电路.22 4.8 继电器控制电路.22 第五章第五章 系统可靠性处理系统可靠性处理24 5.1 系统硬件开机自检程序设计.24 5.2 开机数码管显示程序.24 5.3 读温度子程序.25 5.4 控制按键设计子程序及流程图.26 第六章第六章 PROTUESPROTUES 简介简介.28 第七章第七章 系统测试与分析系统测试与分析. 29 7.1 水温传感器温度试 30 7.2 温度上下限温度等数据测试. .31 7.3 各部分硬件性能测试.32 结结 语语33 主要参考文献主要参考文献34 附录、附图附录、附图35 附录 1 系统原理图36 附录 2 部分源程序清单37 引引 论论 随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活 带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的 飞跃,那么可编程控制器的出现则是给现代工业控制测控领域带来了一次新的 革命。在现代社会中,水位和温度控制不仅应用在工厂生产方面,其作用也体 现到了生活的各个方面。 随着人们生活质量的提高,酒店厂房及家庭生活中都会见到水位和温度控 制的影子,水位和温度控制将更好的服务于社会目前,单片机控制器在从生活 工具到工业应用的各个领域,例如生活工具的电梯、工业生产中的现场控制仪 表、数控机床等。尤其是用单片机控制器改造落后的设备具有性价比高、提高 设备的使用寿命、提高设备的自动化程度的特点。 现代工业设计、工程建设及日常生活中常常需要用到水位和温度控制,早 期水位和温度控制主要应用于工厂中,例如工厂中的大型锅炉,必须实时的掌 握锅炉的水位和温度,确保系统的正常运行。 因此,水温水位控制在改善人们生活质量中起到了非常重要的作用。现在 市面上的电器种类繁多,它们都需要对其主要的水位和水温参数加以控制,实 现电器水温水位控制的自动化。 早期温度和水位的参数控制时通过模拟电路实现的,这种方式不仅电路复 杂,成本高,而且误差大,系统的稳定性不好,单片机及微型计算机技术的发 展和应用有效地解决了这些缺点,特别是传感器的发展,更好的提高了检测参 数的精度。 选择基于单片机的水温水位控制系统,是因为它不仅在人们生活中具有显著的 意义,更重要的是能系统地聚温度和水位参数于一身,对于更好的掌握和认识 单片机的应用和传感器的应用,系统地深刻认识自动控制的实际应用,掌握复 杂的多子系统地设计起到了很强的锻炼作用 - 0 - 1 系统设计方案讨论与选择系统设计方案讨论与选择 1.11.1 系统设计方案的选择系统设计方案的选择 方案 1:采用传统的数字模似电路,功能可以实现,但电路复杂,温度误差 大,成本高,可靠性差。 方案 2:采用单片机控制,结构简单,使用方便,成本低,性能稳定,温 度误差只有 0.5 摄式度。 方案 2 与方案 1 比较,有着明显的优势,所以我采用了方案 2。 1.21.2 总体系统设计方框图总体系统设计方框图 为实现系统的水温水位控制,根据系统的设计功能要求,构造总体方框图 如图 1.1 所示。 单 片 机 复位电路 报警电路 时钟振荡 温度传感器 LED 显示 蜂鸣器报警 水位传感器 按键电路 图图 1.1 总体系统方案图总体系统方案图 1.31.3 温度控制系统的设计方案讨论温度控制系统的设计方案讨论 如果采用热电阻,电路需接 A/D 转换电路,由单片机换算出实际温度,电 路结构复杂,而且也精度不高,DS18B20 可直接与单片机的 1 位 I/O 相接,电 路结构简单,占用单片机的口线资源少,精度高,而且成本低,DS18B20 以其 各方面优点作为温度传感器进行温度采样应用于此水温水位控制系统中实在是 当仁不让。 1.41.4 水位控制系统的设计方案讨论水位控制系统的设计方案讨论 此系统要进行水温水位控制,马上想到的是水温水位的两个参数的控制, 在温度传感器采用 DS18B20 之后,对于水位的控制不假思索的想到要运用水位 传感器,经过几天的资料搜集,发现水位的传感器是通过压力传感器变换过来 - 1 - 的,看到最多的是浮球式液位传感器,而且此传感器的适用温度范围和测试精 度也适合该设计系统,但此方案的缺点是价格非常昂贵;后来又考虑采用应用 于电子秤中的数字压力传感器,去测得整个容器中水的变化和容器中液位的换 算关系,此想法基于电子秤能够测得一张纸的重量,但是在实际应用中,考虑 到容器的氧化,容器内部的水垢增多,而且容器的外置也会产生整个容器重量 的变化,从而造成液位采集的不准确,此压力传感器的市场价格也比较昂贵, 应用于此控制模型中也是一种浪费;因此我自制了 3 根线将容器中的液位分成 了 3 个水位挡,通过和电源正极的结合,利用水导电的特性,通过 9012 三极管 等元件构成的驱动电路的电平转换,将液位数据输入 P2 口,通过单片机换算转 换成液位数据存入一个存储器单元,随时读取。 1.51.5 数据显示系统的设计方案讨论数据显示系统的设计方案讨论 为了能构造一个适合的人机界面,在诸多的显示器件中数码管的液晶字符 性显示器非常适合运用于此控制系统当中的,它的功能特性也完全适用于此设 计系统的功能要求,也不会造成资源的浪费,所以就确定数码管作为本此设计 系统的显示器件。为了配合显示器件,就需设置按键,根据系统的功能要求和 单片机的口线资源,为系统配制了 3 个独立式键盘,用来调节温度报警值。 - 2 - 2 系统工作原理系统工作原理 此系统是为多子系统的综合性控制系统,设计过程中也是分块实现设计调 试,最后进行综合实现,以下就从各子系统的工作原理进行分别进行说明。 2.12.1 水温控制系统水温控制系统 该子系统利用低功耗单线数字温度传感器 DS18B20 实现温度采样,将采样 的温度值通过单片机的 P3.3 口送入单片机处理,然后实现水温的控制,利用按键 对水温的值进行设置,当温度高于上限或者低于下限后蜂鸣器报警,使之保持 温度在一定范围内的稳定。 2.22.2 水位控制系统水位控制系统 该子系统能进行水位的控制,利用自制的 3 根导线对水位的信息进行采集, 并通过单片机的 P2 口送入给单片机处理加工,通过显示器显示,共有 2 个水位 挡,没水或者系统出错后,蜂鸣器都报警,使系统的水位保持在一定的范围内。 2.32.3 水温水位显示系统水温水位显示系统 该子系统采用数码管显示水温,用 3 个 LED 显示水位信息。 2.42.4 报警系统报警系统 该系统利用蜂鸣器报警,系统故障报警和水温水位信息报警,以便及时掌 握水温水位控制系统的工作状况,系统自己不能处理的就可以人工辅助处理, 这样能让系统更好的运行在稳定状况下。 - 3 - 3 系统单元电路设计系统单元电路设计 3.13.1 系统功能系统功能 本系统利用单片机采集温度,温度值精确到小数点一位,用 4 位数码管显 示温度值,设置三个按键调整报警温度值,当温度超出所设定的上下限范围时, 蜂鸣器开始报警。 3.23.2 系统框图系统框图 单 片 机 复位电路 报警电路 时钟振荡 温度传感器 LED 显示 蜂鸣器报警 水位传感器 按键电路 加水装置加热装置 图 2 总体设计方框图 3.33.3 单片机的介绍单片机的介绍 40 个引脚,4k bytes flash 片内程序存储器,128 bytes 的随机存取数据 存储器(ram) ,32 个外部双向输入/输出(i/o)口,5 个中断优先级 2 层中断 嵌套中断,2 个 16 位可编程定时计数器,2 个全双工串行通信口,看门狗 (wdt)电路,片内时钟振荡器。 AT89S52 单片机是一种低功耗高性能的 CMOS8 位微控制器,内置 8KB 可在 线编程闪存。该器件采用 Atmel 公司的高密度非易失性存储技术生产,其指令 与工业标准的 80C51 指令集兼容。片内程序存储器允许重复在线编程,允许程 序存储器在系统内通过 SPI 串行口改写或用同用的非易失性存储器改写。通过 把通用的 8 位 CPU 与可在线下载的 Flash 集成在一个芯片上,AT89S52 便成为 一个高效的微型计算机。它的应用范围广,可用于解决复杂的控制问题,且成 本较低。其结构框图如图 3.1 所示。 - 4 - 图 3 AT89S52 结构框图 - 5 - 图 4 AT89S52 此外,AT89S52 设计和配置了震荡频率可为 12MHZ 并可通过软件设置省电 模式。空闲模式下,cpu 暂停工作,而 ram 定时计数器,串行口,外中断系统 可继续工作,掉电模式冻结振荡器而保存 ram 的数据,停止芯片其它功能直至 外中断激活或硬件复位。同时该芯片还具有 pdip、tqfp 和 plcc 等三种封装形 式,以适应不同产品的需求。 主要功能特性:主要功能特性: 兼容 mcs-51 指令系统 4k 可反复擦写(1000 次)isp flash rom 32 个双向 i/o 口 4.5-5.5v 工作电压 2 个 16 位可编程定时/计数器 时钟频率 0-33mhz 全双工 uart 串行中断口线 128x8bit 内部 ram 2 个外部中断源 低功耗空闲和省电模式 中断唤醒省电模式 3 级加密位 看门狗(wdt)电路 软件设置空闲和省电功能 灵活的 isp 字节和分页编程 双数据寄存器指针 - 6 - 按照功能,AT89S52 的引脚可分为主电源、外接晶体振荡或振荡器、多功 能 I/O 口、控制和复位等。 1.多功能 I/O 口 AT89S52 共有四个 8 位的并行 I/O 口:P0、P1、P2、P3 端口,对应的引脚 分别是 P0.0 P0.7,P1.0 P1.7,P2.0 P2.7,P3.0 P3.7,共 32 根 I/O 线。每根线可以单独用作输入或输出。 P0 端口,该口是一个 8 位漏极开路的双向 I/O 口。在作为输出口时,每 根引脚可以带动 8 个 TTL 输入负载。当把“1”写入 P0 时,则它的引脚可用作 高阻抗输入。当对外部程序或数据存储器进行存取时,P0 可用作多路复用的低 字节地址/数据总线,在该模式,P0 口拥有内部上拉电阻。在对 Flash 存储器 进行编程时,P0 用于接收代码字节;在校验时,则输出代码字节;此时需要外 加上拉电阻。 P1 端口,该口是带有内部上拉电阻的 8 位双向 I/O 端口,P1 口的输出缓 冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写“1”时,通过内 部的上拉电阻把端口拉到高电位,此时可用作输入口。P1 口作输入口使用时, 因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。在对 Flash 编程和程序校验时,P1 口接收低 8 位地址。 另外,P1.0 与 P1.1 可以配置成定时/计数器 2 的外部计数输入端 (P1.0/T2)与定时/计数器 2 的触发输入端(P1.0/T2EX) ,如表 3.1 所示。 表 1 P1 口管脚复用功能 端口引脚复用功能 P1.0 T2(定时器/计算器 2 的外部输入端) P1.1 T2EX(定时器/计算器 2 的外部触发端和双向控制) P1.5 MOSI(用于在线编程) P1.6 MISO(用于在线编程) P1.7 SCK(用于在线编程) P2 端口,该口是带有内部上拉电阻的 8 位双向 I/O 端口,P2 口的输出 缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写“1”时,通过 内部的上拉电阻把端口拉到高电位,此时可用作输入口。P2 口作输入口使用时, 因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。 在访问外部程序存储器或 16 位的外部数据存储器时,P2 口送出高 8 位地 址,在访问 8 位地址的外部数据存储器时,P2 口引脚上的内容(就是专用寄存 器(SFR)区中 P2 寄存器的内容) ,在整个访问期间不会改变。在对 Flash 编程 和程序校验期间,P2 口也接收高位地址或一些控制信号。 P3 端口,该口是带有内部上拉电阻的 8 位双向 I/O 端口,P3 口的输出 缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写“1”时,通过 内部的上拉电阻把端口拉到高电位,此时可用作输入口。P3 口作输入口使用时, - 7 - 因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。 在 AT89S52 中,同样 P3 口还用于一些复用功能,如表 3.2 所列。在对 Flash 编程和程序校验期间,P3 口还接收一些控制信号。 表 2 P3 端口引脚与复用功能表 端口引脚复用功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INT0(外部中断 0) P3.3 INT1(外部中断 1) P3.4 T0(定时器 0 的外部输入) P3.5 T1(定时器 1 的外部输入) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 2.RST 复位输入端。在振荡器运行时,在此脚上出现两个机器周期的高电 平将使其单片机复位。看门狗定时器(Watchdog)溢出后,该引脚会保持 98 个 振荡周期的高电平。在 SFR AUXR(地址 8EH)寄存器中的 DISRTO 位可以用于屏 蔽这种功能。DISRTO 位的默认状态,是复位高电平输出功能使能。 3.ALE/PROG 地址锁存允许信号。在存取外部存储器时,这个输出信号用 于锁存低字节地址。在对 Flash 存储器编程时,这条引脚用于输入编程脉冲 PROG。一般情况下,ALE 是振荡器频率的 6 分频信号,可用于外部定时或时钟。 但是,在对外部数据存储器每次存取中,会跳过一个 ALE 脉冲。在需要时,可 以把地址 8EH 中的 SFR 寄存器的 0 位置为“1” ,从而屏蔽 ALE 的工作;而只有 在 MOVX 或 MOVC 指令执行时 ALE 才被激活。在单片机处于外部执行方式时,对 ALE 屏蔽位置“1”并不起作用。 4.PSEN 程序存储器允许信号。它用于读外部程序存储器。当 AT89S52 在 执行来自外部存储器的指令时,每一个机器周期 PSEN 被激活 2 次。在对外部数 据存储器的每次存取中,PSEN 的 2 次激活会被跳过。 5.EA/Vpp 外部存取允许信号。为了确保单片机从地址为 0000HFFFFH 的 外部程序存储器中读取代码,故要把 EA 接到 GND 端,即地端。但是,如果锁定 位 1 被编程,则 EA 在复位时被锁存。当执行内部程序时,EA 应接到 Vcc。在对 Flash 存储器编程时,这条引脚接收 12V 编程电压 Vpp。 6.XTAL1 振荡器的反相放大器输入,内部时钟工作电路的输入。 7.XTAL2 振荡器的反相放大器输出。 3.4 DS18B20 的介绍的介绍 3.4.1 DS18B20 的介绍 DS18B20 温度传感器是美国 DALLAS 半导体公司最新推出的一种改进型智能 温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并 - 8 - 且可根据实际要求通过简单的编程实现位的数字值读数方式。 TO92 封装的 DS18B20 的引脚排列见图 4,其引脚功能描述见表 1。 图 5 DS18B20 (底视图) 序 号 名称引脚功能描述 1GND 地信号 2DQ 数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源 下,也可以向器件提供电源。 3VDD 可选择的 VDD 引脚。当工作于寄生电源时,此引脚必须接地。 表 3 DS18B20 详细引脚功能描述 DS18B20 的性能特点如下: 独特的单线接口仅需要一个端口引脚进行通信; 多个 DS18B20 可以并联在惟一的三线上,实现多点组网功能; 无须外部器件; 可通过数据线供电,电压范围为 3.05.5; 零待机功耗; 温度以或位数字; 用户可定义报警设置; 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常 工作; DS18B20 采用脚 PR35 封装或脚 SOIC 封装,其内部结构框图如图 2 所示。 图 6 DS18B20 内部结构 64 位 ROM 的结构开始位是产品类型的编号,接着是每个器件的惟一的序 号,共有 48 位,最后位是前面 56 位的 CRC 检验码,这也是多个 DS18B20 可 I/O C 64 位 ROM 和 单 线 接 口 高 速 缓 存 存储器与控制逻辑 温度传感器 高温触发器 TH 低温触发器 TL 配置寄存器 8 位 CRC 发生器 Vdd - 9 - 以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户 报警上下限。 DS18B20 温度传感器的内部存储器还包括一个高速暂存和一个非易 失性的可电擦除的 EERAM。高速暂存 RAM 的结构为字节的存储器,结构如图 3 所示。头个字节包含测得的温度信息,第和第字节和的拷贝, 是易失的,每次上电复位时被刷新。第个字节,为配置寄存器,它的内容用 于确定温度值的数字转换分辨率。DS18B20 工作时寄存器中的分辨率转换为相 应精度的温度数值。该字节各位的定义如图 3 所示。低位一直为,是 工作模式位,用于设置 DS18B20 在工作模式还是在测试模式,DS18B20 出厂时 该位被设置为,用户要去改动,R1 和0 决定温度转换的精度位数,来设置 分辨率。 TM R1 1R01111 . . 图 7 DS18B20 字节定义 由表 2 可见,DS18B20 温度转换的时间比较长,而且分辨率越高,所需要 的温度数 据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。 高速暂存的第、字节保留未用,表现为全逻辑。第字 节读出前面所有字节的 CRC 码,可用来检验数据,从而保证通信数据的正确 性。 当 DS18B20 接收到温度转换命令后,开始启动转换。转换完成后的温度值 就以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的第、字节。 单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格 式以 0.0625LSB 形式表示。 当符号位时,表示测得的温度值为正值,可以直接将二进制位转换 为十进制;当符号位时,表示测得的温度值为负值,要先将补码变成原 码,再计算十进制数值。表 2 是一部分温度值对应的二进制温度数据。 R1R0 分辨率/位温度最大转换时间/ms 00993.75 0110187.5 1011375 1112750 表 4 DS18B20 温度转换时间表 温度 LSB 温度 MSB TH 用户字节 1 TL 用户字节 2 配置寄存器 保留 保留 保留 CRC - 10 - DS18B20 的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度 的影响很小,用于产生固定频率的脉冲信号送给减法计数器;高温度系数晶 振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输 入。器件中还有一个计数门,当计数门打开时,DS18B20 就对低温度系数振荡 器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系 数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法 计数器、温度寄存器中,计数器和温度寄存器被预置在55所对应的一 个基数值。 减法计数器对低温度系数晶振产生的脉冲信号进行减法计数,当减法计 数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重 新被装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行计数, 如此循环直到减法计数器计数到时,停止温度寄存器的累加,此时温度寄存 器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数 器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。 温度/二进制表示十六进制表示 +1250000 0111 1101 0000 07D0H +850000 0101 0101 0000 0550H +25.06250000 0001 1001 0000 0191H +10.1250000 0000 1010 0001 00A2H +0.50000 0000 0000 0010 0008H 00000 0000 0000 1000 0000H -0.51111 1111 1111 0000 FFF8H -10.1251111 1111 0101 1110 FF5EH -25.06251111 1110 0110 1111 FE6FH -551111 1100 1001 0000 FC90H 表 3 一部分温度对应值表 3.4.2 DS18B20 温度传感器与单片机的接口电路 DS18B20 可以采用两种方式供电,一种是采用电源供电方式,此时 DS18B20 的 1 脚接地,2 脚作为信号线,3 脚接电源。另一种是寄生电源供电方式,如图 4 所示单片机端口接单线总线,为保证在有效的 DS18B20 时钟周期内提供足够 的电流,可用一个 MOSFET 管来完成对总线的上拉。 当 DS18B20 处于写存储器操作和温度 A/D 转换操作时,总线上必须有强的 上拉,上拉开启时间最大为 10us。采用寄生电源供电方式时 VDD 端接地。由于 - 11 - 单线制只有一根线,因此发送接口必须是三态的。由于 DS18B20 是在一根 I/O 线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20 有严格 的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的 时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总 线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开 始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成 数据接收。数据和命令的传输都是低位在先。 3.4.3 DS18B20 的控制方法 DS18B20 有六条控制命令,指令约定代码操作说明 CCH:跳过扫描温度传感芯片序列号 44H: 启动 DS18B20 进行温度转换 BEH :读度温度值 DS18B20DS18B20 的复位时序的复位时序 : 图 8 DS18B20 复位时序图 (1) 先将数据线置高电平“1” 。 (2) 延时(该时间要求的不是很严格,但是尽可能的短一点) (3) 数据线拉到低电平“0” 。 (4) 延时 750 微秒(该时间的时间范围可以从 480 到 960 微秒) 。 (5) 数据线拉到高电平“1” 。 (6) 延时等待(如果初始化成功则在 15 到 60 毫秒时间之内产生一 个由 DS18B20 所返回的低电平“0” 。据该状态可以来确定它的存在,但是应注 意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制) 。 (7) 若 CPU 读到了数据线上的低电平“0”后,还要做延时,其延时 的时间从发出的高电平算起(第(5)步的时间算起)最少要 480 微秒。 (8) 将数据线再次拉高到高电平“1”后结束。 DS18B20DS18B20 的读时序:的读时序: 对于 DS18B20 的读时序分为读 0 时序和读 1 时序两个过程。 对于 DS18B20 的读时隙是从主机把单总线拉低之后,在 15 秒之内就得释放 单总线,以让 DS18B20 把数据传输到单总线上。DS18B20 在完成一个读时序过 程,至少需要 60us 才能完成。 - 12 - 图 9 DS18B20 读时序过程 (1)将数据线拉高“1”。 (2)延时 2 微秒。 (3)将数据线拉低“0”。 (4)延时 15 微秒。 (5)将数据线拉高“1”。 (6)延时 15 微秒。 (7)读数据线的状态得到 1 个状态位,并进行数据处理。 (8)延时 30 微秒。 DS18B20DS18B20 的写时序:的写时序: 对于 DS18B20 的写时序仍然分为写 0 时序和写 1 时序两个过程。 对于 DS18B20 写 0 时序和写 1 时序的要求不同,当要写 0 时序时,单总线 要被拉低至少 60us,保证 DS18B20 能够在 15us 到 45us 之间能够正确地采样 IO 总线上的“0”电平,当要写 1 时序时,单总线被拉低之后,在 15us 之内就得 释放单总线。 图 10 DS18B20 写时序过程 (1) 数据线先置低电平“0”。 (2) 延时确定的时间为 15 微秒。 (3) 按从低位到高位的顺序发送字节(一次只发送一位)。 (4) 延时时间为 45 微秒。 (5) 将数据线拉到高电平。 (6) 重复上(1)到(6)的操作直到所有的字节全部发送完为止。 (7) 最后将数据线拉高。 DS18B20 虽然有测温简单的特点,单在实际应用中应注意一下几点: (1)较小的硬件开销需要相对复杂的软件进行补偿,由于 DS18B20 与微处理 器间采用串行数据传送,因此,在对 DS18B20 进行读写编程时,必须严格的保 证读写时序,否则将无法读取测温结果。在使用 PL/M、C 等高级语言进行系统 程序设计时,对 DS18B20 操作部分最好采用 C 语言实现。 (2) 在 DS18B20 的有关资料中均未提及单总线上所挂 DS18B20 数量问题, 容易使人误认为可以挂任意多个 DS18B20,在实际应用中并非如此。当单总线 上所挂 DS18B20 超过 8 个时钟,就需要解决微处理器的总线驱动问题,这一点 在进行多点测温系统设计时要加以注意。 - 13 - (3) 连接 DS18B20 的总线电缆是有长度限制的。试验中,当采用普通信号 电缆传输长度超过 50m 时,读取的测温数据将发生错误。当将总线电缆改为双 绞线带屏蔽电缆时,正常通讯距离可达 150m,当采用每米绞合次数更多的双绞 线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容 使信号波形产生畸变造成的。因此,在用 DS18B20 进行长距离测温系统设计时 要充分考虑总线分布电容和阻抗匹配问题。 (4) 在 DS18B20 测温程序设计中,向 DS18B20 发出温度转换命令后,程序总要等待 DS18B20 的返回信号,一旦某个 DS18B20 接触不好或断线,当程序读该 DS18B20 时, 将没有返回信号,程序进入死循环。这一点在进行 DS18B20 硬件连接和软件设计时也要 给予一定的重视。 3.53.5 LEDLED 数码管数码管 3.5.13.5.1 LEDLED 数码管主要技术参数数码管主要技术参数 图11 数码管 数码管使用条件: a、段及小数点上加限流电阻 b、使用电压:段:根据发光颜色决定; 小数点:根据发光颜色决定 c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA 上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样 的,4 位数码管引脚图数码管使用注意事项说明: ()数码管表面不要用手触摸,不要用手去弄引角; ()焊接温度:度;焊接时间: ()表面有保护膜的产品,可以在使用前撕下来。 3.5.23.5.2 LEDLED数码管的引脚说明数码管的引脚说明 - 14 - 这类数码管可以分为共阳极与共阴极两种,共阳极就是把所有 LED 的阳极连 接到共同接点 com,而每个 LED 的阴极分别为 a、b、c、d、e、f、g 及 dp(小 数点);共阴极则是把所有 LED 的阴极连接到共同接点 com,而每个 LED 的阳 极分别为 a、b、c、d、e、f、g 及 dp(小数点),如下图所示。图中的 8 个 LED 分别与上面那个图中的 ADP 各段相对应,通过控制各个 LED 的亮灭来显示 数字。 图 12 共阳数码管内部结构 图 13 共阴数码管内部结构 对于单个数码管来说,从它的正面看进去,左下角那个脚为 1 脚,以逆时针 方向依次为 110 脚,左上角那个脚便是 10 脚了,上面两个图中的数字分别与 这 10 个管脚一一对应。注意,3 脚和 8 脚是连通的,这两个都是公共脚。 还有一种比较常用的是四位数码管,内部的 4 个数码管共用 adp 这 8 根数据线,为人们的使用提供了方便,因为里面有 4 个数码管,所以它有 4 个 - 15 - 公共端,加上 adp,共有 12 个引脚,下面便是一个共阴的四位数码管的内部 结构图(共阳的与之相反)。引脚排列依然是从左下角的那个脚(1 脚)开始, 以逆时针方向依次为 112 脚,下图中的数字与之一一对应。 图 14 位共阳数码管内部结构 3.5.33.5.3 数码管编码说明数码管编码说明 4位数码管编码说明,如4.5表所示: 表 4.5 控制命令表 P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0 eddpcgbfa 00010100028H 111101011EBH 20011001032H 310100010A2H 411100001E1H 510100100A4H 60010010024H 711101010EAH 80010000020H 910100000A0H H0110000161H L001100013DH -11110111F7H C001111003CH - 16 - 4.硬件设计硬件设计 4.14.1 单片机最小系统电路单片机最小系统电路 图 15 单片机最小系统 (1) 单片机 9 脚接复位电路,可按复位按钮 S1 给单片机复位。 (2) 晶振采用 12MHZ。 (3(由于单片机只访问片内 Flash ROM 并执行内部程序存储器中的指令,因 此单片机的 31 脚接高电平 VCC。 4.24.2 DS18B20DS18B20 测温电路测温电路。 - 17 - 图 16 DS18B20 电路 DS18B20 的 1 脚接地,2 脚数据端接单片机的 P3.4,3 脚接 VCC,为了确保 DS18B20 工作可靠,2 脚要接 10K 的上拉电阻。 4.34.3 报警电路报警电路 - 18 - 图 17 蜂鸣器电路 本系统中采用蜂鸣器报警,由于单片机输出电流较小,所以用三极管 9013 驱动蜂鸣器发出声音。 4.44.4 四位数码管显示电路四位数码管显示电路 图 18 数码管显示电路 4 位数码管为共阳管,由于单片机输出电流比较小,故用 4 个 PNP 型的三极 管 9015 来驱动数码管。单片机输出低电平时三极管导通,使数码管的 4 各公共 端 1、4、5 和 12 脚为高电平,此时数码管的数据端输入低电平后数码管被点亮, 120 欧电阻 R12 到 R19 为三极管的限流电阻。 4.54.5 报警温度设定按键电路报警温度设定按键电路 - 19 - 图 19 按键电路 报警温度用按键 S2,S3,S4 来设置,S2 为调整键,按一次可调整报警上 限温度值,按两次可调整报警下限温度值,按三次数码管恢复到正常温度显示。 4.64.6 水位监测电路水位监测电路 图 20 水位监测电路 - 20 - 水位用三根导线,一个是电源负极,当导线接触到水后,由于水的导电 性,使得两外两根导线也是低电平,从而使三极管 9012 导通,P3.6 和 P3.7 是 低电平,当两根导线不接触水的时候,输出是高电平。 4.74.7 水位报警电路水位报警电路 图 20 水位报警电路 当水位比较低的时候,红灯亮,水位在中间的时候,红灯和黄灯亮,当水位慢 的时候三个灯都亮,出故障的时候三个灯闪。 4.84.8 继电器控制电路继电器控制电路 - 21 - 图 21 继电器控制电路 两个继电器分别是控制加热装置和加水装置,用发光二极管来代 替加热装置和加水装置,继电器用三极管 9012 驱动。 - 22 - 5 系统软件设计系统软件设计 5.15.1 系统硬件开机自检程序设计系统硬件开机自检程序设计 为了保证系统的正常运行,当系统开机后,即单片机上电复位开始运行后, 需要对硬件各部分进行自动检查,如果正常,系统就可以继续往下执行,如果 不正常就必须出错报警,以便人工修正,为系统的正常运行作好准备。 主程序流程图如 5-1: 图 5-1 主程序流程图 图 5-2 读温度流程图 5.25.2 开机数码管显示程序开机数码管显示程序 /*显示开机初始化等待画面*/ Disp_init() P2 = 0xf7; /显示- P0 = 0xbf; Delay(200); P0 = 0xef; Delay(200); 开始 初始化 示化 水位温度值 与上下限 比较 报警 转换并显示 YES Y 发 DS18B20 复位命令 发跳过 ROM 命令 发读取温度命令 读取操作,CRC 校验 9 字节完? CRC 校验正? 确? 移入温度暂存器 结束 N N Y - 23 - P0 = 0xfb; Delay(200); P0 = 0xfe; Delay(200); P0 = 0xff; /关闭显示 5.3 度温度子程序 流程图如 4-2 图 #include #define DQ P3_3 /定义 DS18B20 总线 I/O /*延时子程序*/ void Delay_DS18B20(int num) while(num-) ; /*初始化 DS18B20*/ void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ 复位 Delay_DS18B20(8); /稍做延时 DQ = 0; /单片机将 DQ 拉低 Delay_DS18B20(80); /精确延时,大于 480us DQ = 1; /拉高总线 Delay_DS18B20(14); x = DQ; /稍做延时后,如果 x=0 则初始化成功,x=1 则初始化失 败 Delay_DS18B20(20); /*读一个字节*/ unsigned char ReadOneChar(void) unsigned char i=0; unsigned char dat = 0; for (i=8;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; Delay_DS18B20(4); - 24 - return(dat); /*写一个字节*/ void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i0; i-) DQ = 0; DQ = dat Delay_DS18B20(5); DQ = 1; dat=1; /*读取温度*/ unsigned int ReadTemperature(void) unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; Init_DS18B20(); WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0x44); /启动温度转换 Init_DS18B20(); WriteOneChar(0xCC); /跳过读序号列号的操作 WriteOneChar(0xBE); /读取温度寄存器 a=ReadOneChar(); /读低 8 位 b=ReadOneChar(); /读高 8 位 t=b; t=10)beep_st=beep_st;x=0; if(m=shangxian else BEEP=0; if(flag=2) if(beep_st=1)BEEP=1;LED1=0;LED2=0;LED3=0; else BEEP=0;LED1=1;LED2=1;LED3=1; if(m=shangxian) JDQ2=1; /*主函数*/ void main(void) uint z; InitTimer(); /初始化定时器 BEEP=0; LED1

温馨提示

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

评论

0/150

提交评论