基于单片机的简易电子秤

摘 要

测量一直是我们生活中重要的一部分,随着时代的发展一些旧的计量工具已经不足以支撑我们精确的计量物
品,所以我们要优化我们生活中的计量工具来精确生活中的测量数值。电子秤目前是我们生活中普遍使用的测量机
器之一,电子秤是以单片机为主要控制单元,传感器将收集的数据传输给单片机,显示屏,按键等组成。以最简单
的操作方式实现精确的测量。
  本篇文章主要设计是以单片机STC89C52作为主控模块,电阻应变式传感器为收集模块,电子秤专用24位AD转换
芯片HX711,LCD1602作为显示模块组成的简易电子秤。
关键词:单片机STC89C52 传感器HX711

第1章 绪 论

1.1衡器的发展
  生活中我们需要测量许多事物来应用与我们的生活,所以从很久之前我们的祖先就凭借自己的聪明才智发明了
许多衡器。时至今日,衡器的发展越来越快,已经应用于我们生活的很多领域中,例如建筑、交易、科研、交易
等。 度量衡在中国源远流长,是众多古代文明奇葩中的一支。具体地讲,度量衡是三种不同含义的计量:“度”是
指长度测量,“量”是指容积测量,衡”是指质量测量。度量衡伴随着人类的生产、交易活动而产生,因此,度量
衡的发展忠实地映射出人类文明发展的过程。现今已经出土的天平和砝码,最早可以追溯到夏代,证明我国在夏代
就知道利用杠杆原理制造衡器了,这就是衡器的祖先。人们把秤和天平叫做“衡”(衡器),把砝码叫做“权”。西
周(公元前1046年一公元前771年)时的青铜器上发现有“金十寽(音虑)”“金十匀”等铭文,“金”就是铜,“寽”
和“匀”是古代的质量单位。由此判断那时已用“金”作为交易的等价物且予以测量。众所周知,秦始皇以“车同
轨,书同文……权同轻重”统一了度量衡。这一制度被沿袭下来,赋予衡器公正、清廉、严明的象征,对历代衡器
发展影响深远。秦及以后的铜权如图所示,和今天所用的秤砣相似。
1.2 我国电子秤的发展
  新中国衡器经历了机械化、电子化和现代化三大阶段的演变与发展。据1952年的统计,全国已经建立了l5个国
营衡器厂,私营作坊有2379家。又经过十来年的发展,在24个省、市建立了大型专业衡器厂,衡器步入了机械化生
产的阶段。但是,多年以来,人们都是利用杠杆等机械原理制造衡器,技术上没有太大突破。20世纪六七十年代,
我国开始了电子衡器的研制。电子衡器用传感器将质量转化为电信号,再用仪表显示出来,是称重技术的一次革
命。衡器产品不再局限于简单的品种与功能,形成了一个多品种多系列的产品大家族。改革开放以来,电子衡器在
我国得到普及和高速发展,制造电子衡器的厂家达到数百家。20世纪末,电子衡器已在中国担当主角,衡器进入了
电子化时代。进入21世纪,衡器制造业迈入了工业化和信息化相互融合的发展道路,这也是现代衡器发展的重要标
志。中国衡器企业林林总总近千家,具有一定规模的衡器企业也有数十家,他们采用先进的设计技术、先进的制造
设备、先进的材料与器件,进行着衡器现代化的生产,更可喜的是有越来越多的中国衡器企业使用着自主技术设
计、生产衡器。为了维护贸易的公平性与公正性,衡器被纳入国家重点管理的计量器具目录,列入目录的衡器实行
法制性的首次检定和周期检定。
  现在,中国有能力制造衡器大家族中的各种衡器,称重技术水平日渐与国际接轨,两化融合有力地促进着中国
衡器工业由制造大国向制造强国转变。如今我国电子秤行业的发展趋势非常不错,但是在有些地方还是需要改善。
因为很多电子产品都不能够独立完成,还需要依靠国外的一些先进科技的技术才能够完成。所以说在很多方面可以
采用国外先进技术,但是我们也要慢慢地脱离,将国外技术融合到我国。
1.3 研究目的及意义
  电子秤是科学研究、工业生产和人民生活必需的计量器具,设计智能化、高精度的电子秤具有较高的现实意
义。因为经济的持续发展和商品种类的日益增多导致我们以前的一些称量仪器被随之淘汰,无法完成对现代事物的
程亮,所以我们需要称量物品的设备也应随之更新,多功能电子秤就是当代生活中为了满足对新事物的测量而应运
而生的一种精密,可靠,智能,方便的称量仪器。这种电子秤克服了传统杆秤和盘秤精确度不是特别高的缺点。除
此之外它们的称量速度快,很容易出错;而且技术操作复杂,费时费力,不易掌握,使用寿命比较短。速度较慢,
无法计价等缺点。现在这种新型的电子秤已经越来越多的应用于商业领域。本文主要介绍电子秤的组成,工作原理
和使用方法。1.概述称重仪表是以测量为基础的计量器具,其精度直接影响着产品的质量。因此,对秤量准确度要
求很高。电子秤即日常生活中的电子衡器,它代替了应用杠杆原理制造的普通衡器。它以其精度高、使用方便而受
到广大消费者的欢迎。电子秤主要用于对各种物品进行重量测量,也可作为计量器具使用,还可以与计算机相连构
成自动记录和打印系统。它现在广泛地应用在超市、商场、物流配送中心及我们生活中的很多地方来帮助我们称量
物品。而对于那些传统的普遍计量工具来说,电子秤拥有着称量精度高,体积小,操作简便,应用范围广及便于计
价等优点。克服了传统的杆秤,磅秤及盘秤的不精确,速度慢还需人为计价的缺点。设计电子秤,因为单片机无法
直接识别电信号,所以首先是将通过传感器采集被测物体的重量并转换成电信号。因为输出的电压一般很小,所以
需要经放大器放大后再将模拟信号转换成数字信号。在对数字信号进行模数转换时则需要使用到A/D转换器。最后再
将数字信号输入单片机经处理后译码显示,以便准确称量。
  目前使用的称量工具大多存在各种各样我们无法避免的问题,导致我们无法及时完成称量。如现有的称量装置

第2章 系统方案选择与设计

