找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4|回复: 0
收起左侧

湿温度传感器SHT3x和SHT4x通用驱动程序

[复制链接]
ID:63692 发表于 2026-2-4 16:49 | 显示全部楼层 |阅读模式
    SHT3x和SHT4x系列温湿度传感器通用驱动源代码,可读取SHT3x或SHT4x系列传感器的温湿度值并在128*64的OLED屏幕上显示,显示值保留2位小数,每次读取数据都进行校验,保证数据读取的正确。可通过修改变量或IO口跳线来设定是驱动SHT3x芯片或是SHT4x芯片。    附件是完整的工程文件,可直接编译使用。程序在STC8G1K17单片机上测试通过,其它型号单片机可能需要修改头文件。代码中有详细注释,便于解读。

20260204_155812.jpg

单片机源程序如下:
  1. /****************************************
  2. **
  3. **  项目名称:           SHT3x&4x温湿度传感器采集
  4. **  文件名称:           MAIN.c
  5. **  模块功能:           主程序
  6. **  创 建 者:           常建国
  7. **  E-mail  :           cjg1972@163.com
  8. **  QQ      :           2768842781
  9. **  创建时间:           2026-01-08
  10. **  版    本:           v1.0(stc8g1k17/11.0592M)
  11. **  描    述:           读取SHT3x&4x温湿度传感器数据并计算、校验,在OLED屏幕上显示
  12. **
  13. *********************************************************/
  14. #include <stc8g.h>
  15. #include <intrins.H>
  16. #include <define.H>
  17. #include <OLEDLIB.H>
  18. #include <OLED12864.c>
  19. #include <sht3x4x.c>

  20. /*******************************************************************************************************/
  21. /*******************************************************************************************************/
  22. void main(void)              //主函数
  23. {
  24.     P1M1=0x00;               //设置P1口准双向
  25.     P1M0=0x00;

  26.     P3M1=0x00;               //设置P3口准双向
  27.     P3M0=0x00;

  28.     P5M1=0x00;               //设置P5口准双向
  29.     P5M0=0x00;

  30.     Init_Timer();            //初始化定时器
  31.     OLED_Init();             //初始化OLED
  32.     if(P10==0)MODEL=0;       //根据IO口设置芯片型号SHT3x
  33.     if(P11==0)MODEL=1;       //根据IO口设置芯片型号SHT4x
  34.     SHT_init(0x44);          //初始化SHT传感器

  35.     OLED_Brig(250);          //设置屏幕亮度
  36.     OLED_CLS();              //清屏幕
  37.     OLED_P6x8Str(0,44,MODEL==0?"SHT3x":"SHT4x",0);

  38.     while(1)                 //主循环
  39.     {
  40.         SHT_read_result(0x44);
  41.         delayMS(3000);       //3秒钟刷新一次
  42.     }
  43. }
  44. /********************************************************/
  45. /********************************************************/
  46. void Init_Timer(void)        //初始化定时器
  47. {
  48.     AUXR=0xc0;               //T0、T1为1T模式
  49.     TL0=T1MS;                //定时器0赋初值
  50.     TH0=T1MS>>8;

  51.     ET0=1;                   //打开定时器0中断
  52.     TR0=1;                   //启动定时器0
  53.     EA=1;                    //总中断打开
  54. }

  55. /********************************************************/
  56. /********************************************************/
  57. void Timer0_isr(void) interrupt 1      //定时器0中断程序
  58. {
  59.     MS++;                    //ms计数
  60. }

复制代码

Keil代码下载:
SHT3x4x.rar (24.36 KB, 下载次数: 0)



评分

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

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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