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

您所在的位置:网站首页 电子秤的杆怎么放下去了视频讲解 基于51单片机HX711的电子秤称重计价proteus仿真程序设计

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

2024-07-09 17:58| 来源: 网络整理| 查看: 265

设计要求

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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3