此次设计需要满足的要求有:1.本系统具有称重、计价、去皮、清零、累加等功能。电子秤可以数字显示被称
物体的重量,单位克(g)显示精度0.1g,电子秤称重范围10g~500g称重误差小于1g。 ,电子秤具有去皮功能,去皮
范围不超过100g。2.当重量超过限制额度500g时,蜂鸣器开始报警。3.电子秤可以设置单价(元/克)可计算物品金额
并实现金额累加。
为了满足所有的设计要,主要将系统分为了以下几各模块,主控模块,数据收集模块,放大模块,显示模块和输入
模块。系统方案图如下所示:
在这里插入图片描述

2.1 系统硬件方案选择
2.1.1 主控模块
  本次设计要求是基于单片机的电子秤,所以主控模块我们使用单片机,而单片机是一种小型完善的微型计算机
系统,详细的说就是采用超大规模集成电路(UIC)技术,将CPU,AD转换器,多种IO口和中断系统等电路集成在一块
硅片上构成的微型计算机系统,其可以将电路,计算机,和控制测量技术很好的联系在一起。
  在众多单片机品种中,我们选用了具有低功耗,高性能的CMOS 8位微控制器STC89C52,这种单品机拥有8K的可
编程Flash存储器,有了这种存储器的存在,我们可以更方便地实现系统中的程序编程。除此之外该器件还集成了一
个用于数据读取和写入的16位非均匀细分结构。在单芯片上,灵巧的八位CPU,系统可编程Flash,使STC89C52为众多
嵌入式控制应用系统提供了一种高灵活,超有效的解决方案。。该系列的MCU都支持多种工作模式。例如:可通过中
断来完成对多个设备状态信息的采集;还可通过串行通信方式与上位机进行数据交互,显示结果等功能。最后对本
文所设计的电路进行了测试实验,验证了设计方案的可行性。在此基础上,提出了一种基于单片机控制的高精度温
度测量系统的方案,并完成了软硬件的具体实现。1.硬件结构。所述STC89C52内设有高增益反相放大器构成振荡
器,所述引脚RXD和TXD分别作为放大器的输入端和输出端。该系统有一个独特设计:在时钟发生时,利用定时器产
生时钟信号并输出到外围器件来实现时钟功能,从而保证了整个控制系统的稳定性;另外还具备良好的抗干扰性
能。时钟的生产可采用内部和外部方式均可。内部方式中定时元件通常是利用石英晶体和电容组成并联谐振回路,
晶体振荡的频率在1.2~12MHz范围内可选通,电容值可选通5~30p F,电容值的大小对频率起微调作用。外部方式对
外界振荡信号无特殊要求,只需保证脉冲宽度,所以通常情况下选用频率低于12MHz的方波信号。基于STC89C51的智
能时钟发生器由两个部分组成:片外电路与片内控制电路。片内时钟发生器将振荡频率分为两分频,产生两相时钟
P1和P2供单片机使用。由于片内外时钟存在一定误差,使其输出结果不一致。所以我们提出了一种改进方案:在芯
片内部增加一个电容补偿电路,以减小或消除该部分偏差所造成的影响。通过外部连接振荡器TXD实现对RXD的接地;
TXD对外部振荡信号无特殊要求,只需保证脉冲宽度即可,一般采用12 MHz以下的方波信号。它可以应用多种复杂的
功能,其中就包括了处理数字信号,串行通讯和显示等多种功能。单片机采用双积分结构,可实现高精度AD转换和
高速采样。具有较高的精度,并能在恶劣环境中工作;同时还提供了丰富的外围接口电路。内部集成有16个引脚。
而且在价格上STC89C52较为便宜,可降低设计成本。
2.1.2 数据收集模块
  电子秤数据收集模块是将外界数据产生的电信号转化为数据的重要部分,它主要包括称重传感器,信号放大电
路和A/D转换电路组成。
传感器的选择
  人们对自然现象和规律的研究,对生产活动的研究,其作用还远远不足。为了适应这种现状,传感器应运而
生。随着科学技术的进步,传感器也越来越多地被应用于社会各个领域之中。从军事上看,它可用于侦察敌方武器
系统;从经济方面来看,它可用来测量工业产品质量、产量等经济指标。它包括温度传感器、湿度传感器、压力传
感器等多种类型。随着科学技术的进步和社会经济的发展,传感器已广泛地应用于工农业生产各个领域及日常生活
中。一、传感器及其分类1.传感器。伴随着新技术革命,全球开始进入信息时代。在利用信息的过程中,首先要解
决的是获取准确可靠的信息,而传感器是获取自然和生产领域信息的主要途径和手段。在现代工业生产中,特别是
自动化生产过程中,需要利用各种传感器对生产过程中的各种参数进行监视和控制,使设备工作在正常或最佳状
态,使产品达到最佳质量。因此可以这样说:没有大量优秀的传感器,现代化生产同样会失去根基。因此,传感器
被广泛地应用于国民经济各个领域中。在工业发达国家中,传感器已成为一门独立的新兴边缘科学。它已经渗透到
工农业生产及国防现代化建设的各个方面,发挥着越来越大的作用。传感器在基础学科学习中地位更为突出;当代
科技发展到今天,已经进入了许多新的领域:如宏观上是几千光年的茫茫宇宙,微观上是小到FM的粒子世界,纵向
上是几十万年的天体演化,短至秒的瞬间反应。
  可见,要想获得人类感官无法直接获取的庞大信息就离不开相应的传感器。然而,传感器技术却一直是当前科
学技术发展中最活跃的学科之一,它为我们提供了从原子到分子甚至细胞等微观尺度上认识世界和改造世界的重要
工具。基础科学中许多研究的障碍首先在于对象信息难以获得,而一些新机理,高灵敏度的检测传感器的出现往往
会在这一领域有所突破。某些传感器的研制往往开某些边缘学科研制的先河。所以说传感器是现代工业必不可少的基础元件。它已成为一门综合性的高技术科学。随着科学技术的迅速发展,传感器也越来越受到国内外科技界的重
视。时到今日传感器已广泛应用于各个领域。传感器早已渗透到工业生产,宇宙开发,海洋探测,环境保护,资源
调查,医学诊断,生物工程乃至文物保护等极其之泛的领域。可以这么说:没有传感器就没有现代社会。传感器是
信息科学技术中最活跃、发展最快的研究对象之一。它与电子计算机一起被誉为当代信息技术三大支柱。传感器技
术是一门新兴而又古老的科学。说它大不夸张,大到浩瀚太空,小到浩瀚海洋,乃至各种复杂的工程系统,几乎每
一个现代化的工程都离不开各种各样的传感器。这不仅提高劳动生产率,而且还能降低产品成本。同时由于采用先
进技术,也会带来经济效益。例如,可节省大量能源;改善劳动条件;减少环境污染等。表明传感器技术在发展经
济,促进社会进步方面具有十分显着的作用。随着科学技术和生产水平的提高,人们对传感技术的要求也越来越
高。因此,传感器技术是一项新兴而又很活跃的高新技术产业。目前,已广泛应用于国民经济各个领域中。世界各
国都非常重视这一领域的发展。认为传感器技术在不久的将来将有一个飞跃,并将达到与其重要地位相称的新高
度。
  传感器的选取要涉及到参数的规定,设计的实用性,能否实现技术要求。因此我们在传感器的选择上对比了电
