<noframes id="ixm7d"><noframes id="ixm7d"><rt id="ixm7d"><delect id="ixm7d"></delect></rt><noframes id="ixm7d"><rt id="ixm7d"><rt id="ixm7d"></rt></rt><rt id="ixm7d"></rt> <noframes id="ixm7d"><rt id="ixm7d"><delect id="ixm7d"></delect></rt><delect id="ixm7d"></delect><bdo id="ixm7d"></bdo><rt id="ixm7d"></rt><bdo id="ixm7d"></bdo><noframes id="ixm7d"><rt id="ixm7d"><rt id="ixm7d"></rt></rt><rt id="ixm7d"><rt id="ixm7d"></rt></rt><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><rt id="ixm7d"></rt> <noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><noframes id="ixm7d"><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><noframes id="ixm7d"><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d"><rt id="ixm7d"></rt><noframes id="ixm7d">

ds18b20課程設計報告

2023-07-01

國民經濟的快速發展下,越來越多的行業,開始通過報告的方式,用于記錄工作內容。怎么樣才能寫出優質的報告呢?以下是小編收集整理的《ds18b20課程設計報告》,供大家參考,更多范文可通過本站頂部搜索您需要的內容。

第一篇:ds18b20課程設計報告

DS18B20溫度傳感器設計報告

傳感器課程設計

專 業: 計算機控制技術

---數字溫度計

年 級: 2011 級 姓 名: 樊 益 明

學 號: 20113042

指導教師: 劉 德 春

阿壩師專電子信息工程系

1. 引 言

1.1. 設計意義

在日常生活及工農業生產中,經常要用到溫度的檢測及控制,傳統的測溫元件有熱電偶和熱電阻。而熱電偶和熱電阻測出的一般都是電壓,再轉換成對應的溫度,需要比較多的外部硬件支持。其缺點如下:

● 硬件電路復雜; ● 軟件調試復雜; ● 制作成本高。

本數字溫度計設計采用美國DALLAS半導體公司繼DS1820之后推出的一種改進型智能溫度傳感器DS18B20作為檢測元件,測溫范圍為-55~125℃,最高分辨率可達0.0625℃。

DS18B20可以直接讀出被測溫度值,而且采用三線制與單片機相連,減少了外部的硬件電路,具有低成本和易使用的熱點。

2 設計要求

2.1基本要求 1) 用LCD12232實現實時溫度顯示溫度和自己的學號。 2) 采用LED數碼管直接讀顯示。 2.2擴展功能

溫度報警,能任意設定溫度范圍實現鈴聲報警;

33.1單片機89C52模塊

單片機89C52是本設計中的控制核心,是一個40管腳的集成芯片構成。引腳部分:單片機引腳基本電路部分與普通設計無異,40腳接Vcc+5V,20腳接地。X1,X2兩腳接12MHZ的晶振,可得單片機機器周期為1微秒。RST腳外延一個RST復位鍵,一端通過10K電阻接Vcc,一端通過10K電阻接地。AT89S52是一種低功耗、高性能的8位CMOS微控制器,具有8K的可編程Flash 存儲器。使

資料準備 用高密度非易失性存儲器技術制造,與工業80C51產品指令和引腳完全兼容。片上Flash允許程序存儲器在系統可編程,亦適于常規編程器。在單芯片上,擁有靈巧的8位CPU和在線系統可編程Flash,使得AT89S52為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案。AT89S52具有以下標準功能:8K字節Flash,256字節RAM,32位I/O 口線,看門狗定時器,2個數據指針,三個16位定時器/計數器,一個6向量2級中斷結構,全雙工串行口,片內晶振及時鐘電路。P 0口接一個470的上拉電阻。P0口0~8腳接4位共陽數碼管的段選,P2口0~4腳接4位共陽數碼管的位選,P3.7接DS18B20采集信號。

3.2 DS18B20簡介

