HX711称重传感器+51单片机的电子秤设计,含仿真、源码、原理图、论文等全套设计资料 您所在的位置:网站首页 体重秤的结构图 HX711称重传感器+51单片机的电子秤设计,含仿真、源码、原理图、论文等全套设计资料

HX711称重传感器+51单片机的电子秤设计,含仿真、源码、原理图、论文等全套设计资料

2023-12-02 12:36| 来源: 网络整理| 查看: 265

获取电子秤设计全套资源,请见后文说明…

设计要求 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灯组成。

系统框图.jpg 仿真电路图 仿真电路图.jpg 操作说明.jpg

电子秤原理图

原理图.jpg 仿真结果分析 打开Proteus仿真文件,其后缀名为DSN。双击单片机,加载main.hex文件(位置在:单片机加载文件);然后,双击HX711芯片,加载HX711.hex文件(位置在:HX711模块加载文件)。 hex文件和仿真文件.jpg 点击Proteus软件左下角运行按钮,运行仿真。LCD1602液晶显示:Welcom to Use Electronic Scale. LCD初始化.jpg 紧接着,一声提示音过后,红色LED灯点亮,LCD显示重量、单价和总价,数值均为0。此时,系统处于等待货物称重的状态。

LCD显示的3个参数分别是:WE(Weight,重量的缩写)、PR(Price, 单价的缩写)和MONEY(表示总价)。

系统等待称重.png

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

货物重量4.179Kg 货物超重报警.jpg

通过矩阵键盘输入单价(PR),最大输入单价为99.9,可以输入小数点,单价设置精确到角。比如输入5.4元,输入数字键5、圆点键和数字键4即可。

单价输入完成,自动显示总价(MONEY),总价精确到小数点后1位;总价最大为999元,大于该值,LCD显示‘-.–’表示超出显示量程。

货物称重计价.jpg 矩阵键盘.jpg

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

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

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

例如,按下‘重量+’键,设置篮子重量1.083Kg,然后点击‘去皮’键,WE显示清零。

篮子重量1.083Kg.jpg 去皮操作.png 去皮后,再次按下‘重量+’模拟货物的净重4.880Kg,然后,输入单价3.0元,总价14.06元。 货物去皮称重.png 再次按下‘去皮’键,此时WE显示货物净重加篮子的重量,总价也计算了篮子的部分,再次按下‘去皮’键,重量清零。 计价包含篮子重量.jpg 部分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 (keycode0) 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


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有