1、总体构成
本丈量仪的信号采样通过P0口的八根输进线可接受八路经过整形后的标准TTL电平,因此可丈量不同传感器传来的脉冲型物位采样信号,只要在原始信号基础上加以整形处理即可,每来一个脉冲均被P0口捕捉到并可以通过软件编制使脉冲计数增一,定时读取计数和便可以换算成相应的物位情况。通过P3.3~P3.5三条线与串行显示驱动器Max7219的连接加以软件编程可完成八位数码管显示驱动,利用P1.3~P1.6四条口线接进四个按键,完成按键操纵,利用P2口作为八路输出控制,可驱动八路固态继电器。具体组成见图1。

图1
2、硬件线路设计
2.1资源分配
AT89C52芯片是基于MCS-51结构的高集成度8位微控制器,其主要特性是具有一个用于多处理器通讯的增强型串口和一个增/减定时器计数器,专门适用于控制应用。选用89C52的另外一个重要原因就是在芯片上实现了256字节的RAM,高端128字节的地址和特殊功能寄存器(SFR)的地址相同,但可以通过不同寻址方式区分,因此解决了丈量仪的软件编程所用的RAM空间,不必再另外扩展随机存储器,节约了硬件资源。
2.2串行显示设计
多位LED显示时,常将所有位的段选线并联在一起,由一个8位I/O口控制,也可采用并行扩展口构成显示电路,通常,需要扩展器件管脚的较多,价格较高。在本丈量仪中,为了节约I/O口资源,采用了由Max7219芯片构成的串行显示方式。Max7219是串行输进,输出共阴极显示驱动电路,可直接与单片机的3条I/O线接口,特别适用于I/O口线少的系统,并且可以程序控制数码管的亮度。在本设计中,采用P3.3~P3.4三条线经74LS273锁存后与Max7219相连接,P3.3、P3.4锁存后分别作为7219串行数据输进信号DIN和时钟信号CLK,P3.5输出口锁存作为LOAD信号。具体硬件线路图见图2。

图2主要硬件连接图
2.3软件计数器的设计
在物位丈量仪表中,当传感器书送来的信号为脉冲量时,通常需要通过专门计数器芯片如8254等来完成脉冲的计数,CPU将此变化的计数信号处理后使传感器送来的脉冲的个数与物位信号相对应。而在本设计中,巧妙利用了89C52的P0口资源,将脉冲量整形后直接送至P0口的8条数据线,此时P0口作为数据输进口使用。通过软件设计,每路开辟存贮单元(利用片内RAM),当P0口有电平跳变时,相应的计数单元计数加1,通过软件设置定时器,当定时时间到时,读取存储单元数值并清零,这样就完成了软件计数器的功能,节约了硬件资源,降低了硬件本钱。
3、软件设计
3.1128字节内存分配
本丈量仪设计的另一大特点就是充分利用了128字节的片内RAM,无外部扩展存储芯片。CPU内部地址从15H开始算起,直到0C5H全部被开辟作标志或存储单元。具体分配为:15H~1CH为各路采样时间,09H~0FH为各种标志位,42H~5BH为与各路计数有关的计数存储处理单元,5CH~63H为物位报警域值对应的计数存储单元,64H~6FH和3cH~3FH位报警种别等存储单元。通过公道分配,尽管只有128字节RAM,可以满足8路物位丈量的数据处理要求。
3.2串行显示子程序
Max7219驱动的显示部分程序放在DISP显示子程序中,在程序开始完成Max7219的初始化工作,将每次待显示的数据放置于从20H~27H开始的显示缓冲区地址中,每路需要送显时,直接调用显示子程序即可。
其中显示部分程序如下:
DISP:MOVR0,#20H;R0指向显示缓冲区首地址
MOVR1,#01H
MOVR3,#08H
LOOP3:MOVa,@R0
MOVR4,A;显示缓冲区数据送R4
MOVA,R1
lCALLWRITE;数据锁存到273
INCR1
INCR0
DJNZR3,LOOP3
3.3采样处理子程序
调试过的部分源代码如下:
LOOP:MOVA,#0FH;主程序循环开始
MOVP0,A;先查询P0口,读取射线计数
MOVA,P0
XCHA,PQ
XRLA,PQ
MOVB,A
JBB.0,JIA1;第1路有计数,跳至加1程序
JIA10:JBB.1,JIA2;第2路有计数,跳至加1程序
JIA20:JBB.2,JIA3;…..
JIA30:JBB.3,JIA4
JIA40:JBB.4,JIA5
JIA50:JBB.5,JIA6
JIA60:JBB.6,JIA7
JIA70:JBB.7,JIA8;第8路有计数,跳至加1程序
LJMPLOOP01;接着处理键盘的查询
3.4主程序部分流程图
主程序流程图见图3

图3主程序流程图
4、结束语
本设计的创新点在于充分利用了AT89C52的硬件资源,实现了软件计数器,能够对脉冲量信号所反映的物位信号通过数码管来显示,显示部分的处理采用Max7219显示驱动器,与软件编程相结合,大大节约了硬件资源,减少了通用的单片机扩展芯片,降低了本钱。本仪表投进生产后本钱比用其它方式组成的系统节约直接硬件本钱每台约300元,投产后产生年经济效益约60万元(按每套仪表利润0.8万元计)。
参考文献:
1吴玉平译MCS51微控制器系列用户指南电子产业出版社1995
2王建萍Max7219串行LED显示驱动器及应用,电子技术应用,1996,6
3刘志壮洪添胜等一种智能液位检测仪的设计微计算机信息2007年第2-1期P156-157
4史源平于京生等基于工控机的多路核子秤微计算机信息2008年第2-1期