容式传感器,压电式传感器,电阻应变式传感器。在这些传感器中,有一类应用广泛而又比较特殊,这类传感器就
是电容型传感器。下面我们就来具体谈谈这类传感器的结构和工作原理。一、电容型传感器的特点1.性能稳定。电
容式传感器是一种变换器件,它采用多个型号的电容器作为传感元件,将被测物理量或机械量转换成电容的变化
量,实际上就是一个参数多变的电容器。电容式传感器在位移、角度、振动、速度、压力、成分分析、介质特性等
测量中得到了广泛应用。在这些电容器中,应用最广的是平行板型电容器或圆筒型电容器;电容层析成像技术
(ECT)则是在不破坏样品原有物理模型和几何形状的条件下对样品进行无损检测的新方法。它以图像重建为主要手
段实现了材料内部缺陷的定性定量分析。其特点在于:结构简单紧凑、灵敏度高、稳定性好、抗干扰性能好。因此
广泛应用于工业自动化领域中。本文主要研究的是基于电容理论的电容式液位变送器。它属于非接触式液体位测量
仪。电容式传感器的工作原理为:一个圆筒形的电容器,它包括内电极和外电极两两相互绝缘的同轴圆柱极板,当
电极之间填充电解质时,介电常数ε为L,电极之间的电容量L为电极之间相互重合部分的长度;D为电极之间的直径;d
为电极之间的电极直径;e为电极之间的电介常数。而压电式传感器则主要用来检测液面高度(即液体密度),其原
理与上述相同。实际测量时, D, d, e基本保持恒定,因此测量C就可以知道液位的高低程度,运行方式非常简单,
同时结构简单,灵敏度高,价格低廉。电容式传感器是利用多个不同型号的电容器作为传感元件,由于被测对象的
变化引起电容器电容量的变化,电容量的变化可通过测量电路转换成电信号输出。其大小可根据测量到的电信号大
小来判断。利用这一特性制成了一种新型的电容量测试装置。该仪器具有结构简单、操作方便、性能可靠等优点。
这也是电容式传感器的基本工作原理。然而电容式传感器的点容量太小,结构过于简单,支撑不起系统的电容变
化,所以不可用。
  压电式传感器是基于压电效应的传感器。它将机械力转化为电信号并通过检测信号的变化以达到对物体进行位
移测量的目的。它主要有以下几个特点:1.非接触;2.响应速度快;3.分辨率高等。它是自发电式和机电转换式传
感器。它们能在外界干扰下自动地把检测信号转变为电信号并转换成标准电压值。这种电涡流传感器可用于各种需
要进行电流、压力等参数测定的场合。其敏感元件采用压电材料。压电材料受力后,其表面会产生电荷。电量经电
荷放大器和测量电路对阻抗进行放大变换后成为正比于所受外力的电量输出。通过对该电压值进行运算可以获得被
检测物体受到的作用力。也可将其转化为功或电能。并最终转换成相应的电信号输出。这种非接触式测量方法具有
广泛的应用前景。压电式传感器用来测量力与能转换为电的非电物理量。其优点是频带宽,灵敏度高,信噪比高,
结构简单,工作可靠,重量轻。在机械工业中应用很广,可广泛地用作压力和位移的检测装置,也可用以研究物体
表面状态及振动特性等;还可以作为各种仪器的敏感元件。因此它具有广阔的前景。缺点是某些压电材料需要采取
防潮措施,输出直流响应较差,需要采用较高的输入阻抗电路或电荷放大器来克服这种缺点。广泛应用于工业检测
、国防军事和日常生活中。本文主要介绍了几种压电式传感器及其应用。并对各种传感器进行分析比较。最后指出
未来发展方向。压电式测力传感器是利用压电元件直接实现力-电转换的传感器,一般在拉拔和压拔场合多采用双片
或多片石英晶体作为压电元件该系统刚度大,测量范围宽,线性、稳定性好,动态性能好。根据受力状况,可将其
分为单向、双向、三向三种,它们的结构大致相同。利用传感器对机床的动态切削力进行了测试。绝缘套用于绝缘
和定位;在半导体集成电路中最重要的一种元件,也是测试器件可靠性的一个主要参数。目前,国内生产的绝缘电
阻式压力传感器均采用石英晶体作基底材料。该材料具有良好的化学稳定性。基座内、外底面与中心线的垂直度及
上、下片平行度及电极上、下片光洁度等方面都有着极为苛刻的要求,否则会因为应力集中而导致横向灵敏度提高
或片子过早断裂。为了改善绝缘电阻,需要在组装之前进行多次清洗(包括超声波清洗),并在超清洁的工作环境
中,加盖后采用电子束封焊进行焊接。虽然压电压力计的种类很多,但是其工作机理和构造仍然与压电加速度、力
传感器相同。最大的区别在于,压力通过弹性薄膜、盒子等来收集、转化为力,然后传到压电部件上。通常,为了
确保它的静性能和稳定,通常使用的是硅片。然而,在科技、尤其是微电子技术的进步,人们发现用压电陶瓷做压
电元件可以制作各种传感器。例如压力,位移等。压电作用可以分成两类:一种是正压电作用,另一种是反向压
电。正压电效应是指当一个晶体在一定的方向上受外力的影响后,它的内部会发生电极的电极化,并且在两个不同
的面上形成一个具有反向的符号,当外部的力量消失后,它就会重新变成非电的,而当外部的力量被施加后,它的
电荷就会发生变化由此可以推测,压电传感器是一种利用压电材料自身的正电势特征来探测外部压力的装置。在工
业自动化中有着广阔的用途。压力感应元件以变阻器为主。压电传感器一般都是使用正压电的。反向压电作用是通
过将交流电磁场作用在晶体上而引起的,又称为电致伸缩效应。采用反向压电原理制成的传声器,可以在电声、超
声波等方面得到广泛的运用。压电片的应力变形主要有厚度变形、长度变形、体积变形、厚度剪切变型、平面切变
型5种基本形式压电结晶具有不同的特性,但并非全部的晶体都能在上述5种情况下发生压电作用;比如,在石英
中,没有压电的体形变,而是有一种压电的作用,即有一种材料的厚度形变和一种长形的压电作用。所述压电式传
感器结构过于复杂,外置电路过于繁琐,输出能量微弱,不适用于本次设计方案。
  电阻型结晶具有不同的特性,但并非变送器是一种以电阻仪为变换部件的电阻型变送器。与常规的接触法比
