系统的功能分析

(文末带附件)
本设计由STC89C52单片机电路+LCD1602液晶显示电路+HX711称重传感器电路+蜂鸣器报警电路+按键电路+电源电路组成。
1、LCD602液晶实时显示重量和设置阈值。
1、按键可以设置报警阈值,阈值范围0-5000g,实际重量高于阈值报警,否则不报警。
2、称重传感器量程:0-5KG即0-5000g。
3、设置阈值具有eeprom存储功能,即掉电不丢失数据。

方案图:

原理图:

5V电源电路设计
本系统选择5V直流电源作为系统总电源,为整个系统供电,电路简单、稳定。DC为电源的DC插座,可以直接接USB电源线,一端插在DC插座上,另外一端可以插在5V电源上,如电脑USB、充电宝、手机充电器等等。LED为红色LED灯,作为系统是否有点的指示灯,电阻为1K电阻,起到限流作用,保护LED灯,以防电流过大烧坏LED灯。SW为自锁开关,开关按下后,红灯亮,此时系统电源5V直流输出。开关再次按下后,红灯灭,此时系统电源无5V电源输出。

5Kg称重传感器模块电路设计
称重传感器实际上是一种将质量信号转变为可测量的电信号输出的装置。用传感器应先要考虑传感器所处的实际工作环境,这点对正确选用称重传感器至关重要,它关系到传感器能否正常工作以及它的安全和使用寿命,乃至整个衡器的可靠性和安全性。称重传感器按转换方法分为光电式、液压式、电磁力式、电容式、磁极变形式、振动式、陀螺仪式、电阻应变式等8类,以电阻应变式使用最广。本系统使用的传感器为YZC-133悬臂梁5KG的电阻应变式称重传感器,其利用电阻应变片变形时其电阻也随之改变的原理工作。主要由弹性元件、电阻应变片、测量电路和传输电缆4部分组成。它的特点是: 精度高、易加工、结构简单紧凑、抗偏载能力强、固有频率高。
一、模块参数
(1)传感器尺寸:80x12.7x12.7mm
(2)量程:5kg
二、称重传感器的工作原理
应变式力传感器的受力工作原理如下图所示。

将应变片粘贴到受力的力敏型弹性元件上, 当弹性元件受力产生变形时,应变片产生相应的应变, 转化成电阻变化。如下图所示。将应变片接成如下图所示的电桥,力引起的电阻变化将转换为测量电路的电压变化,通过测量输出电压的数值, 再通过换算即可得到所测量物体的重量。

HX711称重传感器专用24位精度AD模块电路设计
HX711是一款专为高精度称重传感器而设计的24位A/D转换器芯片。与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。降低了电子秤的整机成本,提高了整机的性能和可靠性。该芯片与后端MCU芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。输入选择开关可任意选取通道A或通道B,与其内部的低噪声可编程放大器相连。通道A的可编程增益为128或64,对应的满额度差分输入信号幅值分别为±20mV或±40mV。通道B则为固定的32增益,用于系统参数检测。芯片内提供的稳压电源可以直接向外部传感器和芯片内的A/D转换器提供电源,系统板上无需另外的模拟电源。芯片内的时钟振荡器不需要任何外接器件。上电自动复位功能简化了开机的初始化过程。
一般在使用中,HX711主要是将称重传感器产生的模拟信号转化成高精度的数字信号给单片机处理。
一、模块参数
(1)两路可选择差分输入
(2)片内低噪声可编程放大器,可选增益为64 和128
(3)片内稳压电路可直接向外部传感器和芯片内A/D 转换器提供电源
(4)片内时钟振荡器无需任何外接器件,必要时也可使用外接晶振或时钟
(5)上电自动复位电路
(6)简单的数字控制和串口通讯:所有控制由管脚输入,芯片内寄存器无需编程
(7)可选择10Hz 或80Hz 的输出数据速率
(8)同步抑制50Hz 和60Hz 的电源干扰
(9)耗电量(含稳压电源电路):典型工作电流:<1.7mA, 断电电流:<1μA
(10)工作电压范围:2.6 ~ 5.5V
(11)工作温度范围:-20 ~ +85℃
二、HX711模块接口说明图
输入端
(1)E+ 接称重传感器红色信号线
(2)E- 接称重传感器黑色信号线
(3)A- 接称重传感器白色信号线
(4)A+ 接称重传感器绿色信号线
输出端
(1)GND 接GND
(2)DT 接单片机引脚
(3)SCK 接单片机引脚
(4)VCC 接5V
模块接口原理图如下图所示。

