|
STC8A8K64S4A12用10K的NTC溫度傳感電阻測溫串口發(fā)送的實驗。
只為驗證這種方法的可行性。可以成功測量正確溫度。
用單片機(jī)5V作為基準(zhǔn)電壓,NTC上拉10K的電阻。
有興趣的朋友可以看看,幫完善一下。最好能測8路溫度,
業(yè)余新手的試驗
單片機(jī)源程序如下:
- #include "stc8.h"
- #include "uart.h"
- #include "adc.h"
- #include <stdio.h>
- #include <math.h>
- const float Rp=10000.0; //10K,25度時的阻值
- const float T2 = (273.15+25.0); //T2,25度時的開爾文溫度
- const float Bx = 3950.0; //B值
- const float Ka = 273.15; //開爾文溫度
- 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傳感器測溫.rar
(35.1 KB, 下載次數(shù): 134)
2021-2-6 22:19 上傳
點擊文件名下載附件
STC8A8K64S4A12測溫度 下載積分: 黑幣 -5
|
評分
-
查看全部評分
|