较,该方法有很多优势:不受环境条件限制;能实现非接触测量;体积小、重量轻、成本低。在机械工业、电子工
业、仪器工业等领域有着广阔的发展前景。电阻应变型传感元件包括弹性敏感元件、电阻应变计、补偿电阻及壳体
等。由该弹性传感单元测量到的力会发生变形,从而导致附着于其上的电阻应变仪发生变形。通过测量,可以测量
力,压力,扭矩,位移,加速度,温度等多种物理量。目前应用最广泛的应变式应变式测力计、应变式应变测力
计、应变式位移计、应变式加速度计、应变式加速度计和温度应变计。该传感器的特点是:高精度、宽广的测试区
域、高的使用寿命、简单的电路、良好的频率响应性能、能够适应恶劣的工作环境、便于微型化、集成化和多元
化。
  感应元件中的电阻应变元件具有一种金属的应力效应,也就是受到外力的影响,使其发生力学变形,使电阻值
发生变化。它的测试值与其自身的特性密切相关,因此可以用于对金属的力学状况和其它物理参数进行测试。这个
测量方式叫做电测量。这种方法称为电测法。它的测试值与其自身的特性密切相关,因此可电阻应变计可分为两
类:电阻应变器和电阻应变器。应变元件分为两大类型:一种是金属,另一种是半导体。由于其高的敏感性(通常
是丝的,箔的几十倍)和低的侧向影响。应变型加速度传感器通过测量的电阻-变形和振动体系的惯量力来完成对传
感器进行的测量。惯用型地震测振元件的工作原理:在测定建筑物的某个位置时,要想找出一个固定的参考点是困
难的,所以要设计一种带有“质体弹性体系”的装置。通过将其安装到物体上,使得其与结构仪器发生震动地测定
了物的某体与物体之间的振动。应变型加速传感器结合了电阻-应变和系统的惯量性,在工程实践中应用非常广泛。
它具有结构简单的特点,但是其敏感性比较低,测量范围从1克到2克,频率在0到100赫兹之间。
应变式传感器的特点:。
①测量精度高,范围广;
2)使用寿命较长,性能稳定、可靠;
②结构简单、小巧轻便;
④频率响应较好,可以同时进行静态和动态的测量;
⑤价格低廉,品种繁多,便于选择和大量使用。
  所以我们选用的是电阻应变式传感器,这种传感器在感受到物体时会改变自身阻值从而将信息传给下一阶段。
它的工作机理是:弹性体,弹性部件,在外部环境的影响下,会产生弹性形变,从而使附着于弹性体上的电阻值当
施加载荷时,由于应力和应变的不同,使传感器内部发生形变并引起电阻的改变。电阻应变仪变形后,在此基础
上,由对应的测试线路将其转换为电讯号,实现由外部力转换为电讯号的转变。而且这种传感器的价格便宜,测量
灵敏完全可以满足本次设计要求。
2.1.3 转换放大模块
  物体在经过传感器之后将外力转换为了电信号,然而电信号不能被单片机直接识别,而且这个信号太小,所以
我们在进入主控模块之前需要将这个信号转换放大为单片机可以识别的信息。
A/D转换和放大电路的选择
  A/D转换是本系统至关重要的一步,因为我们收集的电信号非常的小,所以我们对比了12位A/D转换器ADC0832和
电子秤专用的24位HX711AD转换器。
  ADC0832为美国国家半导体公司生产的一种8位分辨率的双信道A/D变换芯片。该芯片具有较宽的输入范围以及丰
富的功能,非常适合作为各种应用场合中A/D转换的专用芯片。它不仅能够完成模拟信号的采样、放大处理还能实现
数字信号的采集输出。因其体积小,兼容性好,性价比高而受到单片机爱好者和商家的青睐。然而, DO和 DI两个
端口在通信过程中不能同时工作,并且与 MCU进行了一个此, DO和 DI两个终端可以平行地被一个数据线路相连。
ADC0832在不工作的情况下, CS的输出应该是高的,这时,该晶片被禁止,并且 CLK和 DODI的水平可以是任何的。
在进行 AD变换时,必须将 CS启动端放在较低的位置,直到过渡完。这时,该晶片便启动了变换工作,而该处理器
则向该晶片的时钟输入 CLK中,该 DODI端子则通过 DI端子上的一个输入信道函数来处理所选择的数据。1钟,在脉
冲沉没之前, DI端点必须是高电平,代表开始的讯号。其中1号和2号为总线控制用的信号输出端;其余两条则为系
统工作状态时所需的数据通路或中断源。第2, 3脉冲下沉前DI端输入2位数据进行通道功能选择。
ADC0832特点介绍
·与 TTLCMOS相适应的输入/输出级别;
·5 V的电源,其输出的电压为0-5 V;
·工作频率:250 kHz,变换时刻32微S;
·普通功率消耗只有15 MW;
·8 P、14 P- DIP (双行直接插入)、 PI
·在0摄氏度到+70摄氏度的商业芯片温度范围内;温度范围是:温
描述晶片界面;
·选择CS_片可以提高能量,而低级芯片可以降低
·CH0仿真0的输入信道,也可以用作 IN±
·CH1仿真的输入信道1,也可以作为 IN±
·GND晶片具有0度(接地)的基准电压。
·输入 DI的资料,选取信道控制器。
·输出 DO资料讯号,并变换资料。
·-为 CLK晶片提供的时钟信号。
·VCCREF电源的输入和基准的电压的输出
  ADC0832是一种8比特的 ADC 0832,其分辨率可达到256级,能够满足普通的模数变换需求;它的内部供电和基
准电压被多路复用。该系统在32微秒内完成了对系统进行的数据检测,并对其进行了分析,从而降低了系统的数据
错误。采用了单独的晶片实现了多个设备的连接。采用了多线程技术使整个系统性能大大提高。由于采用了双核架
构,提高了系统资源利用率。另外,还设计了一个扩展接口模块,便于扩展其他外设设备。通过DI数据输入端,可
以方便的实现通道功能的选择。
  HHX711是一款24- AD转换机的高精密电子天平;与同类其它晶系统比较,本系统具备稳定电压、片内时钟等周
