新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 用DS18B20構成測溫系統

        用DS18B20構成測溫系統

        作者: 時間:2012-10-12 來源:網絡 收藏

        void main(void)

        {

        TMOD=0x01;

        TH0=(65536-4000)/256;

        TL0=(65536-4000)%256;

        ET0=1;

        EA=1;

        while(resetpulse());

        writecommandtods18b20(0xcc);

        writecommandtods18b20(0x44);

        TR0=1;

        while(1)

        {

        ;

        }

        }

        void t0(void) interrupt 1 using 0

        {

        unsigned char x;

        unsigned int result;

        TH0=(65536-4000)/256;

        TL0=(65536-4000)%256;

        if(displaycount==2)

        {

        P0=displaycode[displaybuf[displaycount]] | 0x80;

        }

        else

        {

        P0=displaycode[displaybuf[displaycount]];

        }

        P2=displaybit[displaycount];

        displaycount++;

        if(displaycount==8)

        {

        displaycount=0;

        }

        timecount++;

        if(timecount==150)

        {

        timecount=0;

        while(resetpulse());

        writecommandtods18b20(0xcc);

        writecommandtods18b20(0xbe);

        readdata[0]=readdatafromds18b20();

        readdata[1]=readdatafromds18b20();

        for(x=0;x8;x++)

        {

        displaybuf[x]=16;

        }

        sflag=0;

        if((readdata[1] 0xf8)!=0x00)

        {

        sflag=1;

        readdata[1]=~readdata[1];

        readdata[0]=~readdata[0];

        result=readdata[0]+1;

        readdata[0]=result;

        if(result>255)

        {

        readdata[1]++;

        }

        }

        readdata[1]=readdata[1]4;

        readdata[1]=readdata[1] 0x70;

        x=readdata[0];

        x=x>>4;

        x=x 0x0f;

        readdata[1]=readdata[1] | x;

        x=2;

        result=readdata[1];

        while(result/10)

        {

        displaybuf[x]=result%10;

        result=result/10;

        x++;

        }

        displaybuf[x]=result;

        if(sflag==1)

        {

        displaybuf[x+1]=17;

        }

        x=readdata[0] 0x0f;

        x=x1;

        displaybuf[0]=(dotcode[x])%10;

        displaybuf[1]=(dotcode[x])/10;

        while(resetpulse());

        writecommandtods18b20(0xcc);

        writecommandtods18b20(0x44);

        }

        }


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 永吉县| 隆林| 兴海县| 杂多县| 舞钢市| 纳雍县| 怀化市| 甘洛县| 揭西县| 仙桃市| 黄浦区| 房山区| 石景山区| 高安市| 滦平县| 达州市| 长子县| 丹棱县| 额尔古纳市| 新化县| 永和县| 蓬安县| 罗城| 横峰县| 玛沁县| 秀山| 临猗县| 平原县| 耒阳市| 名山县| 金沙县| 迭部县| 陇南市| 兴仁县| 台山市| 长兴县| 西丰县| 汽车| 亚东县| 新津县| 太和县|