找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2832|回复: 1
收起左侧

SHT31_OLED12864(IIC)AT89S52单片机温湿度计源程序

[复制链接]
ID:159122 发表于 2019-12-20 22:04 | 显示全部楼层 |阅读模式
自己也是初学者,大部分程序是芯片、显示屏自带的例程,自己移植并修改为我所用,代码没有仔细整理,但没有用到的函数全部注释掉了,也加了必要的注释,方便阅读
再次向原作者表示感谢。。。
自己测试全部通过,
SHT31  SCL和SDA在i2c_hal.c中修改
显示如图。
51hei图片_20191220221314.jpg 51hei截图_20191220221645.png

单片机源程序如下:
  1. //-- Includes -----------------------------------------------------------------
  2. #include "system.h"
  3. #include "sht3x.h"
  4. #include "math.h"
  5. #include "i2c_hal.h"


  6. ft temperature; // temperature [°C]
  7. ft humidity; // relative humidity [%RH]



  8. void OLED_P20x48Ch(unsigned char x, y, N);
  9. void OLED_P14x32Ch(unsigned char x, y, N);
  10. void Delay100us(unsigned int j);
  11. void SHT3X_Init(u8t i2cAddress);
  12. void SHT3X_SetI2cAdr(u8t i2cAddress);
  13. etError SHT3X_GetTempAndHumi(ft* temperature, ft* humidity,
  14.                              etRepeatability repeatability, etMode mode,
  15.                              u8t timeout);
  16. void Write_IIC_Byte(unsigned char IIC_Byte);
  17. void display(void);

  18. int main(void)
  19. {
  20.         SHT3X_Init(0x44) ;
  21.                 display();
  22.        
  23.                 while(1)
  24.            {
  25.             int a,b,c;
  26.                 etError error;
  27.                 I2c_StartCondition();
  28.                 if(SHT_SDA != 0){} // do error handling here
  29.                
  30.             error =SHT3X_GetTempAndHumi(&temperature, &humidity, REPEATAB_HIGH, MODE_CLKSTRETCH, 50);
  31.                
  32.                 I2c_StopCondition();
  33.                                
  34.                    a=floor(temperature);
  35.                 b=floor(temperature*10);
  36.                 c=(int)(humidity) ;
  37.                                           
  38.                 OLED_P20x48Ch(0,2,(a/10));
  39.         OLED_P20x48Ch(23,2,(a%10));
  40.                 OLED_P14x32Ch(48,4,(b%10));

  41.                
  42.                 OLED_P20x48Ch(80,2,(c/10));
  43.         OLED_P20x48Ch(103,2,(c%10));

  44.             //Delay100us(250);
  45.                 }
  46. }
复制代码

所有资料51hei提供下载:
SHT31_OLED12864温湿度.zip (93.8 KB, 下载次数: 176)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:516928 发表于 2022-3-25 22:34 | 显示全部楼层
SHT31引脚接单片机那个引脚????????
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表