基于单片机的电子秤设计

摘 要

电子秤是我们生活中经常用到的一种衡器,是传统衡器的替代产品。它在生产、销售及商品流通领域得到了普遍的应用。但电子秤大多具有数量读取不方便、易被人为作弊、称量工具运行不稳定、精确度不够高、零部件易损坏、体积大、重量高、电能消耗高等缺点,从而给使用带来了诸多不便。因此,有针对性的开发设计一种方便、快捷、稳定、高效的电子秤势在必行。
为了拥有一款便于日常使用的电子秤,本设计设计了以单片微型计算机为核心,利用称重传感器将重力信号转变为电压信号,键盘、液晶显示器作为人机交互接口配合对应的软件组成的电子秤。本系统主控芯片选用STC89C52单片机,以应变片式传感器作为信号采集模块,报警采用声光模式,显示采用液晶显示器,信号转换采用专用模块,从而使系统可以实现称重、金额计算、声光报警电路等功能。
本设计不仅反映了应用单片机最小系统的灵活性,而且实现了电子秤的多功能性。实现了轻便便携、测量误差小、集价格计算和重量测量功能于一体,基本可以满足商业和居民家庭生活中的基本使用需求。

关键词:传感器采集;数模转换; 单片机; 电子秤

1 系统总体设计方案

精确的电子秤在日常生活中既可以称出去皮后的重量,也可以存储基本产品的单价,只要拥有一样商品的单价,秤就会迅速计算出价格,而且最终也会对所有物品进行合计,并且计算出来的结果非常正确。
在设计系统时,根据要执行的功能,设计电子秤有两种选择:
方案一:由时钟电路、复位电路、数据采集电路、LCD信号显示电路、A/D信号转换电路、单片机以及过载声光报警装置等电路组成。被测物体的重量由应变片将重力转换成电阻的变化,再由电桥将其变成电压信号,此时的电压很小。电压信号被送到信号处理模块中,信号处理模块先对电压信号进行放大,然后将它变成数字信号,再然后将转换的结果传送给单片机,单片机将数字信号转换成显示器所需要的代码使被测物体的重量在显示屏上显示出来。如果需要显示物品价格,我们还可以通过键盘对物品的单价进行设置,以便单片机计算出物品的金额,电路设计有相应的过载声光报警装置,在设备工作异常时报警。其整体设计方案如图1.1所示。

在这里插入图片描述

图1.1 方案一设计思路框图

方案二:由时钟电路、复位电路、数据采集电路、数码管显示电路、单片机以及过载声光报警装置电路等组成。是在系统内部工作电路设计原理的基础,采用了键盘做为人机交互的接口电路,通过键盘设置被称物品的单价从而实现自动计算金额的功能。这种方案,成本低,硬件电路设计简单,并且在系统进行编程的过程中消减了很大一部分的单片机程序的工作量。整体设计方案的硬件框图如图1.2所示。

在这里插入图片描述

图1.2 方案二设计思路框图
方案二采用的数码管设计,可以直接实现基本的数码管称重显示功能,但由于方案二使用了数码管,从而限制测量的精度,方案二需要使用位数较多的数码管显示器才能使其得以很好的实现。但这样显示电路就需要占用较多的单片机接口电路,如果接口数量不能满足要求则需要扩展I/O接口电路,增加成本和工作量。而方案一采用LCD显示器省去了I/O口的设计和运用。同时由于LCD显示的位数较多容易满足输入输出位数的要求,测量精度能够达到要求。另外,方案二在信号处理方面也有些欠缺。而且由于方案一在前端进行显示信号的处理时,多了一个A/D信号转换的措施,能够有效的快速处理后端信号,符合了设计的要求。所以本方案的设计主要选择了方案一。

2 硬件电路设计

