1、 1 基于 51 单片机的水质检测系统设计 摘要 本系统是基于 低功耗的 AT89S51 单片机, 通过 NE555 定时器构成的多谐振荡器产生一定频率的波,再通过单片机的 I/O 接口对捕获高低电平的读出频率,然后通过程 序算法处理抽换算成电阻的值,使用 DS18B20 作为温度采集模块,用 RS485 实现远距离传送。 经过主机的数据转换和处理,将温度值通过字 符液晶 1602 显示器显示。本设计结构简单,使用灵活,具有很大的使用和研究价值 。 关键字 AT89S51 单片机 NE555 定时器 DS18B20 RS485 通信 Abstract The system is based o
2、n low power consumption AT89S51 MCU, through the Ne555 timer control generates a certain frequency of the wave, and then through the MCUs I / O interface to capture level read frequency, and then through the program algorithm is converted into the pumping resistance value, use DS18B20 as the tempera
3、ture acquisition module, using RS485realize long-distance transmission. After a host data processing and conversion, the temperature value through the character LCD 1602LCD to display. This design has the advantages of simple structure, flexible use. It has great application and research value. Key
4、words AT89S51MCU Ne555 timer control DS18B20 RS485 communication protocol 1 目 录 第 1 章 引言 . 2 第 2 章 水质检测的因素 . 3 2.1 一般水质检测的因素 . 3 2.2 电子设备检测的因素 . 3 2.3 水质与水的导电率的相互关系 . 3 第 3 章 系统 设计要求及总体设计方案 . 4 3.1 系统设计要求 . 4 3.2 总体设计的总体设计方案 . 4 第 4 章 系统各组成单元方案设计与论证 . 5 4.1 测量电阻模块方案设计 . 5 4.2 温度传感器方案选择 . 6 4.3 通信模块的
5、方案选择 . 6 第 5 章 系统硬件 设计 . 8 5.1 AT89S51 单片机及其他器件的功能介绍及原理 . 8 5.2 DS18B20 温度传感器的简介 . 10 5.3 NE555 的简介及应用 . 13 5.4 RS485 总线的应用及介绍 . 175 5.5 字符液晶 1602 的介绍 . 17 5.6 电源模块的设计 . 20 第 6 章 系统 软件的设计 . 22 6.1 程序设计 . 22 6.2 系统主程序流程图 . 22 第 7 章 测试方法及结果 .24 7.1 调试 方法 . 24 7.2 电导率的检测 . 24 7.3 温度的检测 . 25 结束语 . 26 致谢
6、 . 27 参考文献 . 28 附录 1 . 29 附录 2 . 30 附录 3 . 31 附录 4 . 38 2 第 1章 引言 水是生命之本,是本设计赖以生存必不可少的物质资源之一,水也是为人体获得各种营养物质的重要途径之一。随着科技的发展,水污染越来越严重。 对水资源的保护成为一项重要的工程。水质检测是对水资源保护的重要指标。水质检测越来越受到人们的关注 。因此本次设计本设计选择水质检测系统。其中 饮水安全则是影响人体健康和国计民生的重大问题。饮用水主要考虑对人体健康的影响,其水质标准除有物理指标、化学指标外,还有微生物指标;对工业用水则考虑是否影响产品质量或易于损害容器及管道。近年来
7、,由于国际上一些地区和国家频繁发生恶性事件 ,饮水安全和卫生问题引起了全球的关注 ,饮水安全已成为全球性的重大战略性问题。近年来由于本设计国工业生产水平的迅猛发展,每年的废水也不断增加,其中对环境产生影响的来源主要有: 未经处理而排放的工业废水 未经处理而排放的生活污水 大量使 用化肥、农药、除草剂的农田污水 堆放在河边的工业废弃物和生活垃圾 水土流失 矿山污水 导致人类周围的水环境污染日趋严重,严重制约了经济的发展和危害着人类的健康。严峻的水形势提高了人们对水污染控制的重视,对废水的处理和检测成为了维护良好人民生活环境所必不可少的要求,废水中是否有对环境产生重大影响的元素和他们的含量是否在标
8、准以内直接关系到本设计的生存环境,做好水质监测是本设计这次课程设计的目标。 3 第 2章 水质检测的因素 2.1 一般水质监测的因素 水质检测是指对水样的各项指标进行测试 , 可以根据这些指标对水质进 行分类,对水体质量进行判断和综合评价 。 其检测 内容可以是 pH 值 、 CODCr、高锰酸盐指数、 BOD5、氨氮、砷、氟化物、挥发酚、阴离子表面活性剂、总氮、总磷、粪大肠菌群、铅、镉、汞、锌、铜、石油类、硫化物、六价铬、氰化物等;地下水可以是 PH、总硬度、溶解性总固体、高锰酸盐指数、氨氮、硝酸盐氮、亚硝酸盐氮、氟化物、氯化物、硫酸盐、阴离子表面活性剂、氰化物、挥发酚、六价铬、铜、铅、锌、
9、铁、锰、镉、总汞、总砷、硒、总大肠菌群、细菌总数及矿化度等 2.2 电子设备检测的因素 使用电子设备进行水质检测,主要是利用各类传感器 ,对水中的参数进行检测。其检测内容可以为 PH 值,电导率,温度等。 2.3 水质与水的导电率的相互关系 下面介绍一下水质及水的导电率的相互关系: 纯水本身可微弱地介离,使水具有微弱的导电能力。水中含有各种溶解盐类,并以离子的形态存在,使水溶液具有更强的导电性。当水中插入一对电极时,通电之后,在电场的作用下,带电的离子就产生一定方向的移动,水中阴离子移向阳极,阳离子移向阴极,使水溶液起导电作用,水的导电能力的强弱程度,就成为电导。电导度反映了水中含盐量的多少,
10、是水的纯净度的一个重要指标 。 水质 越纯 ,温度越 低 ,电离 度越 低 。因此水的导电率越 低。超纯水几乎不能导电。 溶液导电能力以电阻值来表示,导电能力强电阻值小。纯水导电性微弱。电阻率 P的物理意义是 1cm,截面为 1cm2 均匀导电体的电阻值(即 1cm,水或水溶液的电阻值),并称之为水的“电阻率”或“比导电”。电阻率的单位为 欧姆厘米 ( cm)。电阻率(P的倒数称为电导率 (x)(单位为记作欧姆 -1厘米 -1)。 表 2-1 某质量分数各水样的相对电导率范围 序列 测量内容 相对电导率变化范围 1 自来水 -0.002-0.002 2 加入 8mg 硫酸 亚铁 -0.176-
11、0.567 3 加入 4mg 硫酸亚铁 -0.063-0.252 4 加入 4mg 氯化钾 -0.509-0.836 5 加入 2mg 氯化钾 -0.406-0.531 6 加入 1mg 氯化钾 -0.048-0.201 7 加入 2mg 磷酸三钠 -0.061-0.195 8 生活污水 -0.283-0.275 9 某电气公司处理前水样 -0.500-0.622 10 某电气公司处理后水样 -0.478-0.412 11 加入汽油的水样 -0.448-1.104 12 加入煤油的水样 -0.620-0.820 4 第 3 章 系统 设计要求及总体设计要求 3.1 系统设计要求 由于不同水质的
12、导电能力不同,不同温度对水的电导率也有影响,本设计通过检测不同水质及不同温度下水中的电阻,从而得出其电导,判断水质是否纯净。 本系统要能实现基本功能: 1、实现对水质的检测(电阻等) 2、实现对水温的检测 3、远距离传送 3.2 系统设计的总体设计方案 本设计将 温度模块、 485 发送模块、 485 接收模块、测电阻模块、显示模块 通过多路开关,传送到单 片机中进行检测,在接通电源的条件下,通过显示系统显示检验水质的各种参数。 整体设计框图如下图所示。 电路的工作原理: 通过 Ne555 定时器构成的多谐振荡器和电容反馈式三点式攀比成的振荡电路产生的一定频率的波,再通过单片机的 I/O接口对
13、捕获高低电平的读出频率,然后通过程序算法处理抽换算成电 进行主从机之间的通信 ,将从机信号发送到主机,经过主机的数据转换和处理,将温度值以及电阻值通过字符液晶 1602 显示器显示。 图 3-1为系统设计框图 图 3-1 系统整体设计框图 485发送模块 485接收模块 51单片机 显示模块 温度检测模块 测电阻模块 51单片机 5 第 4 章 系统各组成单元方案设计与论证 4.1 电阻检测模块方案论证 相位测量方案的关键问题是电阻测量方法的选择 : 方案一:串联分压原理 图 4-1 串联电路原理图 根据串联电路的分压原理可知,串联电路上电压与电阻成正比关系。通过测量 RX 和 R0上的电压。
14、由公式 RX=UX/( U0/RO) 方案二:利用直流电桥平衡原理的方案 图 4-2 电桥 其中 Z1, Z2,为可变电位器, Z3为已知电阻, Z4 为被测电阻,根据电路平衡原理,不断调节电位器,使得电表指针指向正中间。由 Z1*Z4=Z3*Z .在通过测量电位器电阻值,可得到 R的值。 方案三:利用构成单稳态的方案 图 4-3 555 定时器构成单稳态 根据定时器构成单稳态,产生脉冲波形,通过单片机读取高低电平得出频率,通过公式换算得到电阻值。由 f=1/(R1+2R2)*C*In2 得到公式: R2=1/2*1/(f*c*Ln2)-R1 上述三种方案从对测量精度要求而言,方案一的测量精度
15、极差,方案二需要测量的电阻值多,而且测量调节麻烦,不易操作与数字化,相比而言,方案三还是比较符合要求的,由于是通过 单片机读取转化,精确度会明显的提高。故本设计选择了方案三。 6 4.2 温度传感器方案的选择 随着现代科技的发展,传感器技术的应用越来越广泛。温度传感器是检测温度的器件,其种类最多,应用最广,发展最快。按照温度传感器的输出信号的模式,可大致分为三类:逻辑输出温度传感器、模拟式温度传感器、数字式温度传感器。 方案一 : 在许多应用中,本设计并不需要严格测量温度值,只关心温度是否超出了一个设定范围,一旦温度超出所规定的范围,则发出报警信号,启动或关闭风扇、空调、加热器或其他控制设备,
16、此时可选用逻辑输出式温度传感器。 LM56、 MAX6501-MAX6504、是其典型代表。根据本设计的要求,不适宜用此类传感器。 方案二:由于传统的模拟温度传感器,如热电偶、热电阻及 RTDS 对温度的监控,在一些温度范围内的线性不是太好,需要进行冷端补偿或引线补偿,而且热惯性大,响应时间较慢,所以在市场上已很少遇到。集成模拟温度传感器与之相比,具有灵敏度高、线性度好、响应速度快等优点,而且它还将驱动电路、信号处理电路以及必要的逻辑控制电路集成在单片 IC 上,有实际尺寸小,使用方便等优点。常用的模拟温度传感器有LM3911、 LM335、 LM45、 AD22103 电压输出型、 该方案的
17、缺点是模拟信号转换为数字信号的借口电路需要占用微机的数条数据 /控制线。限制了微机功能的扩展;而且在温度监测点大范围分布的系统中,模拟信号需长距离传输,信号容易失真,抗干扰能力差。所以不采用此方案。 方案三:如果采用数字式接口的温度传感器,上述设计问题将得到简化。数字式温度传感器直接输出数字测温信号,不但节约了微机的数条数据 /控制线,而且省去了A/D 转换、放大、滤波等电路,在长距离传输过程中信号不易失真,抗干扰能力强,所以本设计采用数字式温度传感器。 而 DS18B20 是由美国 DALLAS 公司生产的一种自带编码的单线数字温度传感器,可以把温度信号直接转换成数字信号。每片 DS18B2
18、0 含有唯一的 64 位序列号。以便不同测温点的识别。 DS18B20 的测温是 +55到 +125。符合本设计的要求,所以本设计采用DS18B20 数字式温度传感器。 4.3 液 通信模块方案选择 方案一: 在工业测量和控制中,因为受到现场环境和其他条件的限制,使用传统的优先电缆传输信号由于存在着现场连接、接线麻烦等缺点,特别是在一些特定的环境下,极不方便,因此提出了无线数据传输 。使用无线数据传输模块,进行数据信号的传输,对于长距离传输,带来了很大的便利。因此无线传输数据模块即发挥了它的无线优势。尽管在特定的条件下,使用无线传输比有线传输具有更大的可行性,但是由于无线传输也存在许多不足之处
19、,如传统无线通讯方式通讯距离短、性能不稳定,受天气等情况影响较大,不能真正实现无缝覆盖等,所以针对本设计,不宜采用此通信方式。 方案二:随着数字技术的发展和计算机日益广泛的应用,现在一个系统往往由多台计算机组成,需要解决多站、远距离通信的问题。这就是迫切需要一种总线能适合远距离的数字通信。 RS232 线路简单,应用广泛 , 但距离受限,数据传输效率也不很高 。 RS-422 使用差分信号,差分传输使用两根线发送和接收信号(共 4 线),对比 RS-232,它能更好的抗噪声和有更远的传输距离。在工业环境中更好的抗噪性和更远的传输距离是一个很大的优点。 在 RS-422 标准的基础上, EIA
20、研究出了一种支持多节点、远距离和接收高灵敏度 RS-485 总线标准。在要求通信距离为几十米到上千米时,广泛采用 RS-485 收发器。RS-485 收发器采用平衡发送和差分接收,因此具有抗干扰的能力,加上接收器具有高的灵敏度、能检测抵达 200mv 的电压,故传输信号能在千米以外得到恢复。使用 RS-485总线,一对双绞线就能实现多站联网,构成分布式系统,设备简单、价格低廉、能进行长距离通信的优点使其得到了广泛的应用。下表 4.1 为常见的三种串口通信性能比较。根据本设计要求,选择 RS485 作为实现长距离传送方案。 7 表 4.1 常见的三种串口通信性能比较 RS-232 RS-422
21、RS-485 功能 全双工 全双工 半双工 传输方式 单端 差分 差分 最大速率 20kbit/s 10kbit/s 10kbit/s 最大距离 15m 1200m 1200m 抗干扰能力 弱 强 强 常用接口芯片 MAX232 MAX422 MAX485 8 第 5 章 系统硬件电路设计 5.1AT8951 单片机及其他器件的功能介绍及原理 5.1.1、单片机功能简介 单片机是一种集成在 电路 芯片,是采用 超 大规模集成电路 技术把具有数据处理能力的中央处理器 CPU 随机存储器 RAM、 只读存储器 ROM、多种 I/O 口和中断系统、定时器/计时器 等功能(可能还包括显示驱动电路、 脉
22、宽调制 电路、模拟多路转换器、 A/D 转换器 等电路)集成到一块硅片上构成的一个小而完善的 计算机系统 。 MCS-51 单片机内部结构: 图 5-1 单片机引脚图 MCS-51 单片机是美国 INTE 公司于 1980 年推出的产品, 89S51 是 MCS-51 系列单片机的典型产品,本设计以这一代表性的机型进行系统的讲解。 89S51 单片机包含中央处理器、程序存储器 (ROM)、数据存储器 (RAM)、定时 /计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总 线等三大总线。 引脚功能说明 GND:地 P0 口: P0 口是一个 8位漏极开路的双向 I/O 口
23、。作为输出口,每位能驱动 8 个 TTL逻辑电平。对 P0 端口写“ 1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时, P0 口也被作为低 8位地址 /数据复用。在这种模式下, P0 具有内部上拉电阻。在 flash1 2 3 4 5 6 7 8 9 101112131415161718192040393837363534333231302928 27 26 25 24 23 22 21 1 2 3 4 5 6 7 8 9 10201918 17 16 15 14 13 12 11 P 1 . 0 P 1 . 1 P 1 . 2 P 1 . 3P 1 . 4P 1 . 5P 1 .
24、6P 1 . 7RST / V PDP 3 . 0 / RXDP 3 . 1 / TXDP 3 . 2 / INT 0P 3 . 3 / INT 1P 3 . 4 / T 0P 3 . 5 / T 1P 3 . 6 / WRP 3 . 7 / RDXTAL 2XTAL 1V SSV CCP 0 . 0P 0 . 1P 0 . 2P 0 . 3P 0 . 4P 0 . 5P 0 . 6P 0 . 7EA / V PPALE / PROGPSENP 2 . 7P 2 . 6P 2 . 5P 2 . 4P 2 . 3P 2 . 2P 2 . 1P 2 . 0R S T P 3 . 0 / RXDP
25、3 . 1 / T X D X T A L 2X T A L 1P 3 . 2 / IN T 0P 3 . 3 / IN T 1 P 3 . 4 / T 0P 3 . 5 / T 1GNDV CCP 1 . 7P 1 . 6P 1 . 5P 1 . 4P 1 . 3P 1 . 2P 1 . 1 / AIN 1P 1 . 0 / AIN 0P 3 . 7注 : 类似的还有 P h ilip s 公司的8 7 LPC 64 , 20 引脚8 XC 748 / 750 / ( 751 ), 24 引脚8 X 749 ( 752 ), 28 引脚8 XC 754 , 28 引脚等等80C51/89C5
26、189C20519 编程时, P0 口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1 口: P1 口是一个具有内部上拉电阻的 8位双向 I/O 口, P1 输出缓冲器能驱动4 个 TTL 逻辑电平。对 P1 端口写“ 1” 时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流( IIL)。此外, P1.0 和 P1.2 分别作定时器 /计数器 2的外部计数输入( P1.0/T2)和时器 /计数器2 的触发输入( P1.1/T2EX),具体如下表所示。在 flash 编程和校验时, P1 口接收低
27、 8位地址字节。如下表为 P1口的第二功能: 表 5-1 P1 口的第二功能 引脚号 第二功能 P1.0 T2(定时器 /计时器 T2的外部计数输入),时钟输出 P1.1 T2EX(定时器 /计时器 T2 的捕捉 /重载 触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口 : P2 口是一个具有内部上拉电阻的 8位双向 I/O 口, P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对 P2 端口写“ 1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将
28、输出电流( IIL)。 在访问外部程序存储器或用 16 位地址读取外部数据存储器时, P2 口送出高八位地址。在这种应用中, P2 口使用很强的内部上 拉发送 1。在使用 8位地址访问外部数据存储器时, P2 口输出 P2锁存器的内容。在 flash 编程和校验时, P2 口也接收高 8 位地址字节和一些控制信号。 P3 口: P3 口是一个具有内部上拉电阻的 8位双向 I/O 口, P3 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P3 端口写“ 1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流( IIL)。P3 口亦
29、作为 AT89S52 特殊功能(第二功能)使用,如下表所示。 在 flash 编程和校验时, P3 口也接收一些控制信号 。如下表为 P3口第二功能: /ALE PROG :地址锁存控制信号( ALE)是访问外部程序存储器时,锁存低 8位地址的输出脉冲。在 flash 编程时,此引脚( PROG )也用作编程输入脉冲。在一般情况下 , ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时, ALE 脉冲将会跳过。如果需要,通过将地址为 8EH 的 SFR 的第 0 位置“ 1”, ALE 操作将无效。这一位置“ 1”, ALE 仅在执 行MOVX 或 MOVC 指令时有效。否则 ALE 将被微弱拉高。这个 ALE 使能标志位(地址为 8EH的 SFR 的第 0位)的设置对微控制器处于外部执行模式下无效。 表 5-2 P3 口第二功能 引脚号 第二功能 P3.0 RXD(串行输入)