DALLAS最新單線數字溫度傳感器DS18B20簡介新的“一線器件”體積更小、適用電壓更寬、更經濟 Dallas 半導體公司的數字化溫度傳感器DS1820是世界上第一片支持 “一線總線”接口的溫度傳感器。一線總線獨特而且經濟的特點,使用戶可輕松地組建傳感器網絡,為測量系統的構建引入全新概念。DS18B20、 DS1822 “一線總線”數字化溫度傳感器 同DS1820一樣,DS18B20也支持“一線總線”接口,測量溫度范圍為 -55°C~+125°C,在-10~+85°C范圍內,精度為±0.5°C。DS1822的精度較差為± 2°C ?,F場溫度直接以“一線總線”的數字方式傳輸,大大提高了系統的抗干擾性。適合于惡劣環境的現場溫度測量,如:環境控制、設備或過程控制、測溫類消費電子產品等。與前一代產品不同,新的產品支持3V~5.5V的電壓范圍,使系統設計更靈活、方便。而且新一代產品更便宜,體積更小。 DS18B20、 DS1822 的特性 DS18B20可以程序設定9~12位的分辨率,精度為±0.5°C??蛇x更小的封裝方式,更寬的電壓適用范圍。分辨率設定,及用戶設定的報警溫度存儲在EEPROM中,掉電后依然保存。DS18B20的性能是新一代產品中最好的!性能價格比也非常出色! DS1822與 DS18B20軟件兼容,是DS18B20的簡化版本。省略了存儲用戶定義報警溫度、分辨率參數的EEPROM,精度降低為±2°C,適用于對性能要求不高,成本控制嚴格的應用,是經濟型產品。 繼“一線總線”的早期產品后,DS1820開辟了溫度傳感器技術的新概念。DS18B20和DS1822使電壓、特性及封裝有更多的選擇,讓我們可以構建適合自己的經濟的測溫系統。3.3 溫度傳感器的工作原理

DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數因分辨率不同而不同,且溫度轉換時的延時時間由2s 減為750ms。 DS18B20測溫原理:低溫度系數晶振的振蕩頻率受溫度影響很小,用于產生固定頻率的脈沖信號送給計數器1。高溫度系數晶振 隨溫度變化其振蕩率明顯改變,所產生的信號作為計數器2的脈沖輸入。計數器1和溫度寄存器被預置在-55℃所對應的一個基數值。計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當計數器1的預置值減到0時,溫度寄存器的值將加1,計數器1的預置將重新被裝入,計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環直到計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值,即為所測溫度。

3.4 DS18B20中的溫度傳感器對溫度的測量

高速暫存存儲器由9個字節組成,其分配如表5所示。當溫度轉換命令發布后,經轉換所得的溫度值以二字節補碼形式存放在 高速暫存存儲器的第0和第1個字節。單片機可通過單線接口讀到該數據,讀取時低位在前,高位在后。

溫度數據值格式

下表為12位轉化后得到的12位數據,存儲在18B20的兩個8比特的RAM中,二進制中的前面5位是符號位,如果測得的溫度大于0, 這5位為0,只要將測到的數值乘于0.0625即可得到實際溫度;如果溫度小于0,這5位為1,測到的數值需要取反加1再乘于0.0625即可得到實際 溫度。 例如+125℃的數字輸出為07D0H,

實際溫度=07D0H*0.0625=2000*0.0625=125℃。

例如-55℃的數字輸出為FC90H,則應先將11位數據位取反加1得370H(符號位不變,也不作運算), 實際溫度=370H*0.0625=880*0.0625=55℃。

可見其中低四位為小數位。

DS18B20溫度與表示值對應表

3.5 DS18B20的內部結構

DS18B20內部結構主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發的溫度報警觸發器TH和TL、配置寄存器。DS18B20的管腳排列如下:

DQ為數字信號輸入/輸出端;

GND為電源地;

VDD為外接供電電源輸入端(在寄生電源接線方式時接地)。

1) 64位的ROM 光刻ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼。64位光刻ROM的排列是:開始8位(28H)是產品類型標號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循環冗余校驗碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個DS18B20都各不相同,這樣就可以實現一根總線上掛接多個DS18B20的目的。

2) DS18B20溫度傳感器的存儲器

DS18B20溫度傳感器的內部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的E2RAM,后者存放高溫度和低溫度觸發器TH、TL和結構寄存器。

