1、2023.4电脑编程技巧与维护1概述传统电子秤主要进行物体质量的测量,采用的原理是胡克(Hooke)定律或杠杆平衡原理。但是随着现代通信和IT技术的发展,传统电子秤已不能全面满足人们对称重的需求1。目前有些智能秤可自动识别秤盘上的商品,识别快速、精准,适应不同光照环境及多种包装方式;还有一些智能秤支持智能识别和商品检索,降低了操作门槛,还可跨门店共享学习成果,简化多门店部署,提升实施效率,降低维护成本,实现远程部署和空中下载技术(OTA)升级。智能秤因其优良的硬件品质和人工智能(AI)技术,可确保设备长期稳定运行2。一些开发者使用智能算法,将称重与视觉识别及图片拍摄相结合,可在分拣和包装应用中
2、简化处理并实现正确无误的操作。将智能秤直接连接到生产和企业资源计划(ERP)系统,可确保完全数据可视化并为用户提供有关成功履行订单的直观证明3。为实现精准计量,以超前意识进行开发和设计,以实现最佳质量为主要目标,设计并实现一款基于单片机的智能电子秤4。2问题的提出与需求分析设计的智能电子秤接通电源后进入欢迎界面“欢迎使用该智能电子秤设计”。当载物台上放有物体时,ADC0832芯片立即将数据转换发送给单片机处理,并由液晶显示屏(LCD)显示。用户用按键输入对应商品的代码编号后,在LCD上可以看到相应商品的名称、单价、总重、总价格等信息。在此设计中,特别要指出的是,被称量物的重量可能会超过电子秤的
3、范围,这时应该让电子秤发出语音提示,从而保护电子秤以延长使用寿命。设计其测量范围为09.99kg,具体的需求分析如下。开机后实时检测重量并显示数据。可以通过按键输入商品单价,也可以选择预先存储的价格(多个价格),预存价格可修改。确认单价后智能电子秤自动计算,实时显示单价、重量和总价信息,还可以根据实际情况添加其他功能。3总体设计方案设计的智能电子秤能适应各种环境,并进行数字化显示,联网后能精准称重,实现生产过程自动化,从而提高公司的运行效率,具体如下。(1)采用51单片机作为核心控制单元并利用压力传感器对数据进行采集,采用电子秤专用24位模/数(A/D)转换芯片HX711对传感器采集到的模拟量
4、进行A/D转换;(2)采用4位数码管进行数据显示;当测量重量超出报警阈值时,蜂鸣器进行过载报警;(3)可通过按键设置报警阈值。在总体方案中,按键的设计如下。去皮键主要进行清零校准。精度校准+键,主要用于校正值的增加、称重显示数值的增加;精度校准-键,主要进行校正值减少、称重显示数值的减少。系统框架如图1所示。4系统硬件智能电子秤的设计采用Altium Designer19,可结合原理图设计、印制电路板(PCB)设计、多种管理及仿作者简介:刘子杰(1999-),男,学士,研究方向为电子科学与技术。基于单片机的智能电子秤设计刘子杰,段元梅(湖南科技学院智能制造学院,湖南 永州425199)摘要:智
5、能电子秤是一种将计算机通信技术和数字转化技术相结合的新型称重仪。在此设计并实现了一个基于 51 单片机的智能电子秤。该智能电子秤主要包含 5 大模块,分别是显示模块、蓝牙模块、主控模块、电源模块和传感模块,并对各模块进行详细阐述。各模块联动实现了去皮和还原、精准称重功能,并将数据上传至手机。稳定可靠的称重应用程序配合上位机管理软件,以及超小的按键力灵敏而准确,在一定程度上能持续满足关于称重的各种需求。关键词:单片机;智能电子秤;蓝牙;称重传感器图1系统框架称重传感器24位A/D芯片HX711电路HC05蓝牙模块单片机主控芯片电源系统手机显示液晶显示127DOI:10.16184/prg.202
6、3.04.0512023.4电脑编程技巧与维护真技术,能够很好地满足设计需求。该智能电子秤采用的STC89C52单片机具有以下标准组件:8KB Flash、512B随机存取存储器(RAM)、32位I/O口线、看门狗定时器、内置4Kb EEPROM、Max810复位电路、3个16位定时器/计数器、4个外部中断、一个7向量4级中断结构和全双工串行口。另外,STC89C52可降至0Hz静态逻辑操作,支持两种软件可选择节电模式。在空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。在掉电保护模式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止
7、。CPU最高运作频率35MHz,6T/12T可选,其主要特性是具备8KB程序存储空间、512B数据存储空间,内带4KB EEPROM存储空间,可直接使用串口下载。其中硬件设计的主要参数如表1所示。设计的硬件主要包括一个STM32开发板、一个HX711称重模块、一条USB线、杜邦线、按键开关、瓷片电容和母头等。硬件设计的HX711模块可以分成3个部分,分别是压力传感器、电压放大器和AD转换芯片。压力传感器主要用于感知物体重力,并将其转化为电压信号,文中05kg压力传感器,灵敏电压为1mV,即1kg重力产生1mV电压。由于压力传感器产生电压太小,电压放大器需要对电压信号进行放大,这里用128倍电压
8、增益。A/D转换芯片为24位,它将放大后的电压值模拟信号转化为A/D值数字信号。打开串口调试助手,设置波特率为115 200。系统运行后,蜂鸣器滴一声表示去皮完成,同时串口调试助手会显示传感器检测的实时重量,若重量超过2kg,则蜂鸣器报警。当按下“KEY1”键时,物品稳定重量会显示在串口调试助手上。显示模块采用LCD1602。使用LCD1602不需要复杂的外围电路,其包含的12864系列产品可以提供8位和4位并行接口及串行接口。并行接口适配M6800时序、自动启动电源复位功能,内部自建振荡源,6416位字符显示RAM,2M位中文字型只读存储器(ROM)共提供8 192个中文字型,16K位半宽字
9、型ROM共提供126个西文字型,6416位字符产生RAM。文中选择LCD1602,因为LCD12864液晶显示信息量大、程序和电路都比较复杂、价格还比较高,但是二者在编程使用方面,难度差不多,原理也差不多,都是写指令、写地址、写数据等。主控模块的桥式测量电路包括两个主要部分,一个是弹性敏感元件,利用它可将被测的重量转换为弹性体的应变值;另一个是电阻应变计,它作为传感元件将弹性元件发生的变形转换成电阻的变化。蓝牙模块采用CSR主流蓝牙芯片,即蓝牙V2.0协议标准,输入电压为3.66V,禁止超过7V;蓝牙带连接状态指示灯,LED灯快闪表示没有蓝牙连接,LED灯慢闪表示进入变速器(AT)命令模式。板
10、载3.3V稳压芯片,输入电压直流为3.66V;未配对时,电流约为30mA。LED灯闪烁时,电流处于变化状态。配对成功后,电流大约为10mA。数据传输方式会根据连接方式进行转换,若模块在自动连接时,会响应最初的AT命令模式;当模块无自动连接时,模块会先执行连接,再进入相应模式。由于采用蓝牙标准协议,模块的工作状态会随时进行变换。如果稳压芯片超过压力范围,则会动态转化为离开AT命令模式,从而保持蓝牙连接状态。5系统软件软件设计要用Keil编写程序,用Proteus软件进行仿真,用CAD进行原理图的绘制。智能电子秤主程序流程,如图2所示。单片机上电后先进行初始化,清除一些参数的初值,对串口进行初始化
11、,对LCD1602进行初始化设置,再对采集到的数据进行处理,得到所测物体的重量,通过蓝牙将重量显示在手机上,并显示在LCD1602上。序号具体参数取值(单位)1超过范围的差分范围V(inp)-V(inn)0.5(AVDD/GAIN)V2OUTPUT电压范围AGND+0.6 AVDD-0.6 V3LPCD环形振荡器RATE=0 104XTAL2振荡器RATE=DVDD 805外部时钟或晶振RATE=DVDD fclk/138,240 Hz6输出数据编码800000 7FFFFF(HEX)RATE=0 4007输出参考电压(VBG)1.25 V8外部时钟或晶振频率11.0592 30 MHz9模拟
12、电源电流1600A10断电0.3A表1硬件设计主要参数图2智能电子秤主程序流程开始初始化液晶显示初始化串口得毛皮重量是否有按键按下得实际重量液晶显示并发送到手机结束1282023.4电脑编程技巧与维护人机交互界面的软件设计如下。设计的智能电子秤通过按键和ZLG7289显示实现人机交互。按键支持64键控制,方便以后进行扩展。设计的按键包含开关机、归零、数字、清除和模式选择键,其中模式选择键用于重量模式、水体积模式的转换。智能电子秤开机时会自动归零,在开机时秤台上无重物的情况下,机器将自动做零重量处理。手动归零必须按归零键,可进行手动置零。在显示部分,Intel8279能实现智能电子秤的最低要求,
13、其芯片的内部译码电路可让电子秤软件设计的程序简单清晰。因为显示的信息为中文,所以采用的液晶显示器必须包含中文字库,并且由于电子秤体积不大,显示屏幕要控制在一定范围内,否则必须实现分页显示。因为该智能电子秤只有一路芯片信号接入屏幕,所以只需要通过一个分配器就可分页显示。对分配器的ST7920驱动需要进行两套设置,因为它有基本指令、扩展指令两套指令。其他驱动芯片如T6963C、SED1565、KS0108等无字库芯片则无需设置。具体设置的核心代码如下。LCMSendComd_f(0 x80+j);/写y坐标if(i=0)/写x坐标LCMSendComd_f(0 x80);/上半屏elseLCMSe
14、ndComd_f(0 x88);/下半屏另外,读取传感器和显示测量值的核心代码如下:d=Get_AD_Result(vout);/读取传感器的/AD值d&=0 x00FF;d=d*1000.0/255;#ifdef vmodeif(d/1000)Display_Buffer1=d/1000+0;/显示/测量值elseDisplay_Buffer1=;Display_Buffer2=d/100%10+0;Display_Buffer3=d/10%10+0;Display_Buffer4=d%10+0;按键报警的核心代码如下:if(KEY1=0)/按键报警/值加buf+;if(buf995)buf
15、=995;if(KEY2=0)/按键报警/值减buf-;if(buf5)buf=5;6结语设计并实现了一个基于单片机的智能电子秤。尝试用滑动变阻器代替应变片,但因为使用直流电源电桥两端不能产生压差变化,所以最终显示屏不能显示变化的数据。在智能电子秤中放置一个交变电源,最终模拟成功显示数据。在设计中,连接好仿真图后,必须把程序刻录到51单片机里,这就需要Keil生成的.hex文件。另外,在利用串口进行数据传输时,必须先将数据存储在串行数据缓冲器(SBUF)中,再通过单片机的TXD引脚一位一位往外传。在编写程序时,必须采用循环结构和子程序结构,使程序的容量大大减少,提高程序的效率并节省内存。参考文献1唐荣芳.基于无线传输的智能电子秤数据采集统计系统设计研究J.信息记录材料,2022,23(6):167-169.2唐朝栋.单片机技术视角下智能电子秤的设计J.电子技术与软件工程,2021(22):91-93.3梁芳芳.基于HX711多功能的智能电子秤的设计J.工程技术研究,2021,6(15):136-140.129