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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

18B20溫度傳感器

作者:佚名   來源:本站原創   點擊數:  更新時間:2010年10月04日   【字體:
_________________________________________________________

功能:數碼管顯示XX.XC標示攝氏度,例如25.3C標示當前溫度

時間:2010—7—20

_________________________________________________________


#include<reg52.h>
#include<math.h>
#include<INTRINS.H>

 

#define uchar unsigned char
#define uint   unsigned int;

sbit seg1=P2^0;
sbit seg2=P2^1;
sbit seg3=P2^2;
sbit DQ=P1^3;
sfr dataled=0x80;

uint temp;
uchar flag_get,count,num,minute,second;
uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar  str[6];

void delay1(uchar MS);
unsigned int ReadTemperature(void);
void Init_DS18B20(void);
unsigned char ReadOneChar(void);
void WriteOneChar(unsigned char dat);
void delay(unsigned int i);

main()
{
        unsigned char TempH,TempL;
        TMOD|=0x01;
        TH0=0xef;
        TL0=0xf0;
        IE=0x82;
        TR0=1;
        P2=0x00;  
        count=0;
        while(1)
        {
                str[5]=0x39;
                str[1]=tab[TempH/100];
                str[2]=tab[(TempH%100)/10];
                str[3]=tab[(TempH%100)%10]|0x80;
                str[4]=tab[TempL];
                if(flag_get==1)
                {
                        temp=ReadTemperature();
                        if(temp&0x8000)
                        {
                                str[0]=0x40;
                                temp=~temp;
                                temp +=1;
                        }
                        else
                                str[0]=0;
                        TempH=temp>>4;
                        TempL=temp&0x0F;
                        TempL=TempL*6/10;
                        flag_get=0;
                }
        }
}

void tim(void) interrupt 1 using 1
{
        TH0=0xef;
        TL0=0xf0;
        num++;
        if (num==50)
        {

                num=0;
                flag_get=1;
                second++;
                if(second>=60)
                {

                        second=0;
                        minute++;  
                }

        }
        count++;
        if(count==1)
        {

                P2=0;
                dataled=str[0];

        }
        if(count==2)
        {

                P2=1;
                dataled=str[1];

        }
        if(count==3)
        {

                P2=2;
                dataled=str[2];
        }
        if(count==4)
        {

                P2=3;
                dataled=str[3];
        }
        if(count==5)
        {

                P2=4;
                dataled=str[4];
        }
        if(count==6)
        {

                P2=5;
                dataled=str[5];
                count=0;

        }
}


void delay(unsigned int i)
{
        while(i--);
}

void Init_DS18B20(void)
{
        unsigned char x=0;
        DQ = 1;
        delay(8);
        DQ = 0;
        delay(80);
        DQ = 1; 
        delay(10);
        x=DQ; 
        delay(5);
}


unsigned char ReadOneChar(void)
{
        unsigned char i=0;
        unsigned char dat = 0;
        for (i=8;i>0;i--)
        {
                DQ = 0;
                dat>>=1;
                DQ = 1;
                if(DQ)
                        dat|=0x80;
                delay(5);
        }
        return(dat);
}


void WriteOneChar(unsigned char dat)
{
        unsigned char i=0;
        for (i=8; i>0; i--)
        {
                DQ = 0;
                DQ = dat&0x01;
                delay(5);
                DQ = 1;
                dat>>=1;
        }
        delay(5);
}


unsigned int ReadTemperature(void)
{
        unsigned char a=0;
        unsigned int b=0;
        unsigned int t=0;
        Init_DS18B20();
        WriteOneChar(0xCC);
        WriteOneChar(0x44);
        delay(200);
        Init_DS18B20();
        WriteOneChar(0xCC);
        WriteOneChar(0xBE);
        a=ReadOneChar();
        b=ReadOneChar();

        b<<=8;
        t=a+b;

        return(t);
}

關閉窗口

相關文章

主站蜘蛛池模板: 中文字幕第5页 | 久久国产激情视频 | 香蕉久久久 | 亚州午夜精品 | 中文在线视频 | 性色av香蕉一区二区 | 北条麻妃一区二区三区在线视频 | 欧美一区二区免费 | 亚洲精品久久久久久久久久久久久 | 国产视频第一页 | 日本一区二区不卡 | 国产精品视频播放 | 一区中文 | 亚洲三级av | 日韩欧美在线观看 | www.精品国产| 伊人91在线 | 久久久一区二区三区 | 91在线看| 天天干天天谢 | 亚洲激情在线观看 | 免费一级毛片 | 涩涩视频在线观看 | 日日天天 | 蜜桃视频成人 | 国产精品免费一区二区三区四区 | 欧美色图综合网 | 国产精品久久久久久久久久久新郎 | 日韩成人免费视频 | 在线观看亚洲欧美 | 国产成人亚洲精品自产在线 | 国产精品视频在线观看 | www.久草 | 亚洲精品久久久一区二区三区 | 精品国产乱码久久久久久闺蜜 | xxxxx免费视频 | 一区二区三区免费 | 天天躁天天操 | 99精品欧美一区二区三区综合在线 | 一区二区不卡 | 国产成人精品久久二区二区 |