这个传感器出来有两个多月了,1.9票的很值,提供下仅供大家参考谢谢代码已经校准和小米基本差异。早在快俩月前就弄好了今天闲发一贴
喜欢的请给我加分,谢谢
这是做的彩屏的
代码局部截图
这个IC长这样
下载选项一定不要勾选“允许低压复位”,并将低压检测电压设置成3.0V
单片机源程序如下:
- #include "stc8.h" //STC8头文件
- #include "def.h" //宏定义 常用函数
- #include "delay.h" //延时函数
- #include "aht10.h"
- #include "timer.h"
- #include "oled.h"
- u32 read_aht10_Cnt = 0;
- u32 CT_data[2];
- int AHT10_Tem,AHT10_Hum;
- //本地函数申明
- void Read_TempAndHum(void);
- //外部扩展变量声明
- extern bit B_1ms;
- void main(void)
- {
- u8 ret = 0;
- u8 cnt = 0;
-
- //延时等待电源稳定
- delay_ms(500);
- delay_ms(500);
-
- Timer0_Init(); //定时器0初始化
- Timer1_Init(); //定时器1初始化
-
- EA = 1; //开启总中断
-
- OLED_Init(); //初始化OLED
- OLED_Clear(); //清屏
- ret = JH_Init();
- while(JH_Read_Cal_Enable()==0)//等到校准输出使能位为1,才读取。
- {
- ret = JH_Init(); //如果为0再使能一次
- delay_ms(30);
-
- if(++cnt>3)
- break;
- }
- while(1)
- {
- Read_TempAndHum(); //获取温湿度
- }
- }
- void Read_TempAndHum(void)
- {
- if(read_aht10_Cnt>=1000) //1S读取一次温湿度
- {
- JH_Read_CTdata(CT_data); //读取温度和湿度
- //计算得到湿度值(放大了10倍,如果c1=523,表示现在湿度为52.3%)
- AHT10_Hum = CT_data[0]*1000/1024/780;
- //计算得到温度值(放大了10倍,如果t1=245,表示现在温度为24.5℃)
- AHT10_Tem = CT_data[1] *200*10/1024/1024-512;
- /************* 温湿度计 **********/
- OLED_ShowCHinese(32,0, 1,16);//温
- OLED_ShowCHinese(48,0, 2,16);//湿
- OLED_ShowCHinese(64,0, 3,16);//度
- OLED_ShowCHinese(80,0, 4,16);//计
-
- /************* 显示温度 **********/
- OLED_ShowCHinese(0 ,3, 1,16); //温
- OLED_ShowCHinese(16,3, 3,16); //度
- OLED_ShowString( 32,3,":",16);
- OLED_ShowString( 64,3,".",16);//显示小数点
- OLED_ShowNum(48, 3,AHT10_Tem/100 , 1,16);//环境温度-十位
- OLED_ShowNum(56, 3,(AHT10_Tem%100)/10, 1,16);//环境温度-个位
- OLED_ShowNum(72, 3,AHT10_Tem%10 , 1,16);//环境温度-小数位
-
- OLED_ShowCHinese(96,3,0,16); //"℃"
-
- /************* 显示湿度 **********/
- OLED_ShowCHinese(0 ,6, 2,16); //湿
- OLED_ShowCHinese(16,6, 3,16); //度
- OLED_ShowString( 32,6,":",16);
- OLED_ShowString( 64,6,".",16);//显示小数点
-
- OLED_ShowNum(48, 6,AHT10_Hum/100 , 1,16);//环境湿度-十位
- OLED_ShowNum(56, 6,(AHT10_Hum%100)/10, 1,16);//环境湿度-个位
- OLED_ShowNum(72, 6,AHT10_Hum%10 , 1,16);//环境湿度-小数位
- OLED_ShowString(96, 6,"%",16);
- read_aht10_Cnt = 0;
- }
- }
复制代码
所有资料51hei提供下载:
修改的AHT20温湿度已验证.zip
(178.45 KB, 下载次数: 641)
|