基于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);

posted @ 2021-01-07 14:06  roadroad  阅读(436)  评论(0编辑  收藏  举报
电设屋
上千套电子毕设课设方案