多通道溫度巡檢系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)說明書_第1頁
多通道溫度巡檢系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)說明書_第2頁
多通道溫度巡檢系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)說明書_第3頁
多通道溫度巡檢系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)說明書_第4頁
多通道溫度巡檢系統(tǒng)設(shè)計(jì)課程設(shè)計(jì)說明書_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、摘 要設(shè)計(jì)一個八路溫度巡檢系統(tǒng),用八路DS18B20溫度傳感器分別檢測外界八個不同地點(diǎn)的溫度信息,通過AT89C51單片機(jī)接收八路溫度傳感器所返回的信息,經(jīng)過單片機(jī)處理后將溫度值和通道數(shù)等信息傳輸?shù)絃CD液晶顯示器進(jìn)行顯示。文中詳細(xì)論述了溫度傳感器DS18B20的工作原理、溫度信息處理過程、溫度顯示過程、系統(tǒng)的硬件設(shè)計(jì)方案以及軟件程序設(shè)計(jì)。關(guān)鍵詞:八路溫度巡檢;DS18B20;AT89C51;LCD目 錄摘 要 I1 緒論 11.1 設(shè)計(jì)任務(wù)及意義.1 1.2 DS18B20溫度檢測原理.12 系統(tǒng)總體方案設(shè)計(jì).52.1 系統(tǒng)總體方案框圖.52.2 各模塊的功能.53 硬件電路的設(shè)計(jì).63.1

2、 溫度檢測電路.63.2 液晶顯示電路.63.2.1 LM016L介紹.63.2.2 LM01與51單片機(jī)的連接.73.3 晶振電路.83.4 復(fù)位電路.83.5 電源電路.94 系統(tǒng)軟件設(shè)計(jì).104.1系統(tǒng)軟件流程圖.104.2程序設(shè)計(jì).104.2.1DS18B20的程序設(shè)計(jì).104.2.2LM017L液晶的程序設(shè)計(jì).114.2.3主程序設(shè)計(jì).125 系統(tǒng)仿真.135.1 仿真電路的設(shè)計(jì).135.2仿真結(jié)果.13總 結(jié).15參 考 文 獻(xiàn).16致 謝.17附錄B 程序清單.191 緒論1.1 設(shè)計(jì)任務(wù)及意義本設(shè)計(jì)實(shí)現(xiàn)八路溫度檢測,要求檢測溫度范圍為-55125攝氏度,用LCD液晶顯示器同時顯

3、示測量溫度值和通道編號,每3秒鐘顯示一路溫度信息。以攝氏度為單位,要求能夠?qū)崿F(xiàn)小數(shù)的顯示。溫度檢測在現(xiàn)實(shí)生活、生產(chǎn)當(dāng)中應(yīng)用比較普遍,而且起著相當(dāng)大的作用,特別是一些工業(yè)的應(yīng)用當(dāng)中,溫度的檢測更是重要的環(huán)節(jié),溫度的檢測和控制直接和安全生產(chǎn)、產(chǎn)品質(zhì)量、生產(chǎn)效率、節(jié)約能源等重大技術(shù)指標(biāo)相聯(lián)系。而多路溫度的檢測在一些范圍比較大的施工場地或者監(jiān)控現(xiàn)場的應(yīng)用更是廣泛,為應(yīng)用者提供了現(xiàn)場多點(diǎn)的實(shí)時環(huán)境溫度信息。1.2 DS18B20溫度檢測原理DS18B20是DALLAS公司生產(chǎn)的單總線式數(shù)字溫度傳感器,它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配處理器等優(yōu)點(diǎn),特別適用于構(gòu)成多點(diǎn)溫度測控系統(tǒng),可直接將溫

4、度轉(zhuǎn)化成串行數(shù)字信號(提供9位二進(jìn)制數(shù)字)給單片機(jī)處理,且在同一總線上可以掛接多個傳感器芯片。它具有3引腳TO-92小體積封裝形式(如圖1.1),測溫范圍為-55+125,可編程為9位12位A/D轉(zhuǎn)換精度,測溫分辨率可達(dá)0.0625,被測溫度用符號擴(kuò)展的16位數(shù)字量方式串行輸出,其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生,多個DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與多個DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。DS18B20的內(nèi)部結(jié)構(gòu):(1)ROM在DS18B20內(nèi)部光刻了一個長度為64-bit的ROM,這個是編碼器件的身份識別標(biāo)

