基于AT89C52的毫安级数字式电流测量仪的设计
2015-08-10贺君鹏
贺君鹏
(西安外事学院 工学院,陕西 西安 710077)
随着微电子技术的迅速发展和超大规模集成电路的不对更新,特别是单片机的普及,使得测量以及控制仪器仪表技术也相应的得到发展与创新。但目前市场上常见的电流测量仪器多以指针式为主,指针式仪器因其本身特点,存在很多的不足,特别是对小电流的测量,具有测量不够准确,易受干扰,显示误差累计等缺点[1-2]。所以采用单片机设计的数字式测量仪器得到了社会的高度需求。数字电流表是将测得的模拟电流量经过A/D转换实现数字化,相对针式电流表有着测量数据准确,精度高,测量简单,易读取数据的特点,类似数字式万用表,有着相当的实用性。通过选用16位的A/D转换器,使测量误差提高到≤0.000 01 A以下。通过档位控制,使测量范围有1~10 mA,10~100 mA,100~1 000 mA,多个档位的测量,实现毫安级电流的毫安级测量。
1 系统方案
1.1 系统思路和设计框图
1.1.1 系统思路
模拟量转化成数字量需要AD转化器,而AD转换器是对输入电压U的数字化,不能对电流I进行数字化,所以应先将测量电路的电流I转换成电压U,可通过在测量电路中串接一个采样电阻R,完成电流向电压的转换U(U=IR)。然后A/D转换器把模拟电压U转换成数字量,发送给单片机,单片机对数据进行读取、储存、分析和计算,得出电流结果。最后单片机与液晶显示器之间进行通信,完成电流的显示[3]。系统设计框图如图1所示。
1.1.2 设计框图
图1 系统设计框图Fig.1 System design
1.2 方案选取
1.2.1 微处理器
MSP430系列虽然本身集成了AD转换模块,使外围电路简单化,但是其程序编写相当复杂,且本身集成的AD转换器的精度很难达到系统的要求。AVR单片机在原有系列的基础上,拥有高性能、高速度、甚至是更低的功耗,但这些优化与更新的性能背后,也存在着一些问题,例如其价格相比之下显得较为昂贵。C51系列单片机,它从内部硬件到软件有着一套完整的按位操作系统,即位处理器,也称布尔处理器,这就意味着它不仅能对片内某些特殊功能寄存器的某位进行处理,例如传送、置位、清零、测试等,还能进行位的逻辑运算,这一点使其他种类单片机很难实现的[4]。所以在微处理器上本设计常用C51系列单片机AT89C52。
1.2.2 A/D转换器
双积分A/D转换器通过两次积分将输入的模拟电压转换成时间或频率,然后由定时器/计数器获得数字值。它的优点是分辨率高,抗干扰性好,价格便宜,但转换速率低。逐次逼近式A/D转换器是将采样输入信号与给定电压不断地进行比较,从逐次逼近寄存器的最高位开始,顺序地对寄存器的每一位将输入电压与内置D/A转换器输出进行比较,进过n次比较而得到数字值。它的优点是精度、速度、价格适中、不存在延迟问题。适合于中速率而分辨率较高的场合,但8位的ADC0809不能够满足系统要求,且高位的价格昂贵,而且速度不是很快。AD7705是美国AD公司新近推出的一种低成本、高分辨率A/D转换器,它适用于宽动态范围测量、工业控制或工艺控制中的低频信号的转换[5]。所以综上所述选择性能更优,价格低廉的AD7705。
1.2.3 显示电路
本设计选择能够很好显示字符、汉子的12864显示屏,它是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字和128个16*8点ASCII字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面[6]。
1.2.4 单片机工作语言
汇编语言(Assembly Language)是面向机器的功能很强的程序设计语言。能够利用计算机所有硬件特性并能直接控制硬件。汇编语言比起C语言具有运行速度更快,占用内存更小等优点。所以本设计选择了的汇编语言[7]。
2 系统模块设计
2.1 硬件电路设计
硬件电路设计主要包括:最小系统,A/D转换电路,显示电路。
2.1.1 最小系统
单片机如果想要工作,首先需要构成其本身的最小系统,最小系统主要有单片机、复位电路和时钟电路构成。
复位电路是有电源、电阻、按键和电容构成。并接在单片机的RES引脚上,当RES信号为低电平时,实验板为工作状态,当RESET信号为高电平时,实验板为复位状态。当单片机一上电,立即复位;另外,如果在运行中,外界干扰等因素使单片机的程序陷入死循环状态或“跑飞”,就可以通过按键使其复位。复位也是使单片机退出低功耗工作方式而进入正常状态的一种操作。一般复位时RESET应保持20毫秒以上高电平,此复位时间由接地电容控制。电容和电阻实现上电自动复位。增加按键开关K1又可实现按键复位功能。一般取C=10 μF的电解电容,R1=4.7 kΩ,R2=100 Ω。
单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路。外接电路需要一个晶振和2个电容。电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数,电路中,电容器C1和C2对震荡频率有微调作用,通常的取值范围是30±10 pF,在这个系统中选择了30 pF;石英晶振选择范围最高可选24 MHz,它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是12 MHz,因而时钟信号的震荡频率为12 MHz。最小系统电路[8]图如图2所示。
图2 最小系统电路Fig.2 The minimum system circuit
2.1.2 A/D转换电路
A/D转换由AD7705完成,AD7705也需要外部接一个晶振来提供时钟,所以我们选择经典的2.457 6M的石英晶体,加上两个30pF的电容构成晶振电路,接在芯片的2、3引脚;本设计采用2.5 V作为转换器的基准电压,选择的芯片是LM258,接在AD7705的基准电压输入端9和10引脚;测量电路本设计选择一通道输入;其中CS、SCLK、DIN、DOUT、RESET和DRDY接在单片机的P0口。A/D转换电路[9]图如图3所示。
图3 AD7705连接电路图Fig.3 AD7705 connection diagram
2.1.3 显示电路
本设计选择单片机与液晶的串行通信,所以直接将12864显示屏的SID和SCLK引脚与单片机连接通信即可,PSB直接接地。液晶显示屏连接电路图如图4所示。
图4 液晶屏连接电路图Fig.4 LCD screen map of connect the circuit
2.2 软件设计
据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序。
2.2.1 初始化程序
所谓初始化,是对将用到的MCS_51系列单片机内部部件片进行初始工作状态设定,初始化程序的主要是设置定时器的工作模式,初值预置,开中断和打开定时器等。
2.2.2 A/D转换子程序
A/D转换子程序用来控制对输入的模块电流信号的采集测量,并将对应的数值存入相应的内存单元。
图5 A/D转换流程图Fig.5 Flow chart of A/D conversion
2.2.3 显示子程序
显示子程序主要有显示屏的初始化,写指令,写数据,读数据来完成显示。
3 数字式电流表的调试
对硬件和软件进行了调试及测试,显示数据如下表1,测试数据分析表明,该数字式毫安级电流测试仪,电路工作较稳定,很好的实现了设计的全部要求。
表1 简易数字电流表与“标准”数字电流表对比测试表Tab.1 Simple digital current meter and the"standard"digital ammeter contrast test table
4 结 论
该数字电流测量仪硬件采用AT89C52单片机,AD7705 A/D转换器实现,软件选用汇编语言实现,用AltiumDesigner和Keil软件设计原理图和电路图。通过实际应用表明:本毫安级电流测量仪操作方便,测量电流准确,精度高,使用性强、结构简单、成本低、外接元件少。系统功能、指标达到了设计的预期要求。
[1][美]克莱茨.数字电子学中文版[M].李慧军,译.北京:科学出版社,2012(3):26-28.
[2]王仁道.数字电子技术[M].4版.北京:科学出版社,2010.
[3]Thomas L.Floyd.Electric CircuitsFundamentals[M].北京:清华大学出版社,2008.
[4]周航慈.智能仪器原理与设计[M].北京:北京航空航天大学出版社,2010.
[5]杨振江.智能仪器与数据采集系统中的新器件及应用[M].西安:西安电子科技大学出版社,2007.
[6]肖洪兵.微机原理及接口技术[M].北京:北京大学出版社,2012.
[7]罗杰,谢自美.电子线路设计实验测试[M].4版.北京:电子工业出版社,2008.
[8]李广弟.单片机基础[M].北京航空航天大学出版社,2009.
[9]姜志海,黄玉清.单片机原理及应用.北京:电子工业出版社,2010.