資源簡介
本例程為AHT10溫濕度傳感器測量溫濕度顯示在LCD12864液晶屏上,單片機采用STC15系列(STC15為目前STC公司最新開發的基于8051內核的單片機)。AHT10為奧松公司出品的一款高精度溫濕度傳感器,采用IIC通信。液晶屏為晶聯訊公司LCD12864,采用SPI通訊。程序源碼部分改寫自正點原子例程、晶聯訊公司官方數據手冊和百度熱心網友的例程。

代碼片段和文件信息
#include “adc.h“
//========================================================================
//?函數:?void ADC_Inilize(ADC_InitTypeDef?*ADCx)
//?描述:?ADC初始化程序.
//?參數:?ADCx:?結構參數請參考adc.h里的定義.
//?返回:?none.
//?版本:?V1.0?2012-10-22
//========================================================================
void ADC_Inilize(ADC_InitTypeDef?*ADCx)
{
P1ASF?=?ADCx->ADC_Px;
ADC_CONTR?=?(ADC_CONTR?&?~ADC_90T)?|?ADCx->ADC_Speed;
if(ADCx->ADC_Power?==?ENABLE) ADC_CONTR?|=?0x80;
else ADC_CONTR?&=?0x7F;
if(ADCx->ADC_AdjResult?==?ADC_RES_H2L8) PCON2?|=??(1<<5); //10位AD結果的高2位放ADC_RES的低2位,低8位在ADC_RESL。
else PCON2?&=?~(1<<5); //10位AD結果的高8位放ADC_RES,低2位在ADC_RESL的低2位。
if(ADCx->ADC_Interrupt?==?ENABLE) EADC?=?1; //中斷允許 ENABLEDISABLE
else EADC?=?0;
if(ADCx->ADC_Polity?==?PolityHigh) PADC?=?1; //優先級設置 PolityHighPolityLow
else PADC?=?0;
}
//========================================================================
//?函數:?void ADC_PowerControl(u8?pwr)
//?描述:?ADC電源控制程序.
//?參數:?pwr:?電源控制ENABLE或DISABLE.
//?返回:?none.
//?版本:?V1.0?2012-10-22
//========================================================================
void ADC_PowerControl(u8?pwr)
{
if(pwr?==?ENABLE) ADC_CONTR?|=?0x80;
else ADC_CONTR?&=?0x7f;
}
//========================================================================
//?函數:?u16 Get_ADC10bitResult(u8?channel)
//?描述:?查詢法讀一次ADC結果.
//?參數:?channel:?選擇要轉換的ADC.
//?返回:?10位ADC結果.
//?版本:?V1.0?2012-10-22
//========================================================================
u16 Get_ADC10bitResult(u8?channel) //channel?=?0~7
{
u16 adc;
u8 i;
if(channel?>?ADC_CH7) return 1024; //錯誤返回1024調用的程序判斷
ADC_RES?=?0;
ADC_RESL?=?0;
ADC_CONTR?=?(ADC_CONTR?&?0xe0)?|?ADC_START?|?channel;?
NOP(4); //對ADC_CONTR操作后要4T之后才能訪問
for(i=0;?i<250;?i++) //超時
{
if(ADC_CONTR?&?ADC_FLAG)
{
ADC_CONTR?&=?~ADC_FLAG;
if(PCON2?&??(1<<5)) //10位AD結果的高2位放ADC_RES的低2位,低8位在ADC_RESL。
{
adc?=?(u16)(ADC_RES?&?3);
adc?=?(adc?<8)?|?ADC_RESL;
}
else //10位AD結果的高8位放ADC_RES,低2位在ADC_RESL的低2位。
{
adc?=?(u16)ADC_RES;
adc?=?(adc?<2)?|?(ADC_RESL?&?3);
}
return adc;
}
}
return 1024; //錯誤返回1024調用的程序判斷
}
//========================================================================
//?函數:?void?ADC_int(void)?interrupt?ADC_VECTOR
//?描述:?ADC中斷函數.
//?參數:?none.
//?返回:?none.
//?版本:?V1.0?2012-10-22
//========================================================================
void?ADC_int?(void)?interrupt?ADC_VECTOR
{
ADC_CONTR?&=?~ADC_FLAG;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2893??2019-08-16?21:01??STC15+AHT10溫濕度傳感器+LCD12864\LIST\delay.lst
?????文件??????27318??2019-08-31?20:51??STC15+AHT10溫濕度傳感器+LCD12864\LIST\delay.obj
?????文件?????????19??2019-08-30?21:54??STC15+AHT10溫濕度傳感器+LCD12864\LIST\ExtDll.iex
?????文件???????6053??2019-08-16?21:01??STC15+AHT10溫濕度傳感器+LCD12864\LIST\GPIO.lst
?????文件??????31714??2019-08-31?20:51??STC15+AHT10溫濕度傳感器+LCD12864\LIST\GPIO.obj
?????文件??????35690??2019-08-31?20:51??STC15+AHT10溫濕度傳感器+LCD12864\LIST\IIC.obj
?????文件???????4143??2019-08-16?21:01??STC15+AHT10溫濕度傳感器+LCD12864\LIST\main.lst
?????文件??????57990??2019-08-31?20:51??STC15+AHT10溫濕度傳感器+LCD12864\LIST\main.obj
?????文件?????145680??2019-08-31?20:51??STC15+AHT10溫濕度傳感器+LCD12864\LIST\Template
?????文件???????1230??2019-08-31?20:51??STC15+AHT10溫濕度傳感器+LCD12864\LIST\Template.build_log.htm
?????文件??????13141??2019-08-31?20:51??STC15+AHT10溫濕度傳感器+LCD12864\LIST\Template.hex
?????文件????????154??2019-08-31?20:51??STC15+AHT10溫濕度傳感器+LCD12864\LIST\Template.lnp
?????文件?????108881??2019-08-31?20:51??STC15+AHT10溫濕度傳感器+LCD12864\LIST\Template.SBR
?????文件???????2808??2019-07-30?10:51??STC15+AHT10溫濕度傳感器+LCD12864\SYSTEM\ADC\ADC.c
?????文件???????1294??2019-07-30?10:51??STC15+AHT10溫濕度傳感器+LCD12864\SYSTEM\ADC\ADC.h
?????文件???????1231??2019-08-16?21:08??STC15+AHT10溫濕度傳感器+LCD12864\SYSTEM\CONFIG_HeaderFile\config.h
?????文件???????2710??2019-08-30?21:53??STC15+AHT10溫濕度傳感器+LCD12864\SYSTEM\DELAY\delay.c
?????文件????????966??2019-08-28?22:13??STC15+AHT10溫濕度傳感器+LCD12864\SYSTEM\DELAY\delay.h
?????文件???????3769??2019-07-30?10:51??STC15+AHT10溫濕度傳感器+LCD12864\SYSTEM\EEPROM\EEPROM.c
?????文件???????2049??2019-07-30?10:51??STC15+AHT10溫濕度傳感器+LCD12864\SYSTEM\EEPROM\EEPROM.h
?????文件???????2753??2019-07-30?10:51??STC15+AHT10溫濕度傳感器+LCD12864\SYSTEM\EXTI\Exti.c
?????文件????????613??2019-07-30?10:51??STC15+AHT10溫濕度傳感器+LCD12864\SYSTEM\EXTI\Exti.h
?????文件???????3846??2019-08-16?21:16??STC15+AHT10溫濕度傳感器+LCD12864\SYSTEM\GPIO\GPIO.c
?????文件???????1704??2019-07-30?10:52??STC15+AHT10溫濕度傳感器+LCD12864\SYSTEM\GPIO\GPIO.h
?????文件???????3179??2019-08-29?12:39??STC15+AHT10溫濕度傳感器+LCD12864\SYSTEM\IIC\IIC.c
?????文件???????1038??2019-08-20?00:55??STC15+AHT10溫濕度傳感器+LCD12864\SYSTEM\IIC\IIC.h
?????文件???????6365??2019-07-30?10:51??STC15+AHT10溫濕度傳感器+LCD12864\SYSTEM\PCA\PCA.c
?????文件???????2560??2019-07-30?10:51??STC15+AHT10溫濕度傳感器+LCD12864\SYSTEM\PCA\PCA.h
?????文件???????1683??2019-07-30?10:51??STC15+AHT10溫濕度傳感器+LCD12864\SYSTEM\Soft_UART\Soft_UART.c
?????文件????????151??2019-07-30?10:51??STC15+AHT10溫濕度傳感器+LCD12864\SYSTEM\Soft_UART\soft_uart.h
............此處省略35個文件信息
評論
共有 條評論