迪文科技论坛

 找回密码
 立即注册
搜索
查看: 56|回复: 0

【分享】2023 级 李宜豪 多功能称重器系统设计

[复制链接]

1

主题

0

回帖

26

积分

新手上路

Rank: 1

积分
26
发表于 2026-9-10 19:57:55 | 显示全部楼层 |阅读模式
一、作品简介
本作品以迪文科技 EKT043EDU 串口屏开发板为核心,利用其内置的 T5L 双核处理器,完成重量采集、数据校准、商超计价、历史记录存储与人机交互,实现一个完整的多功能称重器系统。

系统硬件:
       一块 EKT043EDU 开发板、HX711 称重模块、称重传感器、标准砝码。

系统实现以下功能:
      ・开机画面显示学校 LOGO、校园标志性建筑、迪文公司 Logo、题目与设计者信息
      ・HX711 实时采集并显示物体重量(0~5kg 量程),支持砝码手动校准修正测量误差
      ・超市电子秤功能:去皮清零、重量单位切换、商品单价手动录入、总价自动计算
      ・确认锁定与数据回顾:称重界面点击确认按键锁定当前重量,同时保存重量、单价、总价数据,可查看最近 5 组有效称重记录
      ・DGUS 触控人机交互,完成全部参数设置与状态显示

二、工作原理
系统工作流程遵循 “采集→运算→交互→反馈” 的闭环控制逻辑,全部在 T5L 芯片内部完成。

(1)重量数据采集(HX711)
       HX711 模块 DOUT 引脚接 T5L 的 P1.4,SCK 引脚接 P1.3。T5L 的 OS 核调用HX711_Read()函数,等待 DOUT 引脚拉低,代表 ADC 转换完成;随后输出 24 个时钟脉冲,逐位移位读出 24 位原始采样值,通过异或0x800000处理数据符号位。为抑制传感器抖动噪声,Get_AD_Average()连续读取3 组 AD 采样数据取平均值,得到稳定 AD 采样结果,存入变量存储器(VP)供后续运算使用。

(2)重量换算与显示
       程序中Weight_Maopi存储空载毛底 AD 值,Tare_Offset保存去皮偏移量。计算 AD 差值diff = 当前AD − 毛底AD − 去皮偏移,当 diff 为负数时强制归零;再通过校准系数GapValue完成换算raw_weight = (diff × 10) / GapValue,换算后以百克单位Weight_100g存储。调用Update_Weight_Display()将重量数据写入 VP;单位切换功能根据选择模式,完成克、千克、斤的换算处理,将对应数值输出到 DGUS 界面显示。

(3)去皮与校准机制
       去皮功能调用Tare_Weight(),读取当前 AD 值,计算得到偏移量存入Tare_Offset,后续称重运算自动扣除该偏移,实现容器皮重清零。校准命令通过 VP 变量下发,Calib_Process()解析不同指令完成对应操作:校正加、校正减对GapValue执行 ±5 步进微调,同时设置上下限保护,范围限定 100~10000;重置功能重新采集 3 次 AD 刷新毛底 AD 值,补偿传感器硬件漂移、安装形变带来的测量偏差。

(4)商品计价运算
       系统采用整数定点运算,规避浮点运算开销,计价公式:总价 ×10 = 重量 × 单价 / 100。OS 核读取 VP 内的重量数据与用户录入的商品单价,调用计价模块完成运算,Update_Price_Display()将计算得到的总价写回 VP 存储器,在界面完成重量、单价、总价的同步展示。

(5)确认锁定与数据回顾存储
       称重界面实时刷新重量,但不会自动存储记录。用户点击确认按键,Process_Lock_Key()执行软件防抖判定,防抖计数满 3 次才视为有效按键;锁定当前重量Locked_Weight,冻结对应总价Fixed_Total_Price,同时调用History_Save()执行数据保存。历史记录使用数组环形缓存,history[5]存储重量,history_price[5]存储对应总价;新记录插入数组头部,原有记录依次向后移位,最多保存最近 5 组有效数据。数据回顾页面读取 VP 中历史缓存数据,完成历史记录查阅;未经过确认的浮动重量数据不会写入缓存。

(6)人机交互
       DGUS 界面各类控件与 VP 地址绑定,OS 内核通过sys_read_vp、sys_write_vp读写 VP 变量,借助RAMMODE、APP_ACK、APP_EN等寄存器完成内核与界面双向数据交互。主循环中HX711_doing()以 100ms 周期轮询,依次执行重量采集、校准处理、按键解析逻辑。

三、设计思路
(1)处理器方案选择
       EKT043EDU 搭载的 T5L 芯片集成 GUI 核与 OS 核:GUI 核专职处理显示与触控,OS 核(兼容标准 8051 指令集)负责 HX711 时序读取、称重算法、计价运算、历史数据缓存处理。单芯片即可完成全部功能,结构简洁、无需外接额外单片机,成本更低、可靠性更高。

(2)软件模块化分层设计
       项目代码按照业务功能进行模块拆分,各个模块独立编写配套头文件,实现功能解耦。sys模块负责系统初始化、VP 变量读写底层接口;HX711模块实现传感器采样、重量换算、按键事件处理;PriceCalculator模块专门处理商品总价计算;Calibration模块封装去皮、校准相关逻辑;History模块实现历史记录缓存读写。模块职责划分清晰,便于调试维护与功能拓展。

(3)DGUS 界面与 VP 变量设计
       使用迪文 DGUS 软件完成全部界面设计,包含开机欢迎界面、称重主界面、单价录入软键盘、计价显示页面、数据回顾页面。核心控件包括:
             ・数据变量显示:实时显示重量、单价、计算得出的总价
             ・按键返回:实现去皮、校正加减、单位切换、确认锁定、页面跳转
             ・数据变量录入:实现商品单价手动输入
             ・数据显示控件:用于数据回顾页面展示多条历史称重记录
       VP(变量存储器)是 DGUS 界面与 T5L 代码的数据桥梁,每个 VP 地址对应 2 字节数据。项目将重量0x1000、单价0x1002、总价0x3000、校准命令0x1006、历史记录区0x2000等功能参数分配独立 VP 地址。界面控件与 VP 地址绑定后,T5L 代码通过读写 VP 即可完成数据交互,界面和业务逻辑完全解耦。

(4)关键技术实现
      ・多次采样滤波:对 HX711 多组 ADC 采样做均值处理,消除称重晃动带来的数据跳变,读数更加平稳。
      ・定点整数计价:全部使用整数运算,舍弃浮点库,提升 T5L‑8051 内核的运算效率与程序稳定性。
      ・去皮校准相互隔离:去皮只修改偏移变量Tare_Offset,校准只修改换算系数GapValue,两套参数互不干扰。
      ・触发式保存环形缓存:只有按下确认按键才保存称重记录,过滤空载、抖动带来的无效数据;环形数组循环存储最多 5 条历史记录。
      ・按键防抖与限幅保护:确认按键增加软件防抖计数;校准系数设置上下限;T5L 上电初始化全部 VP 变量,消除 VP 存储器掉电随机数据。

四、演示视频

【多功能称重器系统设计-哔哩哔哩】 https://b23.tv/gn29CkS

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2026-9-18 14:33 , Processed in 0.036909 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表