实践项目2-自动计价电子秤
自动计价电子秤
一、功能说明
基于AVR单片机设计一自动计价电子秤。根据输入的价格以及检测的重量自动计算总价并打印(串口模拟)。
二、具体要求
1、开机后实时检测重量并显示;
2、通过按键输入并显示价格,具有修改功能;
3、确认后自动计算并显示总价;
4、实时显示单价、重量和总价信息;
5、按下“打印”键后,通过串口发送单价、重量和总价信息;
6、,具有故障检测报警功能;
三、自动计价电子秤报告
摘要:自动计价电子秤使用AVR系列的ATmega16单片机作为主控芯片,通过采集压力传感器MPX4115产生的模拟信号,并将其通过其内部的ADC资源将模拟信号转换成对应的数字信号,并将其显示在八位共阳数码管上。同时设置了四个按键作为系统的单价加、减、计算总价、以及串口显示的功能。我们不仅可以通过数码管,也可以通过串口助手实时的显示出对应的单价、重量、总价的数据。
关键词:ATmega16 压力传感器 ADC 串口
1 设计要求
该自动报价系统要求能够实时的显示出设置的单价、称重的重量,并且在确认好之后计算总价并显示出来。首先该系统需要加入压力传感器得出重量数据,然后通过按键系统能够改变对应物品的单价,这时显示模块就会实时显示物品的重量和单价,待确认之后,按下确认按键计算出对应物品的总价。最后一个按键是串口打印的功能按键,可以通过串口向外发送单价、重量、总价信息。还有,当出现故障的时候,可以进行故障检测的报警提示。
2 总体设计
2.1 系统组成及工作原理
根据题目中的要求,系统共分为单片机处理模块、重量检测模块、按键控制模块、数码管显示模块、串口发送模块。系统的总体框图如图2.1所示。