5、志,如下圖所示: 圖1.1 DS18B20 圖1.2 DS18B20的ROM64-bit光刻ROM的排列順序是:開始(最低)8位是產(chǎn)品類型標(biāo)號,對于DS18B20來說就是(28H);接著的48位是器件自身的序列號;最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1).光刻ROM的作用是使每個DS18B20都不相同,這樣可以實(shí)現(xiàn)一根總線上掛接多個DS18B20的目的。對ROM操作的幾種指令:(2)RAM高速暫存存儲器由9個字節(jié)組成,包含了8個連續(xù)字節(jié),前面兩個字節(jié)是測得的溫度信息,第一個字節(jié)的內(nèi)容是溫度的低8位,第二個字節(jié)是溫度的高8位。第三個和第四個字節(jié)是溫度高限TH和溫度底限

6、TL的暫存區(qū),第五個字節(jié)是配置寄存器暫存區(qū),第6、7、8、9字節(jié)是系統(tǒng)保留用,相當(dāng)于DS18B20的運(yùn)算內(nèi)存,第9個字節(jié)是冗余校驗(yàn)字節(jié)。RAM內(nèi)部字節(jié)分布如下表所示:表1-1 DS18B20 RAM字節(jié)分布對RAM操作的幾種指令:(3)EPROMEEPROM只有三個字節(jié),和RAM的第2、3、4字節(jié)的內(nèi)容相對應(yīng),它的作用就是存儲RAM第2、3、4字節(jié)的內(nèi)容,以使這些數(shù)據(jù)在掉電后不丟失。可能通過幾條命令將RAM的該3個字節(jié)內(nèi)容復(fù)制到EEPROM或從EEPROM將該3個字節(jié)內(nèi)容復(fù)制到RAM的第2、3、4字節(jié)去。因?yàn)槲覀儚耐獠肯敫膶憟?bào)警值和器件的設(shè)置都是只對RAM進(jìn)行操作的。要保存這些設(shè)置后的數(shù)據(jù)就還

7、要用相應(yīng)的命令將RAM的數(shù)據(jù)復(fù)制到EEPROM去。DS18B20是單總線器件,通訊協(xié)議包括幾種單線信號類型:復(fù)位脈沖、存在脈沖、寫0、寫1、讀0、讀1。所有這些信號,除存在脈沖外,其余都是由總線控制器(單片機(jī))發(fā)出的。根據(jù)DS18B20的通訊協(xié)議,主機(jī)(單片機(jī))控制DS18B20完成一次操作經(jīng)過三個步驟:要對DS18B20進(jìn)行復(fù)位操作;復(fù)位成功后發(fā)送一條ROM指令;最后發(fā)送RAM指令,這樣才能對DS18B20進(jìn)行預(yù)定的操作。2 系統(tǒng)總體方案設(shè)計(jì)系統(tǒng)采用一片AT89C51芯片、八個DS18B20溫度傳感器和一個LCD液晶顯示器,將八個DS18B20并聯(lián)在單片機(jī)的同一個I/O口上,這樣可以達(dá)到節(jié)約

8、I/O的目的,至于單片機(jī)怎樣分別去讀取每一個溫度傳感器的溫度信息,則由軟件部分考慮。2.1 系統(tǒng)總體方案框圖八路溫度巡檢系統(tǒng)的總體設(shè)計(jì)框圖如圖2.1所示:圖2.1八路溫度巡檢系統(tǒng)框圖2.2 各模塊的功能溫度傳感器DS18B20可實(shí)施對外界溫度的檢測,檢測到的溫度會保存在自身的ROM里。而對DS18B20的讀寫控制操作都是通過一根DQ信號線來完成的,對它的操作要嚴(yán)格按照時序進(jìn)行,這使得對它的編程增加了難度。而同時正是DS18B20的一線性,使它可以輕松地在AT89C51的控制下組成八路檢測系統(tǒng)。AT89C51檢測到溫度信息后對其進(jìn)行處理,還原其真實(shí)溫度,并將其顯示在LCD上。LCD液晶顯示器主要

9、負(fù)責(zé)顯示從單片機(jī)處所傳來的溫度值和通道數(shù)等信息,并且將八路的信息進(jìn)行循環(huán)顯示。3 硬件電路的設(shè)計(jì)3.1 溫度檢測電路八個DS18B20與51單片機(jī)的電路連接入圖3.1所示:圖3.1 溫度檢測電路連線圖八個DS18B20的DQ口都同時并聯(lián)在單片機(jī)的P1.0口上。3.2 液晶顯示電路3.2.1 LM017L介紹字符型LM017L是一款能顯示兩行且每行能顯示32個字符的液晶顯示屏。通常采用日立公司生產(chǎn)的控制器HD44780作為LCD的控制芯片。凡是是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780寫的控制程序可以方便地應(yīng)用于市面上大部分的字符型液晶。LM017的外形如圖3.2所