暫存存儲器包含了8個連續字節,前兩個字節是測得的溫度信息,第一個字節的內容是溫度的低八位,第二個字節是溫度的高八位。第三個和第四個字節是TH、TL的易失性拷貝,第五個字節是結構寄存器的易失性拷貝,這三個字節的內容在每一次上電復位時被刷新。第

六、

七、八個字節用于內部計算。第九個字節是冗余檢驗字節。

3.6 DS18B20的時序

由于DS18B20采用的是單總線協議方式,即在一根數據線實現數據的雙向傳輸,而對89C51單片機來說,硬件上并不支持單總線協議,因此,我們必須采用軟件的方法來模擬單總線的協議時序來完成對DS18B20芯片的訪問。

由于DS18B20是在一根I/O線上讀寫數據,因此,對讀寫的數據位有著嚴格的時序要求。DS18B20有嚴格的通信協議來保證各位數據傳輸的正確性和完整性。該協議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為主設備,單總線器件作為從設備。而每一次命令和數據的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數據,在進行寫命令后,主機需啟動讀時序完成數據接收。數據和命令的傳輸都是低位在先。

1) DS18B20的復位時序

2)DS18B20的讀時序

對于DS18B20的讀時序分為讀0時序和讀1時序兩個過程。

對于DS18B20的讀時隙是從主機把單總線拉低之后,在15秒之內就得釋放單總線,以讓DS18B20把數據傳輸到單總線上。DS18B20在完成一個讀時序過程,至少需要60us才能完成。

3) DS18B20的寫時序

對于DS18B20的寫時序仍然分為寫0時序和寫1時序兩個過程。

對于DS18B20寫0時序和寫1時序的要求不同,當要寫0時序時,單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當要寫1時序時,單總線被拉低之后,在15us之內就得釋放單總線。

4系統框架設計如下圖所示:

按照系統設計功能的要求數字溫度計總體電路結構框圖如下圖所示

5硬件設計

溫度計采用AT89C51單片機作為微處理器,溫度計系統的外圍接口電路由晶振、LCD顯示電路、復位電路、溫度檢測電路、LCD驅動電路。

溫度計的工作過程是:初始化其接收需要檢測的溫度,并一直處于檢測狀態,并將檢測到的溫度值讀取,并轉化為十進制數值,通過LCD顯示出來,再顯示溫度,方便用戶來讀數使用記錄數據。

溫度計系統的的硬件電路圖如下圖所示。

DS18B20測溫和學號顯示

6系統程序的設計

6.1主程序

主程序的主要功能是負責溫度的實時顯示、讀出并處理DS18B20的測量溫度值。溫度測量每1s進行一次。

主程序流程圖如圖4.1.1所示。

初始化調用顯示子程序1s到?YN初次上電?N讀出溫度值溫度計算處理顯示數據刷新Y發溫度轉換開始命令

主程序流程圖

6.2讀出溫度子程序

讀出溫度子程序的主要功能是讀出RAM中的9字節。在讀出時須進行CRC校驗,校驗有錯時不進行溫度數據的改寫。

讀出溫度子程序流程圖如圖4.2所示。

發DS18B20復位信號發跳過ROM命令CRC校驗正確?發讀取溫度命令Y移入溫度暫存器讀取操作,CRC校驗YNN結束9字節完?

6.3溫度轉換命令子程序

溫度轉換命令子程序主要是發溫度轉換開始命令。當采用12位分辨率時,轉換時間大約為750ms。在本程序設計中,采用1s顯示程序延時法等待轉換的完成。 溫度轉換命令子程序圖如圖4.3所示。

發DS18B20復位uml發跳過ROM命令發溫度轉換開始命令

結束

6.4計算溫度子程序

計算溫度子程序將RAM中讀取值進行BCD碼的轉換運算,并進行溫度值的正負判斷。

計算溫度子程序流程圖如圖4.4所示。

開始計算小數位溫度BCD值溫度零下?N計算整數位溫度BCD值Y置“+”標志溫度值補碼置“—”標志結束

6.5顯示數據刷新子程序

顯示數據刷新子程序主要是對顯示緩沖器中得顯示數據進行刷新操作,當最高數據顯示位為0時,將符號顯示位移入下一位。

