《本科毕业设计---基于单片机的tds水质测试仪设计.doc》由会员分享,可在线阅读,更多相关《本科毕业设计---基于单片机的tds水质测试仪设计.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、陕西理工学院毕业设计基于单片机的TDS水质测试仪设计王春(陕理工物理与电信工程学院电子信息工程专业1103班,陕西 汉中,723000)指导老师:秦伟摘要本设计通过研究分析TDS(溶解性总固体)测量的原理,设计了一款以STC89C52单片机为核心的水质测试仪。本设计通过电导率测量电路实现电导率信号的采集,并采用温度传感器进行温度测量,使用温度补偿方法减小温度对电导率测量值的影响,通过单片机程序进行相关计算得出TDS值。该设计包括信号采集电路、按键电路、温度测量电路、数码管显示电路。该水质测试仪结构简单,操作容易,低成本,测量的TDS值对帮助人们了解水质情况起到了非常重要的作用。关键字STC89
2、C52,溶解性总固体,水质测试IThe design of TDS water quality tester based on SCMWang Chun(Grade03,Class11,Major Electronic Information Engineering,College of physics and telecommunication engineering,Shaanxi University of Technology,Hanzhong 723000,Shaanxi)Tutor:Qin WeiAbstract This design studies the principle
3、of Total Dissolved Solids (TDS) measurement.And it designs a water quality tester which takes STC89C52 Single Chip Microcomputer (SCM) as the core.The design collects the electrical conductivity signal by electrical conductivity measurement circuit .And it uses temperature sensor to measure temperat
4、ure. And it reduces the influence of temperature on the electric conductivity measurement by using the temperature compensation method.And through the SCM program for correlation calculation to calculate the value of TDS.The design includes signal acquisition circuit, key circuit, temperature measur
5、ement circuit and digital tube display circuit.The water quality testing instrument has the advantages of simple structure, easy operation, low cost, whichplay a very important role in helping people to understand the situation of water quality .keywordsSTC89C52, TDS, water quality testing目录引言11设计内容
6、与方案21.1设计内容与要求21.2方案论证21.3方案选择2 1.3.1单片机的选择31.3.2温度传感器的选择32系统硬件电路设计42.1单片机最小系统42.1.1单片机STC89C52简介42.1.2单片机最小系统42.2 TDS值测量电路52.2.1 TDS值测量原理52.2.2 TDS测量电路62.3温度补偿原理与电路82.3.1温度补偿原理82.3.2温度测量电路82.4数码管显示电路92.4.1共阳极数码管工作原理92.4.2数码管显示电路102.5按键电路102.6总体电路图113系统软件设计123.1软件设计的整体思想123.2总流程图与各部分流程图123.2.1总流程图12
7、3.2.2 电导率测量133.2.3 温度测量流程图143.2.4 TDS测量流程图153.2.5 按键电路流程图163.2.6 数码管显示流程图174软硬件调试184.1 软件调试184.2 硬件调试18结论19展望20致谢21参考文献22引言 水是生命之源,人类在生产生活中都离不开水。在地球水圈中,水资源的总量为137,其中海水约占总量的973,淡水仅占其27。淡水所占比例不但少,而且大部分分布在地球南北极冰雪覆盖下的冰川、冰盖中,而可利用的淡水资源就只有河流、淡水湖和地下水的一部分,还不到总量的11。现如今随着社会经济的发展、科学的进步和人民生活水平的提高,环境污染越来越严重,其中,水环
8、境污染最为严重。在水资源日益短缺的今天,水质问题受到了更多地关注,因此对水质进行测试能使我们更好地保护水资源,保证合格的水质,这对正常生产、保证产品质量和人们健康具有非常重要的意义。TDS是英文total dissolved solids的缩写,中文解释为溶解性总固体,又称总含盐量,定义为水中含有各种溶解性矿物盐类的总量,它包含无机盐和有机物的总量,测量单位为毫克/升(1mg/L=1ppm),它表明1升水中溶有多少毫克溶解性总固体,或者说1升水中的离子总量。通俗的说,TDS值代表了水中溶解物杂质含量,TDS值越大,水中溶解物杂质越多,说明水中的可导电物质的杂质含量大。就自来水而言,TDS值越高
9、越表明水不纯(不考虑有机物污染的前提)。通过检测溶解性总固体(TDS),可以分析水的总矿化度。TDS水质测试仪就是一种通过测量水的电导率来反映水质矿化程度的仪器。本设计研究的TDS水质测试仪主要对检测溶解于水中的总固体含量从而达到对水质进行检测试的仪器,该仪器是通过测量水的电导率来间接的反映TDS值。水的导电性越好,TDS值越大。理论上相同的水质不同的温度下的TDS值是一致的,而电导率与TDS值却是不一样的,温度影响溶液的电导率的。要求同样的水质不同的温度下测定的值都要一致,所以要精确测量不同水质不同水温下的TDS值,必须有温度补偿,通过测定的水温来进行TDS值的校正。目前市场上的TDS检测都
10、是采用探针的方式,采用直流的方式,直接加电压于探针两极,测定两电极间的电压,得出电导率,再通过计算得出水的TDS值2。本设计研究的TDS水质测试仪只能检测到移动的电离子。随着社会的发展和科学的进步,TDS水质测试仪的发展越来越完善,它在保证性能的基础上简化了功能,从而具有了特别强的价格优势,环境适应性强,清晰的显示,简易的操作和优良的测试性能使其具有很高的性价比。1设计内容与方案1.1设计内容与要求本设计通过研究分析TDS测量原理,选择单片机作为系统的控制核心,通过电导率测量电路中的探头实现电导率信号的采集,并采用温度传感器进行温度测量,通过温度补偿方法减小温度对电导率测量值的影响,从而提高水
11、质测量精度,最后将测量值显示在数码管上。设计要求:(1) 工作温度范围0-80,测量范围为0-9999ppm,测量误差2。(2) 能够锁定检测数据,便于读取。(3) 测量范围内尽一步提高测量精度。1.2方案论证方案一: 电桥测量法 TDS测量电路 数码管显示电路 时钟电路 单片机 复位电路 温度测量电路 声光报警电路 该方案采用的是用电桥测量法测量水的电导率,这种测量方法是指电极和被测溶液的等效阻抗构成一个平衡或不平衡电桥的桥臂,电桥输出的是被测溶液的电导率的变化情况。这种方法虽然灵敏度高,但是测量范围较小。时钟电路和复位电路组成单片机最小系统。声光报警电路用于提醒数据测量成功,温度补偿电路进
12、行数据校正,数码管显示电路显示测量数据。方案二: 频率法 TDS测量电路 单片机最小系统电路 单片机 数码管显示电路 按键电路 温度测量电路该方案采用的是频率法测电导率,该方法是把电极和被测溶液的等效电阻作为一个多谐振荡电路的阻抗元件,将被测溶液电导率的变化转化成多谐振荡电路的输出频率。该方法成本低,容易实现。按键电路便于锁存测量值。 1.3方案选择有以上两个方案可以看出,方案一用电桥方法测量电导率,测量范围较小,而设计要求测量范围较大,所以方案一的电桥法不能满足要求。方案二所用的频率法测溶液的电导率比较简单,成本低廉,易于实现。在方案一中,声光报警电路的实用性不是很大,因此为了设计成本和简便
13、性考虑可以去掉声光报警电路,加上按键电路,可以方便的对测量值进行锁存,更加满足设计要求。综上所述,本设计选择方案二。1.3.1单片机的选择方案一:核心器件采用AT89C51单片机,AT89C51芯片有4K字节的内部FLASH PERAM,可以在3V的低压下工作,而且该芯片与MCS-51系列单片机完全兼容,但是该芯片运用于电路设计中时由于没有具备ISP在线编程技术,所以当在对电路进行调试时,由于对错误的程序修改或对程序加入新增功能需要烧入程序时,需要拔插芯片进行烧制程序,而对芯片的多次拔插会对芯片造成一定的损坏3。方案二:核心器件采用STC公司的STC89C52单片机作为处理器。该芯片沿用了经典
14、的MCS-51内核,并且在MCS-51基础上做了很多改进;该芯片指令代码完全兼容传统的8051单片机;该芯片有12时钟/机器周期和6时钟/机器周期可以任选,还具有8k字节可编程FLash存储器和512字节 RAM;该芯片不需要专用编程器或专用仿真器,可以直接使用串口下载。相较于传统的51单片机,STC89C52的综合性能更高4。由于本设计需要较高的处理速度和较强的抗干扰性能,因此选择STC89C52作为核心器件。STC89C52作为一款高性能的CMOS 8位微控制器可以满足这一要求。1.3.2温度传感器的选择 DS18B20数字温度传感器是DALLAS半导体公司生产的一线式智能数字温度传感器,
15、是世界上首片支持“一线总线”接口的温度传感器。新型数字温度传感器DS18B20 具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果5。 由于本设计需要测量液体的温度,需要将温度传感器浸入被测溶液中,所以需要选择防水型的DS18B20温度传感器。2系统硬件电路设计本设计硬件电路系统主要由TDS测量电路,时钟电路,复位电路,按键电路,温度测量电路,数码管显示电路组成。其中时钟电路、复位电路和单片机组成单片机最小系统。2.1单片机最小系统2.1.1单片机STC89C52简介。STC89C52使用经典MCS-51内核,但在其原来基础上做了很多改进使得芯片
16、具有传统51单片机不具备的功能,而且该单片机与工业80C51产品的指令代码和引脚完全兼容。STC89C52具有以下标准功能:8k字节Flash存储器,512字节RAM,32位I/O口线,看门狗定时器,内置4 KB带电可擦可编程只读存储器(EEPROM),MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工
17、作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选6。STC89C52的引脚结构图如图2.1所示。图2.1 STC89C52引脚图VCC:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,即地址/数据总线复用口,名称为P0.0-P0.7。 P1口:P1口是一个带内部上拉电阻的8位双向I/O口,名称为P1.0-P1.7。 P2口:P2口是一个带有内部上拉电阻的8位双向I/O口,名称为P2.0-P2.7。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口,名称为P3.0-P3.7。RST:复位输出。当振荡器工作时,RST引脚出现两个机器周期以上高电平
18、将使单片机复位,复位后程序计数器PC=0000H。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。2.1.2单片机最小系统单片机的最小系统应包含单片机、电源电路、时钟电路和复位电路等,包含的引脚有VCC,GND,XTAL1,XTAL2,RST,/VPP7。图2.2为单片机最小系统。 图2.2 单片机最小系统STC89C52使用12MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间,该电路选择22pF的电容。时钟电路的主要任务是给单片机STC89C52的正常工作提供一个
19、稳定的时钟信号,单片机在这个时钟信号的节奏下逐个地执行指令。单片机的时钟信号的产生方式有两种,一种是外部时钟方式,另一种是内部时钟方式。外部时钟方式是把已有的时钟信号从XTAL1或XTAL2送入单片机,该方式一般用于有多个单片机的情况,所以本设计中时钟电路采用的是内部时钟方式,选用12M的晶振和两个22pF的电容与片内的高增益反相放大器构成一个自激振荡器。 STC89系列单片机为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路,这样可以保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态。当单片机系统
20、在运行中,受到干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。为了保证单片机系统中的电路能稳定可靠工作,复位能可靠工作,复位电路是不可或缺的一部分,复位电路包括手动复位和上电复位。单片机在开始工作时都需要复位,这样就可以使整个系统处于确定的初始状态,从初始状态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统工作状态正常,振荡器稳定后,如果RST引脚上有一个高电平并且保持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。2.2 TDS值测量电路2.2.1 TDS值测量原理TDS表明1升水中溶有多少毫克溶解性总固体,或者说1升
21、水中含有的离子总量。而本设计的TDS值通过测量被测溶液的电导率计算得出。电导率是表示物质导电性能的物理指标。电导率越大物质的导电性能越强,相应的电阻就越小,反之物质导电性能越小,电阻越大,电导率也越小。溶液的电导率等于溶液中各种离子电导率之和。在水样经过过滤后,在一定温度下烘干所得的固体残渣,其中包括不易挥发的可溶性盐类、有机物及能通过过滤器的不溶解微粒等,都称为溶解性总固体。导体的导电能力与导体本身的自由电荷在电场作用下的运动有关,所以其导电能力与导体的性质及它的长度和横截面积有关。其关系式为: (2.1)式(2.1)中,R为电阻,L为导体有效长度,S为导体的有效横截面积,为电阻率。而电导
22、(2.2)令,则我们称K为电导率,是电阻率的倒数。令,所以 (J为电导池常数) (2.3) 电导率K的单位为每厘米西门子,符号为Scm-1.电导率是指导体长度为1cm,横截面积为1cm2所具有的电导值,对电解质导体来说相当于1cm3的溶液再相距1cm的两电极间所具有的电导量8。测量溶液时,由于水质测试仪的确定,使得测量仪器探针的有效长度L和有效横截面积A不变,探针之间水的体积就可以固定,通过式(2.4)可得到电导率K。 (2.4)由于TDS与电导率之间存在显著地相关关系,由资料9可知,溶解固体与电导之间的关系可用下面的经验公式估算: (2.5)式(2.5)中:TDS为水中溶解固体(mg/L);
23、K为25时水的电导率(S/m)。上式只是粗略的反映了溶解性总固体与电导率之间的数量关系,系数0.550.70随水质的不同而异。2.2.2 TDS测量电路图2.3为TDS测量电路。图2.3 TDS测量电路该电路是被测溶液的电导率检测多谐振荡电。当排针上接的两根探针插入被测溶液,形成了一个电极,使整个电路构成封闭的谐振电路,而由该谐振电路产生的与被测溶液电导率有关的频率f由555芯片的3引脚输出,向单片机P3.5口输入。这个多谐振荡电路是由探针与被测溶液构成的电极和电容C5组成。 555定时器是美国Signetics公司1972年研制的用于取代机械式定时器数字电路与模拟电路相结合的的中规模集成电路
24、,因输入端设计有三个5K的电阻而得名。555定时器是由两个电压比较器,一个基本RS触发器,一个放电三极管,电阻分压器和输出缓冲器五个基本单元组成。有两个基准电压,分别为VCC/3,2VCC/3,是构成多谐振荡器的主要器件。使用555定时器的电路使用灵活、方便并且价格低廉,只需外接少量电阻电容元件就可以构成单稳态触发器和多谐振荡器等,广泛用于信号的产生、变换、控制与检测。如图2.4所示,为555定时器结构图。图2.4 555定时器结构图由3个5K的电阻串联构成的电阻分压器为两个电压比较器C1 和C2提供参考电压。如控制电压输入端5悬空,则比较器C1的参考电压为13VCC,加在同相端;C2的参考电
25、压为23VCC,加在反相端。4脚是复位输入端,当有效时,基本RS触发器被置“0”,晶体管导通,输出端3为低电平。正常工作时而应无效。6脚和2脚是信号输入端。当6脚电压23VCC,2脚电压13VCC时,比较器C2输出高电平,基本RS触发器被复位置0,晶体管导通,输出端3为低电平。当6脚的电压23VCC,2脚电压13VCC时,比较器C1输出高电平,基本RS触发器被置1,晶体管截止,输出端3为高电平。当6脚电压13VCC时,基本RS触发器状态不变,电路亦保持原状态不变10。综上所述,可得555定时器功能,如表2.1。表2.1 555定时器功能表 (输入) UTH(输入) U(输入) U0(输出) T
26、D(输出) 0 X X 低 导通 1 2VCC/3 VCC/3 低 导通 1 2VCC/3 2VCC/3 VCC/3 高 截止 1 VCC/3 高 截止该电路工作原理:电路刚开始运行时电容C5上的电压为0,实际电路处在置位状态,引脚3输出高电平。VCC通过电极向C5充电,Q2导通,充电过程为:VCC-Q2电极C5。当上升到Vc2/3VCC时,6脚内部高限比较器反转,3脚输出低电平,Q2截止,7脚内集电极开路放电管导通,放电过程:C5电极7引脚。当放电至Vc13VCC时,脚2内低限比较器反转,引脚3再次输出高电平,电容再次充电。如此以上过程循环往复形成振荡输出频率f。经电路原理得出以下公式: (
27、2.6)式(2.6)中:G(t)=1/Rx,G(t)为电极实测的电导值;K0=0.772/C5,K0为电导-频率转换系数。由式(2.6)可以看出,输出频率f与电导G(t)成正比,即频率和电导率呈线性关系11。在设计过程中,探针的尺寸固定,即L/S=常数,L为两探头之间的间距,S为探头浸入溶液深度与探头横截面长度的乘积。本实验中L=1.5cm,S=4cm*0.15cm=0.6cm2,所以L/S=2.5cm-1=250m-1;C5=0.1uf。将两探针之间的被测溶液也视为电阻,可确定f与K的线性关系,即:K=3.2410-5f,即推算出。2.3温度补偿原理与电路2.3.1温度补偿原理由于溶液电导率
28、测量受温度影响很大,电解质的电离度、溶解度、离子运动速度等都直接受温度的影响,溶液温度升高时,离子热运行加快,导电能力增加,溶液电导率增大。反之亦然。而本设计是根据被测溶液电导率来计算溶液TDS值,所以温度直接影响溶液电导率测量的精度,也就是直接影响TDS值的测量精度。如上面所述,温度对TDS值的测量精度影响是非常大的。当被测溶液的温度不是基准温度,即25时,就必须进行温度补偿,也就是说需要将测量结果补偿到基准温度下的数值,从而排除温度对测量值的影响12。国内外已经商品化的仪器温度补偿的方法主要有三种:(1) 样品恒温法:就是加装水样预处理的恒温装置,先将被测溶液的温度补偿到25条件下再进行测
29、量,但是这种方法需要昂贵精密的恒温装置,条件也很难控制,所以在现场很少被采用。(2)手动调整补偿法:在电导率仪器上设置一个手动温度补偿调整器。这种方法在使用前必须先测量被测溶液的温度值然后再调整温度系数,一般为2%/。采用这种方法的仪器仅限于实验使用表。(3)自动温度补偿法:在测量仪器中设置自动温度补偿电路,在测量任意温度的溶液时,都能自动进行温度补偿并且显示出补偿至基准温度25时该溶液的电导率值。该方法分为热敏电阻补偿法和拟合经验公式补偿法。热敏电阻补偿法实际设计复杂,有局限性。使用软件拟合公式处理法对测得的溶液的电导率和温度进行处理,可以较好地得到温度补偿后的数值13。本设计采用软件拟合公
30、式补偿法。 被测溶液的温度每升高1,电导率就增加约2%,温度校正系数与温度成一元线性关系,当测量温度为25左右时,其温度补偿公式为: Ks=Kt/0.22t+0.45) (2.7)式(2.7)中,Ks为25下溶液的电导率,Kt为t下溶液的电导率,t为被测溶液的温度。 当测量温度偏离25时,由于以上公式所得的电导率误差较大,为了提高测量精度,所以采用不同的温度校正系数来进行计算,不同温度范围内的温度校正系数也不同。式(2.8)-式(2.11)为不同温度范围下的温度补偿公式: Ks=Kt/(0.00169t+0.5583)1t10 (2.8) Ks=Kt/(0.018t+0.5473) 10t20
31、 (2.9) Ks=Kt/(0.00189t+0.5281) 20t30 (2.10) Ks=Kt/(0.022t+0.45) 其他温度范围 (2.11)本设计通过测量电导率和通过DS18B20防水型温度传感器测量溶液温度,借助数据拟合的方法拟合出经验公式进行软件温度补偿。这种方法不但使硬件电路变得没有那么复杂,而且使该TDS水质测量仪使用更加方便,测量也更加精确。2.3.2温度测量电路图2.5为DS18B20引脚图。图2.5 DS18B20引脚图DS18B20数字温度传感器支持“单线总线”接口,测量温度的范围为55125,在-10+85时精度为0.5;适应电压范围宽,电压范围为3.05.5V
32、,采用外部电源供电的方式。该温度传感器有三个引脚,VCC为外接供电电源输入端,GND为电源地,DQ为数字信号输入/输出端14。图2.6为温度测量电路。图2.6 温度测量电路该温度传感器三个引脚,VCC接工作电源;GND接地;DQ接单片机P1.6口。在该电路中,VCC引脚与DQ引脚之间接一个上拉电阻,阻值约为4.7K,使电路不工作时处于高电平。DS18B20所采集的温度数据经过传感器转化为相应的数字信号,然后将数字信号传送给单片机,通过单片机作相应的数据处理得到温度值,再通过单片机的程序进行温度补偿。2.4数码管显示电路2.4.1共阳极数码管工作原理 数码管是一种以发光二极管为基本单元的半导体发
33、光器件。每一显示笔划用一个字母对应表示,DP是小数点。图2.7为LED数码管的引脚定义图。图2.7 LED数码管的引脚定义本设计数码管显示电路使用的是4位共阳极数码管,共阳数码管是指将所有发光二极管的阳极接在一起形成公共阳极(COM)的数码管,在电路应用中,将共阳数码管公共端COM接+5V,在显示某一字段时,发光二极管的阴极为低电平,相应字段就点亮,当发光二极管阴极为高电平时,对应字段就不亮。该电路采用动态显示驱动,即将数码管的“A,B,C,D,E,F,G,DP”这8位每一位的段选线与一个8位并行I/O口相连。电路运行时,数码管接收到单片机输出的相同字形码,单片机对位选通端电路实行控制,打开需
34、要显示的数码管的选通控制,该位就会显示出字形,没有选通的数码管就不会亮。对数码管的的位选通端分时轮流控制,使各位数码管轮流受控显示。实际显示过程中,各位数码管并不是同时点亮,但由于每位数码管的点亮时间很短,而且扫描的速度足够快,看上去就是一组稳定的显示数据。2.4.2数码管显示电路 图2.8为数码管显示电路图。图2.8 数码管显示电路该数码管为共阳数码管,外部低电平才能点亮相应的内部二极管。在图2.8中数码管的8个脚A-G和DP接到单片机的P0口,位控制端1-4分别接在P2.0-P2.3口。通过P2.0-P2.3口使相应的数码管被选中,再通过P0口使相应段位数码管显示数字。在设计中,数码管显示
35、的是TDS值。2.5按键电路图2.9为按键电路。图2.9 按键电路在电路中,当8脚为低电平时,电路导通,按键第一次按下,电路开始测量,测量完成后,再次按下按钮,系统保存并显示所测量的结果。如果再次按下按钮,程序清空被测数据。2.6总体电路图 总体电路图如图2.10所示。图2.10 总体电路图 本系统由单片机最小系统电路、电导率测量电路、温度测量电路、按键电路和数码管显示电路组成。在系统中,由电导率测量电路采用频率法测量被测溶液的电导率,通过温度传感器测量被测溶液的温度,经过软件算法将测量的电导率和温度进行温度补偿,最后通过相关公式计算TDS值,显示在数码管上,通过按键电路将测量值锁存和清零。3
36、系统软件设计3.1软件设计的整体思想 对于本系统而言,要完成各个模块的功能,首先必须要保证有较完善的硬件,与此同时还必须要有合理设计的软件支持。特别是在当今单片机应用飞速发展的时代,有很多本来需要用硬件完成的工作,都能通过软件编程来代替,有些工作需要用很复杂的硬件电路才能完成,用软件编程时就会变得比较简单。在进行系统软件设计时,必须要对设计的硬件电路有熟练的掌握,知道系统的各个模块的工作原理。在进行软件设计时,首先得清楚各个部分的子程序及他们的流程图,然后进行C语言编程,最后对它们进行系统的编程15。此次设计以STC89C52单片机为核心,采用C语言编程。用模块化设计,由主程序、电导率计算子程
37、序、DS18B20温度采集子程序、TDS值计算子程序、数码管显示子程序以及按键子程序等模块组成。3.2总流程图与各部分流程图3.2.1总流程图该系统设计的工作流程为:系统初始化,按键开始测量时,计数器开始工作,测量并计算被测溶液电导率的数值,读取温度数据,对采集来的温度信号和电导率的值进行软件算法补偿,将所得补偿后的电导率值数据进行处理和计算,得到TDS值,按键锁定计算结果,最后将计算得到的结果存储并显示在数码管上。图3.1为系统总流程图。 初始化按键扫描是否开始测量启动计数器电导率计算温度测量TDS值计算是否锁存结果显示结果关闭计数器,清零结束开始 N Y N Y 图3.1 系统总流程图3.2.2 电导率测量 对电导率进行测量,此程序开始运行时,首先启动T0、T1,T0为系统设置的定时时间值,当测量时间到设定时间T0时,关闭T0、T1输出端口,系统自动读取T1,也就是T0时间内所产生的脉冲个数。由此可以得到周期,由周期可以得出输出频率,然后系统运用电导率与输出频率之间的计算公式的程序,使系统通过频率输出转换得到电导率值。如图3.2为电导率测量的流程图。计算电导率计算频率读取T1计数值关闭T0、T1启动 T0、T1T0 定时时间是 否到开始返回 N Y 图3.2 电导率测量流程图3.2.3 温度测量流程图 温度采集的流程图中,单片机通过P