资源简介

本例程为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个文件信息

评论

共有 条评论