基于單總線的溫度實時監(jiān)控系統(tǒng)_第1頁
基于單總線的溫度實時監(jiān)控系統(tǒng)_第2頁
基于單總線的溫度實時監(jiān)控系統(tǒng)_第3頁
基于單總線的溫度實時監(jiān)控系統(tǒng)_第4頁
基于單總線的溫度實時監(jiān)控系統(tǒng)_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、課程設計報告書課程名稱: 專業(yè)綜合課程設計 題 目:基于單總線的溫度實時監(jiān)控系統(tǒng)系 (院): 電子工程學院學 期:11121專業(yè)班級: 電子 姓 名:學 號:評語:成績:簽名:日期:1. 選題意義隨著社會的發(fā)展,科技的進步,電子技術和微型計算機的迅速發(fā)展,以及測溫儀器在各個領域的應用,智能化已是現(xiàn)代溫度監(jiān)控系統(tǒng)發(fā)展的主流方向。單片機在電子產(chǎn)品中的應用已經(jīng)越來越廣泛。利用單片機對溫度進行控制的技術也隨之而生,并日益發(fā)展和完善,且越來越顯示出它的優(yōu)越性。單總線技術是美國Dallas半導體公司近年推出的新技術。它將地址線、數(shù)據(jù)線、控制線合為1根信號線,允許在這根信號線上掛接數(shù)百個單總線器件芯片.溫度

2、是一個重要的物理量,它反映了物體冷熱的程度,與自然界中的各種物理和化學過程相聯(lián)系。在工、農業(yè)生產(chǎn)和日常生活中,各個環(huán)節(jié)都與溫度緊密相聯(lián),溫度的準確監(jiān)測及控制占據(jù)著極其重要地位。比如,發(fā)電廠鍋爐的溫度必須控制在一定的范圍之內;許多化學反應的工藝過程必須在適當?shù)臏囟认虏拍苷_M行等。沒有合適的溫度環(huán)境,許多電子設備就不能正常工作,糧倉的儲糧就會變質霉爛,酒類的品質就沒有保障.可見,溫度的監(jiān)控是非常重要的。單總線技術是美國Dallas半導體公司近年推出的新技術。它將地址線、數(shù)據(jù)線、控制線合為1根信號線,允許在這根信號線上掛接數(shù)百個單總線器件芯片。單總線技術應用于某些低速(約100kbps以下的速率)

3、測控系統(tǒng)中,可以大大簡化線路結構和減少硬件開銷,可以通過PC機串行口、并行口、USB總線或單片機直接進行測控,PC機的軟件開發(fā)也直觀、容易。本設計為基于單總線的溫度實時監(jiān)控系統(tǒng)。2. 設計目的、要求及步驟概述2。1設計目的(1)對單總線設備的結構特點和以單總線技術構建起來的微型局域網(wǎng)的拓樸結構、網(wǎng)絡結構優(yōu)化以及設備與單總線的連接進行闡述和研究。(2)設計基于單總線的溫度采集電路,單總線和PC機串行口的接口電路,在電路設計時重點考慮單總線設備的供電問題和數(shù)據(jù)的可靠采集。(3) 用自己熟悉的計算機語言編寫溫度實時監(jiān)控系統(tǒng)軟件,軟件的界面要友好、簡明、直觀.在軟件編寫時重點考慮溫度采集數(shù)據(jù)存儲、單總

4、線設備中的CRC循環(huán)冗余碼的實現(xiàn)方法、從設備的“即時插即用” 的算法研究。 2.2設計內容及要求(1) 溫度測量范圍50100。(2) 測溫分辨率不低于0.0625。(3) 數(shù)據(jù)傳輸距離不低于60米.(4) 溫度測量點不少于3。(5) 溫度采集間隔不底于10分鐘。(6) 能顯示一天實時溫度變化曲線。2。3設計步驟概述實習制作大概步驟如圖1準備好要用的器件進行焊接設計電路Delphi程序設計檢測完善電路完整調試完善研究課題的要求程序檢測完善圖13. 電路的設計3。1硬件電路設計在硬件電路設計時,應著重考慮電子器件的供電方式,以及對器件的限壓和限流保護。因為本次設計要求利用單總線技術,所以可以考慮