10、示:圖3.2 LM017LLM017L的引腳功能如下表所示:表3-1 LM017L的引腳功能表3.2.2 LM017L與51單片機(jī)的連接LM017L與51單片機(jī)的接口原理圖如圖3.3所示:圖3.3 LM017L與單片機(jī)的連接圖3.3 晶振電路晶振是給單片機(jī)提供工作信號脈沖的,這個脈沖就是單片機(jī)的工作速度,比如12M晶振,單片機(jī)工作速度就是每秒12M,和電腦的CPU概念一樣。當(dāng)然,單片機(jī)的工作頻率是有范圍的,不能太大,一般不能超過24M,不然就會不穩(wěn)定了。 51系列單片機(jī)的時鐘信號通常有兩種電路形式:內(nèi)部振蕩方式和外部震蕩方式。在引腳X1和X2外接晶體振蕩器,就構(gòu)成了內(nèi)部振蕩電路,如圖3.4所示

11、。晶振與單片機(jī)的腳X1和腳X2構(gòu)成的振蕩電路中會產(chǎn)生偕波,這個波對電路的影響不大,但會降低電路的時鐘振蕩器的穩(wěn)定性。為了電路的穩(wěn)定性起見,ATMEL公司建議在晶振的兩引腳處接入兩個10pF50pF的瓷片電容接地來削減偕波對電路的穩(wěn)定性的影響,所以晶振所配的電容在10Pf50pF之間都可以的,沒有什么計(jì)算公式。這兩個電容除了穩(wěn)定振蕩頻率,還可以起到快速起振的作用。晶振常選用頻率為6MHz、12MHz或24MHz的,采用串口時常使用頻率為11.0592MHz的晶振。內(nèi)部振蕩方式所得到的時鐘信號比較穩(wěn)定,應(yīng)用較多。圖3.4 晶振電路3.4 復(fù)位電路單片機(jī)在啟動時都需要復(fù)位,以使CPU及系統(tǒng)各部件處于

12、確定的初始狀態(tài),并從初態(tài)開始工作。89系列單片機(jī)的復(fù)位信號是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當(dāng)系統(tǒng)處于正常工作狀態(tài)時,且振蕩器穩(wěn)定后,如果RST引腳上有一個高電平并維持2個機(jī)器周期(24個振蕩周期)以上,則CPU就可以響應(yīng)并將系統(tǒng)復(fù)位。單片機(jī)系統(tǒng)的復(fù)位方式有:手動按鈕復(fù)位和上電復(fù)位,本設(shè)計(jì)中采用的是手動按鈕復(fù)位方式。手動按鈕復(fù)位需要人為在復(fù)位輸入端RESET上加入高電平。一般采用的辦法是在RESET端和正電源Vcc之間接一個按鈕。當(dāng)人為按下按鈕時,則Vcc的+5V電平就會直接加到RESET端,也可以直接在另一端接一個+5V電源。手動按鈕復(fù)位的電路如3.5所示。由于人的動作再快也會使

13、按鈕保持接通達(dá)數(shù)十毫秒,所以,完全能夠滿足復(fù)位的時間要求。圖3.5 復(fù)位電路3.5 電源電路在本系統(tǒng)中,有很多芯片都需要電源,所以需要設(shè)計(jì)一個電源模塊。電源電路原理圖如圖3.6所示。220V的交流電經(jīng)變壓器T1降壓后,得到+9V的交流電,再經(jīng)過橋式整流和電容濾波的作用,最終得到+5V的直流電,為系統(tǒng)提供電源。三端穩(wěn)壓器7805在電路中起穩(wěn)壓作用,交流電經(jīng)整流濾波后,由三端穩(wěn)壓器穩(wěn)壓后,輸出穩(wěn)定的直流電。圖3.6 電源電路4 系統(tǒng)軟件設(shè)計(jì)本次設(shè)計(jì)采用的編程語言是C51語言,開發(fā)工具是Keil Vision4版本。 4.1 系統(tǒng)軟件流程圖系統(tǒng)的軟件流程圖如下圖所示:圖4.1 系統(tǒng)軟件流程圖4.2

