#申请原创#
NTC是一种热敏元件,通过测温电路与片内ADC数模转换功能的配合可实现温度的检测,其电路如图1所示。
图1 NTC测温电路 测温电路的原理图见图2所示,这里所用的NTC的阻值为10K。
图2 测温电路 实现温度检测的主程序为: int main ( void )
{
float u;
SYS_Initialize ( NULL );
ADC0_Enable();
SYSTICK_TimerStart();
EIC_CallbackRegister(EIC_PIN_15, switch_handler, (uintptr_t) NULL);
DAC_DataWrite(DAC_CHANNEL_0, dac_count);
while (1)
{
ADC0_ConversionStart();
while(!ADC0_ConversionStatusGet())
{
};
adc_count = ADC0_ConversionResultGet();
input_voltage = (float)adc_count * ADC_VREF / 4095U;
printf("ADC Count = 0x%03x, ADC Input Voltage = %d.%02d V \r", adc_count, (int)input_voltage, (int)((input_voltage - (int)input_voltage)*100.0));
u=(float)adc_count * ADC_VREF/4095U;
...
if((u<=1.644)&&(u>1.268)) u=10+(1.644-u)/0.037;
if((u<=1.268)&&(u>0.947)) u=20+(1.268-u)/0.032;
if((u<=0.947)&&(u>0.692)) u=30+(0.947-u)/0.025;
...
printf("temp = %d C\r",(int)u);
SYSTICK_DelayMs(500);
}
return ( EXIT_FAILURE );
}
经程序的编译与下载,其运行效果如图3和图4所示。
图3 室温检测
图4 体温检测
|