久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
12
返回列表 發新帖
樓主: 七顆星星
打印 上一主題 下一主題
收起左側

剛剛告知老師不允許用DS18B20數字傳感器測溫,還有什么嗎?

  [復制鏈接]
41#
ID:145062 發表于 2016-10-29 15:26 | 只看該作者
通過熱敏電阻的阻值變化,通過MCU的ADC獲取熱敏電阻的兩端電壓變化,計算出相應的電阻值,根據組織查邊獲取溫度值,首先熱敏電阻便宜,電阻簡單,查表方便,相應的江都不高一般是0.1攝氏度吧!
回復

使用道具 舉報

42#
ID:143848 發表于 2016-10-29 20:15 | 只看該作者
pingguotu 發表于 2016-10-29 15:26
通過熱敏電阻的阻值變化,通過MCU的ADC獲取熱敏電阻的兩端電壓變化,計算出相應的電阻值,根據組織查邊獲取 ...

熱敏電阻3950的測溫單片機里程序
code        uint VOL[]和code        uint Temper[]中的數據是怎么計算查表得到的。
       result=(uint)((res/2048.0-1.0)*500.0);
                 
                 temp1=abs(result-VOL[0]);
                 for(i=1;i<150;i++)
                 {
                         temp2=abs(result-VOL);
                        if(temp1>=temp2)
                        {
                                temp1=temp2;
                                flag=i;
                        }
   這一段程序是什么意思呢?         
               :#include <reg52.h>           
#include <intrins.h>
#include <math.h>

typedef unsigned char uchar;
typedef unsigned int  uint;
code        uint VOL[]={                343,        339,        339,        335,        332,        332,        328,        324,        320,        320,        
                                                        316,        312,        312,        308,        304,        300,        300,        296,        292,        292,
                                                        289,        285,        285,        281,        277,        273,        273,        269,        265,        265,        
                                                        261,        257,        257,        253,        250,        250,        246,        242,        242,        238,
                                                        234,        234,        230,        230,        226,        222,        222,        218,        218,        214,        
                                                        210,        210,        207,        207,        203,        199,        199,        195,        195,        191,
                                                        191,        187,        187,        183,        179,        179,        175,        175,        171,        171,        
                                                        167,        167,        164,        164,        160,        160,        160,        156,        156,        152,
                                                        152,        148,        148,        144,        144,        140,        140,        140,        136,        136,        
                                                        132,        132,        132,        128,        128,        125,        125,        125,        121,        121,
                                                        121,        117,        113,        109,        109,        105,        101,        101,        97,                97,
                                                        93,                89,                89,                85,                85,                82,                82,                78,                78,                74,        
                                                        74,                70,                70,                66,                66,                66,                62,                62,                58,                58,        
                                                        58,                54,                54,                54,                50,                50,                50,                46,                46,                46,        
                                                        42,                42,                42,                42,                39,                39,                39,                39,                35,                35};

code        uint Temper[]={                100,        150,        200,        250,        300,        350,        400,        450,        500,        550,        
                                                        600,        650,        700,        750,        800,        850,        900,        950,        1000,        1050,
                                                        1100,        1150,        1200,        1250,        1300,        1350,        1400,        1450,        1500,        1550        
                                                        1600,        1650,        1700,        1750,        1800,        1850,        1900,        1950,        2000,        2050,
                                                        2100,        2150,        2200,        2250,        2300,        2350,        2400,        2450,        2500,        2550,        
                                                        2600,        2650,        2700,        2750,        2800,        2850,        2900,        2950,        3000,        3050,
                                                        3100,        3150,        3200,        3250,        3300,        3350,        3400,        3450,        3500,        3550,        
                                                        3600,        3650,        3700,        3750,        3800,        3850,        3900,        3950,        4000,        4050,
                                                        4100,        4150,        4200,        4250,        4300,        4350,        4400,        4450,        4500,        4550,        
                                                        4600,        4650,        4700,        4750,        4800,        4850,        4900,        4950,        5000,        5050,
                                                        5100,        5200,        5300,        5400,        5500,        5600,        5700,        5800,        5900,        6000,
                                                        6100,        6200,        6300,        6400,        6500,        6600,        6700,        6800,        6900,        7000,        
                                                        7100,        7200,        7300,        7400,        7500,        7600,        7700,        7800,        7900,        8000,        
                                                        8100,        8200,        8300,        8400,        8500,        8600,        8700,        8800,        8900,        9000,        
                                                        9100,        9200,        9300,        9400,        9500,        9600,        9700,        9800,        9900,        10000};
sbit STS=P1^0;                           
sbit CE = P1^1;
sbit CS=P1^2;
sbit A0=P1^3;
sbit RC=P1^4;

sbit RS=P1^5 ;
sbit RW=P1^6 ;
sbit EN=P1^7 ;           

void delay_ms(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
uint AD1674_Read(void)
{
        uint temp;
        uchar temp1,temp2;
        CS=1;        //片選信號
        CE=0;        //初始化,關閉數據采集
        CS=0;
        A0=0;
        RC=0;
        CE=1;//CE=1,CS=0,RC=0,A0=0啟動12位溫度轉換
        _nop_();
        while(STS==1);         //等待數據采集結束
        CE=0;         //芯片使能關閉
        RC=1;
        A0=0;
        CE=1;//CE=1,CS=0,RC=1,12/8=1,A0=0 允許高八位數據并行輸出
        _nop_();
        temp1=P0; //讀取轉換結果的高八位
        CE=0;  //芯片使能關閉
        RC=1;
        A0=1;
        CE=1;//CE=1,CS=0,RC=1,12/8=0,A0=1 允許低四位數據 并行輸出
        _nop_();
        temp2=P0;         //讀取轉換結果的第四位
        temp=((temp1<<4)|(temp2&0X0F));          //高位和低位合成實際溫度,temp2為PO口的高四位
        return (temp);           //還回轉換結果,右移四位是因為temp2為P0口的高四位
}
/*** 寫數據***/
void w_dat(unsigned char dat)
{
        RS = 1;
        //EN = 0;
        P2 = dat;
        delay_ms(5);
        RW = 0;
        EN = 1;
        EN = 0;
}
/*** 寫命令***/
void w_cmd(unsigned char cmd)
{
        RS = 0;
//        EN = 0;
        P2 = cmd;
        delay_ms(5);
        RW = 0;
        EN = 1;
        EN = 0;
}                        
/*** 發送字符串到LCD***/
void w_string(unsigned char addr_start, unsigned char *p)
{
        unsigned char *pp;
        
        pp = p;
        w_cmd(addr_start);
        while (*pp != '\0')
        {
                w_dat(*pp++);
        }
}           

/*** 初始化1602****/
void Init_LCD1602(void)
{
        EN = 0;
        w_cmd(0x38);  // 16*2顯示,5*7點陣,8位數據接口
        w_cmd(0x0C);  // 顯示器開、光標開、光標允許閃爍
        w_cmd(0x06);  // 文字不動,光標自動右移
        w_cmd(0x01);  // 清屏
}
void process(uint date,uchar add)
{
        uchar A[7];
        A[0]=date/1000%10+'0';
        A[1]=date/100%10+'0';
        A[2]='.';        
        A[3]=date/10%10+'0';
        A[4]=date%10+'0';
        A[5]='C';                        
        w_string(add,A);
}         
void main()
{

        uchar i,flag=0;
        uint result,temp1,temp2;
        float        res;

        Init_LCD1602();
         
        w_string(0x80,"Temper:");
        
        while (1)
        {
                 res=(float)(AD1674_Read());
                 result=(uint)((res/2048.0-1.0)*500.0);
                 
                 temp1=abs(result-VOL[0]);
                 for(i=1;i<150;i++)
                 {
                         temp2=abs(result-VOL);
                        if(temp1>=temp2)
                        {
                                temp1=temp2;
                                flag=i;
                        }
                                
                 }
        
                 process(Temper[flag],0x80+7);
        }   
回復

使用道具 舉報

43#
ID:140371 發表于 2016-10-30 16:11 | 只看該作者
這個電路不妨用麵包板,試做看看(或是用仿真軟體模擬看看)...例如測試範圍從  0到 100度  輸出Vo從0到4.92 這個電路就可以用  
回復

使用道具 舉報

44#
ID:164989 發表于 2017-5-28 16:48 | 只看該作者
pt100接一個tl431恒流源再接2個運放加調零出來就是電壓的變化再接個tl1543AD轉換接到單片機里計算電阻值在計算溫度temp_r=((float)temp)*5000/(1024*20)+100;  //計算電阻值。[img]C:\Users\asus\Desktop\E13DA9FA454BBB6930F3639E5E9D33EE.pngC:\Users\asus\Desktop\4700A418B4F82E4F6F6DE1ED1AB49134.png[/img]
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩在线视频观看 | 天天射影院 | 成年人国产 | 法国极品成人h版 | 黄色成人免费网站 | 久久免费看视频 | 黄色一级生活片 | 一级黄色a| 在线观看视频国产 | 国产激情一区二区三区 | 欧美日韩一区二区在线观看 | 黄色精品视频 | 亚洲一区二区三区在线 | 久久精品免费看 | 国产成人av网站 | 亚洲三级小说 | 中文字幕+乱码+中文乱码91 | 精品亚洲一区二区三区 | 中文字幕日韩欧美 | 日韩视频一区 | av在线精品 | 国产中文字幕一区 | 成人国产一区 | 蜜臀久久99精品久久久久久宅男 | 日本少妇做爰全过程毛片 | 免费网站观看www在线观看 | 中文字幕按摩做爰 | 日本a在线 | 成人国产综合 | 中文在线永久免费观看 | 精品久久久久久久久久 | 久久精品福利视频 | 国产精品免费在线播放 | 男人的天堂久久 | 欧美日韩亚洲综合 | 青青青操 | 中文字幕不卡视频 | 国产网站视频 | 国内黄色片 | 日本成人一区二区三区 | 国产成人午夜高潮毛片 |