14、程序設(shè)計(jì)4.2.1 DS18B20的程序設(shè)計(jì)DS18B20的程序中主要包含以下函數(shù):extern void ds18b20_init(void); /初始化extern unsigned char ds18b20_readdata(void); /讀DS18b20的溫度數(shù)據(jù)extern void ds18b20_writecommand(unsigned char command);/向DS18B20寫命令字extern void temperature_process(unsigned char,unsigned char); /數(shù)值處理,把讀回的溫度分解成整數(shù)和小數(shù)部分,并轉(zhuǎn)換成ASIC碼

15、 /存放在xiaoshu_temp5,zhen_temp4; extern unsigned char *read_rom(void); /讀DS18b20中ROMextern bit match_rom(unsigned char *rom); /匹配ROM具體程序內(nèi)容見附錄B中。4.2.2 LM017L液晶的程序設(shè)計(jì)LM017L的程序中主要包含以下函數(shù):/*功能:寫LCD函數(shù) */void Lcd_Write(bit style,unsigned char input);/*功能:LCD初始化 */void Lcd_Init(void);/*功能:顯示位置設(shè)置 *參數(shù):x-行;y-列 */

16、void GotoXY(unsigned char x,unsigned char y);/*功能:LCD顯示函數(shù) *參數(shù):str-要顯示的字符串指針 */void Print(unsigned char *str);void print_char(uchar );/*功能:LCD清屏函數(shù) void ClrScreen(void);具體程序內(nèi)容見附錄B中。4.2.3 主程序設(shè)計(jì)在主程序中,實(shí)現(xiàn)了對溫度的巡檢,并把實(shí)時測到的溫度顯示在液晶顯示屏上,在很多領(lǐng)域還是比較實(shí)用的。每一片DS18B20都有各自的固定的序列號,在仿真中,事先設(shè)定好各個DS18B20的序列號,將其寫進(jìn)程序中,依次進(jìn)行匹配,從

17、而實(shí)現(xiàn)巡檢。主程序具體內(nèi)容見附錄B中。5 系統(tǒng)仿真5.1 仿真電路的設(shè)計(jì)用Proteus軟件設(shè)計(jì)的方針電路圖如下圖所示:圖5.1 Proteus仿真電路5.2 仿真結(jié)果在Keil中編譯程序直至通過,生成HEX文件,將該HEX文件載入Proteus中的AT89C51芯片中,設(shè)置晶振為12MHz,運(yùn)行仿真,結(jié)果如下圖所示: 圖5.2 Proteus仿真結(jié)果總 結(jié) (1)本次設(shè)計(jì)完成了要求的基本的功能,實(shí)現(xiàn)了八路溫度傳感器的實(shí)時巡檢,但在軟件的設(shè)計(jì)方面存在占用內(nèi)存空間較大,程序的冗余度較大的問題。這是由于作者對C語言的程序設(shè)計(jì)不夠熟練,在設(shè)計(jì)時,沒有能夠采用一些更為靈活的方法使程序簡化所致。隨著以后

18、的學(xué)習(xí),相信在這一方面可以有一個較大的長進(jìn),實(shí)現(xiàn)本設(shè)計(jì)的程序優(yōu)化。(2)由于作者沒有相關(guān)的軟硬件聯(lián)合設(shè)計(jì)方面的經(jīng)驗(yàn),致使在本設(shè)計(jì)進(jìn)行過程中,產(chǎn)生以軟件設(shè)計(jì)為主,而忽略硬件的思維,在設(shè)計(jì)時浪費(fèi)了不少時間。后來隨著相關(guān)知識的深入,慢慢調(diào)整了設(shè)計(jì)理念,開始以硬件為先,軟件為硬件服務(wù)的方法設(shè)計(jì)。這使得設(shè)計(jì)的進(jìn)展加快了,同時使得硬件的設(shè)計(jì)更為簡化,更易懂。 (3)在此次設(shè)計(jì)用一個I/O同時并聯(lián)8個DS18B20,這樣一來,導(dǎo)致軟件程序的編寫更加復(fù)雜,耗費(fèi)了較多的時間和精力。參 考 文 獻(xiàn)1 黃惟公、鄧成中、王燕,單片機(jī)原理與應(yīng)用技術(shù),西安電子科技大學(xué)出版社,20072 黃惟公、鄧成中,單片機(jī)原理與接口技

19、術(shù)(C51版),西華大學(xué)機(jī)械工程與自動化學(xué)院,20113 戴蓉、游鳳荷、 周景霞,由單片機(jī)和多片DS1820組成的多點(diǎn)溫度測控系統(tǒng),國外電子元器件,20014 趙建領(lǐng),Protel電路設(shè)計(jì)與制版寶典,電子工業(yè)出版社,20075 郭偉、潘巍,基于單片機(jī)八路溫度巡檢系統(tǒng)設(shè)計(jì),實(shí)踐與探索,20116 周四清、羅雪峰、何獻(xiàn)華,基于DS18B20 的八路溫度巡檢儀的設(shè)計(jì)與應(yīng)用,科技創(chuàng)新導(dǎo)報(bào),2008 8 李玉峰、倪虹霞,MCS-51系列單片機(jī)原理與接口技術(shù),人民郵電出版社,2004致 謝 在這次課程設(shè)計(jì)的過程中,我獲益匪淺,學(xué)到了很多以前不知道的新知識。首先我要感謝我的指導(dǎo)老師在此次課程設(shè)計(jì)上給予我的指

20、導(dǎo)、讓我能夠很快的完成這次的設(shè)計(jì),少走了很多的彎路,這是我能順利完成這次設(shè)計(jì)并撰寫好說明書的主要原因,更重要的是老師幫我解決了許多技術(shù)上的難題,讓我能把系統(tǒng)做得更加完善,但由于我的能力水平有限,在這次的設(shè)計(jì)中還存在許多的不足,希望老師能夠幫我指出來。在此期間,我不僅讓曾經(jīng)學(xué)過的專業(yè)知識得到了實(shí)踐,還學(xué)到了許多新的知識,而且也開闊了視野,提高了自己的設(shè)計(jì)能力。其次,我要感謝和我同實(shí)驗(yàn)室的師兄,以及那些幫助過我的同學(xué),他們也為我解決了不少我不太明白的設(shè)計(jì)上的難題。同時也感謝學(xué)院為我提供良好的做設(shè)計(jì)的環(huán)境,此次的親身設(shè)計(jì)經(jīng)歷讓我永生難忘。最后再一次感謝所有在設(shè)計(jì)中曾經(jīng)幫助過我的良師益友和同學(xué)!附錄A

21、 八路溫度巡檢系統(tǒng)電路原理圖附錄B 程序清單主程序如下:#include "lcd1602.h"#include "ds18b20.h"unsigned char temp5;uchar ds18b20_num18=0xfd,0x00,0x00,0x00,0xb8,0xc5,0x45,0x28;/第1路溫度序列號uchar ds18b20_num28=0x8e,0x00,0x00,0x00,0xb8,0xc5,0x30,0x28;/第2路溫度序列號 uchar ds18b20_num38=0xb9,0x00,0x00,0x00,0xb8,0xc5,0x3

22、1,0x28;/第3路溫度序列號uchar ds18b20_num48=0xe0,0x00,0x00,0x00,0xb8,0xc5,0x32,0x28;/第4路溫度序列號uchar ds18b20_num58=0xd7,0x00,0x00,0x00,0xb8,0xc5,0x33,0x28/第5路溫度序列號;uchar ds18b20_num68=0x52,0x00,0x00,0x00,0xb8,0xc5,0x34,0x28;/第6路溫度序列號uchar ds18b20_num78=0x65,0x00,0x00,0x00,0xb8,0xc5,0x35,0x28;/第7路溫度序列號uchar ds

23、18b20_num88=0x3c,0x00,0x00,0x00,0xb8,0xc5,0x36,0x28;/第8路溫度序列號void delay(unsigned int time) unsigned int i,j;for(i=0;i<time;i+)for(j=0;j<200;j+);void main(void) uchar i;unsigned char a3=0xdf,'C','0' char *str1="1:"char *str2="2:"char *str3="3:"char

24、*str4="4:" Lcd_Init(); ClrScreen();dot_dis=1; while(1) /*The first page.*/ ClrScreen();ds18b20_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44);delay(500);match_rom(ds18b20_num1); /匹配第一路 ds18b20_writecommand(0xbe); for(i=0;i<2;i+) tempi=ds18b20_readdata(); temperature_proc