图2.1 系统总体框图
(1)、单片机处理模块:单片机处理模块负责将重力传感器传递的模拟信号用其内部的ADC通道进行AD转换,同时检测按键数据进行相应的逻辑运算,最后将数据通过串口和数码管显示出来。
(2)、质量检测模块:给单片机的ADC通道传递所称物理重量的模拟信号,以便其进行AD转换。
(3)、按键控制模块:总共四个按键,牵连个按键对物品的单价进行加或减,第三个按键负责计算总价,第四个按键是串口打印按键,将处理好的重量、单价、总价通过串口发送出去。
(4)、串口发送模块:待串口配置好以及数据处理完之后,将对应的数据发送出去,并可以通过串口助手显示出来。
(5)、数码管显示模块:负责显示物品的重量和单价,待计算总价按钮按下之后,显示物品的总价。
2.2 称重传感器测量原理
称重传感器是用来将重量信号或压力信号转换成电量信号的转换装置。称重传感器采用金属电阻应变计组成测量桥路,利用金属电阻丝在张力作用下伸长变细,电阻增加的原理,即金属电阻随所受应变而变化的效应而制成的(应变,就是尺寸的变化)。称重传感器的构造原理金属电阻具有阻碍电流流动的性质,即具有电阻,其阻值依金属的种类而异。同一种金属丝,一般来讲,越是细长,其电阻值就越大。当金属电阻丝受外力作用而伸缩时,其电阻值就会在某一范围内增减。因此,将金属丝(或膜)紧贴在被测物体上,而且这种丝或膜又很细或很薄,粘贴又十分完善,那么,当被测物体受外力而伸缩时,金属电阻丝(膜)也会按比例伸缩,其阻值也会相应变化。称重传感器就是将金属电阻应变计粘贴在金属称重梁上进行测量重量信号的。
3 硬件设计
3.1 单片机处理电路
单片机选型用的是AVR系列的ATmega16型单片机,ATmega16单片机是一款高性能、低功耗的8位AVR微处理器,具有先进的RISC结构,内部有大容量的ROM、RAM、Flash和EEPROM,集成4通道PWM,SPI串行外设接口,同时具有8路10位A/D转换器,对于数据采集系统而言,外部无需单独的A/D转换器,从而可节省成本.另外,该单片机提供JTAG调试接口,可采用自制的简易JTAG仿真器进行程序调试。
单片机处理电路的仿真图如图3.1所示。
图3.1 单片机处理电路的仿真图
3.2 重量检测电路
重量检测电路的是MPX4115模块,这是一款称重传感器,其工作原理在2.2中提到过,这里就不再叙述了。它的一脚对应是数据输出端,连接的是单片机的PA1口,对应的是ADC1通道,可以通过其加减对其当前称重的数据进行调整,用此方法来仿真其称重的具体数据。重量检测电路的仿真图如图3.2所示。
图3.2 重量检测电路的仿真图
3.3 按键控制电路
按键控制电路共设置了四个按键,连接到单片机的PC1-PC4口,不按下按键的时候,端口检测到的是高电平信号,按下去之后,端口检测的是低电平信号。共有四个按键,第一个和第二个按键是对物品单价进行加或减,第三个按键是开始计算总价,第四个按键是通过串口发送数据。按键控制电路的仿真图如图3.3所示。
图3.3 按键控制电路仿真图
3.4 数码管显示电路
本系统的数据显示电路用了八位共阴数码管进行显示,一开始数码管显示的数据左面是重量数据,右面是单价数据,按下去之后,则显示的是总价数据。数码管的位选和段选端接到单片机相应的IO口端。
图3.4 数码管显示电路仿真图
3.5 报警模块
根据题目要求,该设计还设置了报警模块,当重量超过80的时候,对应的LED灯点亮,表示进行报警。报警模块的仿真图如图3.5所示。
图3.5 报警模块仿真图
3.6 串口发送模块
为了模拟串口发送,需要用到虚拟串口,则需要在仿真中加入RS232接口的串口元件,即图中的COMPIM,电脑中需要安装虚拟串口,配置完对应的串口和波特率、数据位、停止位等数据之后,就可以通过串口助手显示单片机发送的数据了。串口发送模块的仿真图如图3.6所示。
图3.6 串口发送模块仿真图
4. 程序设计
4.1 程序顶层设计
按照题目中的要求,本设计的程序算法共分为按键检测与控制程序、串口发送程序、主程序。
4.2主程序设计
主程序的工作流程图如图4.1所示。首先进行单片机初始化,然后进行其他功能模块的初始化,接下来称重传感器工作输出所称物体的重量数据,然后单片机通过AD转换将重物的模拟数据转换成相应的数字数据,即得到物体重量。然后判断是否重量是否超过80,是的话就进行相应的报警。
然后通过第一个和第二个按键得到物体的单价,待单价和重量数据都准备好之后,计算总价,并且通过数码管和串口发送到串口助手进行数据显示。整个程序的完整工作流程即结束。

图4.1 主程序的工作流程图
4.3 按键检测与控制程序
按键检测与控制程序的流程图如图4.2所示,首先进行按键初始化,然后判断单价按键是否按下,如果按下,则通过其按下的次数和组合得到单价数据,如果没有按下,则继续等待;然后判断计算总价按键是否按下,如果按下则计算得到总价数据,如果没有按下,则继续等待;接着判断串口打印按键。如果按下,则通过串口发送数据,如果没有按下,则继续等待。
4.4 串口发送程序流程图
串口发送程序的流程图如图4.4所示。首先进行初始化,然后设置波特率,然后设置串口的数据位、校验位、停止位等配置数据,然后就可以发送数据。

图4.3 按键检测与控制程序流程图

图4.4 串口发送程序流程图
5 仿真测试
5.1 称重数据显示
数码管显示的数据分为两个,A后面的数据是物体的总重,B后面的数据是物体的单价。一开始物体的重量是73.8,对应数码管显示的数据为74.1,显示的效果如图5.1所示。然后改变物体重量为75,显示的数据为75.5,显示的效果图如图5.2所示。误差进不超过百分之1。

图5.1 实重为73.8的称重显示仿真图