电子秤的结构可以大致分为三个主要的部分:数据采集模块、控制器模块和显示模块。其中主要的数据采集传感器模块由对压力过载传感器、预备数字信号进行处理和激活的A/D信号转换三个部分共同组成。经过转换后的预备数字信号被自动传输到相应的控制器模块进行测量信号处理,控制器对该预备数字的测量信号进行相应的处理,激活的预备信号显示控制器模块可以完成对人机间的测量信息采集和交换[5]。同时还在秤上添加了特殊的压力过载和欠载状态警告显示功能。

在这里插入图片描述

图2.1 硬件电路设计框图

2.1 单片机型号选择

方案一:单片机选用STC89C52。作为一种小型单片机被诸多用户使用,特点是低电压和低功耗。微处理器内部集成了Flash存储器为8k字节。STC89C52在以51系列单片机为内核的基础上增加了很多传统的MCS-51单片机不具备的功能。在单片机内部,设有灵活的8位微处理器和在线可编程闪存。 STC89C52单片机受到众多使用者的青睐。STC89C52单片机内部16位定时计数器有3个比MCS-51单片机多了1个T2,更加方便设计者使用。此外,STC89C52设计有省电模式、空闲模式和掉电模式可供用户选择,使STC89C52能耗更低,运行也更安全可靠,即使运行中突然断电,掉电模式也会使运行的数据得以保存而不会丢失。为了的满足不同产品的设计需求,STC89C52的封装形式有PLCC、TQFP和PDIP等三种,使用起来更加方便[7]。
方案二:单片机选用AT89C51。它是一种应用较广的8位单片机。AT89C51的工作电压低、性能高的特性受到诸多使用者的欢迎,其内部带Flash程序存贮器4k字节,芯片内集成了256字节随机存储器,接口部分并行 IO口线有32个,串行接口为全双工一个,具有定时和计数功能最多可以达到16位共有2个,中断系统比较完善,芯片集成了振荡器和时钟电路。AT89C51提供了省电模式、空闲模式和掉电模式等多种运行模式。CPU根据系统运行情况自动改变运行模式,用户也可以通过软件选择单片机的运行模式,省电模式又有多种不同模式供选择,掉电模式下会存贮运行数据防止丢失。
综上所述,STC89C52较AT89C51拥有更大的外部扩展,要求工作电压范围更广,存储空间更大,编程方式更多,所以选择STC89C52。

3 软件电路设计

3.1 软件程序设计

单片机上电后,开始初始化,初始化单片机中每个模块的设置以及A/D转换器的功能设置,初始化后运行主程序[17]。
在嵌入式单片机的过程控制数据处理系统中,主要工作模式有过程控制和数据处理两种工作模式。其中数据处理工作模式包括数据的收集、数字处理、数据的转换和图像显示等数据的处理。过程控制的程序主要是通过根据特定方法计算然后输出信号来控制生产。
在设计软件以执行上述任务时,任务被分解为几个部分,并将每个部分称为模块。所谓的“模块”本质上是一个执行特定功能的相对独立的程序段。模块化的编程语言和方法的优点很多,比如说单个的模块比一个完整的应用程序更易编写及运行和调试、模块之间可以共存等等。

3.2 系统程序流程图

软件由一个主程序和若干个子程序组成,这样能够极大的方便程序编写和程序调试。如图3.1所示。

3.2.1 显示模块流程图

单片机应用系统中通常需要有人机之间的对话功能,其中包括人对设备进行数据录入以及对设备运行过程实现控制等,也包括人从设备读取运行过程和结果的各种。人们获取设备运行的信息的主要器件就是显示器。
液晶显示模块是一种常用的显示设备,它的工作速度很慢,不能跟上CPU的速度,所以在对单片机送显示数据之前必需要确认显示模块是否处于空闲状态,液晶显示器的闲忙状态用忙标志位来表示,低电平,表示闲,可以执行操作。在液晶显示过程中我们要先传送显示地址然后再传送要显示的内容。如图3.2所示。

在这里插入图片描述

图3.1 主程序流程图

4 设计产品的安装与调试

4.1 安装

