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

代碼片段和文件信息
#include “adc.h“
//========================================================================
//?函數(shù):?void ADC_Inilize(ADC_InitTypeDef?*ADCx)
//?描述:?ADC初始化程序.
//?參數(shù):?ADCx:?結(jié)構(gòu)參數(shù)請(qǐng)參考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結(jié)果的高2位放ADC_RES的低2位,低8位在ADC_RESL。
else PCON2?&=?~(1<<5); //10位AD結(jié)果的高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; //優(yōu)先級(jí)設(shè)置 PolityHighPolityLow
else PADC?=?0;
}
//========================================================================
//?函數(shù):?void ADC_PowerControl(u8?pwr)
//?描述:?ADC電源控制程序.
//?參數(shù):?pwr:?電源控制ENABLE或DISABLE.
//?返回:?none.
//?版本:?V1.0?2012-10-22
//========================================================================
void ADC_PowerControl(u8?pwr)
{
if(pwr?==?ENABLE) ADC_CONTR?|=?0x80;
else ADC_CONTR?&=?0x7f;
}
//========================================================================
//?函數(shù):?u16 Get_ADC10bitResult(u8?channel)
//?描述:?查詢法讀一次ADC結(jié)果.
//?參數(shù):?channel:?選擇要轉(zhuǎn)換的ADC.
//?返回:?10位ADC結(jié)果.
//?版本:?V1.0?2012-10-22
//========================================================================
u16 Get_ADC10bitResult(u8?channel) //channel?=?0~7
{
u16 adc;
u8 i;
if(channel?>?ADC_CH7) return 1024; //錯(cuò)誤返回1024調(diào)用的程序判斷
ADC_RES?=?0;
ADC_RESL?=?0;
ADC_CONTR?=?(ADC_CONTR?&?0xe0)?|?ADC_START?|?channel;?
NOP(4); //對(duì)ADC_CONTR操作后要4T之后才能訪問
for(i=0;?i<250;?i++) //超時(shí)
{
if(ADC_CONTR?&?ADC_FLAG)
{
ADC_CONTR?&=?~ADC_FLAG;
if(PCON2?&??(1<<5)) //10位AD結(jié)果的高2位放ADC_RES的低2位,低8位在ADC_RESL。
{
adc?=?(u16)(ADC_RES?&?3);
adc?=?(adc?<8)?|?ADC_RESL;
}
else //10位AD結(jié)果的高8位放ADC_RES,低2位在ADC_RESL的低2位。
{
adc?=?(u16)ADC_RES;
adc?=?(adc?<2)?|?(ADC_RESL?&?3);
}
return adc;
}
}
return 1024; //錯(cuò)誤返回1024調(diào)用的程序判斷
}
//========================================================================
//?函數(shù):?void?ADC_int(void)?interrupt?ADC_VECTOR
//?描述:?ADC中斷函數(shù).
//?參數(shù):?none.
//?返回:?none.
//?版本:?V1.0?2012-10-22
//========================================================================
void?ADC_int?(void)?interrupt?ADC_VECTOR
{
ADC_CONTR?&=?~ADC_FLAG;
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????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個(gè)文件信息
評(píng)論
共有 條評(píng)論