DH11温湿度检测模块、lcd1602、HC-08蓝牙构成温湿度数据管理系统

目录

温湿度通过串口上传PC:

 温湿度数据管理系统:


温湿度通过串口上传PC:

sendByte(datas[0]/10 + 0x30);

sendByte(datas[0]%10 + 0x30);

这两行代码用于将一个字节(是DHT11传感器读取的湿度或温度的整数部分)转换为两个ASCII字符,并通过UART串口发送出去。

+ 0x30: 在ASCII字符集中,数字字符'0''9'的编码是连续的,从0x30(即48的十进制值)到0x39。因此,加上0x30实际上是将一个整数(在这里是0到9之间的值)转换为其对应的ASCII字符编码。

  • datas[0]/10计算该整数的十位数。例如,如果datas[0]是25,那么datas[0]/10就是2。
  • datas[0]%10计算该整数的个位数。对于上面的例子,datas[0]%10就是5。

接下来,这两部分都分别加上了0x30(ASCII码中数字'0'的值),从而将整数值转换为对应的ASCII字符。

  • datas[0]/10 + 0x30将十位数转换为ASCII字符。例如,2变成了字符'2'。
  • datas[0]%10 + 0x30将个位数转换为ASCII字符。例如,5变成了字符'5'。

最终,sendByte函数将这些ASCII字符作为字节发送出去,这样接收端就能理解这些字节是表示一个两位的十进制数字了。

 温湿度数据管理系统:

在Keil环境中进行分文件编程(也称为模块化编程)

在Keil中进行分文件编程的基本步骤:

  1. 创建主文件

    • 首先,你需要一个主文件(通常是.c文件),它包含了main()函数。
    • 在这个主文件中,你可以包含(或称为“引用”)其他模块的头文件。
  2. 创建头文件(.h)

    • 对于每个模块,创建一个头文件来声明该模块中定义的函数、变量和数据类型。
    • 使用#ifndef#define#endif指令来防止头文件被多次包含(这通常被称为“包含守卫”或“头文件保护”)。
    • 例如,如果你有一个名为moduleA.c的源文件,你可以创建一个名为moduleA.h的头文件来声明它的函数。
  3. 编写源文件(.c)

    • 对于每个模块,编写一个源文件来实现该模块的功能。
    • 在源文件的开头,包含相应的头文件。
    • 实现头文件中声明的函数和其他元素。
  4. 在主文件中包含头文件

    • 在主文件的开头,使用#include指令包含你需要的所有头文件。
    • 这样,主文件就可以访问这些模块中声明的函数和变量了。
  5. 在Keil中设置项目

    • 在Keil中创建一个新项目,并添加主文件和其他源文件。
    • 确保Keil知道在哪里找到你的头文件(你可能需要将头文件所在的目录添加到Keil的包含路径中)。
  6. 编译和链接

    • 编译你的项目。Keil将分别编译每个源文件,并将它们链接成一个可执行文件。
    • 如果一切正常,你应该能够生成一个可以在你的目标硬件上运行的可执行文件。
  7. 调试和测试

    • 使用Keil的调试功能来测试和验证你的代码。
    • 确保每个模块都按预期工作,并且它们之间的交互也是正确的。

main:

在C语言中,extern关键字用于声明一个变量或函数是在其他源文件中定义的,但在当前源文件中是可见的。这通常用于实现跨多个源文件的变量共享或函数调用。

当你看到extern char datas[5];这样的声明时,它意味着:

  1. 有一个字符数组datas,其大小为5(即它可以存储5个字符,包括可能的字符串终止符\0)。
  2. 这个数组datas是在当前源文件之外的其他地方定义的(可能是另一个源文件,或者是一个库文件等)。
  3. 当前源文件可以使用这个数组,但由于它只是在当前源文件中被声明,而不是定义,所以你不能在这里为它分配内存或初始化它。

为了使用datas数组,你需要在某个源文件中实际定义它,例如:

然后,在其他需要访问datas的源文件中,你可以使用extern关键字来声明它:

delay:

uart:

dht:

lcd1602:

  • 28
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值