基于51单片机电子秤设计系统(Proteus仿真+Keil源码+设计文档+原理图等)附下载链接!HX711带led灯及蜂鸣器报警
提供对应的Proteus仿真电路图,Keil程序源码(C语言),原理图,模块资料、元件清单、程序流程图等电子资料参考学习,附全部资料的下载链接。
1)项目完整资料获取链接(链接随时失效,请尽快转存):下载链接
2)Keil、Proteus各个版本安装包: 下载链接
01设计要求
设计一个基于51单片机电子秤设计系统:
功能1:HX711可以对称重进行校准、去皮;
功能2:led灯以及蜂鸣器实现报警。
02系统概述
本设计以STC89C51/52单片机为核心控制器,主要功能HX711可以对称重进行校准、去皮,带led灯以及蜂鸣器报警。
03Proteus仿真

04示例代码
#include "KEY.h"
#include "LCD1602.h"
#include "HX711.h"
void main()
{
System_Init();//初始化相关信息,播放开机语音,获取毛皮重量等。
while(1)
{
Get_Weight();//获取重量并显示
keycode = MatrixKey_RanksScan();//读取按下的按键值
if(keycode < 16)
{
KeyPress(keycode);//执行按键动作
}
}
}
//系统初始化,包括液晶屏初始化、串口初始化、校正系数初始化
void System_Init(void)
{
LED = 0;//系统还未准备好,待完成初始化后指示灯才熄灭
LCD1602_Init();//LCD1602初始化
LcdShowStr(0,0," Welcome To Use ");//开机显示的第一行信息
LcdShowStr(0,1,"Electronic Scale");//开机显示的第二行信息
Get_Maopi(); //称毛皮重量
LED = 1; // LED熄灭,表示可以称重了
LcdShowStr(0,0,"We:00.000Pr:00.0"); //开机初始显示重量,单价,显示在第一行
LcdShowStr(0,1,"Money: 0.00 "); //开机初始显示总价,显示在第二行
}
//开机后,首先获取毛皮重量
void Get_Maopi()
{
Weight_Maopi = ReadHX711Value();
}
//获取实物重量,计算物品总价,液晶屏显示且串口打印相关信息
void Get_Weight()
{
Weight_Shiwu = ReadHX711Value();
//获取净重,注意这里获取的值只是HX711读取的值,并未转换成相应的重量数据,Weight_Maopi是系统初始化中通过
//Weight_Maopi = HX711_Read()获取的值
Weight_Shiwu = Weight_Shiwu - Weight_Maopi;
Weight_Shiwu = Weight_Shiwu/GapValue/1000-qupi; //计算实物的实际重量,单位:Kg
//注意这里的技巧:巧妙利用数据类型转换,使得重量数值保留到千分位(精确到1g)
Weight_Shiwu = ((float)((unsigned long)(Weight_Shiwu*1000)))/1000;
if(Weight_Shiwu > 10.0) //超重
{
LED = 0; // LED点亮,表示异常
LcdShowStr(3,0,"--.---");
}
else
{
LED = 1; // LED熄灭,表示正常
Display_Weight(); //液晶屏显示重量
money = Weight_Shiwu*price;//计算总价,单位:元
money =money + 0.005; //用于四舍五入,保留总价有效数值到百分位
//注意这里的技巧:巧妙利用数据类型转换,使得总价数值保留到百分位(一般金额精确到分)
money = ((float)((unsigned long)(money*100)))/100;
Display_Money(); //液晶屏显示总价
}
}
05原理图

注:
源码使用Keil4或Keil5打开
仿真使用的是Proteus8.13及以上版本,版本过低可能会打不开。
06资料获取
1)项目完整资料获取链接:下载链接
2)Keil、Proteus各个版本安装包: 下载链接

浙公网安备 33010602011771号