顯示數據刷新子程序流程圖如圖4.5所示。

7 設計總結

本設計利用89S51芯片控制溫度傳感器DS18B52,再輔之以部分外圍電路實現對環境溫度的控制,性能穩定,精度較高,而且擴展性很強。由于DS18B20支持單總線協議,我們可以將多個DS18B52并聯到3根或2根線上,CPU只需一根端口線就能與諸多DS18B52通信,占用較少的微處理器的端口就可以實現多點測溫監控系統。

我們在老師的指導下完成了基于DS18B20的數字溫度計的設計和制作。在進行實驗的過程中,我們了解并熟悉DS18B20、AT89C2051以及74LS244的工作原理和性能。并且通過溫度計的制作,我們將電子技能實訓課堂上學到的知識進行運用,并在實際操作中發現問題,解決問題,更加增加對知識的認識和理解。

第二篇:DS18B20學習總結

及其高精度溫度測量的實現

1.1 DS18B20簡介

DS18B20是美國DALLAS半導體公司生產的可組網數字式溫度傳感器. 主要由三個數據部件組成:64的激光ROM,溫度靈敏原件,非易失性溫度告警觸發器TH和TL。 封裝如圖一:

圖一 1.

2DS18B20的特點:

1. 獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現微處理器與DS18B20的雙向通訊。

2. DS18B20支持多點組網功能,多個DS18B20可以并聯在唯一的三線上,實現多點測溫。 3. DS18B20在使用中不需要任何外圍元件。

4. 測溫范圍-55℃~+125℃,固有測溫分辨率0.5℃。 5. 測量結果以9位數字量方式串行傳送。

內部結構框圖如圖二所示。

圖二

2.1 訪問溫度計的協議:

(一)初始化

(二)ROM操作命令

(三)存貯器操作命令

(四)處理/數據

由熱敏原件中晶振特性計算出所測的溫度。 注意:復位操作如下圖三

圖三 必需要給DS18B20輸入脈沖激活其復位功能。

DS18B20的驅動程序:

/*************************此部分為18B20的驅動程序*************************************/

#include #include sbit D18B20=P3^7; sbit error=P3^4; #define NOP() _nop_() /* 定義空指令 */ #define _Nop() _nop_() /*定義空指令*/ void TempDelay (unsigned char idata us); void Init18b20 (void); void WriteByte (unsigned char idata wr); //單字節寫入 void read_bytes (unsigned char idata j); unsigned char CRC (unsigned char j); void GemTemp (void); void Config18b20 (void); void ReadID (void); void TemperatuerResult(void); bit flag; unsigned int idata Temperature; unsigned char idata temp_buff[9]; //存儲讀取的字節,read scratchpad為9字節,read rom ID為8字節 unsigned char idata id_buff[8];

unsigned char idata crc_data; unsigned char code CrcTable [256]={ 0, 94, 188, 226, 97, 63, 221, 131, 194, 156, 126, 32, 163, 253, 31, 65, 157, 195, 33, 127, 252, 162, 64, 30, 95, 1, 227, 189, 62, 96, 130, 220, 35, 125, 159, 193, 66, 28, 254, 160, 225, 191, 93, 3, 128, 222, 60, 98, 190, 224, 2, 92, 223, 129, 99, 61, 124, 34, 192, 158, 29, 67, 161, 255, 70, 24, 250, 164, 39, 121, 155, 197, 132, 218, 56, 102, 229, 187, 89, 7, 219, 133, 103, 57, 186, 228, 6, 88, 25, 71, 165, 251, 120, 38, 196, 154, 101, 59, 217, 135, 4, 90, 184, 230, 167, 249, 27, 69, 198, 152, 122, 36, 248, 166, 68, 26, 153, 199, 37, 123, 58, 100, 134, 216, 91, 5, 231, 185, 140, 210, 48, 110, 237, 179, 81, 15, 78, 16, 242, 172, 47, 113, 147, 205, 17, 79, 173, 243, 112, 46, 204, 146, 211, 141, 111, 49, 178, 236, 14, 80, 175, 241, 19, 77, 206, 144, 114, 44, 109, 51, 209, 143, 12, 82, 176, 238, 50, 108, 142, 208, 83, 13, 239, 177, 240, 174, 76, 18, 145, 207, 45, 115, 202, 148, 118, 40, 171, 245, 23, 73, 8, 86, 180, 234, 105, 55, 213, 139, 87, 9, 235, 181, 54, 104, 138, 212, 149, 203, 41, 119, 244, 170, 72, 22, 233, 183, 85, 11, 136, 214, 52, 106, 43, 117, 151, 201, 74, 20, 246, 168, 116, 42, 200, 150, 21, 75, 169, 247, 182, 232, 10, 84, 215, 137, 107, 53};

