基于51单片机智能体脂体重称系统设计(毕设课设)
毕业设计需要做一个体脂称。查找了一番资料,决定使用HX711和51单片机来做。由于要求需要写手机APP,下位机测量体重,通过蓝牙上传给手机,手机上输入身高,通过计算可以得到BMI值。智能体重体脂称实物展示:
在图中,从右到左,按键K1为去皮功能,K2和K3是修改报警参数值。K2加,K3减。当所测重量大于设置的报警值时,P3.0驱动继电器工作,继电器可以接报警装置等。
校正方法:如果所测重量偏小。则按住K3键不放,再按下K1键。 直到显示重量为正确重量时再放开K1和K3按键。
如果所测重量偏大。则按住K2键不放,再按下K1键。 直到显示重量为正确重量时再放开K1和K2按键。。校正系数我储存在单片机的eeprom中,具有断电保存功能。手机APP上可以打开蓝牙,并读取蓝牙数据,连接上蓝牙后,可实时看到体重,手机端输入身高,即可计算BMI,并且给出合理化的建议。
【资源下载】下载地址如下(894):https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
**************开机自检eeprom初始化*****************/
void init_eeprom()
{
read_eeprom(); //先读
if(a_a != 150) //新的单片机初始单片机内问eeprom
{
a_a =150;
Max_Value = 50;
GapValue= 218;
write_eeprom();
}
}
//扫描按键
void Scan_Key()
{
if(KEY1 == 0 && KEY2 ==1 && KEY3 ==1 )
{
Delay_ms(5);
if(KEY1 == 0 && KEY2 ==1 && KEY3 ==1 )
{
while(KEY1 == 0 && KEY2 ==1 && KEY3 ==1 );
Get_Maopi();
Buzzer_Di();
}
}
if(KEY2 == 0 && KEY1 ==1 && KEY3 ==1 )
{
Delay_ms(5);
if(KEY2 == 0 && KEY1 ==1 && KEY3 ==1 )
{
while(KEY2 == 0 && KEY1 ==1 && KEY3 ==1 );
if(Max_Value<150) { Max_Value++;}
write_eeprom(); //保存数据
Buzzer_Di();
LCD1602_write_com(0x80+0x40);
LCD1602_write_word("SET: ");
LCD1602_write_data(Max_Value/100 + 0x30);
LCD1602_write_data(Max_Value%100/10 + 0x30);