健康指数&体重指数DIY综合设计

  • 电路图
    • 原理图
    • 3D模型
  • APP设计——[Appinventor广州服务器(中文版)](http://app.gzjkw.net/login/)
    • 组件设计
    • 逻辑设计
  • 程序讲解
    • main.c
    • main.h
    • HX711.c
  • 器件清单
  • 安装说明
  • 资料下载

电路图

原理图

3D模型

APP设计——Appinventor广州服务器(中文版)

组件设计

逻辑设计


注:一款非常简单的图形化APP编写网页网页版,b站学习视频也非常多,看一个小时就行编写APP。(>-<)

程序讲解

main.c

#include "main.h"
#include "HX711.h"
#include "uart.h"
#include "LCD1602.h"
#include "temp.h"
#include <intrins.h>
#define uchar unsigned char  //无符号字符型 宏定义   变量范围0~255
#define uint  unsigned int   //无符号整型 宏定义    变量范围0~65535unsigned long HX711_Buffer = 0;
//unsigned long Weight_Maopi = 0;
unsigned long Weight_Shiwu = 0;
unsigned char flag = 0;
bit Flag_ERROR = 0;
sbit beep= P1^7;
int temp = 0;#define GapValue 4.05//405
/****************************************************************************
* 函 数 名         : datapros()
* 函数功能         : 温度读取处理转换函数
* 输    入         : temp
* 输    出         : 无
****************************************************************************/
void datapros(int temp)
{float tp;                  //单精度if(temp< 0)             //当温度值为负数{//因为读取的温度是实际温度的补码,所以减1,再取反求出原码temp=temp-1;temp=~temp;tp=temp;temp=tp*0.0625*100+0.5;   //留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点//后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就//算加上0.5,还是在小数点后面。}else{         tp=temp;//因为数据处理有小数点所以将温度赋给一个浮点型变量//如果温度是正的那么,那么正数的原码就是补码它本身temp=tp*0.0625*100+0.5;   //留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点//后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就//算加上0.5,还是在小数点后面。}
}void main()
{Uart_Init();Ds18b20Init();Init_LCD1602();LCD1602_write_com(0x80);LCD1602_write_word("Welcome to use !");Delay_ms(1000);       //延时,等待传感器稳定
//  Get_Maopi();                //称毛皮重量,体重的时候用不到(>_<)while(1){unsigned int mnb=0;EA = 0;Get_Weight();           //称重EA = 1;Scan_Key();Ds18b20ReadTemp();datapros(temp);temp=(temp+2130)/10;LCD1602_write_com(0x80+0x40);LCD1602_write_data(temp / 10000 + 0X30);
//      LCD1602_write_data(temp % 10000 / 1000 + 0X30);LCD1602_write_data(temp % 1000 / 100  + 0X30);LCD1602_write_data(temp % 100 / 100 + 0X30);LCD1602_write_word(".");LCD1602_write_data(temp % 10 + 0X30);LCD1602_write_word("C");//显示当前重量if( Flag_ERROR == 1){LCD1602_write_com(0x80+0x40);LCD1602_write_word("ERROR ");beep=0;}     else{         beep=1;Send_ASCII(0x82);Send_ASCII(0x40);Send_ASCII(Weight_Shiwu >> 8);Send_ASCII(Weight_Shiwu);LCD1602_write_com(0x80+0x40+9);mnb=Weight_Shiwu;Weight_Shiwu=100*(mnb-4700);//             LCD1602_write_data(Weight_Shiwu/100000 + 0X30);
//              LCD1602_write_data(Weight_Shiwu%100000 /10000+ 0X30);LCD1602_write_data(Weight_Shiwu%10000 /1000+ 0X30);  LCD1602_write_data(Weight_Shiwu%1000/100 + 0X30);LCD1602_write_data(Weight_Shiwu%100/10 + 0X30);LCD1602_write_word(".");
//              LCD1602_write_data(Weight_Shiwu%100/10 + 0X30);LCD1602_write_data(Weight_Shiwu%10 + 0X30);LCD1602_write_word("kg");}        }
}
//扫描按键
void Scan_Key()
{if(KEY1 == 0){Delay_ms(5);if(KEY1 == 0){while(KEY1 == 0);
//          Get_Maopi();            //去皮}   }
}//****************************************************
//称重
//****************************************************
void Get_Weight()
{//  Weight_Shiwu = HX711_Read();HX711_Buffer = HX711_Read();Weight_Shiwu=HX711_Buffer/50000;//***************************************************************************
//  Weight_Shiwu = Weight_Shiwu - Weight_Maopi;        //获取净重if(Weight_Shiwu > 0)           {   Weight_Shiwu = (long)((float)Weight_Shiwu/GapValue);   //计算实物的实际重量                                                         if(Weight_Shiwu > 5000)      //超重报警{Flag_ERROR = 1; Send_ASCII(0x82);Send_ASCII(0x4);Send_ASCII(5000 >> 8);}else{Flag_ERROR = 0;}}else{Weight_Shiwu = 0;Send_ASCII(0x82);Send_ASCII(0x4);Send_ASCII(0 >> 8);}
}
//****************************************************
//获取毛皮重量
//****************************************************
//void Get_Maopi()
//{//  Weight_Maopi = HX711_Read();
//} /*******************************************************************************
* 函 数 名         : Ds18b20ReadTemp
* 函数功能         : 读取温度
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/int Ds18b20ReadTemp()
{uchar tmh, tml;Ds18b20ChangTemp();             //先写入转换命令Ds18b20ReadTempCom();          //然后等待转换完后发送读取温度命令tml = Ds18b20ReadByte();     //读取温度值共16位,先读低字节tmh = Ds18b20ReadByte();       //再读高字节temp = tmh;temp <<= 8;temp |= tml;return temp;
}
//****************************************************
//MS延时函数(12M晶振下测试)
//****************************************************
void Delay_ms(unsigned int n)
{unsigned int  i,j;for(i=0;i<n;i++)for(j=0;j<123;j++);
}

main.h

#ifndef __MAIN_H__
#define __MAIN_H__#include <reg52.h>
//IO设置
sbit KEY1 = P3^2;
//函数或者变量声明
extern void Delay_ms(unsigned int n);
extern void Get_Maopi();
extern void Get_Weight();
extern void Scan_Key();
extern void datapros();
extern int Ds18b20ReadTemp();#endif

HX711.c

#include "HX711.h"
//****************************************************
//延时函数
//****************************************************
void Delay__hx711_us(void)
{_nop_();_nop_();
}//****************************************************
//读取HX711
//****************************************************
unsigned long HX711_Read(void)  //增益128
{unsigned long count; unsigned char i; HX711_DOUT=1; Delay__hx711_us();HX711_SCK=0; count=0;EA = 1; while(HX711_DOUT); EA = 0;for(i=0;i<24;i++){ HX711_SCK=1; count=count<<1; HX711_SCK=0; if(HX711_DOUT)count++; } HX711_SCK=1; count=count^0x800000;//第25个脉冲下降沿来时,转换数据Delay__hx711_us();HX711_SCK=0;  return(count);
}

………………………………

器件清单

安装说明

资料下载

百度网盘DIY资料
提取码:fm1n

健康指数DIY综合设计相关推荐

  1. 2022年中国总体健康指数为66.6%,已连续四年持续稳步上升,工作健康指数提升最为显著 | 美通社头条...

    美通社消息:招商信诺人寿联合<第一财经>共同撰写的<VUCA时代职场新常态 -- 2022招商信诺人寿中国健康指数白皮书>正式发布.该调研通过追踪监测和研究人们的身体状况.家庭 ...

  2. C语言挑选小白鼠健康指数,2014级下学期中国石油大学华东c语言上机题.docx

    2014级下学期中国石油大学华东c语言上机题.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们 ...

  3. 达梦数据库实验五:DBMS综合设计

    目录标题 实验五 DBMS综合设计 一.实验目的: 二.实验要求: 三.实验重点和难点: 四.实验内容: 五.实验步骤与结果: 1. 概念设计 2. 逻辑设计 2.1根据ER图转换为世界的关系模型,找 ...

  4. 跟一夫学UI设计 APPUI综合设计与图标实战案例视频教程 photoshop绘制icon案例-王诚-专题视频课程...

    跟一夫学UI设计 APPUI综合设计与图标实战案例视频教程 photoshop绘制icon案例-651人已学习 课程介绍         跟一夫学UI设计 APPUI图标设计实战案例视频教程 phot ...

  5. c语言健康指数,中国汽车健康指数

    车内空气中颗粒物(PM) 测试评价规程 车内空气中颗粒物(PM)测试评价规程1适用范围本规程规定了中国汽车健康指数车内颗粒物(PM)的测试评价方法.适用于新生产乘用车对外界颗粒物的阻隔和对车内空气中颗 ...

  6. 以下关于java的GUI菜单描述_第十九讲 菜单和JavaGUI综合设计

    第十九讲菜单和JavaGUI综合设计 主要内容 菜单(JMenuBar.JMenu.JmenuItem) 菜单项的事件侦听处理 颜色选择器JColorChooser 文件选择器JFileChooser ...

  7. python cnn图像分类_关于CNN图像分类的一份综合设计指南

    摘要: 本文是一篇关于使用CNN完成图像分类的综合设计指南,涵盖了一些模型设计.模型优化以及数据处理经验,是一份适合图像分类方向研究者参考的综合设计指南. 对于计算机视觉任务而言,图像分类是其中的主要 ...

  8. Matlab图像处理创新实践-实验4【综合设计大实验——GUI综合设计】

    Matlab图像处理创新实践-实验1[图像滤波基础(1)] Matlab图像处理创新实践-实验2[图像滤波基础(2)] Matlab图像处理创新实践-实验3[图像锐化] Matlab图像处理创新实践- ...

  9. 关于CNN图像分类的一份综合设计指南

    摘要: 本文是一篇关于使用CNN完成图像分类的综合设计指南,涵盖了一些模型设计.模型优化以及数据处理经验,是一份适合图像分类方向研究者参考的综合设计指南. 对于计算机视觉任务而言,图像分类是其中的主要 ...

最新文章

  1. linux文件移出目录命令_Linux 文件与目录管理详解
  2. python拼音怎么写-Python 返回汉字的汉语拼音
  3. 网信号好怎么不显示无服务器,苹果iPhone12经常出现无服务状态 信号不好怎么解决...
  4. 两年来的core折腾之路几点总结,附上nginx启用http2拿来即用的配置
  5. mysql 水平拆分实例_2021先定个小目标?搞清楚MyCat分片的两种拆分方法和分片规则!(二):水平拆分实例解析和代码实现!...
  6. 实验2-2-4 计算分段函数[2] (10 分)
  7. java ftpclient quit_一步一步android(6):关于FtpClient类的学习
  8. 《致云雀》(英)雪莱
  9. Abp 为Swagger接口页添加详细注释
  10. 图书信息管理系统报告linux,C语言图书管理系统 带程序报告
  11. 吉比特无源光纤说明书_光纤上网是如何实现的?
  12. 瑞萨RX23T开发板一键设置库文件说明
  13. 洛谷-2822 组合数问题
  14. Unity Shader 实现PS图层混合效果
  15. HHKB 键盘 配置Mac 的 command 和 切换输入法
  16. Windows商店安装问题已解决 Xbox应用将改善游戏安装
  17. win10配置apache
  18. Android 连续点击屏幕(次数可定,事件可定)后进行操作
  19. python操作Excel,xlwings排序
  20. php redis事务,Redis中事务的使用详解

热门文章

  1. 武忠祥老师每日一题||定积分基础训练(九)
  2. C语言实现的函数重载
  3. window.history.go(-1)和window.location.go(-1)区别
  4. ArcGIS接边整理合并的1:100万基础地理信息数据
  5. 如何在 JavaScript 循环中使用 async/await
  6. 六、MyBatis特殊的SQL:模糊查询、动态设置表名、校验名称唯一性
  7. java毕业设计汽配管理系统mybatis+源码+调试部署+系统+数据库+lw
  8. 新股上市当天有涨跌幅限制吗?
  9. 一个完全纯净的windows资源站
  10. 用R语言的quantreg包进行分位数回归