适时准确地测量周围环境的湿度和土壤含水量在国民经济发展的许多领域中具有广泛的应用,如在农业上为了科学地对土壤进行管理,需要经常测试土壤含水量;在水利工程中,如水文站、堤坝上也需经常测试土壤含水量,此外,土壤湿度测量在环保、气象、国防施工中更是不可缺少的测量项目。如何使这种繁琐的测量以及相关数据处理实现自动化,成为人们急需解决的重要课题。
本文介绍一种高性能、便携式、可编程的由PIC16C74单片机为主构成的湿度测试仪,详细阐明了该仪器的工作原理、基本功能框图、关键技术以及相应的工作软件流程。
1 仪器基本原理及功能框图
本仪器的系统硬件结构框图如图1所示,芯片选用价格低廉,性能优良的PIC16C74单片机,充分利用其提供的软硬件资源,配以相应的外围电路完成土壤含水量检测。主要组成部分包括:湿度传感器,PIC单片机,外存储器(E2PROM),触摸式键盘,液晶显示屏(LCD),电池电源通断控制电路,以及向计算机传送数据的通讯接口电路等部分。
传感器选用的是一种专利产品,其作用是直接将探测头插入待测土壤中,将土壤湿度转化成相应模拟电压,电压范围在0~1.2V,该模拟电压经运算放大器放大到0~5V范围内的电压后,送到PIC16C74的I/O口,单片机内有8个通道的A/D变换器,选一个口作为模拟电压输入通道,然后转换成数字电压值,按电压-含水量公式,经过单片机运算,得出实际的土壤含水量值,送入外部扩展存储器储存,以备传输和处理之用,同时送入液晶显示屏实时显示。
本仪器设定每批数据由16字节组成,外存储器容量为64K字节,所以外加存储器最大存储容量可达512批。为了对测量数据进行进一步处理,需要把各测试点的大量数据送往计算机,为完成数据传输,我们选用RS232标准接口方式,器件选用MAX202作为接口器件,数据通过I/O接口送入计算机,再由它进行进一步处理,绘出测试曲线、图表,然后进行分析、打印和存档。
由于仪器体积小,按键选用触摸开关,能够完成电源控制(ON),测量(MEASURE),前翻页(UP),后翻页(DN),清除(CLEAR),认可(ACK)等功能,可使用户灵活操作。电源采用9V标准电池供电,并由专门的电源控制电路控制电源通断,由PIC16C7单片机监测电池供电情况,电压在正常工作范围时,液晶屏显示“H”,低于所定标准电压时,显示“L”,表明需要换电池。
由于我们研制的测试仪采用了高性能单片机芯片,可利用的软硬件资源丰富,需要的外围器件较少,具有很强的功能,并且功耗低,应用领域非常广泛。
2 关键器件和关键技术
2.1 PIC16C74单片机
本仪器芯片选用美国Microchip公司生产的PIC16C7单片机,这种芯片是一种低功耗、高性能,价格适中的CMOS全静态8位E2PROM单片微型处理器,为400IP,其中I/O口就有33脚,适于加装较多外围器件和设备。
PIC16C7芯片包含192字节数据存储器(RAM)和4K字节程序存储器(ROM)容量,33个输出/输入口,三个定时/计数器,三个捕捉/比较/PWM模数和两个串行口,同步串行口可配置成三线SPI或二线120工作方式,串行口可设置成同步或异步,以及八通道高速A/D变换器部分。软件结构上,采用RISC指令结构,具有8级堆栈,多个内部和外部中断位,指令35条,易于编程。
与其它单片机(如8031芯片)相比,PIC16C7具有如下几个其它芯片无法比拟的特点:
·内部带有8个A/D变换通道,仅此一点,在需要进行A/D变换时,就省去了附加的A/D转换外围芯片;
·软件指令仅35条,利用编程实现;
·低功耗,高速CMOS EPROM技术,在5V 4MHz时仅耗电2mA,在3V 32KHz时,仅耗电15mA;
·更为重要的是,该芯片具有休眠功能,即执行Sleep工作方式,此方式下,芯片耗电极小(小于1mA),当需芯片重新工作时,可通过内部或外围中断方式唤醒芯片转入正常工作方式;
·具有保密功能。
2.2A/D变换
PIC16C7单片机有8路模拟输入口,共用一个采样/保持器,采样/保持逐次比较,最后把模拟量变成数字量,对于本测试仪来说,输入是传感器送来的模拟电压,其值在0~1.2V范围内变化,经放大后的电压进入单片机内进行A/D变换和运算处理,A/D变换电路如图2所示。
此外A/D变换器的模拟参考电压选用RA3/ref,引脚电压为+5v,在设计这种电路时,需要进行如下工作:
·A/D变换的精度计算及误差
把模拟电压0~1.25vV转换成8位二进数码,其1LSB=1.25/256=4.9mV≈5mV,在VDD=5V±10%时,且Vref=5v情况下,A/D转换的全范围精度小于1LSB,其中包括偏置误差、满量程误差和整数误差,并且A/D转换是单调的。
由于VDD小于5V或Vref小于VDD时,分辨率和精度会降低,所以我们设计时采用如下两条措施,一是选用VDD=5V,且Vref==SV;二是通过运算放大器放大,使输入模拟电压在0~5V范围内变化。
· 对输入模拟信号量的要求
模拟输入要进行ESD保护,所以在VDD和VCS之间加有反向偏置二极管以保护器件不会被损坏,同时要求接到模拟输入脚的外部器件应具有极低的漏电流。
·A/D采样要求
对于要达到特定精度的A/D转换,输入通道电压需充满充电保持电容,其公式为:采样时间=放大器稳定时间+保持电容充电时间+温度系数,即可得出。
·A/D转换时钟选择
时钟选用4MHz。
2.3 键盘控制
PIC16C74有五个I/O口PORTA~PORTE,其中PORTE是个双向口,B口的四个引脚RB(4~7),在引脚被设置成输入方式时,这四个引脚的状态变化会引起中断。利用B口的特性,很容易和外部控制键盘接口。本仪器中设计了一个2×4的键盘,一共有8个控制键,键盘控制电路如图3所示。为了对键盘采样,首先禁止数字吸入电流,然后用软件设置口B,使RB4~RB7为输入端,RB2~RB3为输出端至高电平。允许RB4~RB7的上拉,依次使RB2~RB3为低电平,同时检测RB4至RB7,看是否有击键(低电平),每次扫描会发现有多次击键,一旦检测到击键,在重新开始键盘采样之前,经过40ms的去抖动时间,直至当前键被释放之前,不再检测别的击键。
2.4 液晶显示
测试仪显示选用液晶显示片EDM-1601A,它可同时显示16个ASCII码字符,每个字符由5×7点阵组成,这种器件内部控制电路主要由指令寄存器,数据寄存器,地址寄存器,显示数据寄存器,字符发生和时序发生器等组成。本仪器显示画面显示如图4所示。
0号位显示电池电压状态,当电池电压>7.5V时,显示“H”表示电池电压正常,当电池电压<=7.5V时,显示“L”,表示电压过低,需更换电池。1~3号位数码,显示测试批数,本测试仪最多可测试512批数据。4号位为空格。5~10位显示所测点电压数值,以毫伏(mV)为单位。11~15号位数码显示此测试点的含水量百分数。
每按一次测量键,则显示出测试点的相关电压数值和换算出的含水量值,这些值同时送入外存储器存储起来。
2.5 串口通讯
为了对采集到的数据进行深入地分析,需要将数据从测试仪的外存储器传送至计算机,PIC16C74具有串行通讯接口(SCI),SCI是为能与CRT终端及计算机等外设通讯的全双工异步系统,本仪器采用RS-232-C接口方式,传送波特率为9600比特。数据传输格式如图5所示,在这种方式下,SCI采用标准的不归零(NRZ)格式,开始是一位起始位,以逻辑“0”表示,接着是8位数据位,最后是一位停止位,以逻辑“1”表示,本仪器不设奇偶校验位,故一次传送数据长度为10比特。接口芯片选用MAX232,接收端(计算机)采用C语言编辑的接收软件,显示接收到的数据,并进行进一步的处理,如汇总成数据表格,画出分析曲线以及打印结果等等,以供工作人员参考。
2.6 电源控制
本仪器采用标准9V干电池供电,为了能保证正常供电,需要对电源进行下面三个方面的控制。
·电源的通断控制,按键盘ON键,则9V电压通过MAX667(MAX公司)输出,提供仪器所需的5V电压;
·电池电压测试电路,假定标准9V干电池在加载情况下低于规定的某一电压时,则仪器不能正常工作,需要更换电池,为达到此目的,需要对电池电压进行连续监测;
·自动关机功能:当测试完成后,如果不对仪器操作,一分钟后电源电路自动断开,实现自动关机功能。
上述三种控制都由MAX667器件完成,具体电路如图6所示。
3 检测仪的控制软件设计
本检测仪采用PIC16CXX汇编语言编程,控制软件由主控程序、按键功能检测、测量及含水量计算、显示、清除、前后翻页显示、通讯等子程序组成。图7为控制软件框图。
4 特点及发展远景
本测试仪器的基本特点为:
·体积小,150×80×60mm3,可以放在口袋中随身携带到各个测试点进行数据采样;
·采集的数据量大:由于加了外部E2PROM存储器,可以采样512批或1024批数据,进行计算并存储起来;
·通过通讯接口,可以把采集数据送到计算机上,进行进一步的处理,如画出测试曲线、进行分析、打印结果并存储数据;
·由9V干电池供电,为了减小功耗,延长使用时间,该仪器开关机由专门控制电路控制,到一定时间,自动关机。在测量间隙,进入休眠状态,节省能量,其他器件尽量采用CMOS的低功耗小电流器件;
·仪器智能化,可编程,由于采用先进的单片机,可以在单片机内部进行A/D变换以及各种数学计算,通过软件编程可以对数据查阅(前后翻页)、清除外存储器中的数据以及向计算机发送数据,这些功能都可以通过仪表盘面的相应按键选择。
综上所述,本测试仪充分应用PIC16C74单片机自身的软硬件资源,具有智能化,小型便携,可编程等优点,另外本测试仪只需更换传感器和修改控制软件,就可扩展到其他环境参数的测试应用中,使得本测试仪在农业、水文系统、环保、气象等许多领域具有广泛的应用。