25、ess(temp0,temp1);GotoXY(12,0);Print(a); GotoXY(29,0); Print(a);GotoXY(12,1); Print(a);GotoXY(29,1); Print(a);GotoXY(2,0);Print(str1);if(!flag) /正Print(zhen_temp);if(dot_dis)Print(".");Print(xiaoshu_temp);else /負(fù) Print("-");Print(zhen_temp);if(dot_dis)Print(".");Print(xi

26、aoshu_temp); ds18b20_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44);delay(500);match_rom(ds18b20_num2); /匹配第二路 ds18b20_writecommand(0xbe); for(i=0;i<2;i+) tempi=ds18b20_readdata(); temperature_process(temp0,temp1);GotoXY(19,0);Print(str2);if(!flag) /正Print(zhen_temp);if(dot_dis)Pr

27、int(".");Print(xiaoshu_temp);else /負(fù)Print("-");Print(zhen_temp);if(dot_dis)Print(".");Print(xiaoshu_temp); ds18b20_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44);delay(500);match_rom(ds18b20_num3); /匹配第三路 ds18b20_writecommand(0xbe); for(i=0;i<2;i+) te

28、mpi=ds18b20_readdata(); temperature_process(temp0,temp1);GotoXY(2,1);Print(str3);if(!flag) /正Print(zhen_temp);if(dot_dis)Print(".");Print(xiaoshu_temp);else /負(fù)Print("-");Print(zhen_temp);if(dot_dis)Print(".");Print(xiaoshu_temp); ds18b20_init(); ds18b20_writecommand(0xc

29、c); ds18b20_writecommand(0x44);delay(500);match_rom(ds18b20_num4); /匹配第四路 ds18b20_writecommand(0xbe); for(i=0;i<2;i+) tempi=ds18b20_readdata(); temperature_process(temp0,temp1);GotoXY(19,1);Print(str4);if(!flag) /正Print(zhen_temp);if(dot_dis)Print(".");Print(xiaoshu_temp);else /負(fù)Print(&

30、quot;-");Print(zhen_temp);if(dot_dis)Print(".");Print(xiaoshu_temp); delay(1000); ClrScreen(); ds18b20_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44);delay(500);match_rom(ds18b20_num5); /匹配第五路 ds18b20_writecommand(0xbe); for(i=0;i<2;i+) tempi=ds18b20_readdata(); tem

31、perature_process(temp0,temp1);GotoXY(12,0);Print(a); GotoXY(29,0); Print(a);GotoXY(12,1); Print(a);GotoXY(29,1); Print(a);GotoXY(2,0);Print("5:");if(!flag) /正Print(zhen_temp);if(dot_dis)Print(".");Print(xiaoshu_temp);else /負(fù) Print("-");Print(zhen_temp);if(dot_dis)Print(

32、".");Print(xiaoshu_temp); ds18b20_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44);delay(500);match_rom(ds18b20_num6); /匹配第六路 ds18b20_writecommand(0xbe); for(i=0;i<2;i+) tempi=ds18b20_readdata(); temperature_process(temp0,temp1);GotoXY(19,0);Print("6:");if(!flag)