void GetTemp() {

if(TIM==100)

{ TIM=0;

TemperatuerResult();

每隔 1000ms 讀取溫度。

void TemperatuerResult(void) {

p = id_buff;

ReadID();

//先確定是第幾個DS18B20

Config18b20(); //配置DS18B20的報警溫度和分辨度

Init18b20 ();

//復位)

WriteByte(0xcc);

//skip rom

WriteByte(0x44);

//Temperature convert

Init18b20 ();

//復位)

WriteByte(0xcc);

//skip rom

WriteByte(0xbe);

//read Temperature

p = temp_buff;

GemTemp(); //讀取溫度

}

void GemTemp (void) {

read_bytes (9);

if (CRC(9)==0) //校驗正確

{

Temperature = temp_buff[1]*0x100 + temp_buff[0]; //

Temperature *= 0.0625;

Temperature /= 16;

TempDelay(1);

} } *Function:CRC校驗 *parameter: *Return: *Modify: *************************************************************/ unsigned char CRC (unsigned char j) {

unsigned char idata i,crc_data=0;

for(i=0;i

crc_data = CrcTable[crc_data^temp_buff[i]];

return (crc_data); }

/************************************************************ *Function:向18B20寫入一個字節 *parameter: *Return: *Modify:

void WriteByte (unsigned char idata wr) //單字節寫入 {

unsigned char idata i;

for (i=0;i<8;i++)

{

D18B20 = 0;

_nop_();

D18B20=wr&0x01;

TempDelay(3);

//delay 45 uS //

5 _nop_();

_nop_();

D18B20=1;

wr >>= 1;

} }

/************************************************************ *Function:讀18B20的一個字節 *parameter: *Return: *Modify: *************************************************************/ unsigned char ReadByte (void)

//讀取單字節

unsigned char idata i,u=0;

for(i=0;i<8;i++)

{

D18B20 = 0;

u >>= 1;

D18B20 = 1;

if(D18B20==1)

u |= 0x80;

TempDelay (2);

_nop_();

}

return(u); } /************************************************************ *Function:讀18B20 *parameter: *Return: *Modify: *************************************************************/ void read_bytes (unsigned char idata j) {

unsigned char idata i;

for(i=0;i

{

*p = ReadByte();

p++;

} } /************************************************************ *Function:延時處理 *parameter: *Return: *Modify: *************************************************************/ void TempDelay (unsigned char idata us) {

while(us--); } /************************************************************ *Function:18B20初始化 *parameter: *Return: *Modify: *************************************************************/ void Init18b20 (void) {

D18B20=1;

_nop_();

D18B20=0;

TempDelay(80);

//delay 530 uS//80

_nop_();

D18B20=1;

TempDelay(14);

//delay 100 uS//14

_nop_();

_nop_();

_nop_();

if(D18B20==0)

{flag = 1; error=0; }

//detect 1820 success!

else

{flag = 0; error=1; }

//detect 1820 fail!

TempDelay(20);

//20

_nop_();

_nop_();

D18B20 = 1; }

/************************************************************

向18B20寫入一個字節 *parameter: *Return: *Modify: *************************************************************/ void WriteByte (unsigned char idata wr) //單字節寫入 {

unsigned char idata i;

for (i=0;i<8;i++)

{

D18B20 = 0;

_nop_();

D18B20=wr&0x01;

TempDelay(3);

//delay 45 uS //5

_nop_();

_nop_();

D18B20=1;

wr >>= 1;

} }

/************************************************************

讀18B20的一個字節

*/ unsigned char ReadByte (void)

//讀取單字節 {

unsigned char idata i,u=0;

for(i=0;i<8;i++)

{

D18B20 = 0;

u >>= 1;

D18B20 = 1;

if(D18B20==1)

u |= 0x80;

TempDelay (2);

_nop_();

}

return(u); }

/************************************************************ 3.1.2

SPI數據線配置。

/*************************此部分為74HC595的驅動程序使用SPI總線連接*************************************/

#include #include

#define NOP()

_nop_()

/* 定義空指令 */ #define _Nop() _nop_()

/*?定義空指令*/ void HC595SendData(unsigned int SendVal);

//SPI IO sbit

MOSIO =P1^5; sbit

R_CLK =P1^6; sbit

S_CLK =P1^7; sbit

IN_PL =P3^4;

//74HC165 shift load

把數據加載到鎖存器中 sbit

IN_Dat=P3^5;

//74HC165 output

數據移出 sbit

OE

=P3^6;

/********************************************************************************************************* ** 函數名稱: HC595SendData ** 功能描述: 向SPI總線發送數據

*********************************************************************************************************/ void HC595SendData(unsigned int SendVal) {

unsigned char i;

for(i=0;i<16;i++)

{

if((SendVal<

else MOSIO=0;

S_CLK=0;

NOP();

NOP();

S_CLK=1;

}

R_CLK=0; //set dataline low

NOP();

NOP();

R_CLK=1; //片選

OE=0; }

3.1.

3試驗數碼管上顯示溫度

#include extern GetTemp();

//聲明引用外部函數 extern unsigned int idata Temperature;

// 聲明引用外部變量 void delay(unsigned int i);

sbit

LS138A=P2^2;

//管腳定義 sbit

LS138B=P2^3; sbit

LS138C=P2^4;

//此表為 LED 的字模, 共陰數碼管 0-9 -

unsigned char code Disp_Tab[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; unsigned long LedOut[5],LedNumVal; void system_Ini() {

TMOD|= 0x11;

TH1 = 0xD8;

//10

TL1 = 0xF0;

IE = 0x8A;

TR1 = 1 main() { unsigned char i;

system_Ini();

while(1)

{

GetTemp();

/********以下將讀18b20的數據送到LED數碼管顯示*************/

LedNumVal=Temperature;

//把實際溫度送到LedNumVal變量中

LedOut[0]=Disp_Tab[LedNumVal%10000/1000];

LedOut[1]=Disp_Tab[LedNumVal%1000/100];

LedOut[2]=Disp_Tab[LedNumVal%100/10]; //十位

LedOut[3]=Disp_Tab[LedNumVal%10];

//個位

for(i=0; i<4; i++)

{

P0 = LedOut[i] ;

switch(i)

{

//138譯碼

case 0:LS138A=0; LS138B=0; LS138C=0; break;

case 1:LS138A=1; LS138B=0; LS138C=0; break;

case 2:LS138A=0; LS138B=1; LS138C=0; break;

case 3:LS138A=1; LS138B=1; LS138C=0; break;

}

delay(100);

}

P0 = 0;

} }

//延時程序

void delay(unsigned int i) {

char j;

for(i; i > 0; i--)

for(j = 200; j > 0; j--); } 4.1 討論DS18B20的自動報警功能實現。

DS18B20只是一個測溫元件,所謂的報警功能要通過程序由單片機來實現。

DS18B20溫度傳感器的內部存儲器包括一個高速暫存RAM和一個非易失性的可電擦除的EERAM。高速暫存RAM的結構為8字節的存儲器,頭2個字節包含測得的溫度信息,第3和第4字節TH(報警溫度上限)和TL(報警溫度下限)的拷貝。第5個字節,為配置寄存器,它的內容用于確定溫度值的數字轉換分辨率。第

6、

7、8字節保留未用。要實現報警,完成溫度轉換后,就把測得的溫度值與RAM中的TH、TL字節內容作比較(當然要自己編程序)。若T>TH或T

第三篇:DS18B20的各個ROM命令

1、 Read ROM[33H]

2、 Match ROM[55H]

這個是匹配ROM命令,后跟64位ROM序列,讓總線控制器在多點總線上定位一只特定的DS18B20。只有和64位ROM序列完全匹配的DS18B20才能響應隨后的存儲器操作。所有和64位ROM序列不匹配的從機都將等待復位脈沖。這條命令在總線上有單個或多個器件時都可以使用。

3、Skip ROM[0CCH]

這條命令允許總線控制器不用提供64位ROM編碼就使用存儲器操作命令,在單點總線情況下,可以節省時間。如果總線上不止一個從機,在Skip ROM命令之后跟著發一條讀命令,由于多個從機同時傳送信號,總線上就會發生數據沖突(漏極開路下拉效果相當于相“與”)

4、Search ROM[0F0H]

當一個系統初次啟動時,總線控制器可能并不知道單線總線上有多個器件或它們的64位編碼,搜索ROM命令允許總線控制器用排除法識別總線上的所有從機的64位編碼。

5、Alarm Search[0ECH]

這條命令的流程和Search ROM相同。然而,只有在最近一次測溫后遇到符合報警條件的情況,DS18B20才會響應這條命令。報警條件定義為溫度高于TH或低于TL。只要DS18B20不掉電,報警狀態將一直保持,知道再一次測得的溫度值達不到報警條件。

6、Write Scratchpad[4EH]

這個命令向DS18B20的暫存器TH和TL中寫入數據??梢栽谌魏螘r刻發出復位命令來中止寫入。

7、Read Scratchpad[0BEH]

這個命令讀取暫存器的內容。讀取將從第1個字節開始,一直進行下去,直到第9(CRC)字節讀完。如果不想讀完所有字節,控制器可以在任何時間發出復位命令來中止讀取。

8、Copy Scratchpad[48H]

這個命令把暫存器的內容拷貝到DS18B20的E2ROM存儲器里,即把溫度報警觸發字節存入非易失性存儲器里。如果總線控制器在這條命令之后跟著發出讀時間隙,而DS18B20又忙于把暫存器拷貝到E2存儲器,DS18B20就會輸出一個0,如果拷貝結束的話,DS18B20則輸出1。如果使用寄生電源,總線控制器必須在這條命令發出后立即啟動強上拉并保持10ms。

9、Convert T[44H]

這條命令啟動一次溫度轉換而無需其他數據。溫度轉換命令被執行,而后DS18B20保持等待狀態。如果總線控制器在這條命令之后跟著發出時間隙,而DS18B20又忙于做時間轉換的話,DS18B20將在總線上輸出0,若溫度轉換完成,則輸出1,。如果使用寄生電源,總線控制必須在發出這條命令后立即啟動強上拉,并保持500ms以上時間。

10、Recall E2

這條命令把報警觸發器里的值拷貝回暫存器。這種拷貝操作在DS18B20上電時自動執行,這樣器件一上電,暫存器里馬上就存在有效的數據了。若在這條命令發出之后發出讀數據隙,器件會輸出溫度轉換忙的標識:0為忙,1為完成。

11、Read Power Supply[0B4H]

若把這條命令發給DS18B20后發出讀時間隙,器件會返回它的電源模式:0為寄生電源,1為外部電源。

第四篇:《3DS MAX》課程設計總結

2009--2010年第一學期

藝術系

3DS MAX課程設計總結

樊繼

藝術系藝術設計教研室

2009年9月

《3DS MAX》課程設計總結

樊繼

《計算機輔助2》這門課主要是針對3Dmax進行學習和操作,其實在大一大二的時候有初步的接觸,但由于長時間不聯系,又從新回到了原點,對此對這三周的課程進行一個總結和學習的心得體驗

好奇期:初期,出于好奇而初涉MAX時,眼前汪洋一片,不知從何涉足?;ǖ糁亟?,盲目購入大量3DSMAX書籍,以為憑著刻苦鉆研,成為三維動畫大師還不是易如反掌?豈知讀過這些書后,才知書的水準參差不齊。讀后仍然不得要領。幸運的話可得業內友人指點,從中選出幾本適宜的書細讀,才開始上路。

經驗1:不要浪費銀子盲目購書,選準好的圖書會事半功倍。

興趣期:在初識MAX后,興趣大增,急于想盡快揭開MAX神秘的面紗,出現急功近利的傾向。什么都想看看,什么都想學學,制作出個小玩藝,便沾沾自喜,逢人便顯示,企圖贏得人們贊賞??谥凶灾t為菜鳥,心中卻很自豪。最終進入“萬金油”的階段,即樣樣通,樣樣松,用現代語說就是菜鳥。

經驗2:沉下心,多學習,盡量縮短菜鳥期

沮喪期:渡過了“菜鳥期”便進入沮喪期。此時,MAX像無底深淵,令人越陷越深,愈學愈難,看看人家高手制作的作品,對比自己的拙作,大感自慚形穢!于是信心倍失,隨即產生另尋新歡的念頭。

經驗3:多實踐,練題海, 咬牙渡過沮喪期

理性期:像人類渡過痛苦的老年更年期一樣,MAX初學者應僅快地從痛苦的沮喪期中解脫出來。一旦解脫,便會冷靜下來總結經驗,以利再戰??偨Y經驗,選定學習目標是最重要的。............。。。。。。。。。.................

經驗總結3條:

(1)要根據自己的特長去決定自己學習MAX和應用MAX的目標。譬如,你的主業是建筑行業,熟悉建筑,那么就鉆研建筑造型的MAX技術;如果你的專業是工業設計,那么你就圍繞工業產品造型方面去深入MAX技術,決不可胡子眉毛一把抓。

(2)在此階段要多讀活材料,例如MAX技術論壇中的經驗之談的交流貼子、精彩的教材等,選用經典的高級教材,多參考大師的作品。

(3)要不斷地實踐。甚至同一個模型要重復地去做數遍,用不同的方法去作。俗話說:熟能生巧,在制作過程中,你有可能驚喜地發現一些新思路新方法,甚至MAX軟件設計師事先并未想到的出奇效果。

5、成熟期:在這個階段,技術已經比較成熟了,可以獨擋一面了。在這個階段最重要的是交流,因為一山更比一山高,別人的是思路或許可以給你很大啟發。

所以我以后的學習中要加強對軟件的操作能力,把理論與實際操作結合才能做出合格優秀的作品,為以后的工作打下堅實的基礎。

第五篇:3DS MAX三維設計教學大綱

(48課時 學制1個半月)

一、基本概念與環境介紹(4課時)

1.3DMax基本概述,三維設計的基本思想和設計理念。

2.3DMax界面介紹,工具欄、菜單、視圖區、視圖控制區、動畫播放控制區的講解。

二、控制面板的講解(8課時)

1.三維實體的控制和創建,擴展物體的創建與使用。 2.平面物體的創建、技巧及應用,各種對稱物面的創建。

三、常用編輯器(4課時)

1.用戶自定義面板、定義常用修改器。 2.拉伸、彎曲、旋轉、編輯網格、曲線等命令。

四、布爾運算介紹(4課時)

布爾運算的種類和方式,三維實體的布爾運算,平面線框造型后的布爾運算。

五、物體的放樣(4課時)

1.放樣物的模式(面、路徑),多重放樣的使用技巧。 2.Path的百分比例控制及調整。

六、燈光及其運用(4課時)

1.燈光的種類、參數控制,幾種常用燈光的使用及參數。 2.目標和自由相機的建立、如何建立一個特效相機視圖。

七、材質編輯器(4課時)

1.材質的介紹、講解及種類,貼圖種類介紹。

2.色調、光照、亮度及有關參數的設置核心、要點講解。

八、渲染(4課時)

1.建立室內、室外效果圖模型。

2.設計和制作一般的室內、室外裝飾效果圖。

九、CAD、Photoshop與3D Max軟件互用(8課時)

CAD建模及效果圖形的模型建立;3D Max處理建模、材質、燈光效果; PhotoShop后期處理外觀、室內效果圖,添加生機和環境綠化。

十、綜合實例講解與作品設計(4課時)

室內、室外效果圖的設計與制作

本文來自 99學術網(www.gaojutz.com),轉載請保留網址和出處

上一篇:第2期總第94期下一篇:sbs3unit1同步練習

91尤物免费视频-97这里有精品视频-99久久婷婷国产综合亚洲-国产91精品老熟女泄火