焊接电路板,对电子元件进行误读并粗略检验之后依次焊接。焊接时,必须确保将烙铁的尖端靠在两个焊接部分的接合处,并且将整个焊接部分充分加热。如果将元件焊接在印制板上,则必须确保烙铁头同时加热需要焊接在一起的两个部件,并确保两个焊接面同时均匀加热。当将焊接部分的焊接表面充分预热后,焊丝在与烙铁相反的一侧上与焊接部分接触。焊丝熔化到一定程度后,将焊丝快速向斜上方移走。观察焊接点的焊锡变化,在完成焊接之后,将烙铁快速向斜上方移开完成焊接[6]。焊接时注意加热时间不能太长,整个焊接过程不超过4s,通过大量的练习不断提高自己的焊接能力,提高焊接质量。
所有焊点全部焊接后,观察电路焊接是否有问题,是否有漏焊,焊点是否完整,然后用万用表检测电路,尤其注意电源部分,电压是否正常,并确定是否发生了严重的问题,如短路等。在确认没有问题后,连接电源后观察并调试每一个器件与按键,看是否正常工作,然后逐一测试功能。
在这里插入图片描述

图4.1 实物图1
在这里插入图片描述

图4.2 实物图2

4.2 调试

在软件设计方面利用Keil4,使用C语言完成程序代码设计。作为国外开发的编程软件,Keil4可以实现单片机C语言的有效兼容,使用语言较为广泛,在软件编程时,可按照自身需求确定编程语言,它的功能具有极强的可扩展性,可以进行下载、编译或者编程等操作[9]。
Keil uVision4 IDE是众多单片机设计软件中使用最为广泛的一种,它是基于Windows的开发平台。uVision4是一个集成开发环境,包含一个高效的编译器、一个项目管理器和一个MAKE工具。它在功能强大的运行环境中集成了项目管理,源代码编辑,程序调试等。uVision4支持所有Keil C51工具,包括C编译器、宏汇编器、连接/定位器、目标代码到HEX的转换器。C51美国标准交叉优化编译器C从源代码C生成可重定位的目标文件。A51宏汇编器从8051汇编源代码产生可重定位的目标文件。BL51连接/重定位器组合由C51和A51产生的可重定位的目标文件,生成目标文件。LIB51库管理器将目标文件组合在一起,以生成连接器可以使用的库文件。从OH51目标文件到HEX格式的转换器从绝对目标文件创建Intel HEX格式文件。RTX-51实时操作系统简化了复杂和对时间要求敏感的软件项目[14]。

5 遇到的问题及解决方法

(1)液晶显示器上显示的汉字存在代码混乱和字体未对准的问题。 经过研究,发现单个中文单词代表两个字节,因此在源程序中对代码进行了纠正和对齐,不再出现代码混乱和遗漏的情况。重新加载后的字符对齐。
(2)实物完成后显示器亮并显示数字,电子秤上放物品但显示器上显示重量的数字没有变化,经过检查发现是电路板上有个别焊点焊锡不够没有焊接上,经过重新焊接,电子秤可以正常使用。

6 结论

本设计使用STC89C52单片机微处理器作为中央控制器,并使用带有高精度HX711称重传感器和FYD12864-0402B液晶显示器的电子秤,还添加了蜂鸣器报警模块对本设计进行了完善。称重精度和工作稳定性基本满足设计的要求,校准方法简单方便,稳定性高,操作容易,成本低。该电子秤综合应用了单片机技术、传感器技术和数字显示技术等,它具有较高的灵敏度和准确度高,液晶显示更加直观,且使用方便。
本设计不仅反映了应用单片机最小系统的灵活性,而且还具有多功能性。本设计在项目方案制定、仪器的选择和软件设计等方面进行了充分的考虑。本设计体现在产品的实用性体积小、重量轻、精度高在称重的同时完成计价功能,可以直接利用商品单价自动计算得出商品的总价,实现了去皮功能,超重使用时会同时发出声音和灯光的报警信号,基本能够满足民用电子秤的使用需求,实现了制作电子秤的意义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值