边器件,并具备较高的集成度、较高的反应能力和较好的抗干扰能力。该装置可以减少整个电子天平的整体造价,
改善整体的功能和可靠性。此晶片与后端 MCU晶片的界面及程序设计相当方便,全部的控制讯号都是用插头来驱
动,而不需要在晶片上设定任何的寄存器。该输入选择交换机可以在任何情况下,都可以在信道 A和 B信道之间自
由地连接,并连接到。本系统的整体设计中,16根8针 ADC,各针各有两个输出端口。一个用作参考电源和一个用于
生成一个标准的电流信信道 A具有128或64的可编程增益,而对应的全限额差动输入信号幅度是+20米 V或+40米 V。
而 B信道则为32路增益,用于测量系统的参量。内置于晶片中的电压稳定电源,可为外界感应器及晶片内 AD转换器
提供能量,而不需要额外的模数。因为是单片的设计,所以能达到很小的功率消耗。该系统的设计方案是在系统的
基础上实现的。由于采用了单片式结构,因此可以实现低功耗运行。在硬件上采用了双总线技术。通过双通道串行
通信接口可将采集到的数据实时传输给单片机进行处理。利用两路串行通讯系统,可以将所收集到的资料进行即时
传送至微处理器进行运算。芯片内置的时钟振荡器不需要外部设备;上电后的自动重置,使启动的启动程序更加简
单。
芯片的特征
·具有64和128的可编程芯片中的低噪音放大器
·内部电压稳定电路可以为外敏元件和芯片内部 AD转换器
·无需附加设备,如果有必要,也可以采用芯片内部的时钟振荡,也就是外部的晶体振荡
·简单的数码控制和串行通信:输入全部控制,不需要在晶片上设置
·可在10赫兹或80赫兹之间选定输出数据率
·50赫兹、60赫兹功率扰动的同步控制(包括电压稳定的供电线路):
·工作电压:小于1.7 m A;关机:12.6至5.5伏的工作电压
·20-85摄氏度的工作环境
输出数据速率
·外部时钟或晶振, RATE=DVDD fclk/138, 240 Hz
·输出数据编码二进制补码800000 7FFFFFF(HEX)RATE=0 400
·输出参考电压(V BG)1.25 V
·外部时钟或晶振频率为1 11.0592 30 MHz
·模拟出的电源电流(包括稳压电路)为0.3 μ A停电1600 μ A
  因为HX711可以一起进行A/D转换和放大,简化了系统结构,所以我们选择了HX711AD转换器。芯併内所提供之稳
压电源可直接为外部传感器及芯併内之A/D转换器供电,系统板上需另加一模拟电源。在芯片级上使用一个简单的数
字逻辑单元就可实现这些要求,它是通过将内部集成有两个或多个晶体管的开关电容网络与外接电源相连来完成
的。在芯鎓内设置时钟振荡器,不需要任何外接器件;上电併动复位功能以简化初始化的开始过程。而且HX711精度
更高,速度更快,编程更方便。
在这里插入图片描述

图e HX711引脚图在这里插入图片描述

图f HX711实物图
2.1.4 输入模块
  本系统需要满足称重、计价、去皮、清零、累加等功能,所以在10位数字的按键之外我们还需要加上去皮、清
零、单价、确认、累加、小数点额外的六个键,所以我们一共需要用到16个键。因此我们选择44矩阵键盘的实施。
矩阵键盘是单片机外部设备中采用的排列方式与矩阵相似的键盘组。由于矩阵键盘具有布局简单、便于操作等特点
而得到广泛应用。目前常用的键盘有:1.矩形键盘排列法;2.方格纸键盘排列法。3.矩阵键盘排列法。矩阵键盘显
然要比传统方法更加繁琐和难以辨识,列线由电阻器连接,由行线连接的单芯片 IO端口构成,列线连接的 IO为输
出口。当键位数量多时,通常会以矩阵方式来减少 IO端口的占用。在矩阵键盘中,每个横线与竖线都没有相互交
叉,只有一个按钮。通过这种方式,例如P1接口,可以组成4
4=1键字,是用接口线来实现的两倍,并且随着线路数
量的增加,这种差别也会越来越大,比如一条线可以组成20个按钮,而通过接口线可以组成一个按钮(9个)。当所
需键数较多时,用矩阵法制作键盘更为合理。
确定矩阵式键盘上的何键被按下引入了"行扫描法".
行扫描法:行扫描法亦称逐行(或列)扫描查询法,是目前最常用的按键识别方法。
1.确定在键盘上存在一个键,将全部Y0-Y3全部压到低,然后对列线的状况进行检查。当某个栏的水平处于低水平
时,则表示有一个键被按下。如果在这2个列线上同时都是一个键时,说明键盘中有键按下;若仅一行或两行线未断
开时,表明键盘无任何操作功能。如果所有的列线都是高电平,则键盘中没有按键按下。
2.确定关闭按键的定位在确定按键被按下后,是否可以进行特殊的关闭按键的判定。其方法是:将行线按顺序置于
低水平,也就是将一条线路置于较低的位置,其他行线放在高电平上。如果该列线电压小于设定阈值,那么就判定为空;反之,就判定为有闭合键位。然后根据不同情况分别进行检查。在确定某条行线的位置为低电平后,逐行检
测各列线电压等级状态;如果某列是低电平,则列线与列线在低电平处相交的键就是闭键。在这里插入图片描述

图g 4*4矩阵按键实物图在这里插入图片描述

图h 4*4矩阵按键原理图
2.1.5 显示模块
  最后我们需要将单片机处理过后的结果显示出来,因此我们选择了LCD1602液晶显示屏。LCD1602显示屏虽然只
能够显示数字、字母,但它体积更小,功率更低,显示的效率高,完全能够满足本次设计的要求。
在这里插入图片描述

图i LCD1602实物图
2.1.6 报警模块
  现如今我们生活中的电子用品为了更加方便、智能,通常我们会加上一些警示功能来提醒操作者。所以在本系