5、使用寄生供電方式.設計的電路圖如下.圖2 基于單總線的溫度實時監(jiān)控系統(tǒng)硬件電路總圖圖3 基于單總線的溫度實時監(jiān)控系統(tǒng)硬件電路原理圖3.2軟件設計3。2。1設計窗體本次設計要求軟件的可視化窗體中包含實時溫度顯示、數(shù)據(jù)記錄、存儲管理和ROM數(shù)據(jù),并且能將測得的數(shù)據(jù)保存到指定的數(shù)據(jù)庫中。窗體界面如下。圖4 窗體界面實時溫度顯示中可以看到當前室溫,并且可以顯示攝氏溫度和華氏溫度。數(shù)據(jù)記錄包含溫度曲線和溫度日志,可以顯示一天內的溫度變化曲線。存儲管理和ROM數(shù)據(jù)用來對數(shù)據(jù)庫中已經(jīng)保存的溫度數(shù)據(jù)進行管理,如刪除、轉移等操作。3。2。2軟件編程本系統(tǒng)軟件部分采用Delphi來實現(xiàn)初始化、數(shù)據(jù)采集處理、溫度報

6、表管理,其主程序的流程圖見圖5.圖5 主程序流程圖本系統(tǒng)軟件部分共分為3個部分,分別是:1)初始化程序。a設置串行通信波特率;b串行通訊方式的初始化;c對TO,T1兩個計數(shù)器的初始化;d中斷控制程序的初始化.此外,還負責從E2PROM 中調出以前的采樣參數(shù),使器件能夠以它采樣溫度數(shù)據(jù)。2)當監(jiān)控到ONTIME1和NTIME2標記時作相應溫度的存儲、轉換、發(fā)送處理。ONTIME1和NTIME2的標記主要有定時電路決定,當?shù)竭_采樣間隔時,做出相應的處理。3)采用動態(tài)顯示方式即時顯示溫度,以節(jié)省電路規(guī)模,使得整個系統(tǒng)的體積變小。4. 元器件的選擇4.1主要元器件知識4.1.1 DS18B20DS18

7、B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO92小體積封裝形式;溫度測量范圍為55125,可編程為9位12位A/D轉換精度,測溫分辨率可達0。0625,被測溫度用符號擴展的16位數(shù)字量方式串行輸出;其工作電源既可在遠端引入,也可采用寄生電源方式產(chǎn)生;多個DS18B20可以并聯(lián)到3根或2根線上,只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路.以上特點使DS18B20非常適用于遠距離多點溫度檢測系統(tǒng)。4。1。1.1 DS18B20的內部結構DS18B20內部結構如圖5所示,主要由4部分組成:64位ROM、溫度傳感器、非揮發(fā)的溫度

8、報警觸發(fā)器TH和TL、配置寄存器.DS18B20的管腳排列如圖6所示,DQ為數(shù)字信號輸入輸出端;GND為電源地;VDD為外接供電電源輸入端,在寄生電源接線方式時接地,見圖7。圖6DS18B20的內部結構圖7DS18B20的管腳排列ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼,每個DS18B20的64位序列號均不相同。64位ROM的排的循環(huán)冗余校驗碼(CRC=X8X5X41)。ROM的作用是使每一個DS18B20都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個DS18B20的目的.DS18B20中的溫度傳感器完成對溫度的測量,用16位符號擴展的二進制補碼讀數(shù)形式

9、提供,以0。0625/LSB形式表達,其中S為符號位。例如125的數(shù)字輸出為07D0H,25.0625的數(shù)字輸出為0191H,25。0625的數(shù)字輸出為FF6FH,55的數(shù)字輸出為FC90H。 高低溫報警觸發(fā)器TH和TL、配置寄存器均由一個字節(jié)的EEPROM組成,使用一個存儲器功能命令可對TH、TL或配置寄存器寫入。其中配置寄存器的格式如下:0R1R011111MSBLSBR1、R0決定溫度轉換的精度位數(shù):R1R0=“00”,9位精度,最大轉換時間為93。75ms;R1R0=“01”,10位精度,最大轉換時間為187。5ms;R1R0=“10",11位精度,最大轉換時間為375ms;