系统软件设计

#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include<stdio.h>
#include "1602.h"
#include "delay.h"
#include "hx711.h"
#include "eeprom.h"sbit key1 =P2^0;  //引脚定义
sbit key2 =P2^1;
sbit buzzer =P2^2;xdata char dis0[16];      //  显示暂存 用于第一行显示
xdata char dis1[16];         //  显示暂存 用于第二行显示
xdata unsigned long time_20ms=0;   //  系统定时计数
unsigned char ReadFlag=0;      //读取标志xdata long Weight_mp=0;          //毛重
xdata long Weight_Shiwu=0;       //实物重量
xdata unsigned long Weight_Maopi=0;     //读取初始化值bit rekey =0; //按键防止重复
unsigned int setdata = 1000    ;   //设置值void Init_Timer0(void);//函数声明
void keydeal(void); //按键检测及处理函数unsigned char initFlagData;  //初始化数据存读取
/******************把数据保存到单片机内部eepom中******************/
void write_eeprom()
{SectorErase(0x2000);              //擦除整个扇区 注意整个扇区数据都擦出了byte_write(0x2000, setdata % 256);  //重新写入值byte_write(0x2001, setdata / 256);byte_write(0x2055, initFlagData);
}/******************把数据从单片机内部eepom中读出来*****************/
void read_eeprom()
{setdata  = byte_read(0x2001); //读取高字节setdata <<= 8;setdata  |= byte_read(0x2000);  //读取低字节 并合并initFlagData      = byte_read(0x2055); //数据初始化读取
}/**************开机初始化保存的数据*****************/
void init_eeprom(void)
{read_eeprom();     //先读if(initFlagData != 0x55)       //新的单片机初始单片机内问eeprom 如果不是0x55重新写入{setdata = 1000;         //初始化参数initFlagData = 0x55;   //修改值write_eeprom();     //保存数据}
}void main (void)
{     Init_Timer0();        //定时器0初始化DelayMs(20);          //延时有助于稳定LcdReset();               //LCD1602初始化DelayMs(10);LcdClear();   sprintf(dis0,"Welcome ! ");//更新显示DispStr(0,0,(unsigned char *)dis0);//打印显示DelayMs(200);          //延时有助于稳定DelayMs(200);          //延时有助于稳定Weight_Maopi = HX711_Read();   //读取去皮重量DelayMs(10);Weight_Maopi = HX711_Read();Weight_mp =   (unsigned int)((float)Weight_Maopi/430);        //皮重计算init_eeprom();//初始化存储的数据while (1)         //主循环{keydeal();     //按键检测及处理函数if(ReadFlag==1){ReadFlag=0;Weight_Shiwu = HX711_Read();         //读取实物重量Weight_Shiwu = Weight_Shiwu - Weight_Maopi;        //获取净重if(Weight_Shiwu > 4300)    //过滤错误      {   Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/430);    //g计算实物的实际重量                                                        }else{  Weight_Shiwu = 0;}sprintf(dis0,"Now:%5dg",(int)Weight_Shiwu);//显示第一行DispStr(0,0,(unsigned char *)dis0);//打印显示sprintf(dis1,"Set:%5dg",(int)setdata);//显示第一行DispStr(0,1,(unsigned char *)dis1);//打印显示if(Weight_Shiwu>setdata)  //实际重量大于设置值{buzzer=0;}    //打开蜂鸣器else{buzzer=1;} //关闭蜂鸣器}}
}

.

链接:https://pan.baidu.com/s/1nOp1s-aPYyI7ICohP5KioA
提取码:5ufb

.