统中也加入了报警装置来警示操作者,当所称重的物体超过最大限额时,蜂鸣器会发出警报,二极管会发出光亮来
提醒操作者注意。蜂鸣器是一种集成式的电铃,它以 DC电压为动力,被应用在电脑、印刷机、复印机、闹钟、电动
玩具、定时器等电子产品中。它可以使机器发出悦耳动听的声音,以吸引人们的注意,提高工作效率。同时,还可
起到提示作用。因此,蜂鸣功能也是目前许多家用电器必不可少的组成部分之一。
蜂鸣器结构原理
1.压电型蜂鸣器的基本结构包括:多个共振元件、压电蜂鸣片、阻抗匹配、共振盒和壳体。一些压电型的蜂音箱也
带有 LED。它的特点是频率范围宽,响应快,灵敏度高,价格低廉基。可用于各类电子产品。多个共振腔包括一个
三极管或者一个集成电路。在打开供电(1.5-15 V)后,多个共振振荡器将会启动并发出100-500 HZ的声音。本发
明使用了一种新型的压电式压电式蜂窝板。在瓷板两侧涂覆一层银色的电极,然后进行极化、陈化等工艺,然后把
铜板或不锈钢片。
2.电磁蜂鸣机是一种电磁蜂鸣机,它包括一个振子、一个螺线、一个磁体、一个振膜和一个机箱。当电源打开时,
由振动器所发出的声音信号,经过一个电磁线圈,从而形成一个磁场。磁场强度越大,频率越高,振幅也越大;反
之则越小,幅值就会逐渐减小。当共振时,振荡频率与电压成正比关系;当不共振时则近似为线性关系。振动膜片
在电磁线圈与磁铁的相互作用下,进行周期性的振动发声;
  由于自动蜂鸣机是由 DC电源供电,所以无需 AC电源,只需将驱动电平输入到驱动端口,由三极管将驱动电流
放大,即可让蜂鸣机产生噪音。在实际使用中,只要把他激式自激蜂鸣器管连接到直流输入端(如图),便可以实
现声频控制,也就是我们所说的正弦波音频激励。但是这种方法比较麻烦。这里仅就他激蜂鸣器必须用1/2 duty的
方波信号驱动进行说明。它的工作原理是: PWM输出直接激励和 IO时序反转脉冲发生器的功率输出。PWM输出口直
接驱动就是利用PWM输出口本身能够输出某种方波的特点,直接驱动蜂鸣器。这种方式简单易懂,但是要实现却比较
困难。本文介绍一种用AT89C51单片机控制的PWM输出口直接对蜂鸣器进行激励和驱动。这种方法比较简单。而且成
本低。在微处理器的软体设定中,设有多个系统暂存器,用以设定 PWM端口的输出,并设定工作循环、循环等,设
定这些暂存器产生的波形,使其达到所要求的频率,然后,只要开启 PWM输入端口, PWM输出端就能将这个频率的
方波信号,从而使蜂鸣机工作。例如,当蜂鸣机工作于100 Hz时,它的循环是10000μ s,所以,如果 PWM的循环被
设置为10000μ s,占空比被设置成5000μ s,则可以生成100 Hz的方形波段,三极管被方波多路复用之后,就能对
蜂鸣机进行激励。
  而且采用I/O定时翻转电平产生驱动波形的方法要繁琐一些,计时需要使用计时器,它的循环是10000μ s,所
以,如果 可以利用计时反转的水平来生成一个符合蜂鸣机要求的信号,这个信号可以被用来激励蜂鸣机。本文设计
的基于FPGA芯片的驱动电路是以TSMC公司生产的FX3U系列的可编程逻辑器件作为核心控制单元,并使用VHDL语言进
行编程实现的。比如,在驱动一个100 Hz的蜂鸣器的时候,可以知道它的周期是10 000 μ s,计时需要使用计时器
因此,通过将蜂鸣机 IO端口的 IO端口反转一次,即可获得100赫兹的频率,12 duty的脉冲信号,由三极管进行放
大,即可启动该蜂鸣机。
在这里插入图片描述

图j 蜂鸣器实物图 图k 二极管实物图
2.2系统硬件的设计
2.2.1主控电路的设计
  主控电路是将被放大转换过后的信号传输到单片机,而我们所用的STC89C52型单片机设计的电路中也需包含时
钟电路,复位电路,电源电路构成。
  设计的时钟电路采用外接晶体与电容构成的并联谐振回路,以及内部时钟方式。外接晶体的取值范围一般为
1.2 MHz~12 MHz,但电容的选取会对振荡频率输出,稳定性产生影响,同时也会对数值大小,振荡速率等产生影
响。通过对不同电容值进行仿真分析可知:随着电容器值增大,振荡时间逐渐缩短;当电压达到一定值时振荡趋于
稳定。同时根据实际需求确定了合适的电容值。其取值范围为20Pf~100Pf,所以我们这次电容选则30Pf。在这里插入图片描述

图L时钟电路电路图
  复位电路需要在外部添加复位电路,我们向单片机的RESET引脚添加两个周期的高电平即可实现复位。在RESET
端经过电阻与电源VCC即可实现复位。
在这里插入图片描述

图m 复位电路电路图
  该电源电路只需两只脚分别接入+5V和接地。该芯片的特点如下:1.采用双输入端,可同时连接2个以上不同类
型的存储设备。2.可以用一个或几个端口与外部设备相连接。3.支持USB接口。31EA/VP脚为内外存储器控制端接
+5V,允许访问外部存储器在这里插入图片描述

图n 电源电路电路图在这里插入图片描述

图o 主控电路电路图
2.2.2 转换放大模块电路的设计
   HX711中所有控制信号均采用管脚控制,无需在芯片内部编程寄存器。由于采用了可编程逻辑器件和专用集成
电路(ASIC),因此电路结构简单、集成度高,而且可靠性好,可方便地集成在一块PCB板上完成各种功能。一、输
入/输出端口设计。HX711有A, B两个通道,我们可以任意选择一个通道与其内部的编程放大器连接即可进行转换和放大。在这里插入图片描述

图p HX711放大转换电路图
2.2.3 显示模块电路的设计
  本系统显示模块采用的是LCD1602显示屏,这种显示屏是专门显示数字,字符,符号的一种显示屏。但它在错误
的操作下有可能会产生“鬼影”,因为LCD1602模块的引脚3是液晶屏对比度的调整引脚,如果将它直接接地就会出
现这种情况。为了消除这种情况,我们将LCD1602的引脚3和地之间介入一个10K的对比器来调整对比度,这样就可以
避免“鬼影”的情况出现。在这里插入图片描述

图r 显示模块电路图
2.2.4 输入模块电路的设计
  键盘模块控制着是否转入其他功能程序,当一个按键被按下时进行扫描,扫描出被按下的按键后将信息传输给
