当前位置:网站首页>电子秤称重系统设计,HX711压力传感器,51单片机(Proteus仿真、C程序、原理图、论文等全套资料)
电子秤称重系统设计,HX711压力传感器,51单片机(Proteus仿真、C程序、原理图、论文等全套资料)
2022-04-23 14:13:00 【蒋宇智】
设计要求
1.系统可实现电子秤基本的称重功能(称重范围为0~10Kg,重量误差不大于±0.005Kg);
2.系统应具备键盘输入单价,显示重量,计算总价的功能;
3.单价和总价金额的单位为元,最大金额数值为999.99元,金额误差不大于0.01元;
4.系统超出最大测量范围10Kg时,具有报警指示功能(蜂鸣器、LED灯报警提示);
5.该电子秤设计同时具备去皮功能和重量校准功能;
设计概述
电子秤系统主要由单片机最小系统、数据采集系统、人机交互界面系统、报警系统五大部分组成。
单片机最小系统主要包括AT89C51和经典复位电路;数据采集部分由称重传感器、信号放大和A/D转换部分组成,信号放大和A/D转换部分主要由专用型高精度24位AD转换芯片HX711实现。
人机交互界面为键盘输入和点阵式液晶显示,主要使用4*4矩阵键盘和1602液晶显示器,可以方便的输入数据和直观的显示数据;报警系统由蜂鸣器和LED灯组成。

仿真电路图


电子秤原理图

仿真结果分析
打开Proteus仿真文件,其后缀名为DSN。双击单片机,加载main.hex文件(位置在:单片机加载文件);然后,双击HX711芯片,加载HX711.hex文件(位置在:HX711模块加载文件)。

点击Proteus软件左下角运行按钮,运行仿真。LCD1602液晶显示:Welcom to Use Electronic Scale.

紧接着,一声提示音过后,红色LED灯点亮,LCD显示重量、单价和总价,数值均为0。此时,系统处于等待货物称重的状态。
LCD显示的3个参数分别是:WE(Weight,重量的缩写)、PR(Price, 单价的缩写)和MONEY(表示总价)。

按下‘重量+’或‘重量-’键,模拟货物称重,称重范围为:0~10Kg。重量若大于10Kg,超重报警,蜂鸣器鸣叫,红色LED闪烁,LCD中WE显示:-.–。


通过矩阵键盘输入单价(PR),最大输入单价为99.9,可以输入小数点,单价设置精确到角。比如输入5.4元,输入数字键5、圆点键和数字键4即可。
单价输入完成,自动显示总价(MONEY),总价精确到小数点后1位;总价最大为999元,大于该值,LCD显示‘-.–’表示超出显示量程。


本仿真设计有校准功能,通过‘校准+’和‘校准-’两个键,可以小范围(按下1次,重量显示改变0.001Kg)校准电子秤显示的货物重量。例如,将重量由3.576Kg校准为3.574Kg。

货物称重完成后,点击‘清除’键,清除单价和总价,点击‘去皮’键清除重量显示,注意去皮键兼具清除重量显示的功能;然后就可进行下次称重了。

模拟去皮功能
首先通过按下‘重量+’/‘重量-’键,模拟篮子或者箱子的重量,该重量设置好后,按下‘去皮’键,此时重量显示清零。
例如,按下‘重量+’键,设置篮子重量1.083Kg,然后点击‘去皮’键,WE显示清零。


去皮后,再次按下‘重量+’模拟货物的净重4.880Kg,然后,输入单价3.0元,总价14.06元。

再次按下‘去皮’键,此时WE显示货物净重加篮子的重量,总价也计算了篮子的部分,再次按下‘去皮’键,重量清零。

部分C代码
void main()
{
init_eeprom(); //开始初始化保存的数据
Init_LCD1602(); //初始化LCD1602
EA = 0;
Data_Init();
Timer0_Init();
//初中始化完成,开断
EA = 1;
// Get_Maopi();
LCD1602_write_com(0x80); //指针设置
LCD1602_write_word(" Welcome To Use "); //
LCD1602_write_com(0x80+0x40); //指针设置
LCD1602_write_word("Electronic Scale");
// Delay_ms(2000);
Get_Maopi();
LCD1602_write_com(0x80); //指针设置
LCD1602_write_word("WE:0.000 PR: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;
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 > 10000) //超重报警
{
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/1000; //money单位为分
//显示总金额
Display_Money();
}
}
//****************************************************
//获取毛皮重量
//****************************************************
void Get_Maopi()
{
unsigned char clear;
mm: Weight_Maopi_0 = HX711_Read();
for(clear=0;clear<10;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;
}
分享的资源有
(1)基于51单片机和HX711压力传感器的电子秤系统设计毕设论文完整版;
(2)Proteus仿真文件;
(3)Keil C程序文件;
(4)HX711模块资料;
(5)Visio流程图;
(6)电子秤原理图;
(7)电子元器件清单;
(8)评优文献翻译;
全套资源如下






重要的事情说三遍!
重要的事情说三遍!
重要的事情说三遍!
获取电子秤设计毕业论文、Proteus仿真、C程序、原理图、Visio流程图、元器件清单、HX711模块等全套资料。
请微信搜索关注公众号:交院小智
版权声明
本文为[蒋宇智]所创,转载请带上原文链接,感谢
https://blog.csdn.net/JiaoDaBoy/article/details/106139154
边栏推荐
猜你喜欢
随机推荐
On the problem of cliff growth of loss function in the process of training
Notes on Visio drawing topology
ssh限制登录的四种手段
循环队列的基本操作,你学会了吗?
关于在vs中使用scanf不安全的问题
单片机的函数信号发生器,输出4种波形,频率可调,原理图,仿真和C程序
使用Executors类快速创建线程池
51单片机的花卉、农田自动浇水灌溉系统开发,Proteus仿真,原理图和C代码
如何轻松做好一个项目
线程间控制之Semaphore使用介绍
操作系统常见面试题目:
Redis源码分析之HSET流程与ziplist
API Gateway/API 网关(三) - Kong的使用 - 限流rate limiting(redis)
快速搞懂线程实现的三种方式
Qt界面优化:Qt去边框与窗体圆角化
Processing MKDIR: unable to create directory 'AAA': read only file system
1分钟看懂执行流程,永久掌握for循环(附for循环案例)
Installation and use of postman pit
Flop effect
剑指offer刷题(2)--面向华为