基于51单片机的电子称称重压力检测阈值报警系统方案原理图设计相关推荐

  1. 基于51单片机的红外非接触测温仪阈值报警方案原理图设计

    系统的功能分析 (附文件) 系统功能分析 本设计由STC89C52单片机电路+1602液晶显示电路+MLX90614ESF红外非接触温度检测电路+按键电路+蜂鸣器报警电路. 1.液晶实时显示MLX90 ...

  2. 基于51单片机霍尔测速仪表测转速调速系统方案原理图设计

    硬件分析 (文末附文件) 原理框图 原理图: 系统功能分析 本设计由STC89C52单片机电路+液晶LCD1602显示电路+霍尔测速电路+电源电路组成. 1.通过霍尔传感器测速,霍尔传感器检测轮盘上的 ...

  3. 模块称重51单片机电子秤称重压力检测阈值报警仪系统 源码+原理图仿

    HX711模块称重51单片机电子秤称重压力检测阈值报警仪系统 源码+原理图仿真(文件,文件,文件) 本系统由STC89C52单片机.LCD1602液晶显示.HX711称重传感器. 蜂鸣器报警.按键及电 ...

  4. 基于51单片机的智能煤气天然气CO检测阈值报警器排气风扇方案原理图设计

    硬件电路的设计 系统的功能分析及体系结构设计 3.1.1系统功能分析 本设计由STC89C52单片机+煤气/co传感器模块电路+3个LED指示灯电路+蜂鸣器报警电路+风扇控制电路+继电器控制电路+电源 ...

  5. 基于51单片机的跑步机霍尔测速脉搏心率检方案原理图设计

    系统的功能分析及体系结构设计 (下方附文件) 3.1.1系统功能分析 本设计由STC89C52单片机电路+脉搏/心率传感器电路+LM393比较器电路+霍尔测速电路+电机控制电路+LCD1602显示电路 ...

  6. 基于51单片机的水温水位测控智能热水器系统方案原理图仿真

    硬件系统设计 单片机应用系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM.RAM.I/O.定时器/计数器.中断系统等不能满足应用系统的要求时,必须在片外进行扩展,选择适 ...

  7. 基于51单片机的公交站自动播报系统proteus仿真 程序原理图设计

    硬件设计 (末尾附文件) 设计1: 该设计具有仿真图,LCD12864作为显示器,4个设置按键,具有led指示灯: 设计2: 该设计不具备仿真图,原理图如下所示: 设计1代码 #include < ...

  8. 基于51单片机的电子血压温度计(单片机健康检测系统设计)proteus仿真设计(仿真+程序+演示视频)

    基于51单片机的电子血压温度计proteus仿真设计 (仿真+程序+演示视频) 仿真图proteus 8.9 程序编译器:keil 5 编程语言:C语言 设计编号:S0026 演示视频: 51单片机的 ...

  9. 基于51单片机LCD1602电子时钟实物制作

    之前写了51单片机的LCD1602的程序,现在画了电路图,焊接了电路板,做出了基于51单片机LCD1602电子时钟的实物. 注意事项: 焊接过程中,注意提前布局电路. 对应好端口(避免接线错误),我由 ...

  10. 基于51单片机的电子万年历的设计-源代码

    电子万年历的设计目录 电子万年历的设计 电子万年历的系统整体设计框图 所需要的元件 DS18B20模块 DS18B20的特点 DS18B20内部结构 DS18B20管脚排列 DS1302模块 SPI时 ...

最新文章

  1. SpringBoot启动类的扫描注解的用法及冲突原则
  2. JavaScript 中创建三种消息框:警告框、确认框、提示框
  3. 从零学前端第十四讲:AngularJs进阶-作用域和控制器
  4. 车牌识别之车牌定位(方案总结)
  5. java gc回收机制种类_JAVA的垃圾回收机制(GC)
  6. SilverLight学习
  7. PHP 中 strpos(), stripos(),strrpos(), strripos() 的区别
  8. HG255D刷机及网络接口配置
  9. NOIP2017 普及组题解
  10. WIN7清理C盘空间垃圾的BAT脚本
  11. Linux,DNS服务器配置
  12. IDLE的启动和设置
  13. 关于2012(世界末日)
  14. 如何解决C++编译错误C2280尝试引用已删除的函数【每天一个小技巧】
  15. 自适应中值滤波器python实现
  16. guid和mbr格式的区别;32位和64位操作系统的区别。
  17. 达人评测 i5 1155G7和i5 1135G7的差距大不大
  18. 设计模式学习笔记(C++实现)(九)--组合模式
  19. python的idel下添加清屏功能
  20. 使用java进行本地文件全盘搜索

热门文章

  1. Mirth学习笔记 - 建立Mirth通道
  2. 华为大数据解决方案(PPT)
  3. 计算机硬盘的常用分区工具,磁盘分区工具,详细教您硬盘分区工具diskgenius怎么使用...
  4. java retainall源码,Java CopyOnWriteArraySet retainAll()用法及代码示例
  5. qca9533 openwrt 启动信息
  6. Halcon软件安装教程
  7. 高创CDHD伺服驱动器调试软件ServoStudioSetup V2.18版本与技术资料
  8. 【CASS精品教程】CASS绘图软件入门初级教程超详细资料
  9. java将date类型转成yyyymmdd_java中的Date怎么转换成YYYYMMDD形式的
  10. 用html制作简单考试系统,巧用EXCEL制作模拟考试系统