CPU,再开始其他程序的运行。所以我们运用行列扫描法来扫描按键。其电路图如下:在这里插入图片描述

图t 键盘输入电路图
  图中A、B、C、D四个键盘分别表示着要求中的去皮、清除、累加、累减的功能。当我们按下每一个按键时,按
下的按键会显示在显示屏上。
2.2.5 报警模块电路的设计
  在本系统中为了保护电子秤的安全我们设计了报警系统,在所称重量超过500g时,蜂鸣器会开始报警。单片机
IO口P1.0控制着蜂鸣器,当蜂鸣器遇到低电平时会产生声响,遇到高电平时会关闭。在这里插入图片描述

图s 报警模块电路图
2.3 系统软件的设计
2.3.1 主程序设计
   系统主程序主要是将电阻应变式传感器收到物体外力挤压产生的电信号转换放大为数字信号。经过CPU的处理
后将处理过的信号显示到显示屏上。显示屏的程序,报警系统程序,按键程序我们需要设计子程序实现,本主程序
主要完成设计初始化,然后调用其他子程序。主程序流程图如下所示:
开始
传感器采集压力信号 NO
YES
放大A/D转换
放大A/D是否完成
NO
YES
报警是否超重
18
19
YES
NO
重量显示
按键操作
NO
扫描按键操作位置 YES
转至按键对应程序
  开始电子秤之后,单片机进入初始化状态,然后放上物品,压力传感器就开始将受到的外力转化为电信号,如
果失败就返回再次识别,成功后进入HX711芯片开始进行放大和A/D转换,如果失败就返回再次运行,成功后单片机
识别数字信号表示的重量,如果超过限定重量,蜂鸣器开始报警,二极管变亮,如果没有超重,将重量显示到显示
屏上。然后进行按键操作,扫描按键的位置,然后进行对应的子程序。
2.3.2 放大A/D转换程序设计
  我们A/D转换模块用的是HX711,所以转换和放大可以同时进行,这个子程序就是在系统开始运行之后将传感器
传输过来的电信号转换为单片机可以识别的数字信号的程序设计。放大A/D转换设计流程图如下图所示。
开始
传感器收集压力信号 NO
YES
A/D转换
NO
A/D转换是否完成
YES
信号输送至单片机
2.3.3 显示程序设计
   显示子程序主要是在单片机处理过转换过后的信号时,将物体的重量显示到显示屏上,显示屏位置上显示的数
字在单片机上是一一对应的。所以我们要非常认真的将显示程序对应上。显示程序的设计框图如下:
开始
LCD初始化
写入指令
显示字符串
2.3.4 键盘输入程序设计
  键盘输入程序的设计,主要就是识别按键的使用状态,当一个按键被使用时,可以准确的判断出使用的是哪个
按键,所以在本次设计中我运用了行列扫描法来判断按键是否被使用。识别到按键被按下后转至对应的子程序。按
键子程序流程图入下:
开始
按键是否被按下
NO
转至对应子程序
2.3.5 报警程序设计
STC89C52RC的 IO端口P10的输出处于低值状态,三极管接通,蜂鸣
叫警察。相反,在P10端口的输入端,蜂鸣器关掉电源而不会产。报警
子程序的编程只需控制P10口就好,当超重时使P10口输出低电平,不超重则
输出高申平。当所称商品超过程序设定的值则进入报警子程序。报警子程序流程
图如图4-6所示。
报警程序流程图如下:
开始
是否超出限制 NO
YES

3. 程序设计

  ****************************************************
电子秤--20220502
  **********************************************************/
#include <reg52.h>
#include <intrins.h>
#include <string.h>
bit flag_key;
#include "main.h"
#include "LCD1602.h"
#include "HX711.h"
#include "keyboard.h"
# includes "eeprom52.h"
# defines uchar unsigned char in Uchar
# define unsigned int
unsigned long HX711 _ buffers = 0;
unsigned long weight _ fur = 0;
unsigned long weight _ fur _ 0 = 0;
int qupi = 0 unsigned;
longweight _ shiwu = 0;
//键盘对变量进行处理
unsigned char key;
和(unsigned char)Dot Pos;//和小数点标志及位置
uint notch value, GapValue1;
unsigned int price;单价,长整型值,单位是分
长整型(long money;)是长整型的值,其单位是分式
//定义一个标识0.5秒置位,测完清0, volatile bit时间测试标志
volatile bit Flag Key Press=0;有键按下标志,处理完毕清0
//校正参数
//由于各类传感器特性曲线的拟合性不是很好,因此各传感器均需对该参数进行修正才能使测量值准确。
//当检测到被测物的重量偏差较大时,将该值提高。
//若被测物的重量偏差较小,则改值较小。
//该值可以为小数
//#define GapValue 349
sbit LED=P1^1;
volatile bit ClearWeighFlag = 0; //传感器调零标志位,清除0漂
  /******************把数据保存到单片机内部eeprom中******************/
void write_eeprom()
{
SectorErase(0x1000);
GapValue1=GapValue&0x00ff;
byte_write(0x2000, GapValue1);
GapValue1=(GapValue&0xff00)>>8;
byte_write(0x2001, GapValue1);
byte_write(0x2060, a_a); 
}
20
  /******************把数据从单片机内部eeprom中读出来*****************/
