基于ATmega16单片机的智能型数字电压表设计
2019-11-27陈万勋蒋小辉
陈万勋,杨 顶,蒋小辉
(1.中国电建集团贵州工程有限公司,贵州 贵阳 550003;2.三峡大学 计算机与信息学院,湖北 宜昌 443002;3.三峡大学科技学院 机电系,湖北 宜昌 443002)
0 引 言
基于单片机的数字电压表从传统的测量领域扩展到自动控制、通信及传感领域,具有很大的应用前景。随着单片机技术的发展和软件方功能的完善,使得的数字电压表具备读数直观准确、分辨率高、性能可靠稳定、扩展方便等优点,易实现网络化和智能化。
1 数字电压表的结构及特点
基于单片机的数字电压表包括硬件系统和软件系统。硬件系统结构主要包括单片机系统、信号采集及转换回路、显示回路、通信接口及功能回路,功能回路一般有过限报警、继电器输出等。软件系统主要包括数据采集处理、通信及功能程序。数字电压表按照其工作原理通常分成4种类型[1]:(1)比较式数字电压表,工作原理是被测试的电压和已经知道的基准电压对比,测量速度较快;(2)电压-时间变换式数字电压表,工作原理是被测的电压被转换为脉冲信号进行对比测量;(3)电压-频率变换式数字电压表,工作原理将被测电压转换为频率脉冲信号而直接测量;(4)复合式数字电压表,包含了上面3种模数转换的工作原理。数字电压表主要具有抗干扰能力强、可扩展性好、集成方便、能够与PC端进行通信和测量精度高5个优点。
2 系统的硬件设计
基于ATmega16单片机的智能型数字电压表硬件电路由单片机、模数转换器、显示电路、通信接口及键盘电路5个主体部分构成,如图1所示[2]。单片机采用ATmega16型单片机,设计其最小工作系统电路;模数转换器基于ADC模数转换模块,包括其工作电源回路;显示电路主要包括LED显示器及其与ATmega16型单片机P口之间的连接电路;通信接口主要采用基于RS485协议的9针RJ型接口,可与PC机之间直接通信;键盘电路主要由键盘矩阵和转换电路构成。
图1 基于ATmega16单片机的智能型数字电压表
3 软件系统
基于ATmega16单片机的智能型数字电压表的软件系统程序主要包括主程序、A/D转换子程序和中断显示程序,如图2所示。主程序包括初始化部分、调用A/D转换子程序、显示程序、通信程序和功能程序[3-4]。初始化的主要作用是上电时将系统输出置为低位。A/D转换子程序用于对多路输入模拟电压值进行模数转换。显示程序采用软中断功能,当输出处理完成后将程序中断,使电压值传输给LED进行显示。当输出处理完成后,将电压值通过基于RS485协议的9针RJ型接口传输至PC。功能程序由开发员根据工程需要实时开发。
图2 基于ATmega16单片机的智能型数字电压表工作流程
4 仿真与调试
根据图1设计电路,并利用Proteus进行仿真。通过电位器输入可变模拟量电压值与数字电压输出值对比测试,结果如表1所示。
当通过电位器输入2 V电压时,Proteus仿真结果如图3所示。
5 结 论
本文基于ATmega16单片机设计了一款智能型数字电压表,包括信号采集及转换回路、显示回路、通信接口及过限报警等功能回路和相应的软件程序,并基于Proteus设计相应的回路进行10组数据的测试及仿真。验证发现,它的精度满足要求,同时抗干扰能力强、可扩展性好、集成方便、易与PC机实现通信,整体应用价值较高。
表1 测试电压数据表
图3 2 V输入电压下的Proteus仿真图