资源简介
本例程为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个文件信息
相关资源
- lcd12864的文字取模软件
- 基于LCD12864的verilog代码
- BC28+51单片机的原理图
- STC89C52RC 智能家居设计(GSM+人体红外
- stc15w408as串口通讯
- STC15系列工控程序带485通讯+Modbus协议
- MY1690-12P MP3解码模块应用程序含驱动程
- LCD12864显示波形程序
- 基于stm32碰撞球游戏仿真设计程序源码
- 循迹小车基于STC15W201S LM339制作
- STC15/STC15F2K60S2/STC15W4K32S4系列读取超声
- STC15F2K60S2串口通信程序
- STC15F2K60S2读取DHT11温湿度传感器数据串
- LCD12864 驱动程序1
- STC15F2K60S2 iic 驱动程序
- STC15W-408AS_EEPROM与串口通信
- 基于stc15f2k61s2的dht11+oled实时监测的单
- STC15/STC15F2K60S2/STC15W4K32S4系列读取MPU
- STC 1T 8脚 单片机 STC15F104E 红外解码 遥
- stm32+proteus_sht1x+lcd12864_温湿度检测_2
- AD7895 ±10V ADC采样代码STC15
- TX-1C Proteus仿真板
- FPGA直接驱动LCD12864的Verilog程序
- 拆解某POS机LCD12864液晶的使用说明
- 电动牙刷无线充电底座stc15
- STC15系列驱动AD7705
- stm32单片机lcd12864并行程序
- 基于LPC2124下的贪吃蛇游戏
- STC15系列头文件
- 16管脚LCD12864液晶汉字、数字、英文大
评论
共有 条评论