10、R1R0=“11”,12位精度,最大轉換時間為750ms;未編程時默認為12位精度。高速暫存器是一個9字節(jié)的存儲器。開始兩個字節(jié)包含被測溫度的數(shù)字量信息;第3、4、5字節(jié)分別是TH、TL、配置寄存器的臨時拷貝,每一次上電復位時被刷新;第6、7、8字節(jié)未用,表現(xiàn)為全邏輯1;第9字節(jié)讀出的是前面所有8個字節(jié)的CRC碼,可用來保證通信正確。4。1。1.2DS18B20的工作時序DS18B20的一線工作協(xié)議流程是:初始化ROM操作指令存儲器操作指令數(shù)據(jù)傳輸。其工作時序包括初始化時序、寫時序和讀時序,如圖8(a)(b)(c)所示。(a)初始化時序(b)寫時序(c)讀時序圖8DS18B20的工作時序圖4.

11、1。1。3DS18B20與微處理器的連接DS18B20與微處理器的連接如下圖9所示.(a)寄生電源工作方式(b)外接電源工作方式圖9DS18B20與微處理器的典型連接圖4。1。2串口UART/RS232至單總線通信協(xié)議的轉接橋DS2480B4。1。2。1 DS2480B主要特性串口UART/RS232至單總線通信協(xié)議的轉接橋,可直接連到UART和5V RS232系統(tǒng)中, 支持Dallas全系列單總線器件,如數(shù)字溫度傳感器DS18B20、A/D轉換器DS2450等;將主機從單總線時序控制中解脫出來,提供規(guī)范的、靈活的和強驅動的單總線定時;支持標準UART通信,支持9。6(默認)、19。2、57.

12、6和115.2 kbps速率;具有較強的總線驅動能力,通信距離可達300 m;可編程下拉擺率控制和有源上拉,工作范圍 5 V,40 +85 ,8引腳SOIC封裝.4。1.2.2管腳圖及引腳說明1234875RXDTXDPOLVPPGND1-WNCVDD圖10DS2480B的封裝和引腳DS2480B為8腳貼片式封裝,如圖10所示。引腳功能如表1所列:表1 引腳功能說明引腳號引腳名稱引腳功能1GND地線21-W單總線輸入輸出端3NC懸空4VDD4。55.5V電壓5VPPEPROM編程電壓6POLRXD/TXD選擇端7TXD發(fā)送端8RXD接收端DS2480B工作原理框圖如圖11所示。圖11DS248

13、0B工作原理框圖4.1.2.3 DS2480B與RS232的接口技術DS2480B與RS232的接口如圖12所示.圖12DS2480B與RS232的接口圖 4。2元件清單表2 元件清單序號元件個數(shù)1PC機串行口UART/RS2321 個2轉接橋DS2480B1 個3數(shù)字溫度傳感器DS18B201 個4電容U07HF1 個5穩(wěn)壓管2 個6二極管M72 個7電路板XF071 個5. 學習心得通過這次專業(yè)課程設計,我對本專業(yè)的理論知識和動手操作能力都有了大幅度的提高。首先從研究課題的要求和任務開始,剛拿到“基于單總線的溫度實時監(jiān)控系統(tǒng)”這個設計題目時,完全是不知所措,不知道從那下手。經(jīng)過王老師和李老

14、師的耐心講解后,才有點頭緒.課后通過自己查資料和老師所給的任務書與指導書才真正開始搞懂題目,并且去研究它.根據(jù)指導書上的要求和指示,我們小組設計出了基于單總線的溫度實時監(jiān)控系統(tǒng)硬件電路。接下來就要依據(jù)設計好的電路圖,進行硬件的焊接。說到焊接,我并不陌生,在大二的時候就焊接過收音機,在專業(yè)綜合實習時,又焊接過紅外線感應開關。焊接最需要注意的是焊接的溫度和時間,焊接時要使電烙鐵的溫度高于焊錫,但是不能太高,以烙鐵接頭的松香剛剛冒煙為好,焊接的時間不能太短,因為那樣焊點的溫度太低,焊點融化不充分,焊點粗糙容易造成虛焊,而焊接時間長,焊錫容易流淌,使元件過熱,容易損壞,或者造成焊接短路現(xiàn)象。在軟件設計