图5.2 实重为75的称重显示仿真图
5.2 单价改变测试
单价需要通过前两个按键进行控制,每按一下,单价变化0.1,一开始按第一个按键3次,将其单价变为0.3,仿真效果图如图5.3所示,然后按第二个按键1次,将其单价变为0.2,仿真效果图如图5.4所示。
图5.3 单价变为0.3的仿真图
图5.4 单价变为0.2的仿真图
5.3 总重计算测试
首先重量显示为75.5,单价为0.3,按下计算总价按钮,总价应该为22.65显示效果图如图5.5所示;接着重量显示为75.5,单价为0.2,按下计算总价按钮,总价应为15.1,显示效果图如图5.6所示。
图5.5 总价为22.65的仿真图
图5.5 总价为15.1的仿真图
5.4 串口通信测试
首先需要安装虚拟串口,然后运行程序,发送单价、重量、和总价数据,单价为0.2,重量为74.2,总价为14.84,串口助手显示效果图如图5.6所示。
图5.6 串口助手显示数据图
5.5 故障检测测试
当检测的物体重量超过80,LED亮表示提示,设置温度为80.1,显示的效果图如图5.7所示。
图5.7 故障检测测试仿真图
7. 总结
本实验以ATmega16单片机作为控制核心,通过称重传感器检测物体的重量,单片机通过AD转换把物体重量的模拟数据转换为相应的数字数据,然后通过按键调整物体的单价,然后通过计算总价案件计算物体总结,接着通过数码管显示和串口助手显示。
本实验通过在PROTEUS上进行原理图仿真,ICCAVR上编写代码,基本上达到了题目中的要求,并且具有良好的兼容性。
附录
整体原理图

四、仿真和报告获取