33、 /正Print(zhen_temp);if(dot_dis)Print(".");Print(xiaoshu_temp);else /負(fù)Print("-");Print(zhen_temp);if(dot_dis)Print(".");Print(xiaoshu_temp); ds18b20_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44);delay(500);match_rom(ds18b20_num7); /匹配第七路 ds18b20_writecom

34、mand(0xbe); for(i=0;i<2;i+) tempi=ds18b20_readdata(); temperature_process(temp0,temp1);GotoXY(2,1);Print("7:");if(!flag) /正Print(zhen_temp);if(dot_dis)Print(".");Print(xiaoshu_temp);else /負(fù)Print("-");Print(zhen_temp);if(dot_dis)Print(".");Print(xiaoshu_temp

35、); ds18b20_init(); ds18b20_writecommand(0xcc); ds18b20_writecommand(0x44);delay(500);match_rom(ds18b20_num8); /匹配第八路 ds18b20_writecommand(0xbe); for(i=0;i<2;i+) tempi=ds18b20_readdata(); temperature_process(temp0,temp1);GotoXY(19,1);Print("8:");if(!flag) /正Print(zhen_temp);if(dot_dis)Pr

36、int(".");Print(xiaoshu_temp);else /負(fù)Print("-");Print(zhen_temp);if(dot_dis)Print(".");Print(xiaoshu_temp); delay(1000); while(1); /*lcd1602.h頭文件 *功能LCD1602驅(qū)動函數(shù)的申明 *創(chuàng)建人:xingyuegu *創(chuàng)建日期:2006-7-13 *版本:1.0 */#ifndef _LCD1602_H_#define _LCD1602_H_#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int/*接口定義*/sbit LcdRs =P20;sbit LcdRw =P21;sbit LcdEn =P22;sfr DBPo

溫馨提示

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

評論

0/150

提交評論