健康指数DIY综合设计
健康指数&体重指数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综合设计相关推荐
- 2022年中国总体健康指数为66.6%,已连续四年持续稳步上升,工作健康指数提升最为显著 | 美通社头条...
美通社消息:招商信诺人寿联合<第一财经>共同撰写的<VUCA时代职场新常态 -- 2022招商信诺人寿中国健康指数白皮书>正式发布.该调研通过追踪监测和研究人们的身体状况.家庭 ...
- C语言挑选小白鼠健康指数,2014级下学期中国石油大学华东c语言上机题.docx
2014级下学期中国石油大学华东c语言上机题.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们 ...
- 达梦数据库实验五:DBMS综合设计
目录标题 实验五 DBMS综合设计 一.实验目的: 二.实验要求: 三.实验重点和难点: 四.实验内容: 五.实验步骤与结果: 1. 概念设计 2. 逻辑设计 2.1根据ER图转换为世界的关系模型,找 ...
- 跟一夫学UI设计 APPUI综合设计与图标实战案例视频教程 photoshop绘制icon案例-王诚-专题视频课程...
跟一夫学UI设计 APPUI综合设计与图标实战案例视频教程 photoshop绘制icon案例-651人已学习 课程介绍 跟一夫学UI设计 APPUI图标设计实战案例视频教程 phot ...
- c语言健康指数,中国汽车健康指数
车内空气中颗粒物(PM) 测试评价规程 车内空气中颗粒物(PM)测试评价规程1适用范围本规程规定了中国汽车健康指数车内颗粒物(PM)的测试评价方法.适用于新生产乘用车对外界颗粒物的阻隔和对车内空气中颗 ...
- 以下关于java的GUI菜单描述_第十九讲 菜单和JavaGUI综合设计
第十九讲菜单和JavaGUI综合设计 主要内容 菜单(JMenuBar.JMenu.JmenuItem) 菜单项的事件侦听处理 颜色选择器JColorChooser 文件选择器JFileChooser ...
- python cnn图像分类_关于CNN图像分类的一份综合设计指南
摘要: 本文是一篇关于使用CNN完成图像分类的综合设计指南,涵盖了一些模型设计.模型优化以及数据处理经验,是一份适合图像分类方向研究者参考的综合设计指南. 对于计算机视觉任务而言,图像分类是其中的主要 ...
- Matlab图像处理创新实践-实验4【综合设计大实验——GUI综合设计】
Matlab图像处理创新实践-实验1[图像滤波基础(1)] Matlab图像处理创新实践-实验2[图像滤波基础(2)] Matlab图像处理创新实践-实验3[图像锐化] Matlab图像处理创新实践- ...
- 关于CNN图像分类的一份综合设计指南
摘要: 本文是一篇关于使用CNN完成图像分类的综合设计指南,涵盖了一些模型设计.模型优化以及数据处理经验,是一份适合图像分类方向研究者参考的综合设计指南. 对于计算机视觉任务而言,图像分类是其中的主要 ...
最新文章
- linux文件移出目录命令_Linux 文件与目录管理详解
- python拼音怎么写-Python 返回汉字的汉语拼音
- 网信号好怎么不显示无服务器,苹果iPhone12经常出现无服务状态 信号不好怎么解决...
- 两年来的core折腾之路几点总结,附上nginx启用http2拿来即用的配置
- mysql 水平拆分实例_2021先定个小目标?搞清楚MyCat分片的两种拆分方法和分片规则!(二):水平拆分实例解析和代码实现!...
- 实验2-2-4 计算分段函数[2] (10 分)
- java ftpclient quit_一步一步android(6):关于FtpClient类的学习
- 《致云雀》(英)雪莱
- Abp 为Swagger接口页添加详细注释
- 图书信息管理系统报告linux,C语言图书管理系统 带程序报告
- 吉比特无源光纤说明书_光纤上网是如何实现的?
- 瑞萨RX23T开发板一键设置库文件说明
- 洛谷-2822 组合数问题
- Unity Shader 实现PS图层混合效果
- HHKB 键盘 配置Mac 的 command 和 切换输入法
- Windows商店安装问题已解决 Xbox应用将改善游戏安装
- win10配置apache
- Android 连续点击屏幕(次数可定,事件可定)后进行操作
- python操作Excel,xlwings排序
- php redis事务,Redis中事务的使用详解
热门文章
- 武忠祥老师每日一题||定积分基础训练(九)
- C语言实现的函数重载
- window.history.go(-1)和window.location.go(-1)区别
- ArcGIS接边整理合并的1:100万基础地理信息数据
- 如何在 JavaScript 循环中使用 async/await
- 六、MyBatis特殊的SQL:模糊查询、动态设置表名、校验名称唯一性
- java毕业设计汽配管理系统mybatis+源码+调试部署+系统+数据库+lw
- 新股上市当天有涨跌幅限制吗?
- 一个完全纯净的windows资源站
- 用R语言的quantreg包进行分位数回归