相关文章:
实践项目2-自动计价电子秤
自动计价电子秤 一、功能说明 基于AVR单片机设计一自动计价电子秤。根据输入的价格以及检测的重量自动计算总价并打印(串口模拟)。 二、具体要求 1、开机后实时检测重量并显示; 2、通过按键输入并显示价格,具有修改功能&#…...
iOS如何操作更新推送证书
最近收到一份邮件,应该如何操作呢,证书还是跟以前一样冲钥匙串直接申请吗 Hello, As we announced in October, the Certification Authority (CA) for Apple Push Notification service (APNs) is changing. APNs will update the server certificates in sandbox on January…...
WSL2 在vscode无法连接copilot
报错情况: 本机可以使用copilot,但在WSL2上无法连接,报错信息如下: 检查网络情况: ping api.github.com 发现无法连接: github.com:Temporary failure in name resolution 在网上搜集的解决方法&#…...
HTA8998 实时音频跟踪的高效内置升压2x10W免电感立体声ABID类音频功放
1、特征 输出功率(fIN1kHz,RL4Ω,BTL) VBAT 4V, 2x10.6W(VOUT9V,THDN10%) VBAT 4V, 2x8.6W (VOUT9V,THDN1%) 内置升压电路模式可选择:自适应实时音频跟踪 升压(可提升播放时间50%以上)、强制升压 最大升压值可选择,升压限流值可设置 ACF防破音功能 D类…...
用ChatGPT-o1进行论文内容润色效果怎么样?
目录 1.引导问题发现 2.角色设定 3.整理常问修改 4.提供样例 5.小细节 小编在这篇文章中分享如何充分利用ChatGPT-o1-preview来提升论文润色的技巧。小编将持续跟进最新资源和最新的调研尝试结果,为宝子们补充更多实用的写作技巧。这些技巧将有助于您更有效地利…...
《探索 Jetpack Compose:构建现代化 Android UI 的利器》
Jetpack Compose 是谷歌推出的现代化 UI 框架,用于简化 Android 应用开发中的 UI 构建。它使用声明式编程方式,允许开发者以简洁直观的方式创建动态和响应式的 UI。本文将从基础概念到进阶用法,带你全面了解 Compose 的核心功能和使用技巧。 …...
cocos creator 的 widget组件的使用及踩坑
以下的内容基于cocos creator 3.8版本,如有错误,恳请指出。 👉官方文档的指引 应用:以上官方指引有非常清晰的使用方式,接下来说明一些注意事项: 1、与canvas搭配的使用,解决多分别率适配问题。…...
Baumer工业相机的EMVA1288 数据报告简介
项目场景: Baumer工业相机堡盟VCX系列和VLX系列为堡盟全系列相机中的主流常用相机和高端相机,性能强大、坚固可靠,易于集成,常用与一般行业的检测定位识别使用。 对应的高端相机系列具有极为丰富的强大技术功能,可轻…...
Docker 安装 中文版 GitLab
Docker 安装系列 安装GitLab、解决服务器内存不足问题、使用域名/IP地址访问项目 1、拉取 [rootTseng ~]# docker pull twang2218/gitlab-ce-zh:latest latest: Pulling from twang2218/gitlab-ce-zh 8ee29e426c26: Pull complete 6e83b260b73b: Pull complete e26b65fd11…...
uni-app 个人课程表页面
uni-app 个人课程表页面 插件参考地址 大部分代码都是参考了上述代码,只对代码做出了优化 1. 页面模板 在 schedule.vue 文件中,编写页面结构: <template><view><u-navbar title"个人中心"><view class&q…...
FPGA工作原理、架构及底层资源
FPGA工作原理、架构及底层资源 文章目录 FPGA工作原理、架构及底层资源前言一、FPGA工作原理二、FPGA架构及底层资源 1.FPGA架构2.FPGA底层资源 2.1可编程输入/输出单元简称(IOB)2.2可配置逻辑块2.3丰富的布线资源2.4数字时钟管理模块(DCM)2.5嵌入式块 …...
【OpenCV】平滑图像
二维卷积(图像滤波) 与一维信号一样,图像也可以通过各种低通滤波器(LPF)、高通滤波器(HPF)等进行过滤。LPF 有助于消除噪音、模糊图像等。HPF 滤波器有助于在图像中找到边缘。 opencv 提供了函数 **cv.filter2D()**&…...
LeetCode300. 最长递增子序列(2024冬季每日一题 30)
给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的 子序列。 示例 1&…...
vue H5如何实现copy功能
vue H5如何实现copy功能 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><link rel"stylesheet" href"https://unpkg.com/vant2.12/lib/index.css" /><title></title><st…...
Golang使用etcd构建分布式锁案例
在本教程中,我们将学习如何使用Go和etcd构建分布式锁系统。分布式锁系统对于管理对分布式系统中共享资源的并发访问至关重要。它有助于维护一致性,防止竞争条件,并确保在任何给定时间只有一个进程独占访问资源。 我们将使用Go作为编程语言&am…...
Windows 和 Ubuntu 双系统安装
复现论文的时候,个别包只有Linux版本,并且源码编译比较麻烦,所以干脆直接安装一个双系统(WinUbuntu),方便复现论文。 参考视频链接:Windows 和 Ubuntu 双系统的安装和卸载 0.所需工具 4G以上U…...
多媒体文件解复用(Demuxing)过程
多媒体文件的解复用(Demuxing)过程指的是从一个多媒体容器文件(如 MP4、MKV、AVI 等)中提取不同类型的多媒体数据流(例如视频流、音频流、字幕流等)的过程。 容器文件本身并不包含实际的视频或音频数据&…...
从 Zuul 迁移到 Spring Cloud Gateway:一步步实现服务网关的升级
从 Zuul 迁移到 Spring Cloud Gateway:一步步实现服务网关的升级 迁移前的准备工作迁移步骤详解第一步:查看源码第二步:启动类迁移第三步:引入 Gateway 依赖第四步 编写bootstrap.yaml第五步:替换路由配置第六步&#…...
qt之插件编译
QtXlsxWriter sudo apt install qtbase5-private-dev git clone https://github.com/dbzhang800/QtXlsxWriter.git cd QtXlsxWriter/ qmake make -j6 sudo make install #将生成的lib 及 include copy至项目路径的lib 及include里项目配置: QT xlsxbluetoo…...
pandas一行拆成多行
import pandas as pd df pd.DataFrame({Country:[China,US,Japan,EU,UK/Australia, UK/Netherland],Number:[100, 150, 120, 90, 30, 2],Value: [1, 2, 3, 4, 5, 6],label: list(abcdef)})# 法一 推荐 df2df.drop(Country, axis1).join(df[Country].str.split(/, expandTrue).…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...
DAY 26 函数专题1
函数定义与参数知识点回顾:1. 函数的定义2. 变量作用域:局部变量和全局变量3. 函数的参数类型:位置参数、默认参数、不定参数4. 传递参数的手段:关键词参数5 题目1:计算圆的面积 任务: 编写一…...
02.运算符
目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&:逻辑与 ||:逻辑或 !:逻辑非 短路求值 位运算符 按位与&: 按位或 | 按位取反~ …...
Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程
鸿蒙电脑版操作系统来了,很多小伙伴想体验鸿蒙电脑版操作系统,可惜,鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机,来体验大家心心念念的鸿蒙系统啦!注意:虚拟…...
