资源简介
本例程实现用STC15W204S单片机,通过模拟I2C接口,读取奥松电子的AHT15/AHT10温湿度传感器的数据,并通过串口输出数据
代码片段和文件信息
/**************************************************************/
/* 作者:wolfchuang */
/* 联系方式:wolfchuang@qq.com */
/* 最后编译日期:20190528 */
/* 版权说明:若在程序中使用本文件中的函数请联系作者获得使用权 */
/**************************************************************/
#define MAIN_Fosc 12000000L //定义主时钟
#include “STC15Fxxxx.H“
#define Baudrate1 9600L
#define AHT15_ADDR 0x70
sbit RTX_SW=P5^4;
sbit SCL=P3^2; //时钟信号引脚定义
sbit SDA=P3^3; //数据信号引脚定义
u8 i;
u8 B_TX1_Busy; //发送忙标志
bit RevEnd_Flag=0;
u8 RX1_len=0checkiWarning_Lv=0;
u8 RX1_Buffer[16]; //串口接收缓冲
u16 CT_data[2]={0};
u32 CT_tempcount=0;
volatile int C=0T=0;
void UART1_Config_withT2(u16 dat); //串口初始化
void delay_ms(u8 ms);
void I2C_Start(void);
void Stop_I2C(void);
void Receive_ACK(void);
void Send_ACK(void);
void Send_NOT_ACK(void);
void I2C_WR_Byte(u8 txd);
u8 I2C_RD_Byte();
void JH_SendAC(); //向AHT15发送AC命令
void JH_SendBA(); //向AHT15发送BA命令
u8 JH_Read_Statua(); //读取AHT15的状态寄存器
bit JH_Read_Cal_Enable();
void JH_Read_CTdata(u16 *ct); //读取温湿度数据
u8 JH_Init(); //AHT15初始化
void SendByte(u8 dat); //串口发送
void SendString(char *s);
//========================================================================
// 函数: void main(void)
// 描述: 主函数
//========================================================================
void main(void)
{
P3M1 = 0; P3M0 = 1; //设置为准双向口
UART1_Config_withT2(65536UL - (MAIN_Fosc / 4) / Baudrate1); //串口初始化
EA = 1; //允许总中断
if(JH_Init()==0)
SendString(“AHT15 ERROR\r\n“); //AHT15初始化失败
else
SendString(“AHT15 READY\r\n“); //AHT15初始化成功
while (1)
{
while(JH_Read_Cal_Enable()==0)//等到校准输出使能位为1时才读取
{
JH_Init();//如果为0再使能一次
delay_ms(30);
}
JH_Read_CTdata(CT_data); //读取温湿度
SendString(“RH:“);
SendByte(CT_data[0]/100 + 48);
SendByte(CT_data[0]/10%10 + 48);
SendByte(‘.‘);
SendByte(CT_data[0]%10 + 48);
SendByte(‘%‘);
SendString(“ “);
SendString(“T:“);
SendByte(CT_data[1]/100 + 48);
SendByte(CT_data[1]/10%10 + 48);
SendByte(‘.‘);
SendByte(CT_data[1]%10 + 48);
SendString(“‘C\r\n“);
delay_ms(200);
delay_ms(200);
delay_ms(200);
delay_ms(200);
delay_ms(200);
delay_ms(200);
delay_ms(200);
delay_ms(200);
delay_ms(200);
}
}
//========================================================================
// 描述: 设置Timer2做波特率发生器。
// 参数: dat: Timer2的重装值.
//========================================================================
void UART1_Config_withT2(u16 dat) // 选择波特率 2: 使用Timer2做波特率 其它值: 使用Timer1做波特率.
{
AUXR |= 0x01; //S1 BRT Use Timer2;
AUXR &= ~(1<<4); //Timer stop
AUXR &= ~(1<<3); //Timer2 set As Timer
AUXR |= (1<<2); //Timer2 set as 1T mode
TH2 = dat / 256;
TL2 = dat % 256;
IE2 &= ~(1<<2); //禁止中断
AUXR |= (1<<4); //Timer
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 32804 2019-05-28 10:01 ATH15调试 - 20190528 - SHERAUPLOAD\204S-AHT15.m51
....... 72584 2019-05-28 10:01 ATH15调试 - 20190528 - SHERAUPLOAD\204S-S.uvgui.Administrator
....... 72590 2019-05-28 09:56 ATH15调试 - 20190528 - SHERAUPLOAD\204S-S.uvgui_Administrator.bak
....... 5032 2019-05-28 10:01 ATH15调试 - 20190528 - SHERAUPLOAD\204S-S.uvopt
....... 13431 2019-05-28 09:56 ATH15调试 - 20190528 - SHERAUPLOAD\204S-S.uvproj
文件 5036 2019-05-17 16:58 ATH15调试 - 20190528 - SHERAUPLOAD\204S-S_uvopt.bak
文件 13427 2019-05-10 16:22 ATH15调试 - 20190528 - SHERAUPLOAD\204S-S_uvproj.bak
文件 10071 2019-05-28 10:01 ATH15调试 - 20190528 - SHERAUPLOAD\main.c
文件 19309 2019-05-28 10:01 ATH15调试 - 20190528 - SHERAUPLOAD\main.LST
文件 1073 2019-05-28 09:55 ATH15调试 - 20190528 - SHERAUPLOAD\output\201S-S.plg
文件 43996 2019-05-28 10:01 ATH15调试 - 20190528 - SHERAUPLOAD\output\204S-AHT15
文件 6858 2019-05-28 10:01 ATH15调试 - 20190528 - SHERAUPLOAD\output\204S-AHT15.hex
文件 90 2019-05-28 10:01 ATH15调试 - 20190528 - SHERAUPLOAD\output\204S-AHT15.lnp
文件 1039 2019-05-28 10:01 ATH15调试 - 20190528 - SHERAUPLOAD\output\204S-AHT15.plg
文件 47937 2019-05-28 10:01 ATH15调试 - 20190528 - SHERAUPLOAD\output\main.obj
文件 32085 2019-05-17 10:03 ATH15调试 - 20190528 - SHERAUPLOAD\STC15Fxxxx.H
目录 0 2019-05-28 10:01 ATH15调试 - 20190528 - SHERAUPLOAD\output
目录 0 2019-05-28 10:01 ATH15调试 - 20190528 - SHERAUPLOAD
----------- --------- ---------- ----- ----
377362 18
相关资源
- 温湿度传感器DHT11数字(附1602显示程
- Arduino uno+esp8266+onenet+dht11温湿度传感器
- 基于STM32F103ZET DHT11 温湿度传感器程序
- SHT11 温湿度传感器 STM32驱动
- MSP430G2553驱动DHT11温湿度传感器
- Arduino-DHT11温湿度传感器库文件
- 基于STM32F103的SHT11温湿度传感器采集程
- SHT11温湿度传感器仿真
- STM32F103读SHT31温湿度传感器代码,实测
- 温湿度传感器DHT11+1602显示+串口
- 温湿度传感器DHT11在mini2440上基于lin
- STC15+AHT10温湿度传感器+LCD12864.rar
- 基于STM32F4的DHT11温湿度传感器的源代
- DHT11库文件和
- STC15F2K60S2读取DHT11温湿度传感器数据串
- DHT11温湿度传感器MSP430F149)
- stc12单片驱动DHT11温湿度传感器
- DHT11 温湿度传感器1602显示 可用程序
- 台达PLC与温湿度传感器MODBUS通讯
- Arduino DHT11温湿度传感器库文件
- STM32和SHT3X 高精度温湿度传感器驱动
- stm32f103vet6_usart1_AHT10.zip
- ALIENTEK MiniSTM32 DHT11 温湿度传感器模块
- DHT22 温湿度传感器51代码
- SHT20温湿度传感器中文技术手册
- SHT21_SHT20温湿度传感器,STM32驱动
- DHT11 STC89C52 温湿度传感器
- 基于51单片机的温湿度传感器htu21d的驱
- AM2305单总线温湿度传感器STM32代码
- STM32的DHT11数字温湿度传感器程序,亲
评论
共有 条评论