標(biāo)題:
STC8A8K64S4A12單片機(jī)用10K的NTC溫度傳感電阻測(cè)溫串口發(fā)送的實(shí)驗(yàn)程序
[打印本頁(yè)]
作者:
liuqing
時(shí)間:
2021-2-6 22:18
標(biāo)題:
STC8A8K64S4A12單片機(jī)用10K的NTC溫度傳感電阻測(cè)溫串口發(fā)送的實(shí)驗(yàn)程序
STC8A8K64S4A12用10K的NTC溫度傳感電阻測(cè)溫串口發(fā)送的實(shí)驗(yàn)。
只為驗(yàn)證這種方法的可行性?梢猿晒y(cè)量正確溫度。
用單片機(jī)5V作為基準(zhǔn)電壓,NTC上拉10K的電阻。
有興趣的朋友可以看看,幫完善一下。最好能測(cè)8路溫度,
業(yè)余新手的試驗(yàn)
單片機(jī)源程序如下:
#include "stc8.h"
#include "uart.h"
#include "adc.h"
#include <stdio.h>
#include <math.h>
const float Rp=10000.0; //10K,25度時(shí)的阻值
const float T2 = (273.15+25.0); //T2,25度時(shí)的開(kāi)爾文溫度
const float Bx = 3950.0; //B值
const float Ka = 273.15; //開(kāi)爾文溫度
float Get_Temp(float Rt)
{
float temp;
//like this R=10000, T2=273.15+25,B=3470, RT=10000*EXP(3470*(1/temp-1/(273.15+25)),
// temp = Rt/Rp;
// temp = log(temp); //ln(Rt/Rp)
// temp/=Bx; //ln(Rt/Rp)/B
//temp+=(1/T2);
// temp = 1/(temp);
// temp-=Ka;
temp=1/(log(Rt/Rp)/Bx+(1/T2))-Ka;
return temp;
}
void printstar(void)
{
printf("*************************\n");
}
void print_message(void)
{
printf("hello world\n");
printf("how do you do!\n");
printf("歡迎學(xué)習(xí)STC8A8K單片機(jī)\n");
}
void main(void)
{
float t,r,vol;
P1M0=0X00;P1M1=0XFF;
Uart1_Init() ;
adc_init();
while(1)
{
if(P20==0)
{
print_message();
printstar();
vol=((float)adc_read()/4096)*5;
r=vol/((5-vol)/10000);
t=Get_Temp(r);
printf("ADC %.2f", t) ;
}
}
}
復(fù)制代碼
51hei.png
(5.03 KB, 下載次數(shù): 47)
下載附件
2021-2-6 23:03 上傳
全部程序51hei下載地址:
NTC傳感器測(cè)溫.rar
(35.1 KB, 下載次數(shù): 134)
2021-2-6 22:19 上傳
點(diǎn)擊文件名下載附件
STC8A8K64S4A12測(cè)溫度
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1