void read_eeprom()
{
GapValue = byte_read(0x2001);
   GapValue = (GapValue<<8)|byte_read(0x2000);
a_a = byte_read(0x2060);
}
/**************开机自检eeprom初始化*****************/
void init_eeprom() 
{
read_eeprom(); //先读
if(a_a != 1) //新的单片机初始单片机内问eeprom
{
GapValue = 3500;
a_a = 1;
write_eeprom(); //保存数据
} 
}
//显示单价,单位为元,四位整数,两位小数
void Display_Price()
{
LCD1602_write_com(0x8c);
LCD1602_write_data(price/100 + 0x30);
LCD1602_write_data(price%100/10 + 0x30);
LCD1602_write_data('.');
LCD1602_write_data(price%10 + 0x30);
}
//显示重量,单位g,两位整数,1位小数
void Display_Weight()
{
LCD1602_write_com(0x83);
LCD1602_write_data(Weight_Shiwu/1000 + 0x30);
LCD1602_write_data(Weight_Shiwu%1000/100 + 0x30);
LCD1602_write_data(Weight_Shiwu%100/10 + 0x30);
LCD1602_write_data('.');
LCD1602_write_data(Weight_Shiwu%10 + 0x30);
}
//显示总价,单位为元,四位整数,两位小数
void Display_Money()
{
// unsigned int i,j;
if (money>2147483647) //超出显示量程
{
LCD1602_write_com(0x80+0x40+7);
LCD1602_write_word("-----.-");
return;
21
}
LCD1602_write_com(0xc0+7);
LCD1602_write_data(money/1000000 + 0x30);
   LCD1602_write_data(money%1000000/100000 + 0x30);
LCD1602_write_data(money%100000/10000 + 0x30);
LCD1602_write_data(money%10000/1000 + 0x30);
LCD1602_write_data(money%1000/100 + 0x30);
LCD1602_write_data('.');
LCD1602_write_data(money%100/10 + 0x30);
LCD1602_write_data(money%10 + 0x30);
}
//数据初始化
void Data_Init()
{
price = 0;
DotPos = 0;
}
//定时器0初始化
void Timer0_Init()
{
ET0 = 1; //允许定时器0中断
TMOD = 1; //定时器工作方式选择
TL0 = 0xb0;
TH0 = 0x3c; //定时器赋予初值
TR0 = 1; //启动定时器
}
//定时器0中断
void Timer0_ISR (void) interrupt 1 using 0
{
uchar Counter;
TL0 = 0xb0;
TH0 = 0x3c; //定时器赋予初值
//每0.5秒钟刷新重量
Counter ++;
if (Counter >= 10)
{
FlagTest = 1;
Counter = 0;
}
}
//按键响应程序,参数是键值
//返回键值:
// 1 2 3 10 //10:清零重量,兼去皮功能 
// 4 5 6 11 //11:清除单价
// 7 8 9 12 //12:显示数值偏大调节按键 
  // 14 0 15 13 //14:无功能(用于扩展)15:小数点 13:显示数值偏小调节按键
22
void KeyPress(uchar keycode)
{
switch (keycode)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9: //目前在设置整数位,要注意price是整型,存储单位为分
if (DotPos == 0)
{ //最多只能设置到千位
if (price<100)
{
price=price*10+keycode*10;
/●当输入第1个数时, price等于0.当第1个数如输入5,则计算:price=price×10+5×10=50
  我们看到液晶上显示的是05.0,但在程序中直接处理小数显示比较麻烦,所以我们把这个数乘以10,再放大10
倍进行后处理
那么第二个数输入时,如输入为4,计算:price=50×10+4×10=540.液晶显示为54.0
   */
   }
}当前正在设置小数位
Otherwise (DotPoS = 1) //小数点后第一位
{
price=price+keycode;
DotPos=2;
}
Display_Price();
break;
case 10: //去皮键
if(qupi==0&&Weight_Shiwu < 1000)
qupi=Weight_Shiwu;
else
qupi=0;
Display_Price();
// FlagSetPrice = 0;
DotPos = 0;
break;
case 11: //删除键
price=0;
DotPos=0;
Display_Price();
break;
23
case 12: //加
if(GapValue<10000)
GapValue++;
break;
case 13: //减
if(GapValue>1)
GapValue--;
break;
case 15: //小数点按下
DotPos = 1; //小数点后第一位
break;
}
}
  //****************************************************
//主函数
  //****************************************************
void main()
{
init_eeprom(); //开始初始化保存的数据
Init_LCD1602(); //初始化LCD1602
EA = 0;
Data_Init();
Timer0_Init();
//初中始化完成,
EA = 1;
LED= 0;
Get_Maopi();
LCD1602_write_com(0x80); //指针设置
LCD1602_write_word("WE:000.0 P: 00.0");
LCD1602_write_com(0x80+0x40); //指针设置
LCD1602_write_word("Money: 0.00 ");
Display_Price();
// Get_Maopi(); //称毛皮重量
while(1)
{
//每0.5秒称重一次
if (FlagTest==1)
{
Get_Weight();
FlagTest = 0;
}
keycode = Getkeyboard();
//有效键值0-15
if (keycode<16)
{
KeyPress(keycode);
Buzzer=0;
24
25
Delay_ms(100);
Buzzer=1;
while(keycode<16)
{
if(keycode==12||keycode==13)
{
Buzzer=0;
Delay_ms(10);
Buzzer=1;
KeyPress(keycode);
Get_Weight();
flag_key=1;
}
keycode = Getkeyboard();
}
write_eeprom(); //保存数据
}
}
}
  //****************************************************
//称重
  //****************************************************
void Get_Weight()
{
Weight_Shiwu = HX711_Read();
   Weight_Shiwu = Weight_Shiwu - Weight_Maopi; //获取净重
  Weight_Shiwu = (unsigned int)((float)Weight_Shiwu*10/GapValue)-qupi; //计算实物的实际重量
if(Weight_Shiwu > 5000) //超重报警
{
Buzzer = !Buzzer;
LED=!LED;
LCD1602_write_com(0x83);
LCD1602_write_word("-.---");
}
else
{
if(Weight_Shiwu==0)
LED=1;
else if(Weight_Shiwu>0)
LED=0;
Buzzer = 1;
Display_Weight();
money = Weight_Shiwu*price; //money单位为分
//显示总金额
Display_Money();
}
}
  //****************************************************
//获取毛皮重量
  //****************************************************
void Get_Maopi()
{
unsigned char clear;
mm: Weight_Maopi_0 = HX711_Read();
for(clear=0;clear<3;clear++)
{
Buzzer=1;
LED=1;
Delay_ms(100);
LED=0;
Delay_ms(100);
}
Weight_Maopi = HX711_Read();
   if(Weight_Maopi/GapValue!=Weight_Maopi_0/GapValue)
goto mm;
Buzzer=0;
Delay_ms(500);
Buzzer=1;

第3章 结论

由此我们就完成了基于单片机的简易电子秤设计。严格的按照要求它的称重范围在10g~500g之间,单位精度值
为0.1g,称重误差不大于1g。包含了称重、计价、去皮、清零、并能够实现自由改变商品单价、也可以对多种商品
进行商品价格上的计算,也能够完成金额累加功能,在超出了限制量程是还会进行报警系统。包含了正常市面上大
部分电子秤拥有的功能,非常的经济实用。但是因为我们这次设计采用的是LCD1602显示屏,所以这次设计的电子秤
不能够显示汉字,所以我们可以在外包装上进行汉字的标注来弥补这个缺陷。而且在这次设计的基础上我们还可以
添加内置的语音芯片,可以实现语音报价的功能。总结下来这次设计的电子称已经完全符合市场上对衡器的基本要
求,可以完成对商品的乘凉。已经完全具备了被推广应用的标准。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值