15、與編程的環(huán)節(jié),要求用自己熟悉的計算機語言編寫溫度實時監(jiān)控系統(tǒng)軟件。在設計之前我也考慮過關于選用什么語言的問題,在大學生涯中,我學過了C語言,Java語言和Delphi語言,在去年的計算機課程設計中,我曾用Delphi語言編寫過一個高校學生選課成績管理系統(tǒng),對Delphi言語的應用相對靈活些,所以我決定用Delphi語言編寫程序。在本次課程設計的過程中,我還發(fā)現(xiàn)基于DS18B20數(shù)字溫度傳感器構成的實時監(jiān)控系統(tǒng)確實具有精度高、抗干擾能力強、電路簡單等諸多優(yōu)點.相比之下,傳統(tǒng)的溫度檢測系統(tǒng)采用熱敏電阻等溫度敏感元件,熱敏電阻成本低,但需要后續(xù)信號調理、AD轉換處理電路才能將溫度信號轉換成數(shù)字信號,

16、不但電路復雜,而且熱敏電阻的可靠性相對較差,測量溫度的精度差,很難保證熱敏電阻的一致性和線性。通過對這個專業(yè)課程設計的學習,為我們掌握單總線的溫度采集電路,單總線和PC機串行口的接口電路的開發(fā)打下了堅實的基礎,還使我掌握了設計復雜電路和裝配技能,培養(yǎng)了我理論聯(lián)系實際的能力,提高了我分析問題和解決問題的能力,增強了獨立工作的能力。其中感觸最深的便是實踐聯(lián)系理論的重要性,當遇到實際問題時,只要認真思考,用所學的知識,再一步一步探索,是完全可以解決遇到的一般問題的。在實習過成中,要時刻保持清醒的頭腦,出現(xiàn)錯誤,一定要認真的冷靜的去檢查分析錯誤,不能草草了事,這樣做出來的課程設計才能達到它真正的效果,

17、為我們以后步入社會做好充分的準備。6. 參考文獻1 DS18B20Programmable Resolution1Wire Digital Thermometer2 DS2480BSerial 1Wire LineDriver with Load Sensor3 左冬紅,謝瑞和。實現(xiàn)單總線搜索ROM命令的一種算法 4 李朝青,單片機原理及接口技術(簡明修訂版)M。 19985 李廣弟。單片機基礎M。 1994 6 沙占友等.智能化集成溫度傳感器原理與應用。 20027 閻石.數(shù)字電子技術基礎(第三版)M. 1989附:源程序清單- TEMPDL32 : This utility uses TM

