資源簡介
本例程實現(xiàn)用STC15W204S單片機,通過模擬I2C接口,讀取奧松電子的AHT15/AHT10溫濕度傳感器的數(shù)據(jù),并通過串口輸出數(shù)據(jù)

代碼片段和文件信息
/**************************************************************/
/*?作者:wolfchuang????????????????????????????????????????????*/
/*?聯(lián)系方式:wolfchuang@qq.com?????????????????????????????????*/
/*?最后編譯日期:20190528??????????????????????????????????????*/
/*?版權(quán)說明:若在程序中使用本文件中的函數(shù)請聯(lián)系作者獲得使用權(quán)?*/
/**************************************************************/
#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;?????????????????????//數(shù)據(jù)信號引腳定義
u8?i;
u8 B_TX1_Busy; //發(fā)送忙標志
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發(fā)送AC命令
void?JH_SendBA(); //向AHT15發(fā)送BA命令
u8?JH_Read_Statua(); //讀取AHT15的狀態(tài)寄存器
bit?JH_Read_Cal_Enable();
void?JH_Read_CTdata(u16?*ct); //讀取溫濕度數(shù)據(jù)
u8?JH_Init(); //AHT15初始化
void?SendByte(u8?dat); //串口發(fā)送
void?SendString(char?*s);
//========================================================================
//?函數(shù):?void?main(void)
//?描述:?主函數(shù)
//========================================================================
void?main(void)
{
P3M1?=?0; P3M0?=?1; //設(shè)置為準雙向口
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);
}
}
//========================================================================
//?描述:?設(shè)置Timer2做波特率發(fā)生器。
//?參數(shù):?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調(diào)試?-?20190528?-?SHERAUPLOAD\204S-AHT15.m51
????.......?????72584??2019-05-28?10:01??ATH15調(diào)試?-?20190528?-?SHERAUPLOAD\204S-S.uvgui.Administrator
????.......?????72590??2019-05-28?09:56??ATH15調(diào)試?-?20190528?-?SHERAUPLOAD\204S-S.uvgui_Administrator.bak
????.......??????5032??2019-05-28?10:01??ATH15調(diào)試?-?20190528?-?SHERAUPLOAD\204S-S.uvopt
????.......?????13431??2019-05-28?09:56??ATH15調(diào)試?-?20190528?-?SHERAUPLOAD\204S-S.uvproj
?????文件???????5036??2019-05-17?16:58??ATH15調(diào)試?-?20190528?-?SHERAUPLOAD\204S-S_uvopt.bak
?????文件??????13427??2019-05-10?16:22??ATH15調(diào)試?-?20190528?-?SHERAUPLOAD\204S-S_uvproj.bak
?????文件??????10071??2019-05-28?10:01??ATH15調(diào)試?-?20190528?-?SHERAUPLOAD\main.c
?????文件??????19309??2019-05-28?10:01??ATH15調(diào)試?-?20190528?-?SHERAUPLOAD\main.LST
?????文件???????1073??2019-05-28?09:55??ATH15調(diào)試?-?20190528?-?SHERAUPLOAD\output\201S-S.plg
?????文件??????43996??2019-05-28?10:01??ATH15調(diào)試?-?20190528?-?SHERAUPLOAD\output\204S-AHT15
?????文件???????6858??2019-05-28?10:01??ATH15調(diào)試?-?20190528?-?SHERAUPLOAD\output\204S-AHT15.hex
?????文件?????????90??2019-05-28?10:01??ATH15調(diào)試?-?20190528?-?SHERAUPLOAD\output\204S-AHT15.lnp
?????文件???????1039??2019-05-28?10:01??ATH15調(diào)試?-?20190528?-?SHERAUPLOAD\output\204S-AHT15.plg
?????文件??????47937??2019-05-28?10:01??ATH15調(diào)試?-?20190528?-?SHERAUPLOAD\output\main.obj
?????文件??????32085??2019-05-17?10:03??ATH15調(diào)試?-?20190528?-?SHERAUPLOAD\STC15Fxxxx.H
?????目錄??????????0??2019-05-28?10:01??ATH15調(diào)試?-?20190528?-?SHERAUPLOAD\output
?????目錄??????????0??2019-05-28?10:01??ATH15調(diào)試?-?20190528?-?SHERAUPLOAD
-----------?---------??----------?-----??----
???????????????377362????????????????????18
評論
共有 條評論