(哈尔滨工程大学 信息与通信工程学院,哈尔滨 150001)
随着中国制造2025的提出,电子产品受到了国家的高度重视,智能化发展趋势已成定局。如今电子产业发展迅猛,电子信息类从业者对电阻电容等参数的测量需求与日俱增。目前市面上的电阻电容测量仪存在操作复杂,精度不足,成本高昂等问题,如何提高此类产品的自动化程度、测量精度,减小体积,降低成本成为了研究的主要方向。
本文介绍了一种采用STC89C52单片机作为主控芯片[1],使用高精度16位ADC LTC1864对待测电阻进行测量,测量范围0至3 MΩ,单片机控制继电器实现量程的自动转换;利用NE555芯片分别与100,100 k,10 M等电阻组成多个多谐振荡器,采集振荡频率[2],完成对5 pF到500 μF电容的测量。数据通过LCD1602显示出来,并显示相应提示语句,超出量程时,显示屏提示报警。电阻测量时将待测电阻插入插槽,即可显示读数;电容测量时,只需判断其大致类型属于pF、nF、μF哪一种,即可显示读数;还增设了二极管导通判断功能。实验结果表明该系统内各量程电阻测量精度可达0.09%,各量程电容测量精度可达1%。本测量仪具有自动化水平高,测量精准,使用简便,成本低等特点,解决了同类型产品价格高昂,精度不准,操作繁琐等问题。
本设计以STC89C52单片机作为主控芯片,由显示模块、按键模块、电容测量模块、电阻测量模块、ADC模块、二极管模块和量程转换模块组成。
通过按键模块中的复位按键、模式按键,单片机接收到使用者发出的控制信息,凭借按键值选择测量模式,当电阻测量时,电阻测量模块采集的电压值模拟量经过ADC模块转化后得到数字量,传递给单片机[3],与此同时单片机控制量程转换模块,驱动三极管使继电器导通,完成量程的自动转换;当电容测量时,单片机对电容测量模块中多谐振荡器的振荡频率进行计数;测试结果输出到LCD1602显示。
系统电路方框图如图1所示。
图1 系统电路方框图
主控模块采用由STC89C52组成的最小系统,包括复位电路,时钟电路。STC89C52采用了低功耗、高性能的CMOS8位微控制器,具有8 k字节的系统可编程Flash存储器,512字节随机存取存储器,4个8位双向IO口,看门狗定时器,内置4 KB EEPROM,MAX810复位电路;可调用3个16 位定时器/计数器,4个外部中断,以及一个7向量4级中断结构完成复杂操作;利用全双工串行口进行数据传输、外设扩展,最高运作频率可达35 MHz[4]。
在STC89C52单片机中,要使单片机复位需要在晶振工作时,在RST引脚上保持至少两个机器周期的高电平信号,为满足本设计上电自动复位的设计要求,本设计将VCC通过10 μF电容连接至RST引脚,同时将RST引脚经过500 Ω电阻和地相连,利用10 μF电容充电特点,使RST引脚电压慢慢减小,完成本设计上电自动复位的要求。
本设计时钟电路采用内部时钟方式,将12 M晶振通过19脚、20脚与单片机内部的高增益反向放大器相连,同时接入30 pF的微调电容构成一个稳定的自激振荡器电路。
显示模块采用LCD1602,1602 采用标准的16脚接口,其管脚说明如下。
第1脚:VSS为地电源。
第2脚:VDD接5 V正电源。
第3脚:V0为LCD显示器的对比度调整端,对比度高低与该脚电压大小成负相关,对比度设置的不恰当会影响LCD数据显示,使用时可以通过一个10 k的电位器调整对比度。
第4 脚:RS为寄存器选择端,高电平时选择数据寄存器向LCD1602传输数据、低电平时选择指令寄存器对LCD1602进行指令控制。
第5脚:RW为读写信号线,与单片机的一个IO口连接,当RW为低电平时,进行写操作;当RW为高电平时,进行读操作。可与RS端配合,进行更复杂操作,如果不需要进行读取操作,可以直接将其接VSS。
第6 脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15~16脚:这两个引脚为LCD1602背光端,在仿真中通常隐藏。
LCD1602与单片机P0.0--P0.7及P2.0,P2.1和一排阻连接,用于从单片机接收控制数据及显示数据;在LCD1602的3脚连接一10 k滑动变阻器,用于修改对比度[5]。
按键控制模块中的模式选择按键由一按键和一10 k电阻组成,其SW端连接至单片机P3.3脚。默认测量电阻,当该按键按动,即切换至电容测量。
主控模块原理图如图2所示。
图2 主控模块
本设计采用LTC1864作为ADC模块的主要芯片,利用该芯片16位串行数据传输的特点,配合5 V电压,可达到5/65535的测量分辨率[6]。该芯片采用单5 V电源供电,可在-20~ +50 ℃的温度范围内工作,最大采样率为250 ksps,随着采样速率的降低,供电电流减小,低功耗符合本设计要求。
LTC1864共8个引脚,在proteus软件中仅体现6脚,其1脚参考电压端接5 V VCC;2脚接收电阻测量模块的数据;3端接地,与1端中间连接0.1 μF电容隔直;5(CONV)、7(SCK)、8(SDO)脚分别与单片机1、2、3脚连接,用于时钟及传送数据。
ADC转换模块原理图如图3所示。
图3 ADC转换模块
本系统的电阻测量模块由基准电阻、三极管、稳压二极管、继电器、反相比例运算放大器、电压跟随器和待测电阻组成。
反相比例运算放大器和电压跟随器中的运算放大器均采用OP07芯片,OP07是双极性的运算放大器集成电路,具有低噪声、非斩波稳零、输入偏置电流低、开环增益高等特点,在高增益的测量设备和放大微弱信号传感器上广为适用。
不同于以往电阻测量设计中的比例测量法[7],本系统中反相比例运算放大器承担了采集待测电阻电压的主要任务,反相比例运算放大器没有共模输入信号,反相端虚地,输出电阻近似为零,大大减少了电阻测量中产生的误差。
如图4所示,当选择至电阻测量模式时,RX待测电阻与基准电阻从大到小依次连接,直到单片机发出量程合适信号为止。当继电器导通时,在U6处的反相比例放大器将采集到待测电阻的负电压值,在U4处的1:1反相放大器将电压值由负值转换为正值,由于电压跟随器具有输入阻抗高,输出阻抗低的显著特点,最后在输出级通过U41处的电压跟随器将电压值传递给ADC模块中的 LTC1864,进行模数转换。
量程控制方面利用单片机控制S1,S2,S3处三极管基极的高低电平,从而控制继电器某一路导通与否,达到自动转换量程目的,其中STC89C52单片机端口的输出电流很小,不能直接驱动继电器,所以利用三极管进行放大,再用放大的信号去驱动继电器[8]。
本设计所用继电器为欧姆龙公司C6L系列的信号继电器,具体型号为G6L-1F-5 V。该继电器体积小,可高密度安装,减小了测量仪器体积,便于携带;稳定性极强,可保证触点快速咬合,减少故障的发生;接触电阻为100 MΩ,消耗功率仅为180 mW,符合本设计长续航的设计要求。
电阻测量模块原理图如图4所示。
图4 电阻测量模块
本系统使用STC89C52单片机以及NE555芯片构成的多谐振荡电路进行电容测量[9]。NE555是一种多用途的数字-模拟混合集成电路,成本低,性能可靠,只需要外接几个电阻、电容,就可以实现单稳态触发器、多谐振荡器及施密特触发器等脉冲产生与变换电路。
在系统中,NE555芯片分别与100,100 k,10 M电阻组成多谐振荡器,在直接反馈无稳态的状态下工作,此时555芯片会输出一定频率的方波,其频率的大小与被测量的电容之间的关系是:
以往的研究提示,不同年龄及不同临床分期阴茎癌患者的复发和转移存在差异[8-9]。本研究同样发现,60岁以上的阴茎鳞状细胞癌患者术后复发和转移的发生率明显高于60岁以下的患者(43.4% vs 77.8%)。临床分期为Ⅲ和Ⅳ期的患者,术后复发和转移的发生率明显高于Ⅰ和Ⅱ期的患者(100.0% vs 53.7%)。上述结果说明不同年龄和临床分期的患者其预后和生存期有明显差异,也提示临床上应对阴茎鳞状细胞癌患者进行早期诊断和早期干预,尤其对于老年(>60岁)和临床分期较晚的患者(Jackson分期Ⅲ和Ⅳ期)术后应及时进行复发或转移的监测[10]。
F=0.722/(RC)
(1)
式中,F为振荡频率;R为所选档位电路的阻值;C为所要测量电容值。
如果电阻值确定,使用单片机定时一秒钟,用单片机的计数器测量出相应方波的频率,就能得到电容的大小。
NE555 IN端连接单片机P3.5,μF端连接P2.5,nF连接P2.6,pF连接P2.7。
电容模块中的换挡电路由3个挡位组成,将电阻串接在NE555芯片3,6脚之间,通过改变电阻值进行挡位的调整,并使用LED灯提示。
其中C为待测电容,根据公式(1)。
当SW1闭合时,电阻R的值是100欧姆,公式改写为:
F=0.00722/C=7220/(C*1 μF)
(2)
该档位可以测量μF级别的电容。
同理,当SW2闭合时,电阻R的值是100 k欧姆,此时多谐振荡器中RC的数量级不变,振荡频率仍在单片机可测范围内,由此可以测量nF级别的电容。
同理,当SW3闭合时,电阻R的值是10 M欧姆,由此可以测量pF级别的电容。
电容测量模块原理图如图5所示。
图5 电容测量模块
实物制作时,需考虑采用何种供电方式如何供电,本设计大部分为典型数字元器件,供电要求都为+5 V或-5 V,由于基准电压决定着电阻测量模数转换的精度,其中LTC1864对供电要求尤其严格。
LM385系列为微功率二端带隙稳压器二极管,具有非常低的动态阻抗、低噪声、稳定性强等特点,可随时间和温度的变化而稳定工作,使用方便,用途广泛。
本设计采用9 V方电池,通过电压基准芯片LM385-5V0得到+5.00 V基准电压,5 V电压通过电源极性转换器ICL7660,产生-5 V电压,从而实现OP07的双极性供电要求。
系统程序设计采用模块化设计方法[10]。整个程序由主程序模块、ADC转换模块、电阻测量模块、电容测量模块、延时模块,计数器模块、定时器模块、中断模块、LCD显示模块等模块组成。其中最主要的是主程序、ADC转换模块、电阻测量及电容测量程序设计。
当系统上电之后,单片机开始初始化操作,默认按键值为1进行电阻测量,按动一次mood模式按键后,按键值改变为2进行电容测量,而二极管模式上电即运行,不需程序控制,仅需将待测二极管按提示插入相应位置,若二极管导通,即蜂鸣器发声提醒。
主程序流程图如图6所示。
图6 主程序流程图
在ADC LTC1864子程序中,需先将CONV端置高电平,打开ADC转换,再将CONV置低,并延时几微秒,判断16位采样值是否为1,再将该数据传入单片机中。
LTC1864 子程序流程图如图7所示。
图7 16位ADC LTC1864子程序流程图
电阻测量子程序是通过调用ADC采样程序,对所测电阻范围进行大致估计,同时依据ADC最大档位采样后的值进行档位选择,将继电器换到合适的测量档位,为减小误差,五次调用A/D采样子程序五次读取A/D采样值取平均值,经过数据处理,最后将数据显示在LCD1602上。
交流电压通过整流、滤波得到的直流电压会因滤波不充分,含有剩余的交流成分;直接使用电池供电,也会因负载波动而产生波纹。由于存在波纹电压,基准电压源波动,从而会影响到LTC1864的基准电压,导致电阻测量产生误差。
本设计在电阻测量数据处理上引入数据结构的思想,利用LTC1864转换速度快的特点,建立数组短时间存储大量电阻测量数据,使用快速排序法,任取其中一个测量值作为中心,所有比它大的值一律前放,所有比它小的值一律后放,从而形成左右两个子表,在各子表重新选择中心值,依此规律调整,直至每个子表元素只剩一个,完成对电阻测量数据的大小排序。该序列的中心值即为最接近实际值的测量结果。
该快速排序法每趟可确定多个元素位置,并且成指数增加,可十分快速地完成排序,不会对实际使用产生任何影响。
电阻测量流程图如图8所示。
图8 电阻测量程序框图
电容测量子程序是利用单片机的定时计数器,配合中断来完成。STC89C52单片机内部有两个定时/计数器T0和T1,其基本功能都是加1。通过设定单片机寄存器数值,可利用定时器进行定时;利用计数器对外部事件下降沿计数。我们使用定时器定时一秒钟,计数器在此期间内增加的数值就是555多谐振荡器方波的大小,将得到的频率依据公式(1)处理,最后将数据显示在LCD1602上。
电容测量流程图如图9所示。
图9 电容测量程序框图
为了测试该智能电阻电容测量仪的运作情况及测量精度,先在proteus软件中画出本设计仿真电路图,再利用proteus软件将待测电阻电容参数修改,得到仿真测试数据[11]。
仿真环节结束后进行实物制作测试环节,通电本系统开始工作,首先将想测量的电阻电容插入相应的槽内,默认先开始进行电阻测量,按动mood模式键后,进行电容测量,再按动RC复位键,即可又回到电阻测量。二极管导通测量则独立于电阻电容测量,无需按键控制,直接将二级管放在相应位置即可,导通即会蜂鸣器发声。
电阻、电容的仿真结果分别如表1表2。
电阻、电容的实测结果分别如表3表4。
表1 电阻测量仿真数据 Ω
表2 电容测量仿真数据
表3 电阻实测数据
Ω
表4 电容实测数据
实验结果分析:
从表1和表2可知,电阻仿真精度最高可达0.09%,电容测量精度在1%以内。操作中无需手动切换档位,实现了量程的自动转换。
在实际电阻测量环节中选用高精度千分之一误差的电阻500,5 k进行测试,从表3可知,本系统在电阻实测中依然具备高精度的特点;在电容实测时由于待测电容本身精度不足,造成表4中偶尔测量误差略大。
此外,由于实际制作中各元件间难免存在干扰,其中干扰对电容测量的影响最大,针对此问题,在得到大量电容仿真数据的基础上,通过电容实测值与仿真值的对比校正,依据最小二乘法,估计干扰比例系数,再对程序进行修改,使电容测量误差大大减小。另一方面,由于电源本身输出电压存在微小波动,也会导致实测值与仿真值稍有不同。
本智能电阻电容测量仪是以STC89C52单片机为操作核心,在电阻测量方面采用LTC1864高精度十六位ADC采集电压计算电阻值,使电阻测量精度大大提高,其中仿真精度可达0.09%,通过单片机控制继电器实现电阻的量程自动转换,操作简便;在电容测量方面使用NE555芯片分别与100,100 k,10 M电阻组成多谐振荡器,通过单片机计数器计算振荡频率,实现宽量程电容的测量,操作简单,精度高。该电阻电容测量仪操作界面仅有两个按键,大大简化了操作流程,易于上手。除此之外,该电阻电容测量仪所采用的元件结构简单,造价低廉,总成本约为50元,远低于同功能相似产品,易于推广。