智能语音电子秤系统的设计与实现


    智能语音电子秤系统的设计与实现 摘 要 随着社会的不断进步和科学技术的革新,电子秤已经广泛应用到生活的各个领域。电子秤里面包含了电子技术、传感器技术,不仅缩小了称重误差,而且也相对精准和智能。称重技术的创新,给人们的生活带来便捷。 本论文主要研究的是:通过对物品重量的测量,将物品的重量经过程序和单片机处理之后,能够显示在OLED液晶显示屏并且语音播报数据。为了能更好实现系统功能,将本系统分为四个模块,分别为:STC12C5A60S2微处理器的最小系统、数据采集、OLED显示和语音播报四大部分。其中数据采集部分是由称重传感器和A/D转换器HX711芯片实现;语音播报数据部分主要是由芯片SYN6288实现。 本设计的可行性较高,能够稳定运行,同时能够实现预期功能,硬件与软件的配合合理,在实际中有广泛的应用。 关键词:电子秤;STC12C5A60S2;A/D转换器;语音 Design and implementation of Intelligent voice electronic scale system Abstract With the continuous progress of society and the innovation of science and technology, electronic scale has been widely used in every field of life. Electronic scale contains electronic technology, sensor technology, not only reduces the weighing error, but also relatively accurate and intelligent. The innovation of weighing technology brings convenience to people's life. The main research of this paper is: through the measurement of the weight of the article, the weight of the item can be displayed on the OLED LCD display and the data can be broadcast by voice after the program and the single-chip microcomputer processing. In order to realize the function of the system, the system is divided into four modules: the minimum system of STC12C5A60S2 microprocessor, data acquisition, OLED display and voice broadcast. The data acquisition part is realized by weighing sensor and A / D converter HX711 chip, and the voice broadcast data part is mainly realized by SYN6288 chip. The feasibility of this design is high, and it can run stably. At the same time, it can realize the expected function, the coordination between hardware and software is reasonable, and it is widely used in practice. Key Words: Electronic Scale;STC12C5A60S2;A/D Converter;Voice 目 录 1 绪论 1 1.1 研究背景与意义 1 1.2 国内外研究现状 2 1.3 本系统的设计思路 2 2 系统简介 4 2.1设计方案简介 4 2.2 系统芯片选择及介绍 4 2.2.1 压力传感器 4 2.2.2 A/D转换器HX711 6 2.2.3 OCMO12864-5 OLED简介 8 2.2.4 SYN6288语音芯片简介 9 2.3 本章小结 11 3 硬件设计与实现 12 3.1 总体方案设计 12 3.2 单片机开发板 13 3.3 单片机最小系统 14 3.4 数据采集模块 15 3.5 液晶显示模块 16 3.6 语音播报模块 16 3.7 本章小结 16 4 系统软件设计 17 4.1 系统环境搭建 17 4.1.1 Keil 17 4.1.2 stc-isp-15xx-v6.86J 18 4.2 系统总体软件程序设计 19 4.3 HX711数据采集子程序 21 4.4 OLED显示子程序 23 4.5 语音播报数据子程序 24 4.6 本章小结 24 5 系统测试与分析 25 5.1 硬件的调试 25 5.2 软件的调试 26 5.3 问题的分析与解决方法 26 5.4 本章小结 26 6 结论 28 致谢 29 参考文献 30 附录 31 1 绪 论 随着科技的发展,人工智能已经普及到每一位用户,智能化已经取代传统手工业,采用智能语音电子秤系统在带来便利的同时也在一步一步的随着时代进步而不断完善。自古从今称重技术都被人们所重视,因为它代表着交易公平的重要参考工具之一,所以涉及到生活各个领域。有需求就会有创新,随着人们对电子秤功能要求不断增加,传统的电子秤已经向智能化方向转变。智能电子秤以其快速、直观、方便等特点吸引了人们的注意力。 在当今社会,电子秤从日常生活的称重到工厂中的重量检测,称重工具发生了翻天覆地的变化,与此同时需求量也大大增加。而随着科技进步,语音技术也应用到电子秤中,解放了人们的眼睛,使人们的眼睛不必一直盯着屏幕看结果。有了语音技术之后,节省了时间并且增加了人们对电子秤的喜爱,与此同时也达到了数字化、智能化的特点。 1.1 研究背景与意义 随着我国综合实力的上升,先进科技的发展,推动了单片机的发展,单片机从功能单一性发展到应用到各行各业[1]。随着科学的进步,称重的种类增加,在各个行业等都占据着举足轻重的地位,对国家的创新发展和促进社会生产力起到了不可或缺的作用。 电子衡器是所有计量器中使用最广泛的一种,它对维持市场公平秩序和提高国家经济发展起到了十分重要的作用。在市场交易中,人们最向往的就是公平、公正、公开的交易模式。为了防止市场上缺斤短两法问题出现,所以要设计出一款精确度高、效率高的衡器,它代表着公平公正的商业贸易。由此可见,若没有各种衡器为市场活动提供计量手段,那么市场交易将会寸步难行,而且若没有精确度高的衡器,那么市场活动将会引起纠纷,造成市场经济秩序混乱。 在生活中,无论是小到药材的称量、食品的的重量,大到作为国家强制检定的计量工具,都与人们的生活的息息相关,发挥着它独有的地位和作用。随着70年代电子秤技术的突破,各种电子秤随之而来,被各类行业所使用,比如冶金工业中生产过程的配比称重、中药配药时需要秤出特定药材的重量以及食品工业中的自动检测和分选称重等,从中我们可以看出衡器使用的广泛性和重要性。总而言之,称重技术在今天智能化的世界中占越来越大的比重,越来越被人们所重视。 1.2 国内外研究现状 随着科学技术的发展,电子秤技术已经突破了一个新的高度,由传统的机械式电子秤发展到现在的智能电子秤,电子秤已经迈入了一个新的时代。单片机在电子秤发展中扮演着重要角色,单片机具有体积小、功耗低和使用方便等特点。因此我们日常使用的电子秤也有具有体积小,重量轻等优点,而且使用非常方便,具有开发价值。 虽然我国的语音电子秤系统在各个行业都有所涉及,但是跟较发达的国家相比还是存在很大的差距。现在国内一些称重技术还处于国际20世纪90年代的水平,如果想要提高技术,适应较大的工业中,那么国内的一些开发人员可以多借鉴国外的技术。国内的电子科技技术在快速发展中,相信假以时日,我们国家的电子秤技术就会领先其他国家。 1.3 本系统的设计思路 本系统的设计主要是以STC12C5A60S2芯片作为主控芯片,配合C语言进行软件设计,实现了智能语音电子秤系统的各种功能: (1) 系统能够对物品进行称重,并显示物品的重量,误差在1g左右; (2) 系统具有调整重量、清零的功能; (3) 语音提示物品的重量。 本设计的总思路:本系统采用STC12C5A60S2芯片作为主控芯片,选用应变式称重传感器来采集物品重量,用24位高精度HX711芯片作为AD转换器[2]。根据受力物体力的变化转变为电阻的变化,在芯片的作用下将电阻变化转变为电压变化,经过计算可以得出待测物品的重量。根据所测的重量,将其参数传递到有关显示子程序内,在OLED液晶显示屏上显示出所测物体数据。与此同时,在芯片SYN6288作用下,将待测物体重量语音播报出来。其中为了更好的实现人机交互,在系统中加入了按键作为输入,通过按键可以实现物品重量数据的清零以及在发现待测物体重量与实际重量有偏差时可以通过按键来调节物品的重量。 2 系统简介 本章将详细介绍本系统设计所需要的组件、功能作用以及引脚功能,有利于在开发设计环节能够熟练应用芯片的功能,使用特定引脚实现模块功能。 2.1设计方案简介 本系统的设计采用STC12C5A60S2作为主控芯片,通过OLED液晶显示屏显示物品的重量,通过SYN6288芯片播报数据,选用应变式称重传感器来采集物品重量,用精度高的24位AD转换芯片HX711作为AD转换器,还采用了独立按键加强人人机交互 ,按键作为输入可以实现清零、调整数据的功能[3]。系统的整体框架图如图2.1所示: 图2.1 系统的整体框架图 如图2.1所示,本系统在测量物品重量时,经过称重传感器、AD转换器以及数值换换的作用,将待测物体的数据处理之后传送给单片机,经过单片机的处理,将数据显示在液晶显示屏上并且语音播报数据。 2.2 系统芯片选择及介绍 2.2.1 压力传感器 称重传感器对于电子秤来说是必不少的一个重要部件,就等同于人的心脏,占有很重要的地位。它的选择对于设计什么样的电子秤系统至关重要,并且它的性能参数在很大程度上决定了电子秤精确度和效率。对于本系统来说,选择的是应变式压力传感器。其介绍如下: 平行两称重传感器的外形: 对于物品重量在10千克的情况下,可以选用双孔悬臂平行梁应变式称重传感器,特点是:稳定性好、容易加工、抗偏载能力强[4],其外形如图2.2所示: 图2.2 压力传感器图 (1)称重传感器的工作原理: 应变式力传感器的受力工作原理如图2.3所示: 图2.3 称重传感器的工作原理图 将物品放在圆盘上面时,称重传感器会受到力的变化,将力的变化转变为电阻变化。经过处理之后,将力的变化再转变为电压变化,最后由电压值可以得到所测物体之值[5]。如图2.4所示应变化连接图: 图2.4 应变片连接图 桥式称重传感器的连接,是四个电阻连接成一个桥式状,都参与工作[6]。 2.2.2 A/D转换器HX711 电子秤对于分辨率的要求比较高,虽然STC12C5A60S2芯片内部自带了一个AD转换功能,但它的分辨率仅仅只有10位[7],是远远不够的。而HX711芯片分辨率具有24位并且具有集成度高、精确度高等优点[8]。下图2.5是它的引脚功能图: 图2.5 AD转换器HX711功能引脚图 对于芯片各引脚介绍如下: (1) SUP:稳压电路电源; (2) BASE:稳压电路控制输出; (3) VDD:模拟电源; (4) VFB:稳压电路控制输入; (5) AGND:模拟地; (6)VBG:参考电源输出; (7) INNA:通道A负输入端; (8) INPA:通道A正输入端; (9) INNB:通道B负输入端; (10) INPB:通道B正输入端; (11) PD_SCK:断电和串口时钟输入; (12) DOUT:串口数据输出; (13) XO:晶振输入; (14) XI:外部时钟或晶振输入; (15) RATE:输出数据速率控制输入; (16) DVDD:数字电源; 在本系统中,AD转换是通过HX711的DOUT、SCK和单片机进行通信的,它们分别连接在单片机的P2^0和P2^1口,然后根据HX711的功能引脚图,控制单片机与它们相互通信的,从而测得数据。 2.2.3 OCMO12864-5 OLED简介 为了实现本系统的显示功能,采用OCMO12864-5作为此模块功能器件。OCMO12864-5是一款OLED显示器,控制器为SSD1309,显示128*64点阵,高对比度大于10000:1,在黑暗视野和明亮视野下均有出色的图像质量,宽温度在-40℃-105℃的广泛可用温度。其实物如图2.7和2.8所示: 图2.6 OLED的正面图 图2.7 OLED的反面图 OCMO12864-5 OLED的特点: (1) 供电电压VDD=2.7V-3.5V,电流80mA,256级对比度亮度电流控制,行重新映射和列重映射; (2) 支持八位6800和8080并口,串口SPI和IIC接口; (3) 工作温度-40-70,保存温度-40-85; (4) 显示模式:黑底白字和黑底蓝字; 在本系统中,显示模块是通过OLED的SCLK和SDIN进行数据处理的,它们分别连接在单片机的P0^3和P0^4口,然后根据OLED的功能引脚,实现数据显示。 2.2.4 SYN6288语音芯片简介 本系统中所使用的SYN6288是最新推出的一款性价比高、效果自然的中高端语音合成芯片,此芯片文本识别智能,语音合成自然[9]。 在本系统中主要用到了该芯片的BUSY引脚和单片机的P3^7端口相连,控制器通过通讯接口向SYN6288语音合成芯片发送控制命令和文本,芯片把接收到的文本合成为语音信号输出,经过功率放大器进行放大后连接到喇叭进行播放[11]。下图2.9是SYN6288芯片引脚图: 图2.8 SYN6288芯片引脚图 对于芯片各引脚介绍如下: (1) VSSIO0:总线模块0电源负极; (2) VDDIO0:总线模块0电源正极; (3) VSSIO0:总线模块0电源负极; (4) Ready/Busy:低电平表示CHIP空闲,可接上位机发送的命令和数据; 高电平表示CHIP忙,正在进行语音合成并播报; (5) Res:Res引脚; (6) VDDIO1:总线模块1电源正极; (7) VSSIO1:总线模块1电源负极; (8) VSSPP:语音输出模块电源负极; (9) BP0:推送DAC语音输出1; (10) VDDPP:语音输出模块电源正极; (11) BN0:推送DAC语音输出2; (12) VSSPP:语音输出模块负极; (13) NC:芯片悬空,不接; (14) NC:芯片悬空,不接; (15) NC:芯片悬空,不接; (16) VSS:电源负极; (17) VSSIO2:总线模块2电源负极; (18) CVSS:处理器电源正极; (19) RST:芯片复位,低电平触发有效; (20) VDDIO2:总线模块2电源正极; (21) CVDD:处理器电源正极; (22) REGOUT:电压自动调节输出; (23) VSSA:内部稳压电源负极; (24) XIN:高速晶振输入; (25) XOUT:高速晶振输出; (26) VDDA:内部稳压电源正极; (27) TXD:串口数据发送,初始波特率为9600bps; (28) RXD:串口数据接收, 初始波特率为9600bps; 2.3 本章小结 本章主要介绍了对于此系统设计中需要的芯片,此系统主要需要的芯片有单片机主控芯片STC12C5A60S2,AD转换器HX711,AD转换器是24位高精度转换器,能够很好的将数据进行转换。而液晶显示器芯片采用的是OCMO12864-5 OLED,此显示器在黑暗视野下和明亮视野下均有出色的图像质量,所以选用此芯片。语音芯片采用的是SYN6288芯片,此芯片性价比比较高,而且语音合成自然。对于系统中的各个芯片,利用芯片上的引脚功能介绍可以让编程更加方便、更加简便。 3 硬件设计与实现 本章将详细介绍智能语音电子秤系统的硬件设计,为了更好的实现该系统功能,将系统主体部分分为STC12C5A60S2微处理器的最小系统、数据采集、系统电源、OLED显示以及语音播报五大部分。图3.1为系统的硬件框架图: 图3.1 系统的硬件框架图 如图3.1所示为智能语音电子秤的硬件结构图,语音电子秤系统在上位机编写好程序之后,调试运行无错误之后,在单片机上测试程序的正确性。 3.1 总体方案设计 本系统以STC12C5A60S2为核心,分为数据采集、OLED 屏幕显示数据、语音播报、电源模块这四个部分。其中数据采集是由压力传感器和AD转换器所组成。本系统通过测量物体在圆盘上力的变化转变为电阻变化,电阻再转变为相应的电压变化,最后由测得电压换算出物体重量[10]。对于测量输出电压的数值,通过单片机处理之后就可以的到物体的净重量,并存入内存中,通过OLED显示数据。与此同时,通过SYN6288语音芯片播报数据。系统整体框架图如图3.2所示: 图3.2 系统的整体框架图 3.2 单片机开发板 在本系统中,我主要使用开发板是51核心版以及另外自己焊接的电路版。该核心板包含 STC12C5A60S2 单片机最小系统,串口通讯电路、USB 下载电路、电源供电及转换电路、LCD1602 液晶屏接口、LCD12864 液晶屏、TFT 彩屏接口等,该核心板可以通过搭载不同的外接模块实现不同的功能,单片机的所有 I/O 口均用排针引出,方便连接与二次开发。该核心板给广大爱好单片机学习的人以及单片机专业人员提供很多便捷。下面我详细介绍一下51核心板的功能: (1) 电源部分 本核心板采用 DC5V 2A 的电源适配器或者其他 DC5V 电源进行供电,有一些扩展模块的供电范围为 DC1.8V-3.6V;DC5V 的输入电源需要经过电源转换电路转换为低电压才能满足模块的供电需求,所以电源部分由电源供电、电源转换、电源扩展和电源指示四个部分组成。 电源供电:电源供电电路提供过流保护、过压保护和防接反保护,极大程度上保证了核心板和供电设备的安全,供电稳定性高,避免人为因素对核心板供电的影响。 电源转换:在这里采用 SPX1117-3.3 电源芯片将输入电压转换为 DC3.3V 以此来满足部分扩展模块的供电需求。 电源扩展:电源扩展是为了在我们学习的过程中如果需要使用小模块,但是 没有足够的电源供电口,于是我们就进行了电源供电口(3.3V、5V)的扩展。 (2) 下载部分 本核心板程序的下载是通过 USB 转串口电路进行的,该电路集供电、下载、通讯功能于一体,即通过一根 USB 线即可完成对核心板的下载通讯操作。 综述所述,由于单片机组成的硬件结构简单、可靠性高等因素在市场上占据绝对位置,在实现同样功能的条件的情况下,单片机的开发系统的价格比其他微型计算机开发系统会更低廉。 3.3 单片机最小系统 单片机本身具有比较强大的功能,但往往不能满足一个实际电路的功能要求,于此同时单片机想要正常的工作,就必须具有一些外部设备。因此,单片机的最小系统,是指在尽可能少的外部电路的条件下,形成一个可以独立工作的单片机系统。单片机最小系统主要含有电源、时钟电路和复位电路。 (1) 5V电源 STC单片机分为3V单片机和5V单片机,本系统选用5V单片机,其系统采用的计算机供电,成品则可以用6V的电源加上一个限流电阻即可。 图3.3 智能语音电子秤5V电源原理图 (2) 时钟电路 时钟电路是单片机工作的核心部分,其主要功能是为单片机提供工作脉冲,相当于人的心脏。主要组成有一个12M晶体振荡器和两个30pF的陶瓷电容,其晶体振荡器的主要功能是产生振荡脉冲,两个陶瓷电容是在上电时帮助晶体振荡器起振。 图3.4 智能语音电子秤的时钟电路原理图 (3) 复位电路 单片机其复位电路的作用是将单片机内部的寄存器进行初始化,所以是单片机必不可少的部分,其主要组成是一个10uF电解质电容器和一个10k欧姆的电阻。电解质电容器的作用是利用充放电的性质对单片机的复位脚提供两个单片机机器周期时间的高电平,使单片机能够复位;电阻的功能是在单片复位后,复位脚可以保持低电平不变,是单片机可以正常的工作。 图3.5 智能语音电子秤的复位电路原理图 3.4 数据采集模块 数据采集部分是由称重传感器、信号放大和A/D转换部分组成,信号放大和A/D转换部分主要由芯片HX711实现[12]。 本系统的数据采集模块主要是通过应变式力压力传感器的作用采集数据。其中物品放在圆盘上面时,称重传感器会受到力的变化,将力的变化转变为电阻变化。经过处理之后,将力的变化再转变为电压变化,最后由电压值可以得到所测物体之值[13]。 3.5 液晶显示模块 本系统采用OCMO12864-5 来显示物品的重量,直接将此液晶显示器插在51核心板上,利用程序实现将采集的数据显示在此屏幕上。 由数据采集部分采集到的数据经过A/D转换,单片机处理后,物品重量通过OCMO12864-5 显示出来。 3.6 语音播报模块 本系统采用SYN6288语音芯片播报数据,当物品称重过之后,显示数据的同时播报液晶显示屏上的数据[14]。该芯片硬件接口简单,极高的性价比,除此之外,该芯片文本识别更智能,语音合成更自然,语音合成效果和智能识别效果大幅度提高,是一款面向中高端应用领域的语音合成芯片[15]。 3.7 本章小结 本章主要对于设计系统功能实现时所用到的重要芯片介绍,这些芯片是实现功能的垫脚石,没有这些芯片,功能是不可能实现的。上一章对这些芯片功能做出了介绍,本章则分模块对单片机的最小系统、数据采集、液晶显示以及语音播报这几个方面做介绍。 4 系统软件设计 对于单片机来说,有两种编程方式,C语言和汇编语言。本系统采用C语言编程,C语言编程简单,易于读懂程序且便于调试程序。本章节主要介绍智能语音电子秤各个模块的实现。 4.1 系统环境搭建 智能语音电子秤系统的编译器设计与实现主要用到的器材有:一个开发板、计算机、stc-isp-15xx-v6.85p以及Keil5编译器。其中Keil5是用于编写源代码和调试程序的,而stc-isp-15xx-v6.85p是专门用于下载文件到单片机内部的软件。 4.1.1 Keil 本系统上位机编程是选择用C语言编程,Keil软件是不二之选,Keil软件使用方便,便于调试,让我们编程更加方便快捷。 Keil软件是美国公司研发的一款能容兼容C语言和汇编语言的软件,与汇编语言相比,C语言的可读性比较强,而且便于修改而汇编语言虽然能将计算机的全部功能提供给用户用,但是它的移植性比较差,难于理解。 Keil软件提供了强大的编译器,库管理等功能,keil软甲是目前功能最强大的C语言编辑器。Keil软件的使用步骤如下: (1) 先点击Keil软件的图标,启动Keil软件; (2) 新建一个项目以及新建一个文本框; (3) 选择系统所用芯片; (4) 在文本框里编辑程序,保存成.c文件; (5) 将保存成.c文件添加到Source Group1里面,右键点击添加; (6) 建立连接,编译,生成hex文件。 4.1.2 stc-isp-15xx-v6.86J 这是一款将上位机程序下载到单片机芯片内部的软件,使用步骤如下: (1) 选择芯片型号,选择本系统使用的芯片型号; (2) 选择文件,点击打开程序文件,打开生成好的hex文件; (3) 选择你使用的com端口,设置波特率。 图4.1 STC编译流程 4.2 系统总体软件程序设计 本系统软件部分采用C语言编程,总体流程图如图4.2所示。系统上电开始工作之后,首先进行一些变量定义、程序初始化等操作。之后程序将通过单片机内部的AD转换器调用AD转换子程序,启动转换。AD转换启动之后,程序将等待AD转换结束,AD转换结束之后,程序读入转换结果。系统循环扫描独立按键,是否有称重键按下,若按下之后,系统处理AD转换结果,将结果转换成重量值。处理结束之后,系统软件将称重所得的重量传送给OLED,显示在液晶显示屏上并且语音播报数据。 另外,在发现物品实际重量与测量值有偏差时,需要对其测量重量进行修改,让系统记住这个修改过的值,下次再测量之后就不会出现偏差。本系统使用独立按键来实现物品偏差值的修改,P3^1口为低电平时,系统进入偏差值加模式。当物品实际重量大于测量重量时,通过按下P3^1口来实现对物品重量加的修改。而P3^2口是对物品重量减的修改。修改数据之后,系统保存修改的数据,确保下次测量时,测量数据的正确。 图4.2 系统软件程序设计流程图 如图4.2所示为系统总体软件流程图,首先系统要定义一些变量,初始化程序,其中变量FlagTest为测试标志位,每0.5秒置位,测完清0。先判断FlagTest标志位是否为1时,为1时则调用获取重量的子程序并且将此标志位置为0,然后调用按键扫描程序,若此标志位为0时,则直接调用按键扫描程序。根据按下的键不同,执行相应的称重功能,在OLED上显示数据并且语音播报。 4.3 HX711数据采集子程序 数据采集是整个系统中数据的源头,物品的重量数据都是由数据采集设备采集出来,并经过单片机进行处理。本系统实现不仅是秤出物品的重量,而且是净重。经过了去毛皮对处理,将含有毛皮重的物体重量减去此前保存的毛皮重量,即可得到所测物体的净重。图4.3是数据采集子程序的流程图: 图4.3 数据采集流程图 如图4.3所示为数据采集流程图,首先先定义一些变量,用于设置硬件的实际连接和在数据采集过程中用到的标志位。然后对AD转换器进行转换,接下来判断AD转换是否结束,若结束则开始读取数据,采集脉冲,若没有结束,则继续等待转换结束。计算第25个脉冲是否到来,若到来,则进行转换数据,否则等待第25个脉冲的到来。 4.4 OLED显示子程序 通过AD转换器转换的数据,经过单片机处理,得到了一系列数据,为了能将数据显示在OLED上,我们需要对数据进行处理。图4.4是OLED显示子程序的流程图: 图4.4 OLED显示子程序流程图 如图4.4所示为OLED显示子程序的流程图,单片机启动电源之后,程序首先对单片机和液晶显示器OLED进行初始化,初始化完成之后,在OLED显示屏上首先写入控制字且写入初始行。判断有无物品进行测量,若有,则对物品重量进行处理之后,写入到OLED显示屏上进行显示。 4.5 语音播报数据子程序 将物品所测得的净重显示在OLED上之后,并且语音播报数据。图4.5是语音播报数据子程序的流程图: 图4.5 语音播报数据子程序流程图 如图4.5所示为语音播报数据子程序的流程图,单片机启动电源之后,系统首先进行初始化,当物品数据已经显示在OLED显示屏上之后,程序需要对串口进行初始化,将物品净重数据传送给发声子程序,调用此子程序实现语音播报数据的功能。 4.6 本章小结 本章主要介绍关于设计系统时的软件介绍。首先对系统所需要的平台进行介绍,然后从各模块的主要功能以及程序流程图来介绍各模块怎么实现功能的。 5 系统测试与分析 本章主要介绍在实现系统时出现的问题以及对问题的解决。本系统需要软件与硬件相结合在一起才能实现系统功能,在调试系统中,我们会发现很多问题,不仅仅是软件编写的问题而且还有可能是硬件焊接的错误。对于系统来说,如果没有软件测试,我们排查系统的功能障碍将会增大精力。在进行系统调试时,分为硬件焊接调试和软件测试,分步骤、分模块的进行。 5.1 硬件的调试 本系统是硬件和软件的结合,硬件主要是对芯片以及焊接电路进行测试,软件主要是对所编写的代码进行测试。硬件的调试可以分为以下几种情况: (1) 连线错误 在软件编写好之后,根据软件对单片机芯片引脚的设置将单片机对应的引脚相连。但是可能由于粗心大意,将杜邦线连错了芯片引脚,这时需要仔细排查,检查出具体是哪根线连错了。 我在设计本系统时,就曾出现了连线错误这种简单的问题,在编译程序,启动电源之后,系统没有出现预期的结果,这时第一步要先检查是不是芯片引脚连接错误,若不是再检查其他的问题。 (2) 器件错误 在设计这个系统时,选择合适的元件尤为重要。一些器件可能在使用过程中会出现无法工作的情况,例如某些电阻失效,无法工作等。 (3) 焊接错误 本系统中我才用外用电路板焊接电路,将插排接口焊接在电路板上,刚开始因为焊接技术不熟练可能会导致焊接不成功。在焊接好之后,连上串口试验自己所焊接的电路是否可以运行。 5.2 软件的调试 在设计本系统时,我采用分模块的方法设计程序。分模块可以让程序更加的简单方便,同时也便于修改程序。对于各部分程序的设计,可以调用相关函数来实现功能。 (1) 按键调试 当按键按下时,要观察相应的功能有没有实现。当按下电源键时,观察系统有没有启动,若没有启动,检查程序是否出现问题;当按下调整重量键时,若液晶显示屏上的重量会变化太快,这说明按键没有消抖,程序利用延时消抖解决了这个问题。 (2) 子程序调试 在对每个模块的功能进行测试时,要看调用的功能函数是否出现问题或者错误,若功能不能实现,则去修改子程序。 5.3 问题的分析与解决方法 问题一:在进行称重时,发现称重的重量不显示。 解决方法:这可能有两个方面的原因,一个是称重的过程的错误,还有一个就是液晶显示屏的程序编写不正确。要仔细检查这两个方面的原因。 问题二:调整体重的按键按下去之后,发现没有作用。 解决方法:在程序中找到关于独立按键的子程序,看看是否是没有延时,还是没有消抖,或是按键连接的引脚错误,要仔细核对检查,找出原因。 问题三:在称重的时候物体没有重量。 解决方法:在检查程序之后,发现没有问题。在检查连线也没有问题,最后是称重传感器中有一根线断了,用电烙铁焊接上就可以了。 5.4 本章小结 本章主要介绍在设计系统中遇到的一些的问题以及解决办法。系统测试是设计系统时必不可少的环节,只有在设计中遇到问题并且解决问题,才能快速地让自己的能力提高。在设计系统中可能会遇到各种各样的问题,遇到问题的时候,首先不要焦躁,仔细认真排查错误,终会发现问题的所在。 6 结 论 至此,智能语音电子秤系统的设计功能已经实现,在此告一段落。在测试过程中发现本系统实用性比较高,而且功能比较齐全,虽然还存在着一些不足,但对于最后的结果还是比较满意。 在实现此系统的过程中,我收获良多,不仅是技术上的提升,而且自己能力的提升。从一些散碎器件中组建此系统,这个过程是很艰难的,毕竟一开始对这个系统也不是很了解,自己编写代码的能力也不强,所以这个过程是非常痛苦的。 虽然过程比较艰难,但是可以真正能学习到知识,提高自己独立思考的能力。想要做成一件事,就要对此付出相应的努力,加上自己对这件事的思考,才有可能做成这一件事。 本系统不仅要求能够测得物品的重量,而且能够显示并且语音播报数据。另外,在发现物品实际重量与测量值有偏差时,能够进行及时调整。本系统完成了80%了设计要求,同时完成了软件编程和硬件焊接,并通过软硬件结合完成实现了程序以及硬件电路的调试。 本系统以STC12C5A60S2为主控芯片,分为最小系统、数据采集、OLED 屏幕显示数据、语音播报、电源模块这五个部分。其中数据采集是由压力传感器和AD转换器所组成。本系统通过测量物体的称重传感器的力的变化,转化为电阻变化,再转变为电压变化,最后换算为物体数值。对于测量输出电压的数值,通过单片机处理之后就可以的到物体的净重量,并存入内存中,通过OLED显示数据。与此同时,通过SYN6288语音芯片播报数据。 这次本系统的开发与设计圆满完成了,在此过程中我学习到了平常学习不到的知识,以后将好好利用到工作中。 总的来说,本系统的功能不全,还存在很多缺陷性,以后会更加深入此方面的学习,完善功能。 致 谢 大学四年很快过去了,我觉得这四年是我人生中最舒服的四年,没有了高中那种漫无天地的学习与压力,也没有那种在工作岗位上班赚钱的辛苦,有的是肆意的玩耍与开心。在玩耍的同时,也让我学习到了知识。大学四年,是最轻松的一年,在做毕业论文过程中想到了很多,也在真正实践过程中学习到了很多知识,对我以后的发展至关重要。 很荣幸在王华本老师的指导下完成了我的本科毕业论文,非常感谢王华本老师对我的辛勤指导。我从大二的时候加入了王老师创办的大学生创新实验室,跟着老师学习新知识,参加比赛,在参加比赛的过程中收获了很多。以前的我是不善于发表意见和回答问题的,但是在参加比赛的时候,就由不得己,必须配合团队作战,沟通协作,正是在这个过程中悄悄改变了我自己。在完成毕业设计的过程中,我遇到了很多的问题,王老师总会耐心回复和指导并且告诉我下一步应该怎么做。在问问题的时候,王老师不是一味得告诉我怎么怎么做,而是先给我一个思路,让我独立思考,锻炼了我的独立思考能力。 王老师在指导我毕业论文过程中,以其亲切的态度对待我,就像父母那样负责任,有耐心,不厌其烦地给我指出问题。在这里,再一次向王老师表示真诚谢意。与此同时,我要向我的辅导员苏丽老师表示感谢,谢谢你在大学四年间一直以家长的角色陪伴我们。谢谢同学们对我的帮助,让我顺利的完成论文。 我要向我的父母表示感谢,谢谢你们抚养我长大,谢谢你们对我投入教育。若不是你们的辛勤劳作,哪能有现在的我呢。 最后我要向我的母校——安徽新华学院表示衷心的感谢,感谢母校给我进入此学校学习的机会,让我对自己的专业有了新的学习,新的认识。我一定不会辜负大家对我的期待,努力学习,把这种学习的态度一直保持到以后的工作中。 参考文献 [1] 周书伟,陈小梅.智能电子秤的设计与研究[J].计算机产品与流通,2019(04):164-165+262. [2] 翁梦婷. OLED显示驱动控制电路的设计[D].杭州:浙江大学,2016. [3] 洗玉,陈郓城,王晗亚,程琳,张楠.基于嵌入式的高精度简易电子秤的研制[J].中国仪器仪表,2019(01):56-61. [4] 元杰,葛锐,孔新雄,赵群,汪正强,徐超园.机器人技术在电子天平检定过程中的应用[J].衡器,2019,48(01):7-10+26. [5] 勤学,蔡建利.一种防跌倒称重仪的研制[J].中国乡村医药,2019,26(03):14. [6] 刘勇,闵瑞屏.对作弊电子秤监管模式的思考[J].中国质量技术监督,2019(01):76-79. [7] 陈国艳,杨涛,王世平,卢海军.检定1000㎏和500㎏台秤和电子秤的新方法[J].中国质量技术监督,2017(12):58-59. [8] 刘红,张东亮,周方.电子秤的设计与实现[J].自动化技术与应用,2017,36(11):99-102. [9] 卫海燕. 8位高速A/D转换器的研究与设计[D].合肥: 合肥工业大学,2018. [10] 程望斌,廖朝晖,何巧巧,廖登高,戴斌.多功能智能电子秤的设计与实现[J].湖南理工学院学报(自然科学版),2017,30(04):28-31. [11] 张烈跃.一种高精度电子秤的设计[J].现代经济信息,2017(11):385. [12] 顾鑫鸣,张实,张浩泽,吴永强,刘军.快递便携伸缩式电子秤的设计[J].科技创新与应用,2017(15):72-73. [13] 吴玮玮.基于单片机的电子秤系统设计[J].机械与电子,2016,34(05):46-48+54. [14] 卢丽君.基于电阻应变片传感器的数字电子秤设计[J].工业设计,2016(09):181+183. [15] 蓝青,吴培鹏,贝煜星,王阳.基于电阻应变片的电子秤设计与实现[J].电子技术,2018,47(06):40-42. 附 录 #include <reg52.h> #include <intrins.h> #include <string.h> #include “main.h“ #define uchar unsigned char #define uint unsigned int unsigned long HX711_Buffer = 0; unsigned long Weight_Maopi = 0; unsigned long Weight_Maopi_0 = 0; long Weight_Shiwu = 0; long wsbeep=200; //系统设定值为200g uint chazhi=20; //重量正常值在180-220之间 unsigned int qupi=0; //键盘处理变量 unsigned char keycode; unsigned char key_press_num=0; uint GapValue,GapValue1; ////定义标识 //volatile bit FlagTest = 0; //定时测试标志,每0.5秒置位,测完清0 volatile bit FlagKeyPress = 0; //有键按下标志,处理完毕清0 //#define GapValue 349 sbit LED=P1^1; //去皮按键 sbit ROW1=P3^0; sbit ROW2=P3^1; sbit ROW3=P3^2; //sbit ROW4=P3^3; //设定值与差值调整按键 sbit key1=P2^0; sbit key2=P2^1; sbit key3=P2^2; sbit key4=P2^3; sbit led1= P3^7; uchar key1flag=0; volatile bit ClearWeighFlag = 0; //传感器调零标志位,清除0漂 /////////////////////AD称重读取程序///////////////// //IO设置 sbit HX711_DOUT=P1^2; sbit HX711_SCK=P1^3; //**************************************************** //延时函数 //**************************************************** void Delay__hx711_us(void) { _nop_(); _nop_(); } //**************************************************** //读取HX711 //**************************************************** unsigned long HX711_Read(void) //增益128 { unsigned long count; unsigned char i; HX711_DOUT=1; Delay__hx711_us(); HX711_SCK=0; count=0; while(HX711_DOUT); for(i=0;i<24;i++) { HX711_SCK=1; count=count<<1; HX711_SCK=0; if(HX711_DOUT) count++; } HX711_SCK=1; count=count^0x800000;//第25个脉冲下降沿来时,转换数据 Delay__hx711_us(); HX711_SCK=0; return(count); } /*******************************************************************/ /* */ /* 延时函数 */ /* */ /*******************************************************************/ void delay(int ms) { while(ms--) { uchar i; for(i=0;i<250;i++) { _nop_(); _nop_(); _nop_(); _nop_(); } } } void KeyPress() { if(ROW1==0) //去皮键 { Delay_ms(5); if(ROW1==0) { if(qupi==0) qupi=Weight_Shiwu; else qupi=0; while(ROW1==0); } } if(ROW2==0) //加 { Delay_ms(5); if(ROW2==0) { while(!ROW2) { key_press_num++; if(key_press_num>=100) { key_press_num=0; while(!ROW2) { if(GapValue<10000) GapValue+=10; Delay_ms(10); Get_Weight(); } } Delay_ms(10); } if(key_press_num!=0) { key_press_num=0; if(GapValue<10000) GapValue++; } } } if(ROW3==0) //减 { Delay_ms(5); if(ROW3==0) { while(!ROW3) { key_press_num++; if(key_press_num>=100) { key_press_num=0; while(!ROW3) { if(GapValue>1) GapValue-=10; Delay_ms(10); Get_Weight(); } } Delay_ms(10); } if(key_press_num!=0) { key_press_num=0; if(GapValue>1) GapValue--; } //write_eeprom(); //保存数? } } } //**************************************************** //主函数 //**************************************************** void main() { // uchar i; uchar dis1[]={“Weight:00.000 kg“}; Get_Maopi(); while(1) { //每0.5秒称重一次 if (FlagTest==1) { Get_Weight(); FlagTest = 0; } KeyPress(); } } //**************************************************** //称重 //**************************************************** 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 >= 10000) //超重报警 { Buzzer = !Buzzer; LED=!LED; } else { if(Weight_Shiwu==0) LED=0; else if(Weight_Shiwu>0) LED=1; if(Weight_Shiwu>(wsbeep+chazhi)||Weight_Shiwu<(wsbeep-chazhi)) { Buzzer=0; led1=1; } else{ Buzzer = 1;led1=0;} Display_Weight(); } } //**************************************************** //获取毛皮重量 //**************************************************** void Get_Maopi() { unsigned char clear; mm: Weight_Maopi_0 = HX711_Read(); for(clear=0;clear<10;clear++) { Buzzer=1; LED=0; Delay_ms(100); LED=1; Delay_ms(100); } Weight_Maopi = HX711_Read(); if(Weight_Maopi/GapValue!=Weight_Maopi_0/GapValue) goto mm; } //**************************************************** //MS延时函数(12M晶振下测试) //**************************************************** void Delay_ms(unsigned int n) { unsigned int i,j; for(i=0;i<n;i++) for(j=0;j<121;j++); } 本文档由香当网(https://www.xiangdang.net)用户上传

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 20 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    智能家居系统的设计与实现

    几年前,美国、欧洲和东南亚等国家先后提出了“智能家居”(smart Home)的概念•其目标是:“将家庭中各种与信息相关的通讯设备、家用电器、家庭安防装置等通过家庭总线技术连接到一个家庭智能化平...

    2年前   
    1123    0

    基于语音识别技术的智能家居控制系统的设计

    21世纪经济快速发展,人们对物质文化的需求也越来越高。在信息科技的支持下,事物在朝着简单化、便捷化、智能化的方向发展。在此背景下应运而生而生的智能家居,正是信息时代的典型产物。

    9个月前   
    549    0

    基于RFID的家庭智能门禁管理系统设计与实现

    根据培养高级技术实用人才这一目标的要求,选题从实际情况出发,选取适合于高职学生要达到的实际能力和水平,培养学生综合运用所学的知识与技能分析与解决问题的能力,并巩固和扩大学生的课堂知识与实际岗位技...

    2年前   
    2006    0

    基于单片机的智能浇花系统的设计与实现

    基于单片机的智能浇花系统的设计与实现 摘 要 随着社会的发展,人民越来越注重环境质量。养殖花卉成了首要选择,在家养殖可以陶怡情操,丰富生活。同时花卉可以通过光合作...

    2年前   
    877    0

    基于物联网的智能家居控制系统设计与实现

    物联网是在信息社会发达的今所衍生的产品,他是基于互联网的模块上,利用射频识别技术、无线网等技术,打造一个联系世界不同物体,不同模块的“Internet of Things”。在这个模块网络中,...

    2年前   
    4547    0

    毕业设计管理系统的设计与实现

    毕业设计管理系统的设计与实现 摘 要 随着Internet的飞速发展及互联网的普及,计算机已广泛用于政府、军事、科研、商业等部门,连接到千家万户,利用计算机实现毕业设计管...

    2年前   
    1740    0

    使用畅言智能语音教具系统心得体会

    使用畅言智能语音教具系统心得体会  我很荣幸参加了上个月科大讯飞公司举办的使用畅言语音系统的培训会,并接受了试点工作。试用产品共3套,参与试点工作的教师共3人,分别为四年级彭芬、五年级张帆,六...

    8年前   
    225    0

    电子公文管理系统设计与实现

    电子公文管理系统设计与实现  1 引言   公文是政府军队等各类部门请示汇报、命令下达等工作中的重要部分。传统的公文归档以纸质原件为主,存放在档案局等部门,当归档公文数目逐渐增多时,公文的查找...

    6年前   
    284    0

    酒店管理系统的设计与实现

     酒店管理系统的设计与实现 摘 要 随着计算机网络的飞速发展,Internet技术越来越广泛的应用,网络覆盖的区域不断扩大,给酒店业计算机应用带来了蓬勃发展的机遇。采用全...

    2年前   
    1009    0

    小区物业管理系统设计与实现

    小区物业管理系统设计与实现 摘 要 随着我国科学技术和社会经济的不断发展,人们对住宅的要求也越来越高,为了适应社会的这一需求,物业管理系统应用而生。本系统利用计算机与互联网的优势,采...

    2年前   
    1198    0

    网上书店系统的设计与实现毕业设计

     密级: (2013 — 2017年) 题 目 网上书店系统的设计与实现 ...

    9个月前   
    528    0

    基于单片机的智能鱼缸的设计与实现毕业设计

    近年来嵌入式发展迅速,智能家居也进入了人们的生活。智能鱼缸却没有快速发展。我根据市场上相关设备现状的分析和研究,从系统集成角度进行设计和开发,提出了一套多功能的智能观赏鱼缸控制系统的设计方案。

    2年前   
    2362    0

    智能厨房系统设计方案

    智能概念厨房能够识别出进入厨房的人,并在厨房中的显示屏上显示主人所需要的任何信息,并与家庭出行计划同步,让家里的每个成员看到他们今天需要做的事情,比如学校的公交时刻表,早上开会时间,与某人约会时...

    1年前   
    828    0

    XX看守所智能系统设计方案

     xx县看守所创建部局培树安全信息化示范单位工程项目 设计方案 目 录 第一章 项目概述 3 1.1前言 3 ...

    2年前   
    698    0

    XX小区智能化系统设计方案

     XX小区智能化系统 设 计 方 案 2003.7.20 目 录 第一部分 概述 3 1.用户需求分析 3 2.智能化系统概述 5 第二部...

    7年前   
    30125    0

    小区智能化系统投标设计方案

    “智能化住宅”是为了迎合住户对住宅的软环境体系尝试要求的前提下,上世纪90年代才在一些经济较发达的国家提出。在我国,随着社会经济的不断发展,人们生活水平的进一步提高,消费者对住宅这样一个高额耐用...

    3年前   
    1436    0

    超市进销存管理系统的设计与实现

    目录超市进销存管理系统的设计与实现 1摘 要 2Supermarket’s Invoicing Management System 3Abstract 3Key Words: Invoici...

    1个月前   
    108    0

    小区物业管理系统的设计与实现毕业论文

    本文论述了物业管理信息系统的开发过程。分析了国内物业管理信息系统的发展和使用现状,指出了现阶段存在的问题,阐述了物业管理信息化的必要性。从业务需求出发,建立了小区物业管理系统的功能模型和实现方案...

    2年前   
    2910    0

    教师档案信息管理系统的设计与实现

    摘要 近年来,随着计算机科学技术和计算机网络技术的发展,高校对教师档案的管理逐渐被人们所重视,计算机技术已越来越广泛地在高校管理的各个领域得到应用。教师档案信息管理系统的设计与实现对高等院校的...

    6天前   
    56    0

    基于android的物业管理系统的设计与实现19.8

     目录基于android的物业管理系统的设计与实现 3摘 要 3Android property managemengt system 5Abstract 51 绪论 61.1 选题背景 6...

    2周前   
    48    0