(ZIGBEE——温湿度采集)
采集芯片内温感器,使用ADC数模转换
使用串口助手显示温度
#include<ioCC2530.h>
#include<string.h>
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
//ADC配置及温度采集
int getTemperature(void)
{
char i;
uint value;
uint Adcvalue;
Adcvalue=0;
TR0=0X01; //开启温度传感器
ATEST=0X01; //将温度传感器与ADC连接
for(i=0;i<4;i++) //取四次平均值
{
ADCCON3 |=0X3E; //0011 1110 ,12位分辨率,单个通道选择温度传感器
ADCCON1 |=0X40; //0100 0000,使用1.25V内部电压
while(!(ADCCON1 &0X80)); //等待ADC转换完成
value=ADCL>>2; //ADC寄存器低两位无效
value |=(((uint)ADCH)<<6);
Adcvalue+=value; //ADC被赋值为4次AD值之和
}
value=Adcvalue>>2; //累加除以4.得到平均值
return (value*0.0629-303.3); //根据AD值,计算出实际温度
}
//初始化串口0函数
void initUART0()
{
CLKCONCM