设计要求

1、利用压力传感器检测重量信号,经放大和A/D转换,送单片机进行处理,并在液晶屏上显示出被称重量值;
2、最小显示单位为1克;
3、量程超过报警值蜂鸣器报警
资料下载地址:基于51单片机HX711的电子秤称重计价proteus仿真程序设计资料

仿真图1

系统刚上电显示物体重量和报警值

仿真图2

按下HX711模块的加键,模拟物体称重,超重报警。

硬件设计

电子称原理图

程序设计

部分程序

/*********************************************************************************************************************************************/#include "main.h"
#include "HX711.h"
#include "uart.h"
#include "LCD1602.h"unsigned long HX711_Buffer = 0;
unsigned long Weight_Maopi = 0;
long Weight_Shiwu = 0;unsigned char flag = 0;
bit Flag_ERROR = 0;
sbit speak= P1^7;//校准参数
//因为不同的传感器特性曲线不是很一致,因此,每一个传感器需要矫正这里这个参数才能使测量值很准确。
//当发现测试出来的重量偏大时,增加该数值。
//如果测试出来的重量偏小时,减小改数值。
//该值可以为小数
#define GapValue 400//****************************************************
//主函数
//****************************************************
void main()
{Uart_Init();Send_Word("Welcome to use!\n");Send_Word("Made by Beetle Electronic Technology!\n");Init_LCD1602();LCD1602_write_com(0x80);LCD1602_write_word("Welcome to use!");Delay_ms(1000);      //延时,等待传感器稳定Get_Maopi();               //称毛皮重量while(1){EA = 0;Get_Weight();           //称重EA = 1;Scan_Key();//显示当前重量if( Flag_ERROR == 1){Send_Word("ERROR\n");LCD1602_write_com(0x80+0x40);LCD1602_write_word("ERROR ");speak=0;}        else{         speak=1;Send_ASCII(Weight_Shiwu/1000 + 0X30);Send_ASCII(Weight_Shiwu%1000/100 + 0X30);Send_ASCII(Weight_Shiwu%100/10 + 0X30);Send_ASCII(Weight_Shiwu%10 + 0X30);Send_Word(" g\n");LCD1602_write_com(0x80+0x40);LCD1602_write_data(Weight_Shiwu/1000 + 0X30);LCD1602_write_data(Weight_Shiwu%1000/100 + 0X30);LCD1602_write_data(Weight_Shiwu%100/10 + 0X30);LCD1602_write_data(Weight_Shiwu%10 + 0X30);LCD1602_write_word(" g");}}
}//****************************************************
//获取毛皮重量
//****************************************************
void Get_Maopi()
{Weight_Maopi = HX711_Read();
} //****************************************************
//MS延时函数(12M晶振下测试)
//****************************************************
void Delay_ms(unsigned int n)
{unsigned int  i,j;for(i=0;i<n;i++)for(j=0;j<123;j++);
}
LCD1602.h```handlebars
#include "LCD1602.h"//****************************************************
//MS延时函数(12M晶振下测试)
//****************************************************
void LCD1602_delay_ms(unsigned int n)
{unsigned int  i,j;for(i=0;i<n;i++)for(j=0;j<123;j++);
}//****************************************************
//写指令
//****************************************************
void LCD1602_write_com(unsigned char com)
{LCD1602_RS = 0;LCD1602_delay_ms(1);LCD1602_EN = 1;LCD1602_PORT = com;LCD1602_delay_ms(1);LCD1602_EN = 0;
}//****************************************************
//写数据
//****************************************************
void LCD1602_write_data(unsigned char dat)
{LCD1602_RS = 1;LCD1602_delay_ms(1);   LCD1602_PORT = dat;LCD1602_EN = 1;LCD1602_delay_ms(1);LCD1602_EN = 0;
}//****************************************************
//连续写字符
//****************************************************
void LCD1602_write_word(unsigned char *s)
{while(*s>0){LCD1602_write_data(*s);s++;}
}void Init_LCD1602()
{LCD1602_EN = 0;LCD1602_RW = 0;                       //设置为写状态LCD1602_write_com(0x38);            //显示模式设定LCD1602_write_com(0x0c);            //开关显示、光标有无设置、光标闪烁设置LCD1602_write_com(0x06);            //写一个字符后指针加一LCD1602_write_com(0x01);            //清屏指令
}

全套资源如下


基于51单片机HX711的电子秤称重计价proteus仿真程序设计相关推荐

  1. 基于51单片机的时钟电子秤称重系统proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.采用LCD1602液晶显示当前时间和检测重量 2.按键可更改时间和设置超重报警阈值 3.采用HEX711和称重支架传感器获取物体重量信息,传入 ...

  2. 基于51单片机的校园电子打铃器 proteus仿真原理图程序设计

    硬件设计 (末尾附文件) 功能: 1.8位数码管显示当前时间. 2.使用DS1302获得时钟信号,能够进行时钟设置 3.能够设置10组打铃时间,并具有临时打铃功能,打铃的时长为5S钟 4.使用1602 ...

  3. 基于51单片机的小区智能防盗门禁密码锁 proteus仿真程序设计

    硬件设计 仿真图: 矩阵键盘输入密码区,模拟电磁开关,LCD12864显示: 程序设计 /******************************************************* ...

  4. 基于51单片机的SD卡读卡器MMC存储器 proteus仿真程序设计

    硬件设计 (末尾附文件) 程序设计 #include <reg52.H>#define F_OSC 11059200//晶振平率Hz #define F_BAUD 9600 #define ...

  5. 【043】基于51单片机的篮球比赛积分计时系统Proteus仿真

    一.压缩包资料内容 (1).基于51单片机的篮球比赛积分计时系统proteus仿真设计一份: (2).基于51单片机的篮球比赛积分计时系统proteus仿真设计keli源代码一份: (3).基于51单 ...

  6. 【038】基于51单片机的土壤湿度自动浇花系统Proteus仿真设计

    一.压缩包资料内容 (1).基于51单片机的土壤湿度自动浇花系统proteus仿真设计一份: (2).基于51单片机的土壤湿度自动浇花系统proteus仿真设计keli源代码一份: (3).基于51单 ...

  7. 基于51单片机CO2二氧化碳气体浓度检测超限报警Proteus仿真

    资料编号:156   下面是相关功能视频演示: 156-基于51单片机CO2二氧化碳气体浓度检测超限报警Proteus仿真((源码+仿真+全套资料)) 功能介绍: 采用51单片机作为CPU,ADC08 ...

  8. 基于51单片机随机数自动摇号抽奖系统Proteus仿真

    资料编号:165   下面是功能展示视频: 165-基于51单片机随机数自动摇号抽奖系统Proteus仿真(源码+仿真+全套资料) 功能讲解: 采用51单片机作为控制CPU,LCD1602显示相关数值 ...

  9. 基于51单片机PM2.5浓度检测超限报警Proteus仿真

    资料编号:159   下面是相关功能视频演示: 159-基于51单片机PM2.5浓度检测超限报警Proteus仿真(源码+仿真+全套资料) 功能介绍: 采用51单片机作为CPU,ADC0832作为AD ...

最新文章

  1. 拖拽的原生和jQuery写法
  2. Spark on Yarn 模式编写workcount实例
  3. 设计模式(三):观察者模式与发布/订阅模式区别
  4. sklearn中的make_blobs的用法
  5. [转载] Java面试题大全(2020版)
  6. (译)如何使用GameCenter制作一个简单的多人游戏教程:第一部分
  7. 如果你还在找项目,说明你还需要走的路很多
  8. ubuntu上安装python3.7教程_ubuntu中安装Python3.7
  9. css3技巧——产品列表之鼠标滑过效果(一)
  10. Mac 命令行 Terminal 安装My Zsh,替换默认的Bash
  11. 关于error in opening zip file
  12. 根据火车的出发时间和到达时间,编写程序计算整个旅途所用的时间。比如G198次列车从青岛站出发时间为16:00,到达北京南站的时间为20:40,则整个旅途所用时间为04:40。
  13. 部门 2016 总结
  14. iPhone 11首发评测:你该不该用它换旧iPhone
  15. 架构师日常-团队管理
  16. android app启动失败,Android应用App启动白屏(黑屏)问题解决
  17. Java 如何从一个 List 中随机获得元素
  18. Unity 3D 菜单栏快捷键详解
  19. 医院信息系统的业务功能详解
  20. Android安装node js,如何在安卓手机上安装nodejs

热门文章

  1. windows10 javac错误:javac不是内部或外部命令 也不是可运行的程序
  2. 为什么魂斗罗只有 128KB 却可以实现那么长的剧情?
  3. 正点原子阿波罗STM32F429开发板资料发布,采用底板+核心板
  4. XAF将ListView和DetailView一起显示
  5. 视频剪辑怎么自学?其实剪辑很简单
  6. mysql数据库备份备份命令
  7. ps基础学习:钢笔工具抠图
  8. hive中常用字符串转时间的处理方法
  9. op 分析 这个绝对值电路OP1是怎么工作的?
  10. 一个中国白领(SAP从业者)的美国跳槽记