91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 462KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-12
  • 語(yǔ)言: 其他
  • 標(biāo)簽: DS18B20??

資源簡(jiǎn)介

。與傳統(tǒng)的溫度計(jì)相比,這里設(shè)計(jì)的數(shù)字溫度計(jì)具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫精確,數(shù)字顯示,適用范圍寬等特點(diǎn)。選用AT89C52單片機(jī)作為主控制器件,DSl8B20作為測(cè)溫傳感器通過4位共陰極LED數(shù)碼管串口傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示。通過DSl8B20直接讀取被測(cè)溫度值,進(jìn)行數(shù)據(jù)轉(zhuǎn)換,該器件的物理化學(xué)性能穩(wěn)定,線性度較好,在0℃~100℃最大線性偏差小于0.1℃。該器件可直接向單片機(jī)傳輸數(shù)字信號(hào),便于單片機(jī)處理及控制。另外,該溫度計(jì)還能直接采用測(cè)溫器件測(cè)量溫度,從而簡(jiǎn)化數(shù)據(jù)傳輸與處理過程。

資源截圖

代碼片段和文件信息

#include?“reg51.h“

char?disp[11]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x40};
char?disp_dot[11]={0xbf0x860xdb0xcf0xe60xed0xfd0x870xff0xef0xc0};

sbit?DQ?=?P1^3;???//定義通信端口?

//晶振12MHz??
void?delay_18B20(unsigned?int?i)
{
while(i--);
}

//初始化函數(shù)
Init_DS18B20(void)?
{
?unsigned?char?x=0;
?DQ?=?1;??????????//DQ復(fù)位
?delay_18B20(8);??//稍做延時(shí)
?DQ?=?0;??????????//單片機(jī)將DQ拉低
?delay_18B20(80);?//精確延時(shí)?大于?480us
?DQ?=?1;??????????//拉高總線
?delay_18B20(14);
?x=DQ;????????????//稍做延時(shí)后?如果x=0則初始化成功?x=1則初始化失敗
?delay_18B20(20);
}


//讀一個(gè)字節(jié)??
ReadOneChar(void)
{
unsigned?char?i=0;
unsigned?char?dat?=?0;
for?(i=8;i>0;i--)
?{
??DQ?=?0;?//?給脈沖信號(hào)
??dat>>=1;
??DQ?=?1;?//?給脈沖信號(hào)
??if(DQ)
??dat|=0x80;
??delay_18B20(4);
?}
? return(dat);
}

//寫一個(gè)字節(jié)??
WriteOneChar(unsigned?char?dat)
{
?unsigned?char?i=0;
?for?(i=8;?i>0;?i--)
?{
??DQ?=?0;
??DQ?=?dat&0x01;
??delay_18B20(5);
??DQ?=?1;
??dat>>=1;
?}
}

//讀取溫度
ReadTemperature(void)
{
unsigned?char?a=0;
unsigned?char?b=0;
unsigned?int??t=0;

Init_DS18B20();
WriteOneChar(0xCC);?//?跳過讀序號(hào)列號(hào)的操作
WriteOneChar(0x44);?//?啟動(dòng)溫度轉(zhuǎn)換
delay_18B20(100);
Init_DS18B20();
WriteOneChar(0xCC);?//跳過讀序號(hào)列號(hào)的操作
WriteOneChar(0xBE);?//讀取溫度寄存器等(共可讀9個(gè)寄存器)?前兩個(gè)就是溫度
a=ReadOneChar();
b=ReadOneChar();

//傳感器返回值除16得實(shí)際溫度值
//為了得到2位小數(shù)位,先乘100,再除16,考慮整型數(shù)據(jù)長(zhǎng)度,
//技巧處理后先乘25,再除4,除4用右移實(shí)現(xiàn)

t?=?(b*256+a)*25;
return(?t?>>?2??);
}

main()
{
unsigned?int?tmp;
unsigned?char?counter;
while(1)
{
//溫度測(cè)量頻率沒有必要太高,太高反而影響數(shù)碼顯示
//所以用計(jì)數(shù)器加以控制
if(counter--?==?0)
{
tmp?=?ReadTemperature();?
counter?=?20;
}

P2?=?0xff;
P0?=?0x39;//“C“
P2?=?0xfb;
delay_18B20(1000);

P2?=?0xff;
P0?=?disp[tmp%10];
P2?=?0xf7;
delay_18B20(1000);

P2?=?0xff;
P0?=?disp[tmp/10%10];
P2?=?0xef;
delay_18B20(1000);

P2?=?0xff;
P0?=?disp_dot[tmp/100%10];
P2?=?0xdf;
delay_18B20(1000);

P2?=?0xff;
P0?=?disp[tmp/1000%10];
P2?=?0xbf;
delay_18B20(1000);
}
}

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件?????167890??2007-04-11?20:21??clock.DSN

?????文件????????939??2010-07-02?17:43??clock.PWI

?????文件?????167887??2007-04-11?20:18??Last?Loaded?clock.DBK

?????文件?????530432??2010-07-04?16:52??課程設(shè)計(jì)報(bào)告.doc

?????文件???????5519??2007-04-11?20:15??KEILC51\temperature

?????文件???????2269??2007-04-11?20:15??KEILC51\temperature.c

?????文件???????1895??2007-04-11?20:15??KEILC51\temperature.hex

?????文件?????????39??2007-04-11?20:15??KEILC51\temperature.lnp

?????文件???????5777??2007-04-11?20:15??KEILC51\temperature.LST

?????文件???????8914??2007-04-11?20:15??KEILC51\temperature.M51

?????文件???????6150??2007-04-11?20:15??KEILC51\temperature.OBJ

?????文件????????850??2007-04-11?20:20??KEILC51\temperature.Opt

?????文件????????774??2007-04-11?20:20??KEILC51\temperature.plg

?????文件???????1963??2007-04-11?20:20??KEILC51\temperature.Uv2

?????文件???????1027??2007-04-11?19:49??KEILC51\temperature_Opt.Bak

?????文件???????1964??2007-04-11?19:49??KEILC51\temperature_Uv2.Bak

?????目錄??????????0??2010-07-04?16:53??KEILC51

-----------?---------??----------?-----??----

???????????????904289????????????????????17


評(píng)論

共有 條評(píng)論

相關(guān)資源