18、EX to view a read the temperature from a DS18B20。 It requires the 32Bit Windows TMEX drivers to be present。 Compiler : Borland Delphi 5。0 procedure TForm1。FormCreate(Sender: Tobject;Var ztbuf : array0。200 of Char; Typebuf : array 0。.200 of Char; i,k,RetValue : smallint; RetStr : array0。.200 of Char;

19、 SetupDone: Boolean; PortNum, PortType : smallint;begindieer :=false; SetupDone := FALSE; TMSetup not done yet Label4.Caption := ''; Read default Port Number and Port Type from registry RetValue := TMReadDefaultPort(PortNum, PortType);if (RetValue < 1) thenTMReadDefaultPort(PortNum, PortT

20、ype) begin ShowMessage(Please set port first); Halt; end else begin read the tmex version and type version Get_Version(ztbuf); Label1.Caption := StrPas(ztbuf); TMGetTypeVersion(PortType,Typebuf); Label2。Caption := StrPas(Typebuf); attemp to get a session Done := False; Repeat SHandle := TMExtendedSt

21、artSession(PortNum,PortType,NIL); If (SHandle 0) Then begin if (TMSetup(SHandle) = 1) then The device that will be found is Temperature Device DS18B20, so Family Type is set to $28 FindFirstFamily($28,SHandle) else begin TMEndSession(SHandle); ShowMessage('Fail to setup MicroLan!); Halt; end; en

22、d else begin if (SHandle 0 ) then Begin ShowMessage(The Default Port Type does not have a driver !); Halt; end; end; Release control back to window Application。ProcessMessages; until (Done); Done := False; Repeat SHandle := TMExtendedStartSession(PortNum,PortType,NIL); If (SHandle > 0) Then begin

23、 if (TMSetup(SHandle) = 1) then The device that will be found is Temperature Device DS18B20, so Family Type is set to $28 FindSecondFamily(28,SHandle) else begin TMEndSession(SHandle); ShowMessage(Fail to setup MicroLan?。?; Halt; end; end else begin if (SHandle 0 ) then Begin ShowMessage(The Default

24、Port Type does not have a driver !); Halt; end; end; Release control back to window Application。ProcessMessages; until (Done); label18。Caption :=keke1; label19。caption :=keke2; table1。Active :=true; if table1.CanModify then begin table1.Append; table1.Fields0。AsDateTime :=now; table1。Fields1.AsStrin

25、g :=floattostr(diwei1); table1.Fields2。AsFloat :=shangxian1; table1。Fields3.AsFloat :=xiaxian1; table1。Fields4。AsString :=floattostr(diwei2); table1。Fields5.AsFloat :=shangxian2; table1.Fields6。AsFloat:=xiaxian2; table1。Post; end; end;end;procedure TForm1.FindFirstFamily(family : smallint; SHandle:

26、longint);var i , flag : smallint; romstr : string; rom : array0。.8 of smallint;begin Set up to find the first device with the family family if (TMFamilySearchSetup(SHandle,stateBuf,family ) = 1 ) then begin if (TMNext(SHandle, stateBuf)= 1) then begin Read the rom number by setting rom0 to 0 for rea

27、ding and using TMRom rom0 := 0; TMRom(SHandle,stateBuf,rom); Check if correct type romstr := ' if (family and 7F )= (rom0 and $7F) then begin for i := 7 downto 0 do romstr := romstr + IntToHex(ROMi,2); Label3。caption := Serial ROM ID1 : + romstr; ReadTemperature1(SHandle); end else begin ShowMes

28、sage('There is no Temperature Device on the port'); halt; end; end else begin TMEndSession(SHandle); ShowMessage(There is no Temperature Device on the port); halt; end; end else begin TMEndSession(SHandle); ShowMessage(There is no Temperature Device on the port'); halt; end;end;procedure

29、 TForm1.ReadTemperature1(session_handle : longint);var tsht, i, tmp1 : smallint; cr,cpc, tmpf,tmp : Extended; rbuf : array0。9 of smallint ; st : longint; CRCByte,xiaxianbyte : Byte;begin tmp := 0。00; access the device if (TMAccess(session_handle,StateBuf)= 1) then begin Send the recall E2 command (b

30、y setting B8 to outbyte in TMTouchByte) make sure Scratch is correct TMTouchByte(session_handle, B8); Send the start T command if (TMAccess(session_handle,StateBuf) = 1) then begin Prepare the strong pullup after next TMTouchByte TMOneWireLevel(session_handle,LEVEL_SET,LEVEL_STRONG_PULL_UP, PRIMED_B

31、YTE); Send the conversion command (by setting 44 to outbyte in TMTouchByte) TMTouchByte(session_handle, 44); Sleep for a second st := GetTickCount + 1000; While (GetTickCount st) do TMValidSession(Session_handle); Disable the strong pullup TMOneWireLevel(session_handle, LEVEL_SET,LEVEL_NORMAL,PRIMED

32、_NONE); verify conversion is complete by setting $01 to outbit in TMTouchBit and check the return value with 1 if (TMTouchBit(session_handle,01) = 01) then begin Access device If (TMAccess(session_handle,StateBuf) = 1 ) then begin Send read scratch command by setting $BE to outbyte in TMTouchByte TM

33、TouchByte(session_handle,$BE); CRC8 := 0; Read scratch (setting $FF to outbyte in TMTouchByte) and check crc for each byte for i := 0 to 7 do begin rbufi:= TMTouchByte(session_handle, FF); CRCByte := Byte(rbufi); the byte to run through CRC8 routine CRC8 := TMCRC(1, CRCByte, CRC8, 0); end; Check crc

34、 CRCByte := Byte(TMTouchByte(session_handle, FF); the byte to run through CRC8 routine CRC8 := TMCRC(1, CRCByte, CRC8, 0); if ( CRC8 = 0 ) then begin Calculate the temperarure tsht := rbuf0; if ((rbuf1 and $01)= 1) then tsht := tsht or (256); tmp1 := Round((tsht)/2); tmp := tmp1; cr := rbuf6; cpc :=

35、 rbuf 7; if (rbuf7 0) then tmp := tmp - (0。25) + (cpccr)/cpc; if ((rbuf1 and $F8)= F8) then BEGIN END ELSE BEGIN case (rbuf4 and 60) of 00: begin fenbianlv1 :=9; tmp:=(rbuf1 and 07)16+(rbuf0 and f8)/16; diwei1 :=(rbuf0 and f8)/16; end; 20: begin fenbianlv1 :=10; tmp:=(rbuf1 and $07)*16+(rbuf0 and $f

36、c)/16; diwei1 :=(rbuf0 and fc)/16; end; $40: begin fenbianlv1 :=11; tmp:=(rbuf1 and 07)16+(rbuf0 and $fe)/16; diwei1 :=(rbuf0 and fe)/16; end; 60: begin fenbianlv1 :=12; tmp:=(rbuf1 and 07)*16+rbuf0/16; diwei1 :=rbuf0/16; end; end; END; tmpf := (tmp * 9 )/5 + 32; label4。caption := Current temp1 : +

37、FormatFloat(0.0000',tmp) + ' C or + FormatFloat(0。0000, tmpf) + ' F; keke1 :=FormatFloat(0。0000,tmp); yuanshi1 :=rbuf4; shangxian1 :=rbuf2 and 7f; xiaxianbyte :=rbuf3 and 80; if xiaxianbyte = 1 then xiaxian1 := (rbuf3 and 7f) (1) else xiaxian1 := rbuf3 and 7f; MessageBeep(0); TMEndSessio

38、n(session_handle); Done := True; end; end; end; end; end;end;procedure TForm1。FindSecondFamily(family : smallint; SHandle: longint);var i , flag : smallint; romstr : string; rom : array0。8 of smallint;begin Set up to find the first device with the family family' if (TMFamilySearchSetup(SHandle,s

39、tateBuf,family ) = 1 ) then begin Get first device if (TMNext(SHandle, stateBuf)= 1) then if (TMNext(SHandle, stateBuf)= 1) then begin Read the rom number by setting rom0 to 0 for reading and using TMRom rom0 := 0; TMRom(SHandle,stateBuf,rom); Check if correct type romstr := ' if (family and 7F

40、)= (rom0 and $7F) then begin for i := 7 downto 0 do romstr := romstr + IntToHex(ROMi,2); Label10。caption := 'Serial ROM ID2 : ' + romstr; ReadTemperature2(SHandle); end else begin ShowMessage(There is no Temperature Device on the port); halt; end; end else begin TMEndSession(SHandle); ShowMe

41、ssage('There is no Temperature Device on the port); halt; end else begin TMEndSession(SHandle); ShowMessage(There is no Temperature Device on the port); halt; end; end else begin TMEndSession(SHandle); ShowMessage(There is no Temperature Device on the port'); halt; end;end;procedure TForm1。R

42、eadTemperature2(session_handle : longint);var tsht, i, tmp1 : smallint; cr,cpc, tmpf,tmp : Extended; rbuf : array0。9 of smallint ; st : longint; CRCByte ,xiaxianbyte: Byte;begin tmp := 0。00; access the device if (TMAccess(session_handle,StateBuf)= 1) then begin Send the recall E2 command (by setting

43、 $B8 to outbyte in TMTouchByte) make sure Scratch is correct TMTouchByte(session_handle, $B8); Send the start T command if (TMAccess(session_handle,StateBuf) = 1) then begin Prepare the strong pullup after next TMTouchByte TMOneWireLevel(session_handle,LEVEL_SET,LEVEL_STRONG_PULL_UP, PRIMED_BYTE); S

44、end the conversion command (by setting $44 to outbyte in TMTouchByte) TMTouchByte(session_handle, $44); Sleep for a second st := GetTickCount + 1000; While (GetTickCount < st) do TMValidSession(Session_handle); Disable the strong pullup TMOneWireLevel(session_handle, LEVEL_SET,LEVEL_NORMAL,PRIMED

45、_NONE); verify conversion is complete by setting 01 to outbit in TMTouchBit and check the return value with 1 if (TMTouchBit(session_handle,$01) = 01) then begin Access device If (TMAccess(session_handle,StateBuf) = 1 ) then begin Send read scratch command by setting BE to outbyte in TMTouchByte TMTouchByte(session_handle,$BE); CRC8 := 0; Read scratch (setting FF to outbyte in TMTouchByte) and check crc for each byte for i := 0 to 7 do begin rbufi:= TMTouchByte(session_handle, $FF); CRCByte := Byte(rbufi); the byte to

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論