基于单片机的电子秤控制系统设计
2019-09-10招妙妍
招妙妍
摘 要:智能仪表是含有微型计算机或者微处理器的测量仪表,它拥有存储数据、逻辑运算及自动化操作等功能。基于单片机的智能电子秤是智能仪表的一个重要研究方向,本文研究智能电子秤的数据采集和控制技术,研制相关系统,设计的智能电子秤能够实现称重、显示、计算价格等功能。此外,增设人机接口模块,这使得称重方便、读数简单,拓展了电子秤的功能。采用单片机作为控制器,具有速度快、高精度、节能环保的特点。
关键词:智能仪表;单片机;电子秤
1. 引言
电子秤是一种由蓄电池、称重传感器、微处理器(MCU)、承重系统等组成的电子称重衡器,通过人机接口装置控制电子秤完成称重、计价、信息显示功能,具有精度高、操作简单、体积小、效率高、节能环保的特点,适用于生产过程、商业贸易、日常生活以及科研领域中使用。
从上个世纪70年代至今,传感器技术、仪器仪表技术、计算机技术飞速发展,技术与技术相互融合,称重技术有了翻天覆地的变化,称重装置有了很大的进步,具体可以表现在它的智能化、网络化、自动化、数字化。新技术的出现给电子秤的研发提供了技术支持,使得研发出满足人们不同需求的电子秤成为可能。人们生活水平的提高,人们对电子秤的要求在不断提高。在购买需要经过称量才能出售的物品时,人们希望电子秤可以增加打印的功能;在家里称量身体重量時,人们希望电子秤可以增加分析人体是否健康的功能,或者可以方便家庭储藏;在一些需要统计重量的场合,人们又希望电子秤有存储数据的功能等等。人们对电子秤的需求是促进电子秤产品不断更新的源动力。因此,有针对性地开发出一套有实用价值的智能电子秤系统具有现实意义。
2总体方案设计
2.1 硬件架构
电子秤系统的硬件框图如图1所示。
2.2 软件架构
电子秤系统在工作时,控制器STC89C51需要接受来自HX711模数转换模块输出的质量采集信息、处理键盘模块输入的指令、控制LCD显示模块的数据显示。因而,软件架构主要从实现这几个功能出发,考虑软件编写。程序包括:系统初始化程序、数据采集程序、LCD显示程序、按键模块程序、低电压报警和超量程报警程序。
在本课题中采用C语言编写软件,C语言在编程方面有着巨大的优点。普中科技有51单片机的开发板,功能强大,满足电子秤系统开发的前期调试需求,直接减少了开发时间和开发难度。
3 电子秤系统硬件设计
3.1 STC89C51最小系统
最小系统是单片机运行起来所必须的基本电路,是保证整个单片机硬件平台正常运行的最基本电路。其中包括电源电路,时钟电路和复位电路。其中STC89C51的最小系统原理框图如图2所示。
3.2 A/D转换电路设计
A/D转换电路用到了电子秤系统专用的模拟/数字(A/D)转化器芯片HX711,该芯片集成度高,内部包括了稳压电源和时钟振荡器,外围电路无需对这两个部分进行重复设计。电路如图2所示。
3.3 LCD1602显示电路设计
LCD1602的电路设计非常简单。第1、2引脚是显示器的电源接口,第15、16引脚是背光灯的电源接口,首先将这两组接口按正负要求接入+5V电源中。VL端是调整液晶显示器对比度的端口,作用是使液晶可以清楚地显示。接电源正极对比度最小,屏幕过暗;接地则过亮。故在这个端口接入滑动变阻器调节电位从而改变对比度,选择10kΩ的滑动变阻器。RS、R/W、E端口是控制LCD1602的端口,接入单片机P1.1、P1.2、P1.3口,D0~D7是LCD1602的数据端口,接单片机的P0口。电路图2如图所示。
3.4 键盘电路设计
本课题采用键盘电路实现计算价格的功能,弹性按键具有“按下则通,松开则断”的特点,适合本课题的需求。按键的一端接入单片机的某个I/O口,另一端接地,按键按下对应的I/O口变成低电平。对I/O口赋予高电平,单片机检测I/O口电平并判断是否是低电平,低电平则表示按键按下。这是键盘的检测原理,键盘电路的设计就是基于此原理上的。按键按下与松开的过程,电路中的电压值会出现抖动现象,抖动可以通过编写特定的程序来消除它的影响。
为实现计算价格这一功能,系统至少需要16个按键,假如采用上文中提到的按键电路,则会占用单片机的16个I/O口。考虑STC89C51单片机的I/O口数量有限,这样的连接方式不仅占用I/O口资源,而且不利于程序的编写。因此,设计出如图2所示的矩阵键盘电路,设置上拉电阻的目的是减小灌电流,使系统更加稳定。矩阵键盘电路大大减少了的I/O口需求,而且按键越多,这一优点越明显。矩阵键盘有四行四列,同一行按键的左端连接到同一个I/O口,同一列按键的右端连接到同一个I/O口。所有的I/O口赋予高电平,检测第一列时,第一例对应的I/O口赋予低电平,扫描行线判断是否有低电平信号,如果检测到第一行是低电平,那么第一例第一行的按键被按下。编程中,用这样的方式对每行每列进行检测并不断循环,单片机执行程序的速度非常快,所以按下任意键都可以被检测到,对每个按键赋予含义,按键程序返回按键所代表的含义给主函数,主函数调用计算程序,实现预期功能。
3.5 总体电路
根据以上要求,完成基于单片机的电子秤硬件电路如图2所示。
4 电子秤系统软件设计
硬件和软件的关系就像“秤杆不能离开秤砣”,没有软件的系统不能正常运行,软件在使用者和硬件之间搭起桥梁,硬件执行软件中的命令完成使用者想要实现的功能,因而软件的编写是根据用户的需要而来的。电子秤系统的软件主要功能是:系统初始化、液晶显示器显示、矩阵键盘输入、重量值采集、A/D数据转化和发送等。
4.1 系统程序流程
对于整个电子秤系统而言,首先要能满足完成最基本的称重功能。当被测物体放置在承重台上时,引起惠斯通电桥输出电压的变化,电压的变化从电子秤专用模拟/数字(A/D)转换芯片HX711的通道A输入,转换芯片对其采集并转换成24位的数字量送入51单片机的P1.5管脚,单片机内部程序对这个数字量处理,转换成质量值,经液晶显示器显示。称重过程结束后,使用者通过按键完成价格计算的功能。按键按下,单片机对矩阵键盘进行扫描,读入按键值,经内部程序对按键值处理,得出称重结果,经液晶显示器显示。系统程序流程如图4.1所示。
4.2 数据采集与处理
电子秤系统的核心是对被测物体的质量数据进行采集与处理。质量数据的采集通过称重传感器采集,传感器将重力转换成模拟电压量输出,把输出的模拟电压量接入A/D转换接口,转换成数字电压量输出到STC89C51单片机中。对质量数据的处理是指在单片机中把输出的电压值转换成质量。其中,为了方便对数据处理和标定,也为了获得与真实值尽可能相等的质量值,需要把输入输出线性化或者引入非线性补偿电路,从而使传感器线性化。
4.3矩阵键盘扫描
单片机检测按键是否被按下是根据这个按键对应的单片机I/O口是否是低电平,矩阵键盘中的按键两端都接在单片机的I/O口上,需要用软件通过I/O口向按键的一端提供低电平,这样按键按下才能被检测到。先把矩阵键盘的第一列接入的I/O口即P1.0置低电平,其它列接入的I/O口置高电平,检测P2.4~P2.7口的电平,倘若检测到P2.7口为低电平,就可以确认KEY1按下。倘若没有检测到低电平,用同样的方法检测第二列、第三列、第四列。
if语句只能处理两路分支的问题,虽然通过嵌套if语句可以实现多支路处理,但是太复杂不够简单。C语言为处理多分支结构提供了条件选择语句,即switch语句,一般形式如下:
switch(<表达式>)
{case <常量1>:<语句1>
case <常量2>:<语句2>
...
case <常量n>:<语句n>
default:<语句n+1>}
对键盘扫描可以采用switch case 语句,思路简单,容易实现。
4.3 LCD1602显示
液晶显示器的原理是利用电流刺激液晶分子再配合背部的灯光显示字符,1602液晶显示器就是应用这一原理的,它可以显示两行字符,每行不超过16个ASCII码字符,而且多以并行操作方式。按本课题的使用要求,1602采用静态显示字符的方式。
5. 电子秤系统性能测试
测试电子秤系统的称重性能主要是检定其在称重过程中的示值误差,目的是查看本课题设计的电子秤系统是否能满足性能指标,也是为电子秤系统的修正提供依据。示值是电子秤系統液晶显示的被测物体的质量值,示值误差是电子秤的示值与被测物体的约定真值之差,它是能够最直接地反映电子秤系统精确程度的指标。采用砝码组成以等比数列的形式递增质量值的测试点,选取一定数量的测试点,得到结果如表1所示。
比较上表中的这组示值误差与最大允许误差之间的大小关系可知,电子秤系统符合设计的要求。
总结
本课题的目的是设计一款基于单片机STC89C51的电子秤系统,集称量、计价、显示等功能于一身。这款电子秤小巧玲珑,具有节能环保、实用性强的特点。本文从克服传统称量工具的不足之处出发,深入研究人们对称量工具提出的新的要求,在充分考虑目前智能仪表技术、微电子技术以及计算机技术的发展现状后,慎重地提出电子秤系统的设计方案,并成功实现了这样的电子秤系统。
“基于单片机的电子秤系统”是实用性非常大的研究课题,本设计的电子秤系统并不是十全十美的,它存在改进的空间,具体为:如何降低电子秤的成本;如何消除温度对电子秤的影响;如何防止电子秤作弊。
参考文献
[1] 董旭宇. 基于LPC1766的多功能电子秤设计[D]. 太原:太原理工大学,2012.
[2] 程勇. 电子衡器的技术现状与发展趋势[J]. 计量与测试技术,2010,(4):57-58.
[3] 吴琼. 国内称重仪表的应用现状及发展趋势[J]. 衡器,2012,(6):1-3.
[4] 唐立军. 防作弊高精度电子秤研究[D]. 长沙:湖南大学,2011.
[5] 胡翔宇. 浅析智能仪表技术的应用讨论[J]. 知识经济,2013,(10):79.