(控制理论与控制工程专业论文)智能酸碱浓度检测技术的研究及实现.pdf_第1页
(控制理论与控制工程专业论文)智能酸碱浓度检测技术的研究及实现.pdf_第2页
(控制理论与控制工程专业论文)智能酸碱浓度检测技术的研究及实现.pdf_第3页
(控制理论与控制工程专业论文)智能酸碱浓度检测技术的研究及实现.pdf_第4页
(控制理论与控制工程专业论文)智能酸碱浓度检测技术的研究及实现.pdf_第5页
已阅读5页,还剩51页未读 继续免费阅读

(控制理论与控制工程专业论文)智能酸碱浓度检测技术的研究及实现.pdf.pdf 免费下载

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

文档简介

摘要 论文设计了一台智能酸碱浓度测试仪,选用玻璃电极作传感器采用电位法测量溶液 酸碱浓度。针对影响测量准确性的三个因素:溶液温度、玻璃电极高内阻和电极偏差, 提出了解决办法。 选用p t l 0 0 铂热电阻温度传感器测量溶液温度,对玻璃电极进行补偿。采用桥路和 单运放差动放大电路对温度传感器信号检测放大,软件校正温度传感器和测量电路的非 线性,软件校准测量电路的零点和满度,消除测量电路的系统误差,提高补偿温度的测 量精度;采用高阻、低漂移运放t l c 2 2 5 4 组成高阻差动放大电路用于酸度电极信号测量。 使用高阻绝缘线连接电极,并将高阻绝缘线直接焊在加有绝缘环的e pj f 6 , j 线路板上,从而 消除电极引线、接线端子和印刷线路板漏电对放大电路输入阻抗的影响;软件校正电极 偏差,并给出校准算法。 测试仪设计有隔离的r s 4 8 5 标准串行口,通讯协议兼容研华a d a m 4 0 0 0 系列,能够直 接接入r s 4 8 5 总线网络。 实验数据表明补偿温度的测量误差小于o 2o c ,酸度的测量误差小于0 0 2 p h 。 关键词:p h 测定:玻璃电极:电位测量法:电极校正:温度补偿:测量精度:通讯协议 a b s t r a c t i nt h i sp a p e r ,a ni n t e l l i g e n ta c i d i t ym e t e ri sd e s i g n e dw h i c ht a k e sg l a s se l e c t r o d ea si t s s e n s o ra n dm e a s u r e sa c i d i t yo fs o l u t i o nt h r o u l 曲p o t e n t i o m e t r y ar e s o l u t i o ni sp u tf o r w a r d t oe l i m i n a t et h ei n f l u e n c ec a u s e db yt h r e ef a c t o r s ,i e s o l u t i o nt e m p e r a t u r e ,h i g hi n n e r i m p e d a n c eo fg l a s se l e c t r o d ea n d d e v i a t i o no fe l e c t r o d e i no r d e rt oc o m p e n s a t et h et e m p e r a t u r eo fa c i d i t ys e n s o r , e l e c t r o n i cb r i d g ea n d d i f f e r e n t i a la m p l i f i e ra r ed e s i g n e dt od e t e c ta n da m p l i f yt h es i g n a lo fp l a t i n u mt h e r m i s t o r s e n s o r ar e s o l u t i o nm e t h o di ns o f t w a r ei s a p p l i e dt oc a l i b r a t ez e r op o i n ta n df u l ls c a l eo f t h ec i r c u i t s o f t w a r ea p p r o a c ht on o n l i n e a rc o r r e c t i o nf o rs e n s o ra n dc i r c u i ti sp r e s e n t e d t h e r e f o r es y s t e me r r o ri se l i m i n a t e d ,a n dm e a s u r e m e n ta c c u r a c yo f t e m p e r a t u r ei si m p r o v e d t h es i g n a lo fa c i d i t ye l e c t r o d ei sd e t e c t e db yad i f f e r e n t i a la m p l i f i e rc i r c u i t ,w h i c hc o n s i s t s o f o p e r a t i o n a la m p l i f i e r st l c 2 2 5 4w i t hh i g hi n p u ti m p e d a n c ea n dl o w d r i f t i no r d e rt o i m p r o v et h ec i r c u i t si n p u ti m p e d a n c e ,w h i c hi sa f f e c t e db yi n s u l a t i n gr e s i s t a n c eo f e l e c t r o d el e a d i n gw i r e ,t e r m i n a l sa n dp r i n t e dc i r c u i tb o a r d ,e l e c t r o d ei sc o n n e c t e dt ot h e m e t e rt h r o u g hi n s u l a t i n gw i r eo fh i g hi m p e d a n c ew h i c hi sd i r e c t l yw e l d e di nt h ep r i n t e d c i r c u i tb o a r dw i t hi n s u l a t i n gr i n g t h ed e v i a t i o no fe l e c t r o d ei sc o r r e c t e db ys o f t w a r ea n d t h ea l g o r i t h mi sg i v e n t h em e t e ri s d e s i g n e dw i t hi s o l a t e dr s 4 8 5s e r i e si n t e r f a c ea n ds t a n d a r d c o m m u n i c a t i o np r o t o c a lc o m p a t i b l ew i t ha d a m 4 0 0 0a n dc a nb ec o n n e c t e dt oc o n t r o l n e t w o r kd i r e c t t y r e s u l t so fe x p e r i m e n t ss h o wt h a ta c c u r a c yo ft e m p e r a t u r ea n da c i d i t ya r r i v ea t 0 2 a n d 0 0 2 ) hr e s p e c t i v e l y k e yw o r d s :p hm e a s u r e m e n t ;g l a s s c a l i b r a t i o n ;t e m p e r a t u r e e l e c t r o d e ;p o t e n t i o m e t r y ;e l e c t r o d e c o m p e n s a t i o n ; m e a s u r e m e n t a c c u r a c y ;c o m m u n i c a t i o np r o e o t a l i i 智能酸碱浓度榆测技术的研究计实现 0 前言 p h 值是标志溶液酸碱浓度的基本参数,p h 值的测量在电力、环保、化工等部门被 广泛应用。随着国民经济和科学技术的不断发展,对溶液p h 值测量精度要求也越来越高。 溶液p h 值的测量可采用电位测量法、h + 离子敏感场效应晶体管( h + - i s f e t ) 测量法和 光导纤维测量法。与后两种方法相比,电位测量法采用玻璃电极作传感器,测量范围宽, 稳定性和可靠性好,精度高,是工业上应用最广泛的测量溶液p h 值的方法,论文主要研 究了电位测量法( 以玻璃电极作传感器) 。 溶液温度、玻璃电极高内阻和电极偏差是影响电位法测量准确性的主要因素,论文 深入研究了电位法测量原理和影响测量准确性的因素,提出了解决方法,并在此基础上 设计了一台智能酸碱浓度测试仪。 沦文共分六章。第一章是绪论,比较了三种测量方法的优缺点,简单介绍了影响电 位法测量准确性的因素及目前的解决方法。第二章介绍了电位法测量原理。第三章对影 响因素进行了详细分析,同时详细介绍了目前的解决方法及存在的问题,最后给出了论 文对影响因素的解决办法。第四章介绍了智能酸碱浓度测试仪的硬件系统结构。第五章 分析了测试仪软件所实现的功能,并详细介绍了软件系统的设计。第六章给出了测试仪 的实测结果。 智能酸碱浓度捡测技术的研究及实现 1 概述 1 1 课题的背景与意义 p h 是溶液酸碱浓度的标度,p h 概念由丹麦科学家索伦森于1 9 0 9 年提出u ,2 j ,其值定 义为h + 离子活度的负对数,活度表示单位体积内自由态离子的摩尔数,单位( m o l i 。) 。测 量溶液的p h 值实际上就是测量溶液h + 离子的活度。 溶液的p h 值影响溶液的物理和化学性质,因此p h 值的测量广泛应用于冶金、医药、 电力、环保和化工等部门。随着国民经济和科学技术的不断发展,对溶液p h 值测量精度 要求也越来越高p j 。 溶液p h 值测量可采用电位测量法、h + 离子敏感场效应晶体管( h + - i s f e t ) 测量法和光 导纤维测量法【4 ”。h + 离子敏感场效应晶体管( h - i s f e t ) 是一块硅晶片,它与m o s 场效应 晶体管( m o s f e t ) 的结构、输出特性和工作原理均相似。在h + - i s f e t 中,用h + 离子敏感膜 代替m o s f e t 的绝缘栅,栅极电压由参比电极通过被测溶液加在敏感膜上。当敏感膜与被 测溶液接触时,由于带电h + 离子的存在,在敏感膜与溶液界面上感应出对h + 离子敏感的 能斯特( n e r n s t ) 响应电位。这个电位控制沟道的导电性并使漏极电流发生变化,检测漏 极电流就可实现对h + 离子的测量。由于采用半导体集成电路工艺技术制作传感器,所以 r 。i s f e t 体积小、成本低、响应速度快、输出阻抗低。另一方面,h l i s f e t 的灵敏度、 长期稳定性、可靠性还需要进一步的提高1 6 _ “。光导纤维p h 传感器是通过把p h 指示剂渗 入多孑l 聚合物而形成传感器的敏感部件。当被测溶液与敏感部件接触后将改变敏感部件 的光谱特性,通过严格标定便可找出传感器光学特性与相应溶液p h 值的对应关系。测量 时光源经波长选择、集光系统进入光纤,光纤向溶液中敏感部件提供一定的激励光,敏 感部件随被测溶液p h 值的变化而产生变化的光学信号,由光探测器检测这个信号并转换 成电信号,这样通过测量敏感部件光学性能的变化便可测量对应溶液的p h 值。与传统的 电化学分析法相比,光导纤维p h 传感器具有无污染、不带电、抗电磁干扰性能强、信号 衰减小、精度高等优点;作为光传输载体的光纤具有良好的化学和热稳定性,可用于强 酸强碱、高温和易燃易爆等恶劣环境。但目前光导纤维p h 传感器在实际应用中存在测量 范围小的突出问题,p h 值测量范围般为3 5 ,原因在于现有的p h 指示剂本身对p h 敏 感的范围不大【9 。1 。与上述两种测量方法相比,电位测量法采用玻璃电极作传感器,测 量范围宽,稳定性和可靠性好,精度高。 电位测量法是工业上应用最广泛的溶液p h 值测量方法,它基于原电池原理。测量电 极、参比电极和待测溶液组成原电池,原电池的输出电势与溶液中i + 离子活度的关系符 合能斯特( n e r n s t ) 方程,通过测量原电池输出电势即可测量溶液的p h 值。玻璃电极是应 用最广泛的测量电极,具有测量范围宽、重复性好、稳定性高、精度高等优点。当被测 溶液含有腐蚀玻璃的氢氟酸时一般用锑电极替换玻璃电极,但锑电极的性能不如玻璃电 极。本课题主要研究以玻璃电极作传感器的电位测量法。电位法( 传感器为玻璃电极) 智能酸碱浓度检测技术的研究及实现 1 原电池输出电势与待测溶液的p h 值之间为线性关系,但斜率和截距受溶液温度影响, 因此要测量溶液温度对电极进行温度补偿。 2 玻璃电极内阻为1 0 8 1 0 9 q ,为提高测量精度,要求测量电路输入阻抗足够高。 3 由于玻璃电极的制造工艺等原因,电极参数实际值与理论值会有差异;实际值随着 电极的老化会改变。因此测量前必须标定电极参数,校正电极偏差。 寻求克服上述因素影响、提高溶液p h 值测量精度的方法,成为技术研究人员关注 和研究的重要课题。 1 2 国内外研究概况和发展趋势 对于温度补偿问题,目前通常选用p t i o o 铂热电阻测量溶液温度对电极进行温度 补偿,由于p t l 0 0 铂热电阻温度传感器精度足够高,因此补偿温度的测量精度主要取决 于测量电路的精度。常用的测温电路有单臂电桥、四臂电桥等。如何消除测量电路误差, 提高补偿温度测量精度是温度补偿中要解决的问题。 对于高输入阻抗电极信号测量电路设计问题,目前普遍选用高阻运放组成差动放大 电路,电极输出信号与差动放大电路连成同相放大方式,利用运放的高阻来提高测量电 路的输入阻抗。如何进一步提高这种测量电路的输入阻抗是设计电极信号测量电路中面 临的问题。 对于电极参数标定问题,标定分“一点定位”和“两点定位”。“一点定位”只用一 个标准样溶液标定出截距:“两点定位”用两个标准样溶液标定出截距,同时还标定出斜 率,较之“一点定标”要准确,目前普遍采用“两点定位”标定电极参数,校正电极偏 差。 近年来,自动化技术正从分布控制系统( d e s ) 向现场总线控制系统( f c s ) 发展”,较 有影响的总线有:c a n ,l o n w o r k s ,p r o f i b u s ,f f ,r s 4 8 5 等。目前开发的溶液酸碱浓度测 量仪表大多不具有数字通讯功能,不支持现场总线,少部分设计有r s 4 8 5 接口,但通讯 协议与标准协议不兼容,不被组态软件支持。具有数字通讯功能、支持现场总线的工业 测量仪表是一种发展趋势。 随着传感器技术的进步和微处理机的应用,酸碱浓度测试仪表的发展十分迅速。国 外生产的酸碱浓度测试仪表系列有美国r o s e m o u n t 公司的1 0 5 4 系列、2 7 0 0 系列、2 0 8 1 系列;美国h o n e y w e l l 公司的9 7 8 2 系列、7 0 7 9 系列;法国p o l y m e t r o m 公司的9 1 3 5 系 列;美国g r e a tl a k e s 公司的6 7 2 系列;瑞士m e t t l e rt o l e d o 公司的i n g o l d 2 5 0 0 系列、 2 7 0 0 系列;日本横河公司的p h 4 0 0 g 系列、p h 2 0 0 系列等1 3 “。国内工业酸碱浓度测试仪 表厂家近几年已涌现出二十几家,产品被广泛使用的有上海雷磁仪表厂的p h g 一2 1 7 系列、 重庆分析仪器有限公司的7 0 2 2 系列、武汉2 6 5 厂的p h g 8 8 系列、山东招远自动化仪表厂 的p h g 一9 2 0 0 系列等【h 。目前国外生产的酸碱浓度测试仪表精度可达0 0 0 1 p h ,国内生 产的酸碱浓度测试仪表精度一般在0 5 o ,l p h 之间。 1 3 论文的主要工作 论文的主要研究工作如下: 2 智能酸碱浓度检测技术的研究及实现 深入研究电位法测量溶液酸碱浓度的原理,针对影响测量准确性的因素,提出解决 方法,并在此基础上设计具有数据通讯功能,支持现场总线的智能酸碱浓度测试仪。 对于温度补偿问题,测试仪选用p t l 0 0 铂热电阻温度传感器测量溶液温度,采用四 臂电桥和单运放差动放大电路对温度传感器信号检测放大,软件校正传感器和测量电路 的非线性,软件校准测量电路的零点和满度,消除测量电路的系统误差,提高补偿温度 的测量精度。 对于高输入阻抗电极信号测量电路设计问题,测试仪选用高阻、低漂移运放t l c 2 2 5 4 设计电极信号测量电路,由三个运放组成高阻差动放大电路,电极输出信号与差动放大 电路连成同相放大方式。电极引线的绝缘电阻、线路板上电极引线的连接端子及印刷线 路板的漏电均影响测量电路的输入阻抗,设计中采取措施减小漏电,进一步提高了这种 测量电路的输入阻抗。为消除电极引线的绝缘电阻漏电,用高阻绝缘线替换普通引线将 电极输出信号引入印刷线路板;为了防止线路板上电极引线的连接端子漏电,设计中将 电极引线直接焊在了印刷线路板上,不需要连接端子连接:为消除印刷电路板引线间漏 电对测量电路输入阻抗的影响,布线时在印刷电路板的正反面均用称为绝缘环的环线将 电极引线与线路板的连接点、运放的正输入端包围,并与运放的负输入端相连,利用运 放正负输入端等电位特性,输入信号在线路板上对其他部件的漏电均由绝缘环提供,而 对输入信号没有影响,从而有效地提高了放大电路的输入阻抗,消除了电路板绝缘电阻 漏电对放大电路输入阻抗的影响。 对于电极参数标定问题,测试仪选用两种p h 值己知的标准缓冲液采用“两点定位” 标定电极参数,校正电极偏差。标定出的参数存储在仪器的e 2 p r o m 中。 智能酸碱浓度测试仪以w 7 8 e 5 8 单片机为核心,设计有模拟量输入电路、模拟量输出 电路、基于r s 4 8 5 的通讯电路、看门狗和e 2 p r o m 电路等。软件系统由主程序、中断服 务程序和子程序组成。仪器具有如下设计特点: t 利用大规模集成电路技术,选用s p i 串行接口部件,全贴片,电路简单,结构轻巧, 体积小。 2 ,全c 1 0 s 集成电路,功耗低。 3 设计有隔离的r s 4 8 5 标准串行口,通讯协议兼容研华a d a m 4 0 0 0 系列,能够直接接入 r s 4 8 5 总线网络。 4 具有电源监视电路和看门狗电路,保证恶劣环境下可靠运行。 5 输入输出端加有保护电路,误加高压不会损坏仪器。 6 采取光电隔离技术将供电电源与测量电路隔离以增强可靠性和抗干扰能力。 7 测试仪内取消了电位计,用软件校准测量电路的零点和满度,消除测量电路系统误 差,用软件校正传感器和测量电路的非线性,软件校正测量电极偏差,软件滤波抑 制随机干扰。 8 具有多种智能化功能,软件设定各种参数,选择显示,设置测试仪地址、滤波次数、 通讯波特率、隔离d a c 电流的输出范围等。 9 软件实现了测试仪的自校验,e 2 p r o m 中存储工作参数,在数据的末尾加两个字节 c r c 一1 6 校验。仪器自动检查数据是否丢失,如果丢失从备份区域自动恢复数据。 智能酸碱浓度检测技术的研究及实现 2 电位法测量溶液酸碱浓度的原理 插入电解质溶液中的两导电电极会产生输出电势,且大小与溶液中某种离子浓度的 关系服从能斯特( n e r n s t ) 方程,这就是化学中的原电池现象。因此将测量电极、参比电 极插入待测溶液,两电极与待测溶液组成原电池,通过测量原电池输出电势就可测量溶 液中某种离子浓度。但在这种方法中,输出电势还受溶液温度影响,因此要同时测量溶 液温度对电极进行温度补偿”】。 2 1 原电池和电极电位 2 1 1 原电池 借某种化学反应的进行来获得电流的装置叫做原电池4 ”】。原电池在外电路接通时 就产生电流,即把它的化学能转化为电能。当原电池在断路时,其极间的电位差称为原 电池的电动势,其数值等于原电池各相间界面上所产生的电位的代数和。电池的表示符 号多习惯于把阳极和有关的溶液体系写在左边,每一条竖线代表一个不同的相间电位, 双竖线代表液接电位己被盐桥消除,( x m ) 、( y m ) 代表溶液的某种浓度。丹聂耳电池是一 个典型的原电池。图2 1 是它的工作原理图。 电池表达式为 在阳极上 在阴极上: 图2 - l 丹聂耳电池 f i g 2 - lt a n i e rb a t t e r y z n z n s 0 4 ( x m ) ic u s 0 4 ( y m ) 1 c u 乃2 - - 劢+ 2 + 2 e c “+ 2 + 2 e - - c “山 电极反应为: z h + c u s q c u + z n s o 。 原电池分为可逆电池和不可逆电池。可逆电池要求电极上的反应必须是可逆的,即 智能陵碱浓度检测技术的研究及实现 当相反方向的电流通过电极时所进行的电极反应必须是原来的逆反应,只有可逆电池爿 能用经典热力学来处理。 2 1 2 电极电位 任何一种金属插入具有该金属离子的电解质溶液中时,在金属和溶液的晃面上产生 双电层,相应存在一定的电势差。我们把这种电势差称为该金属的电极电位1 1 6 1 。 l 、电极电位的形成 任何金属导体都含有等量的金属离子和自由电子,当金属插入具有该金属离子的溶液 中时,金属离子可以从金属晶格进入紧贴金属的溶液中,将电子留在金属上使其表面带 负电,金属表面的负电荷和转入溶液中的金属离子相互作用而形成双电层;相反金属离 子也可以从溶液跑到晶格中使金属表面带上正电荷,这些正电荷吸引溶液中过剩的阴离 子而形成双电层,实际上这两种倾向是同时存在的只不过在一定的情况下一种的倾向是 主要的罢了,究竟哪一种是主要的,取决于金属离子在金属相( i ) 和溶液相( i i ) 的化学 势u 。如a g 插入a g n 0 。溶液中,则因u 。+ ( i ) ) 为定界符;从表示设备十六进制地址码 结束标志是回车符( c r ) 。 5 1 3 通过r s 4 8 5 总线网络读取测试仪数据 如图5 - 3 所示,为测试仪与计算机通过串行口连接图。计算机的串行口1 ( c o m l ) 或 串行口2 ( c o m 2 ) 通过r s 2 3 2 到r s 4 8 5 转换器( 可以选用a d a m 4 5 2 0 ) 转换成为r s 4 8 5 标准,各个测试仪以r s 4 8 5 总线形式和计算机相连。+ 2 4 v 电源也对应连接。一般一个 系统可直接连接3 2 个模块,超过3 2 个需要加中继器。在工作状态下,主机仅是从测试 仪读取数据,即主机发送读数据命令串,测试仪返回当前溶液p h 值数据。测试仪响应 时间一般小于7 0 m s ( 9 6 0 0 波特时) 。若超过7 0 m s 时间没有响应,可以重发命令。连续 三次没有响应,进行错误告警。 图5 - 3 测试仪与计算机的连接图 f ig 5 - 3c o n n e c ti o no fm e t e r sw i t hc o m p u t e r 5 1 4 通过键盘完成的各种设置功能 参数设置和功能设定时,可通过九针d 型插给测试仪连上键盘和四位l c i ) 显示器。 共有4 个按键,它们分别是: v :功能选择键 e :回车键 l e f t :光标移动键 u p :置数键 根据测试仪的参数结构和功能共设2 0 项键盘功能,如表5 - 4 所示 智能酸碱浓度检测技术的研究及实现 表5 - 4 测试仪键盘功能 t a b ,5 - 4k e yf u n c t i o n so fm e t e r 功能项功能 设置l c d 显示溶液酸度 设置l c d 显示溶液温度 设胃l c d 显示酸度通道毫伏 设置l c d 显示温度通道毫伏 设器测试仪地址 设置测试仪采样滤波次数 设置测试仪通讯波特率 设置输出2 0 m a 电流时对应的溶液p h 值 设置输出4 m a 电流时对应的溶液p h 值 设置标准缓冲液l 的酸度值p h l 设置标准缓冲液2 的酸度值p h 2 设置测试仪的工程零点 记录温度通道零点 记录温度通道满度 纪录酸度通道零点 记录酸度通道满度 纪录标准缓冲溶液1 对应的电极电势e 1 纪录标准缓冲溶液2 对应的电极电势e 2 用系统默认参数初始化e 2 p r o m 参数区 测试仪密码确认 5 2 测试仪的软件系统设计 软件系统由主程序、中断服务程序和子程序组成,采用f r a n k l i nc 5 1 语言编程,模 块化结构,分级驱动。每个子程序严格限制入口条件和所有数据或条件的出口,以增强 程序的运行可靠性,可读性和开放性。软件系统设计流程为:先设计各硬件电路驱动程 序,调通硬件电路;在此基础上,设计包含各功能模块的主程序;最后实现各功能模块。 5 2 1 测试仪硬件电路驱动程序设计 l 、看门狗和串行e 2 p r o m 电路驱动程序设计 测试仪中看门狗和串行e 2 p r o m 电路由一片x 2 5 0 4 5 集成电路实现,它与单片机通 过s p i 串行总线握手。驱动程序分别实现了置看门狗定时时间并启动看门狗、复位看门 狗、向e 2 p r o m 写数据、从e 2 p r o m 读数据、检查e 2 p r o m 数据、初始化e 2 p r o m 、 拷贝e 2 p r o m 等功能。各子函数的函数名、入口参数、返回值和实现的功能如下: u n s i g n e dc h a rr db y t e ( v o i d ) : 0 2 ,4 5 6 7 8 9 m 坨n h :2 m 螺m 智能陵碱浓度检测技术的研究及实现 从e 2 p r o m 读出一个字节数据 v o i dw r t _ b y t e ( u n s i g n e dc h a rb y t e ) : 向e 2 p r o m 写入一个字节数据 u n s i g n e dc h a re e pr d s r ( v o i d ) : 读e 2 p r o m 的状态寄存器 v o i de e p _ w r t s r ( u n s i g n e dc h a 】七: 设置e 2 p r o m 的状态寄存器 v o i de e p _ w r e n ( v o i d l : 打开e 2 p r o m 的写保护,使能e 2 p r o m 的写操作 u n s i g n e dc h a rr d _ e e p ( u n s i g n e dc h a rx d a t a + a d d r e s s ) : 从e 2 p r o m 的指定地址读出一个字节数据 v o i dw r t _ e e p ( u n s i g n e dc h a rb y t e ,u n s i g n e dc h a rx d a t a4 a d d r e s s ) 向e 2 p r o m 的指定地址写入一个字节数据 v o i dw a t c h d o g _ t i m e 0 : 设置看门狗定时时间并启动看门狗 v o i dc l e a r _ w a t c h d o g ( ) : 复位看门狗 u n s i g n e di n tl o a d _ i n t ( u n s i g n e dc h a rx d a t a + a d d r e s s ) : 从e 2 p r o m 的指定地址读出一个整型数据 图5 4 看门狗和串行酽p r o m 驱动子函数间的调用 f i g5 - 4c a l l i n gr e l a t i o n so fd r i v ef u n c t i o n sf o rw a t c h d o ga n de 2 p r o m ;o i ds a v e i n t ( u n s i g n e di n ts a v e d a t a ,u n s i g n e dc h a rx d a t a + a d d r e s s ) : 向e 2 p r o m 的指定地址写入一个整型数据 v o i dl o a d _ l o n g ( v o i d4 s a v e d a t a u n s i g n e dc h a rx d a t a + a d d r e s s ) : 从e 2 p r o m 的指定地址读出一个长整型数据或一个浮点型数据 v o i ds a v el o n g ( v o i d ;s a v e d a t a ,u n s i g n e dc h a rx d a t a + a d d r e s s ) : 向e 2 p r o m 的指定地址写入一个长整型数据或一个浮点型数据 u n s i g n e di n tc r c1 6 ( u n s i g n e dc h a rb y t e ,u n s i g n e di n tc r c s u m ) : 智能酸碱浓度捡测技术的研究及实现 计算e 2 p r o m 参数区的c r c1 6 校验码 v o i da n s w e r _ a a ( v o i d ) 计算参数区的c r c1 6 校验码,并将新校验码分别写入两个参数区。 u n s i g n e di n tc h e c ke e p ( u n s i g n e dc h a rx d a t a8 a d d r e s s ) : 检查e 2 p r o m 参数区数据是否被破坏,数据正确返回i ,数据被破坏返回0 v o i di n i te e p ( u n s i g n e dc h a rx d a t a + p a r a l ,u n s i g n e dc h a rx d a t a4 p a r a 2 ) : 用默认参数恢复e 2 p r o m 中的两个参数区 v o i dc o p y _ e e p ( u n s i g n e dc h a rx d a t a + p a r a l ,t m s i g n e dc h a rx d a t a4 p a r a 2 ) : 将e 2 p r o m 中一个参数区的数据拷贝到另一个参数区 各子函数之间的调用关系如图5 - 4 所示( 箭头从被调函数指向调用函数) 。 函数w a _ b y t e ( ) 和r db y t e 0 被其他函数调用,是编写其他函数的基础,它们分别实现 了向e 2 p r o m 写入一个字节和读出一个字节。它们的源程序如下: v o i dw n _ b y t e ( u n s i g n e dc h a rb y t e ) u n s i g n e dc h a ri ; f o r ( i = o ;i 8 ;i + + ) e e p _ s k 2 0 ; a c c = b y t e ; e e pd i = a c c 一7 ; n o p _ 0 ; _ n o p 一( ) ; _ n o p _ o ; _ h o p _ 0 ; e e p _ s k = l ; b y t e 2 1 ; ) ) u n s i g n e dc h a rr d _ b y t e ( v o i d ) u n s i g n e dc h a ri , t e m p ; f o r ( i = o ;i 8 ;i + + ) e e p _ s k = 1 ; n o p _ 0 ; 一n o p _ 0 ; e e p _ s k = 0 ; t e m p = 5 : t e m p & = o x f f f f f f 璁; t e m p i 2 ( r s t & 0 x 7 ) ; r e t u r nt e m p ; ) 程序调用函数r e a da d c 0 得到一个长整型返回值,1 8 位转换结果包含在这个返回 值中,程序将得到的1 8 位转换结果规格化为长整型数据后返回。 3 、r s 4 8 5 通讯电路驱动程序设计 测试仪的r s 4 8 5 总线发送接收器选用m a x 4 8 5 芯片。主机发给测试仪的命令串、 测试仪回复的响应串都以字节流的形式在r s 4 8 5 总线上传送,串结束符为回车符( c r ) 。 r s 4 8 5 通讯电路驱动程序流程如下: 在程序中定义全局变量 u n s i g n e dc h a r i d a t as i o b u f f e r 1 5 :命令串和响应串的接受发送缓冲区 u n s i g n e dc h a ri d a t as i o - p o i n t e r :接受发送缓冲区指针 b i ts i or e c e i v eo k :命令串接受完标志位 u n s i g n e dc h a ri d a t as l a v e n u m b e :测试仪地址 u n s i g n e dc h a r 。i d a t ab a u dr a t e :通讯波特率代码 智能酸碱浓度榆测技1 术的研究及实现 口 皇 足接收中 断呜? 接收字符是 结束符吗? y + 置位接收完 标志位,缓 冲区指针清零 出口 是发送中 断吗? o + 响应串发送 完了吗? y 缓冲区指针 清零,置总 线为接收态 图5 - 6 串行通讯中断服务程序流程 f i g 5 - 6i n t e r r u p tp r o g r a mf l o wc h a r tf o rs e r i e sc o m m u n i c a t i o i l 上电复位后,执行初始化操作:从e 2 p r o m 中装载测试仪地址、波特率代码等工作参数, 定时器t 2 做波特率发生器,根据波特率代码置定时器t 2 重装载值,初始化串口,m a x 4 8 5 处于接收态,开中断,清命令串接收完标志位,清串接受发送缓冲区,清串缓冲区指针。 单片机以中断方式接收主机通过串行口发来的命令串,中断程序将命令串字节流顺序放 于串缓冲区中,收到命令串结束符后中断程序置位命令串接收标志位,并复位串缓冲区指 针。主程序循环检测命令串接收完标志位,如置位、清标志位后,分析串缓冲区数据,如 为发往本机的命令则根据主机命令完成相应操作,响应串的发送也是通过中断程序完成 的,相应操作完成后主程序将响应串存于缓冲区,然后启动发送命令。图5 - 6 为串行通 讯中断程序流程图。 4 、l c d 显示电路驱动程序设计 测试仪选用了四位串行l c d 显示模块e d m i1 9 0 ,驱动程序流程如下: 在程序中定义全局变量 u n s i g n e dc h a ri d a t ad i s m 4 :显示缓冲区 u n s i g n e dc h a r c o d ed i st a b l e = 0 x 1 1 ,0 x d d ,0 x 8 3 ,0 x 8 9 ,0 x 4 d ,0 x 2 9 ,0 x 2 1 ,o x 9 d , 0 x 0 1 ,o x 0 9 ,0 x f f ,0 x 0 7 ,0 x 4 5 ,0 x f b ,0 x e f ,0 x 2 7 :显示字 符表,测试仪共用到1 6 个字符,显示字符表定义了它们在e d m i1 9 0 中的7 段式字形编码。 显示缓冲区中的字节与l c d 显示位一一对应,字节格式如表5 - 5 。 d i sp o i n t e r : 显示字符表指针。指向显示字符表,程序通过此指针在显示字符表 中找到显示在l c d 上的字符的字形编码,向l c d 写入的数据是此字符的字形编码。 d i p :小数点位。d i p = 0 时,l c d 对应位的小数点不显示;d i p = 时,l c d 对应位 的小数点显示。 f l a s h : 字符闪烁位。f l a s h = 0 时l c d 对应字符不闪烁;f l a s h = l 时l c d 对应字符 一字区 | 1 冲旷 。一 甄 智能酸碱浓度检测技术的研究及实现 闪烁。l c d 显示电路驱动程序流程如下: 单片机使用定时器t l 定时刷新显示,上电后,初始化定时器t 1 为工作方式1 ,初 表5 - 5 显示缓冲区字节格式 t a b 5 - 5d is p l a yb u f f e rb y t ef o r m a t d 7 d 6d 5d 4 d 0 f l a s h d i p d i sp o i n t e r 值为零。测试仪的晶振为1 2 m h z ,定时器t 1 从0 计数,计数到6 5 5 3 5 溢出触发中断,因 此显示刷新频率为1 5 次秒。显示缓冲区中每字节的显示字符表指针指向正显示字符的 字形编码,定时器t l 的中断服务程序通过显示字符表指针得到显示字符的字形编码,将 得到的字形编码依次写入l c d 模块,刷新显示。如显示缓冲区某字节的d i p = l ,则向l c d 写数据时点亮对应位的小数点;如显示缓冲区某字节的f l a s h = l ,则奇数次刷新显示时 对应位不显示,偶数次刷新显示时对应位显示,从而实现对应位的闪烁显示效果。 5 2 2 测试仪软件主程序设计 测试仪主程序流程如图5 7 所示。上电复位后,单片机执行初始化操作:检查 图5 7 测试仪主程序流程 , f i g 5 - 7m a i np r o g r a mf l o w e 2 p r o m 参数区数据是否被破坏,如一个参数区数据被破坏,则用另一个参数区数据恢 智能酸碱浓度幢测技术的研究及实现 复被破坏的参数区;如两个参数区数据都被破坏,则用系统默认 参数恢复两个参数区。然后从e 2 p r o m 中装载测试仪地址、波特率代码等工作 参数,置定时器t 1 工作方式,开定时器t 1 中断,并启动定时器t 1 。定时器t 2 做波特 率发生器,置定时器t 2 为波特率发生器方式,根据波特率代码置定时器t 2 重装载值, 开定时器t 2 中断,并启动定时器t 2 。初始化串口,r s 4 8 5 总线处于接收态,开中断,启 动a d c ,至此完成初始化工作。初始化完成后程序进入一个大循环,在循环中依次执行 三个程序模块:数据采集与处理模块、通讯模块、键盘功能处理模块。单片机读取m a x l 3 2 的e o c 引脚,判断一次转换是否结束,如结束程序进入数据采集与处理模块,计算待侧 溶液p h 值,存于内存中,否则跳过此模块向下

温馨提示

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

评论

0/150

提交评论