標(biāo)題: 用32M的晶振,18B20的程序該怎么寫?求神帶 [打印本頁]

作者: yanhongqi4    時(shí)間: 2014-9-10 17:44
標(biāo)題: 用32M的晶振,18B20的程序該怎么寫?求神帶
stc12c5A60S2,用32M的晶振,18B20的程序該怎么寫?怎么改都讀不到溫度,求大神帶~~


下面是原始的調(diào)用程序
void delayus(uint us)
{
    while (us--);
}

void init_ds18b20()//ds18b20復(fù)位,初始化函數(shù)
{
        unsigned int n;
        shujuxian=1;
        delayus(30);
        shujuxian=0;
        delayus(600);
        shujuxian=1;
        delayus(40);
        n=shujuxian;
        while(!shujuxian);//等待它釋放總線,釋放了,非1,退出
}
void wendu_write_byte(unsigned char dat)//寫一個(gè)字節(jié),一位一位的寫,這里低位在前
{
        unsigned char i;
        for(i=0;i<8;i++)
        {
                shujuxian=0;
                shujuxian=dat&0x01;//把寫的數(shù)給shujuxian,從最低位0x01寫起
                delayus(30);
                shujuxian=1;//因?yàn)橐獋飨乱晃粩?shù)據(jù)
                dat>>=1;//最低位在最前面,右移一位數(shù)據(jù)等下一次循環(huán)給shujuxian
                delayus(30);//再稍微延時(shí)一會(huì)兒
        }
}
unsigned char read_byte()//讀一個(gè)字節(jié)
{
        unsigned char i,value;
        for(i=0;i<8;i++)
        {
                shujuxian=0;
                value>>=1;
                shujuxian=1;
                delayus(2);
                if(shujuxian)
                        value|=0x80;
                delayus(25);
        }
        return value;
}
unsigned char du_wendu()//讀溫度
{
        unsigned char a,b;
        init_ds18b20();
        wendu_write_byte(0xcc);//跳過ROM,因?yàn)橹挥幸粋(gè)傳感器,窮啊
        wendu_write_byte(0x44);//啟動(dòng)溫度測量
        delayus(800);//讓其有足夠的時(shí)間讀數(shù)據(jù)
       
        init_ds18b20();//ds18b20初始化
        wendu_write_byte(0xcc);//跳過ROM,因?yàn)橹挥幸粋(gè)傳感器,窮啊
        wendu_write_byte(0xbe);//可以讀溫度了
        a=read_byte();//讀低八位
        b=read_byte();//讀高八位
        b<<=4;
        b+=((a&0xf0)>>4);//這兩句把小數(shù)點(diǎn)后的刪了,把正數(shù)的數(shù)據(jù)都存在高八位
        return b;
}

求大神指點(diǎn)迷津

2014910173542.jpg (1.66 MB, 下載次數(shù): 222)

溫度讀取

溫度讀取

作者: 當(dāng)下的力量    時(shí)間: 2014-9-12 06:33
我有18b20程序,功能都實(shí)現(xiàn)了,硬件很少,共陰極數(shù)碼管,動(dòng)態(tài)掃描
作者: admin    時(shí)間: 2014-9-13 00:34
當(dāng)下的力量 發(fā)表于 2014-9-12 06:33
我有18b20程序,功能都實(shí)現(xiàn)了,硬件很少,共陰極數(shù)碼管,動(dòng)態(tài)掃描

共享一下啊
作者: 向前看zk    時(shí)間: 2014-9-16 22:45
本帖最后由 向前看zk 于 2014-9-16 22:47 編輯

我也做了溫度測量的,這是我的原程序,你參考參考!希望能對(duì)你有用。

1602 ds18b20.zip

39.34 KB, 下載次數(shù): 14






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1