目录
一、主要功能
1、LCD显示测量重量值和阈值
2、测量超过阈值,警报模块启动
3、阈值设置
二、使用步骤
使用LCD1602液晶、按键、蜂鸣器、HX711测量模块。
系统运行后,LCD1602显示测量重量值和阈值;
当测量重量值高于阈值,报警器启动。
三、硬件资源
1、32单片机核心模块
2、按键模块
3、HX711测量模块
4、蜂鸣器模块
5、LCD1602显示模块
四、软件设计
#include "delay.h"
#include "sys.h"
#include "1602.h"
#include "key.h"
#include "Tool.h"
#include "hx711.h"
u8 Set_num=0; //设置标志位
u8 Key_num=0;//按键值
u32 weight;
u32 weight_value=100;
void key_san(void);//按键判断函数
void Delay(int num)
{
while(num--) ;
}
void display_data(void)///显示
{
LcdWriteCom(0x0C); //取消光标闪烁
LcdWriteCom(0x80+7); //第一行
LcdWriteData(weight%10000/1000+0x30);
LcdWriteData(weight%1000/100+0x30);
LcdWriteData(weight%100/10+0x30);
LcdWriteData(weight%10+0x30);
LcdWriteCom(0x80+0x40+6); //第二行
LcdWriteData(weight_value%10000/1000+0x30);
LcdWriteData(weight_value%1000/100+0x30);
LcdWriteData(weight_value%100/10+0x30);
LcdWriteData(weight_value%10+0x30);
}
int main()
{
delay_init(); //延时函数初始化
LCD1602_Init(); //lcd函数初始化
KEY_Init(); //按键函数初始化
TOOL_Init(); //工具初始化
HX711_Init();
Get_Maopi();//获取毛皮重量
while(1)
{
key_san();//按键判断函数
weight=Get_Weight();
if(weight > weight_value)
BEEP = 0;
else
BEEP = 1;
display_data();///显示
}
}
void key_san()//按键判断函数
{
Key_num=KEY_Scan(0);
switch(Key_num)
{
case 1://加
if(weight_value < 1000)
weight_value++;
break;
case 2://减
if(weight_value > 0)
weight_value--;
break;
}
}
五、实验现象
B站演示视频
联系作者
作者B站链接:https://space.bilibili.com/3493294220773802
专注于51单片机、STM32、Proteus、物联网软件开发,PCB设计。