版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1.1概述5匍勿、7附本科畢業(yè)論文溫度與液位控制系統(tǒng)設(shè)計(jì)二級學(xué)院機(jī)械與電子工程學(xué)院專業(yè)通信工程年級2010 級學(xué)號學(xué)生姓名指導(dǎo)教師職稱講師完成時間2010年03月31日獨(dú)創(chuàng)性聲明本人鄭重聲明:所呈交的畢業(yè)論文(設(shè)計(jì))是本人在指導(dǎo)老師指導(dǎo)下取得 的研究成果。除了文中特別加以注釋和致謝的地方外,論文(設(shè)計(jì))中不包含 其他人已經(jīng)發(fā)表或撰寫的研究成果。與本研究成果相關(guān)的所有人所做出的任何 貢獻(xiàn)均已在論文(設(shè)計(jì))中作了明確的說明并表示了謝意。簽名:年月日授權(quán)聲明本人完全理解賀州學(xué)院有關(guān)保留、使用本科生畢業(yè)論文(設(shè)計(jì))的規(guī)定, 即:學(xué)院有權(quán)保留并向國家有關(guān)部門或機(jī)構(gòu)送交畢業(yè)論文(設(shè)計(jì))的復(fù)印件和 磁盤,允
2、許畢業(yè)論文(設(shè)計(jì))被查閱和借閱。本人授權(quán)賀州學(xué)院可以將畢業(yè)論 文(設(shè)計(jì))的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印 或掃描等復(fù)制手段保存、匯編論文(設(shè)計(jì))。本人論文(設(shè)計(jì))中有原創(chuàng)性數(shù)據(jù)需要保密的部分為:無。簽名:年月日指導(dǎo)教師簽名:年月日目錄摘要:4第一章緒論5 TOC o 1-5 h z 1.2設(shè)計(jì)要求 5 HYPERLINK l bookmark16 o Current Document 第二章元器件介紹及硬件電路設(shè)計(jì) 62.1系統(tǒng)方案概述 62.2電源電路 62.3復(fù)位電路和晶振電路 72.4溫度傳感器 9DS18B20 的主要特性 9DS18B20的外形和內(nèi)部結(jié)構(gòu) 1
3、0DS18B20 工作原理11DS18B20 有4個主要的數(shù)據(jù)部件 122.4.5高速暫存存儲器 142.4.6 DS18B20 工作過程及時序 15超聲波模塊 202.5.1超聲波模塊原理圖 20超聲波模塊主要技術(shù)參數(shù) 212.5.3超聲波模塊工作原理 212.5.4超聲波模塊時序圖 222.5.5實(shí)物規(guī)格22LCD1602 液晶顯示 23LCD1602 指令說明及時序 25LCD1602 的RAM地址映射及標(biāo)準(zhǔn)字庫表 282.6.4LCD1602的一般初始化(復(fù)位)過程 29程序流程圖30蜂鳴器 30驅(qū)動芯片 ULN2003A 32ULN2003A特點(diǎn)及主要應(yīng)用領(lǐng)域 32ULN2003A
4、的典型應(yīng)用33 HYPERLINK l bookmark28 o Current Document 第三章軟件設(shè)計(jì)333.1框架圖 333.2各個部分驅(qū)動代碼簡介 343.2.1超聲波測距驅(qū)動代碼 34LCD1602 驅(qū)動代碼34溫度傳感器DS18b20驅(qū)動代碼37第四章系統(tǒng)的開發(fā)環(huán)境 394.1 C語言簡介4.1.1 C語言開發(fā)環(huán)境3939414.1.2 C語言的程序結(jié)構(gòu) 4.3Keil軟件簡介424.3.1 Keil開發(fā)環(huán)境424.3.2 Keil C51開發(fā)系統(tǒng)基本知識42第五章制作實(shí)物和調(diào)試軟件常見問題及解決方案.435.1實(shí)物問題與解決方案435.1.1單片機(jī)晶振不起振 435.1.
5、2水泵不抽水與蜂鳴器不響.435.2軟件調(diào)試問題及其解決方案445.2.1如何將程序燒到水位控制板上的單片機(jī)中445.2.2一般常用程序的編寫錯誤分析44參考文獻(xiàn).46附錄.47附錄硬件原理圖47附錄三焊接實(shí)物圖48附錄四程序代碼48溫度與液面控制系統(tǒng)設(shè)計(jì)摘要:隨著科技的不斷發(fā)展和人們生活水平的不斷提高,許多智能設(shè)備不斷的出現(xiàn)在人們的日常生活中,而本設(shè)計(jì)也是應(yīng)世而出的。本設(shè)計(jì)的重要組成部分是 電源、溫度傳感器、超聲波傳感器、LCD1602液晶顯示器和驅(qū)動芯片等。本設(shè) 計(jì)實(shí)現(xiàn)的功能是對容器內(nèi)液體的溫度和高度實(shí)時的監(jiān)測,并能在液面過高和過 低實(shí)現(xiàn)報(bào)警和處理,也能在液體溫度過低實(shí)現(xiàn)報(bào)警和液體溫度過高
6、實(shí)現(xiàn)報(bào)警和 處理。本設(shè)計(jì)的應(yīng)用范圍非常廣泛,它不但可以運(yùn)用于液面的控制上,也可以當(dāng) 液體降溫系統(tǒng)使用,如大型發(fā)動機(jī)、大型電機(jī)等一系列需要進(jìn)行降溫處理的設(shè) 備,還可以運(yùn)用于太陽能熱水器上。關(guān)鍵詞:超聲波測距,溫度傳感器,驅(qū)動芯片Desig n of temperature and liquid levelcon trol systemABSTRACTWith the developme nt of scie nee and tech no logy and the con ti nu ous improveme nt of peoples livi ng sta ndards, many sma
7、rt devices appear in peoples daily lives, and this desig n is also out. An importa nt part of this desig n is the power supply, temperature sen sors, Ultrasonic sensors, LCD1602 LCD and driver IC. This design feature is a container of liquid temperature and altitude in real time monitoring and reali
8、zation in high and low liquid level alarm and also in the liquid temperature is too low for alarm and alarm and liquid temperature too high to achieve process ing. This desig n is very wide range of applicati ons, which can be applied not only on the liquid surface con trol, can be either liquid coo
9、li ng system is used, such as large motors, a series of large motor cooli ng equipme nt is n eeded, and can also be used in solar water heaterKeywords: Ultras onic dista nee measureme nt, temperature sen sors, driver IC概述眾所皆知,高溫對于一些設(shè)備的危害是非常嚴(yán)重的,就拿發(fā)動機(jī)來說:發(fā)動機(jī)工作時,氣缸內(nèi)的氣體溫度可高達(dá) 17272527C若不及時冷卻,將造成發(fā)動 機(jī)零部件溫度過
10、高,尤其是直接與高溫氣體接觸的零件,會因受熱膨脹影響正 常的配合間隙,導(dǎo)致運(yùn)動件受阻甚至卡死。此外,高溫還會造成發(fā)動機(jī)零部件 的機(jī)械強(qiáng)度下降,使?jié)櫥褪プ饔玫取K越o某些特殊的發(fā)動機(jī)配備一個降 溫系統(tǒng)是很重要的。目前,中國已成為世界上最大的太陽能熱水器生產(chǎn)國,年產(chǎn)量約為世界各 國之和,已有一百多家太陽能熱水器生產(chǎn)廠,但與之配套的控制器卻遠(yuǎn)遠(yuǎn)落后 于發(fā)達(dá)國家。而且有些還配備了加熱功能,但卻由于溫度的監(jiān)控等一些問題沒 有解決好,造成了很大的電能浪費(fèi)。本設(shè)計(jì)采用8051單片機(jī)控制為主控芯片、配合超聲波測距模塊、溫度傳感 器等裝置可以準(zhǔn)確達(dá)到對液面智能化監(jiān)控和溫度監(jiān)視的目的。設(shè)計(jì)要求:設(shè)計(jì)一個系統(tǒng),
11、能夠檢測容器內(nèi)液體實(shí)時溫度和液面實(shí)時高度,系統(tǒng) 接通電源后,電源綠色指示燈亮起。:用顯示屏準(zhǔn)確顯示出溫度和液面高度。:系統(tǒng)還要求具有溫度、液面過低、過高報(bào)警!報(bào)警狀態(tài)為蜂鳴器響起, 紅色指示燈亮起。警報(bào)解除后指示燈熄滅,蜂鳴器不響。:要求容器內(nèi)液面低于液面最低警報(bào)值時,系統(tǒng)發(fā)出警報(bào)后,系統(tǒng)能為 容器加水,直到達(dá)到液面最高警報(bào)值,系統(tǒng)停止加水;容器液面高于液面最高 警報(bào)值時,發(fā)出警報(bào)后,系統(tǒng)能自動放水,直到達(dá)到最高警報(bào)值,系統(tǒng)停止放 水。:當(dāng)液體溫度過高時,系統(tǒng)能夠智能地控制水的放出和進(jìn)入以換水的形 式來維持水的正常溫度。:系統(tǒng)可以人工自由設(shè)置溫度的過高報(bào)警值和溫度過低警報(bào)值、液面過 高報(bào)警值和
12、液面過低報(bào)警值。第二章元器件介紹及硬件電路設(shè)計(jì)系統(tǒng)方案概述STC89C52圖2.1系統(tǒng)框圖下面對系統(tǒng)進(jìn)行詳細(xì)介紹:傳感器部分,DS18B20溫度傳感器負(fù)責(zé)采集液面的溫度;HC-SR04超聲波測距模塊負(fù)責(zé)測量液面的高度;LCD1602液晶顯示器 用于顯示溫度值、液面值、報(bào)警值;蜂鳴器用于報(bào)警液面、溫度是否超過警報(bào) 值;系統(tǒng)通過溫度傳感器和超聲波測距模塊的測量,將測量得到的值與用戶給 定的值進(jìn)行比較,然后控制水泵的開關(guān)來達(dá)到對容器液面、溫度的控制。電源電路采用三端穩(wěn)壓集成電路LM7805為系統(tǒng)的電源芯片,如圖2.21所示,三端 穩(wěn)壓集成電LM7805電子產(chǎn)品中,常見的三端穩(wěn)壓集成電路有正電壓輸出的
13、 lm78 XX系列和負(fù)電壓輸出的lm79XX系列。顧名思義,三端IC是指這種 穩(wěn)壓用的集成電路,只有三條引腳輸出,分別是輸入端、接地端和輸出端。使用Im78/lm79系列三端穩(wěn)壓IC來組成穩(wěn)壓電源所需的外圍元件極少,電路內(nèi)部 還有過流、過熱及調(diào)整管的保護(hù)電路,使用起來可靠、方便,而且價格便宜。1 輸入* INPUT2 地,GND3 輸;lb OUTPUT圖2.31復(fù)位電路單片機(jī)在啟動時都需要復(fù)位,以使圖2.21三端穩(wěn)壓集成電路 LM7805為系統(tǒng)的電源芯片圖2.22LM7805應(yīng)用電路水泵的工作電流:65MA-500MA LCD1602液晶顯示器的工作電流:2MA-50MA超聲波模塊工作電流
14、:15MA LED工作電流:10MA -20MA經(jīng)分析系統(tǒng)用9v電壓工作時的工作電流小于1000ma 7805符合要求復(fù)位電路和晶振電路I CAP30 FrzIFCAP圖2.32晶振電路CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。STC系列單片機(jī)的復(fù)位信號是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當(dāng)系統(tǒng)處于正常工作狀態(tài)時,且振蕩器穩(wěn)定后,如果RST引腳上有一個高電平并維持2個機(jī)器周期24個振蕩周期以上,則CPU就可以響 應(yīng)并將系統(tǒng)復(fù)位。如圖2.31所示,單片機(jī)系統(tǒng)的復(fù)位方式有:手動按鈕復(fù)位和 上電復(fù)位。手動按鈕復(fù)位需要人為在復(fù)位輸入端RST上加入高電平。一般采用的辦法是在RST
15、端和正電源VCC之間接一個按鈕。當(dāng)人為按下按鈕時,則 VCC 的+5V電平就會直接加到RST端。由于人的動作再快也會使按鈕保持接通達(dá)數(shù) 十毫秒,所以,完全能夠滿足復(fù)位的時間要求。單片機(jī)在啟動時都需要復(fù)位, 以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。STC系列單片機(jī)的復(fù)位信號是從 RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中 的。當(dāng)系統(tǒng)處于正常工作狀態(tài)時,且振蕩器穩(wěn)定后,如果RST引腳上有一個高電平并維持2個機(jī)器周期(24個振蕩周期)以上,則CPU就可以響應(yīng)并將系統(tǒng)復(fù) 位。如圖2.32所示,單片機(jī)系統(tǒng)的復(fù)位方式有:手動按鈕復(fù)位和上電復(fù)位。時 鐘在引腳XTAL1和XTAL2外接晶體振蕩
16、器(簡稱晶振)或陶瓷諧振器,就構(gòu)成了 內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個高增益反相放大器,當(dāng)外接晶振后,就 構(gòu)成了自激振蕩器并產(chǎn)生振蕩時鐘脈沖。內(nèi)部振蕩方式的外部電路。外部振蕩 方式是把外部已有的時鐘信號引入單片機(jī)內(nèi)。這種方式適宜用來使單片機(jī)的時 鐘與外部信號保持同步。外部振蕩方式的外部電路如圖2.32所示。圖中電容器CAP起穩(wěn)定振蕩頻率、快速。溫度傳感器圖2.41溫度傳感器 DS18b20DS18B20圖2.42溫度傳感器 DS18B20的應(yīng)用電路溫度傳感器采用美國Dallas半導(dǎo)體公司的數(shù)字化溫度傳感器 DS18B20采 用導(dǎo)熱性高的密封膠灌封,保證了溫度傳感器的高靈敏性和極小的溫度延遲,
17、 如圖2.41所示。DS18B20 的主要特性 適應(yīng)電壓范圍更寬,電壓范圍:3.05.5V,在寄生電源方式下可由 數(shù)據(jù)線供電獨(dú)特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線 即可實(shí)現(xiàn)微處理器與 DS18B20的雙向通訊DS18B20支持多點(diǎn)組網(wǎng)功能,多個 DS18B20可以并聯(lián)在唯一的三線上, 實(shí)現(xiàn)組網(wǎng)多點(diǎn)測溫DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集 成在形如一只三極管的集成電路內(nèi)(5 )溫范圍55E+ 125C,在-10+85C時精度為土 0.5 C可編程的分辨率為912位,對應(yīng)的可分辨溫度分別為 0.5 C、0.25 C、0.125 C和0.06
18、25 C,可實(shí)現(xiàn)高精度測溫 在9位分辨率時最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分 辨率時最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快 測量結(jié)果直接輸出數(shù)字溫度信號,以一線總線串行傳送給CPU, 同時可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯能力負(fù)壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀,但不能正常工作。DS18B2 0的外形和內(nèi)部結(jié)構(gòu)DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM溫度傳感器、非揮 發(fā)的溫度報(bào)警觸發(fā)器TH和TL、配置寄存器。DS18B20的外形及管腳排列如下圖 2.4.21C1富*a-T#1jsp A =二弓孚I雹乂弋月口&ONIC:ni* 癢t丄/ti
19、Jn -rvnr.t圖2421 DS18B20 外形及引腳排列圖DS18B2 0引腳定義:DQ為數(shù)字信號輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端(在寄生電源接線方式時接地)電源檢測64位ROlff和攜口1氐獄蝮器TL高溫嚼電菱器TH配置寄存器圖2.4.22DS18B20內(nèi)部結(jié)構(gòu)243 DS18B20工作原理DS18B20勺讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù) 因分辨率不同而不同,且溫度轉(zhuǎn)換時的延時時間由2s減為750ms DS18B20測溫原理如圖2.4.3所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用 于產(chǎn)生固定頻率的脈沖信號送給計(jì)數(shù)器 1。高溫
20、度系數(shù)晶振隨溫度變化其振蕩 率明顯改變,所產(chǎn)生的信號作為計(jì)數(shù)器 2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器 被預(yù)置在-55C所對應(yīng)的一個基數(shù)值。計(jì)數(shù)器 1對低溫度系數(shù)晶振產(chǎn)生的脈沖 信號進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1, 計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈 沖信號進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器 2計(jì)數(shù)到0時,停止溫度寄存器值的累 加,此時溫度寄存器中的數(shù)值即為所測溫度。圖2.4.3中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。圖2.4.3 S18B20測溫原理DS18B20有4個主要的數(shù)據(jù)部件(1)光刻RO
21、M中的64位序列號是出廠前被光刻好的,它可以看作是該 DS18B20的地址序列碼。64位光刻ROM勺排列是:開始8位(28H)是產(chǎn)品類 型標(biāo)號,接著的48位是該DS18B20自身的序列號,最后8位是前面56位的循 環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+。光刻ROM的作用是使每一個 DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個DS18B20勺目的(2)DS18B2沖的溫度傳感器可完成對溫度的測量,以 12位轉(zhuǎn)化為例: 用16位符號擴(kuò)展的二進(jìn)制,補(bǔ)碼讀數(shù)形式提供,以 0.0625 C /LSB形式表達(dá), 其中S為符號位。bii4bit I2*I-j-lTl2bit 15ha 14l
22、it Bbit 12bar 11bit 10bit 9InrSSssSS2sbn 7birOLS ByteMb BvteF表2441 DS18B20的溫度值格式表表2.4.41是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩個8比特 的RAM中,二進(jìn)制中的前面5位是符號位,如果測得的溫度大于 0,這5位為0, 只要將測到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于 0,這5位為 1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際溫度。例如+125C的 數(shù)字輸出為07D0H, +25.0625 C的數(shù)字輸出為 0191H, -25.0625 C的數(shù)字輸出 為FF6FH, -55
23、C的數(shù)字輸出為FC90H溫度JJ25 +85 吟.0625 +10J25 +050-0一 5 10. 125 收5. 0625 55St據(jù)輸出(二進(jìn)制)0000 0111 11011*110101 0101 0000Zttl0001 1001 00010000 10W 00100000 000010000000mu巧1 Yooo1111 1111 0101 11101111 1110 0110 11111111 1100 1001數(shù)據(jù)輸出(十k進(jìn)制)07D0h0791斤1OOAZhOOOBhOOOOhFFFBhFF5&卜fcbBiFCBOh表2.4.42 DS18B20溫度數(shù)據(jù)表(3) DS1
24、8B2C溫度傳感器的存儲器:DS18B20溫度傳感器的內(nèi)部存儲器包 括一個高速暫存RAM和一個非易失性的可電擦除和EEPRAM后者存放高溫度和 低溫度觸發(fā)器TH TL和結(jié)構(gòu)寄存器。TMR1ROQED111表2443配置寄存器結(jié)構(gòu)配置寄存器該字節(jié)各位的意義如下:低五位一直都是 1 , TM是測試 模式位,用于設(shè)置DS18B2C在工作模式還是在測試模式。在 DS18B20出廠時該 位被設(shè)置為0,用戶不要去改動。R1和R0用來設(shè)置分辨率,如下表2.4.44所 示:(DS18B20出廠時被設(shè)置為12位)R1R0分辨率溫度最大轉(zhuǎn)換時間009位93. 75ms0110位187.5ms1011位375ms1
25、112位750ms表2.4.44溫度分辨率設(shè)置表高速暫存存儲器高速暫存存儲器由9個字節(jié)組成,其分配如表2.4.51所示。當(dāng)溫度轉(zhuǎn)換命 令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲器的第 0和第1個字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位 在后,數(shù)據(jù)格式如表2.4.41所示。對應(yīng)的溫度計(jì)算:當(dāng)符號位 S=0時,直接將 二進(jìn)制位轉(zhuǎn)換為十進(jìn)制;當(dāng)S=1時,先將補(bǔ)碼變?yōu)樵a,再計(jì)算十進(jìn)制值。表 2.4.42所示是對應(yīng)的一部分溫度值。第九個字節(jié)是冗余檢驗(yàn)字節(jié)。字地址沁反 ft氐位c I S Yiy 1O湍盅反fiHE位MS By Lo1髙溫1;艮値 TH2f氐漏任艮值
26、:ID3四己:上勺:曇昌45G7CRC校瞬值表2451 DS18B20 暫存寄存器分布根據(jù)DS18B2C的通訊協(xié)議,主機(jī)(單片機(jī))控制 DS18B2C完成溫度轉(zhuǎn)換必 須過三個步驟:每一次讀寫之前都要對 DS18B2C進(jìn)行復(fù)位操作,復(fù)位成功后發(fā) 送一條ROM旨令,最后發(fā)送RAM指令,這樣才能對DS18B2C進(jìn)行預(yù)定的操作。 復(fù)位要求主CPU各數(shù)據(jù)線下拉500微秒,然后釋放,當(dāng)DS18B20攵到信號后等 待1660微秒左右,后發(fā)出60240微秒的存在低脈沖,主CPU攵到此信號 表示復(fù)位成功。指令約定代碼功能讀ROM3311讀1於1龍0溫度傳寤帑底珂屮的編碼(即例位地址,符T ROM55H發(fā)出此命令
27、Z后,接著發(fā)出64位ROM編碼.訪問 單總線上與該編碼相對應(yīng)的DS1820使之作出響應(yīng)+ 均F -步對該DS1B2O的讀號件族備搜索ROM0FOH川丁確圧抄接衽冋一總線h. DS1820的個數(shù)和識別 64位RtlM地址*為操件備器件件好帶備*跳過ROM0CCII忽略61位ROM地址,仃接向DSI820發(fā)溫燃變換 命令口適用于中片丄作。告警搜索命令OECH執(zhí)行后貝有溫度超過設(shè)定值上限或卜限的片子才做 出咆應(yīng)a表2.4.52ROM指令表播令約定代碼功能溫?zé)糇儞Q44H啟動頃辺20進(jìn)行溫度轉(zhuǎn)換.12位轉(zhuǎn)換H J750ms(百位93+ 75ms ) *給果存入內(nèi)部勺字節(jié)RAM讀暫存器讀內(nèi)部RA姐屮g字節(jié)
28、的內(nèi)容垢哲存器發(fā)出向內(nèi)部RM1的3、4寧節(jié)寫:.卜限擷度敵據(jù)命 令,緊跟該命令之后,繪傳送兩字節(jié)的數(shù)拯??谥茣捍嫫?811將KAM申第3、4字節(jié)的內(nèi)容缸制到L-LPROM屮重囲EEPHOMOB8H將EEPROM中內(nèi) 容恢姒到RAM中的第3 . 4字節(jié)*讀供屯方武0B4H讀DS182U的供電模式寄生供業(yè)時DS1820監(jiān)送 “ 0 外接屯源供曲DS1820 送1 ” .表2.4.53ROM指令表DS18B20工作過程及時序DS18B2C工作過程一般遵循以下協(xié)議:初始化一一ROM操作命令一一存儲器操作命令一一處理數(shù)據(jù)?初始化:單總線上的所有處理均從初始化序列開始。初始化序列包括總 線主機(jī)發(fā)出一復(fù)位脈
29、沖,接著由從屬器件送出存在脈沖。存在脈沖讓總線控制 器知道DS1820在總線上且已準(zhǔn)備好操作。? ROM操作命令一旦總線主機(jī)檢測到從屬器件的存在,它便可以發(fā)出器件 ROM操乍命令之一。所有ROM操作命令均為8位長。? 這些命令列表如下:Read ROM讀ROM)33h此命令允許總線主機(jī)讀 DS18B20的8位產(chǎn)品系列編碼,唯一的 48位序列號,以及8位的CRC此命令 只能在總線上僅有一個DS18B20的情況下可以使用。如果總線上存在多于一個 的從屬器件,那么當(dāng)所有從片企圖同時發(fā)送時將發(fā)生數(shù)據(jù)沖突的現(xiàn)象(漏極開 路會產(chǎn)生線與的結(jié)果)。Match ROM符合ROM)55h此命令后繼以64位的ROM
30、fe據(jù)序列,允許總線 主機(jī)對多點(diǎn)總線上特定的 DS18B20尋址。只有與64位ROM序列嚴(yán)格相符的 DS18B2C才能對后繼的存貯器操作命令作出響應(yīng)。所有與64位ROM?列不符的從片將等待復(fù)位脈沖。此命令在總線上有單個或多個器件的情況下均可使用。Skip ROM(跳過ROM)CCh在單點(diǎn)總線系統(tǒng)中,此命令通過允許總線主機(jī)不 提供64位ROM編碼而訪問存儲器操作來節(jié)省時間。如果在總線上存在多于一個 的從屬器件而且在Skip ROM命令之后發(fā)出讀命令,那么由于多個從片同時發(fā)送 數(shù)據(jù),會在總線上發(fā)生數(shù)據(jù)沖突(漏極開路下拉會產(chǎn)生線與的效果) 。Search ROM(搜索ROM)FOh當(dāng)系統(tǒng)開始工作時,
31、總線主機(jī)可能不知道單線 總線上的器件個數(shù)或者不知道其 64位ROM編碼。搜索ROM命令允許總線控制器 用排除法識別總線上的所有從機(jī)的 64 位編碼。Alarm Search( 告警搜索)ECh此命令的流程與搜索ROM命令相同。但是, 僅在最近一次溫度測量出現(xiàn)告警的情況下,DS18B2C才對此命令作出響應(yīng)。告警的條件定義為溫度高于TH或低于TL。只要DS18B2C一上電,告警條件就保 持在設(shè)置狀態(tài),直到另一次溫度測量顯示出非告警值或者改變TH或TL的設(shè)置,使得測量值再一次位于允許的范圍之內(nèi)。貯存在EEPRO內(nèi)的觸發(fā)器值用于告警。 存儲器操作命令Write Scratchpad(寫暫存存儲器)4E
32、h這個命令向DS18B20勺暫存器中寫入數(shù)據(jù),開始位置在地址 2。接下來寫入的兩個字節(jié)將被存到暫存器中的地 址位置 2 和 3??梢栽谌魏螘r刻發(fā)出復(fù)位命令來中止寫入。Read Scratchpad (讀暫存存儲器) BEh 這個命令讀取暫存器的內(nèi)容。讀 取將從字節(jié)0開始,一直進(jìn)行下去,直到第 9 (字節(jié)8,CRC字節(jié)讀完。如果 不想讀完所有字節(jié),控制器可以在任何時間發(fā)出復(fù)位命令來中止讀取。Copy Scratchpad (復(fù)制暫存存儲器) 48h 這條命令把暫存器的內(nèi)容拷貝 到DS18B20勺E2存儲器里,即把溫度報(bào)警觸發(fā)字節(jié)存入非易失性存儲器里。如 果總線控制器在這條命令之后跟著發(fā)出讀時間隙
33、,而DS18B20又正在忙于把暫存器拷貝到E2存儲器,DS18B20就會輸出一個“ 0”,如果拷貝結(jié)束的話, DS18B20則輸出“ 1”。如果使用寄生電源,總線控制器必須在這條命令發(fā)出后 立即起動強(qiáng)上拉并最少保持 10ms。Convert T (溫度變換) 44h 這條命令啟動一次溫度轉(zhuǎn)換而無需其他數(shù)據(jù)。 溫度轉(zhuǎn)換命令被執(zhí)行,而后 DS18B20保持等待狀態(tài)。如果總線控制器在這條命 令之后跟著發(fā)出讀時間隙,而 DS18B20又忙于做時間轉(zhuǎn)換的話,DS18B20各在 總線上輸出“ 0”,若溫度轉(zhuǎn)換完成,則輸出“ 1”。如果使用寄生電源,總線 控制器必須在發(fā)出這條命令后立即起動強(qiáng)上拉,并保持50
34、0ms。Recall E2(重新調(diào)整E2) B8h這條命令把貯存在E2中溫度觸發(fā)器的值重新調(diào)至?xí)捍娲鎯ζ?。這種重新調(diào)出的操作在對DS18B2C上電時也自動發(fā)生,因此只要器件一上電,暫存存儲器內(nèi)就有了有效的數(shù)據(jù)。在這條命令發(fā)出之后, 對于所發(fā)出的第一個讀數(shù)據(jù)時間片,器件會輸出溫度轉(zhuǎn)換忙的標(biāo)識:“0” =忙,“ 1” =準(zhǔn)備就緒。Read Power Supply (讀電源)B4h對于在此命令發(fā)送至 DS18B20之后所 發(fā)出的第一讀數(shù)據(jù)的時間片,器件都會給出其電源方式的信號:“ 0” =寄生電 源供電,“ T =外部電源供電。處理數(shù)據(jù):DS18B20勺高速暫存存儲器由9個字節(jié)組成。當(dāng)溫度轉(zhuǎn)換命
35、令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補(bǔ)碼形式存放在高速暫存存儲器的第 0和第1個字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位 在后。表2.4.42是DS18B20溫度采集轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在DS18B20 的兩個8比特的RAM中,二進(jìn)制中的前面5位是符號位,如果測得的溫度大于 或等于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如 果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到 實(shí)際溫度。溫度轉(zhuǎn)換計(jì)算方法舉例:例如當(dāng)DS18B20采集到+125C的實(shí)際溫度后,輸出為07D0H貝U:實(shí)際溫度 =07D0H0.0625=200
36、0X0.0625=1250C。例如當(dāng)DS18B20采集到-55C的實(shí)際溫度后,輸出為FC90H則應(yīng)先將11位數(shù) 據(jù)位取反加1得370H (符號位不變,也不作為計(jì)算),貝實(shí)際溫度=370K0.0625=880X0.0625=550C。主控器接收郢 PU 單總線GNDr至少4R0豳DSI8B20零待1460附一至少480闊DS18B2O 爰送存在脈沖&卜240肖主控器發(fā)送復(fù)位脈沖圖2.4.61復(fù)位時序圖1).復(fù)位:首先我們必須對DS18B20芯片進(jìn)行復(fù)位,復(fù)位就是由控制器(單片機(jī))給DS18B2C單總線至少480uS的低電平信號。當(dāng)18B20接到此復(fù)位 信號后則會在1560uS后回發(fā)一個芯片的存在
37、脈沖。2). 存在脈沖:在復(fù)位電平結(jié)束之后,控制器應(yīng)該將數(shù)據(jù)單總線拉高,以便于 在1560uS后接收存在脈沖,存在脈沖為一個 60240uS的低電平信號。至此, 通信雙方已經(jīng)達(dá)成了基本的協(xié)議,接下來將會是控制器與 18B20 間的數(shù)據(jù)通信。 如果復(fù)位低電平的時間不足或是單總線的電路斷路都不會接到存在脈沖,在設(shè) 計(jì)時要注意意外情況的處理。3).控制器發(fā)送ROM旨令:雙方打完了招呼之后最要將進(jìn)行交流了,ROM旨令共有5條,每一個工作周期只能發(fā)一條,ROM旨令分別是讀ROh數(shù)據(jù)、指定匹 配芯片、跳躍ROM芯片搜索、報(bào)警芯片搜索。ROM旨令為8位長度,功能是對 片內(nèi)的64位光刻ROMS行操作。其主要目
38、的是為了分辨一條總線上掛接的多個 器件并作處理。誠然,單總線上可以同時掛接多個器件,并通過每個器件上所 獨(dú)有的ID號來區(qū)別,一般只掛接單個18B20芯片時可以跳過ROM旨令(注意: 此處指的跳過ROM旨令并非不發(fā)送ROM旨令,而是用特有的一條“跳過指令”)4).控制器發(fā)送存儲器操作指令:在 ROM旨令發(fā)送給18B20之后,緊接著 (不間斷)就是發(fā)送存儲器操作指令了。操作指令同樣為 8 位,共 6 條,存儲 器操作指令分別是寫RAM數(shù)據(jù)、讀RAM數(shù)據(jù)、將RAM數(shù)據(jù)復(fù)制到EEPROM溫度 轉(zhuǎn)換、將EEPRO中的報(bào)警值復(fù)制到RAM工作方式切換。存儲器操作指令的功 能是命令18B20作什么樣的工作,是
39、芯片控制的關(guān)鍵。5). 執(zhí)行或數(shù)據(jù)讀寫:一個存儲器操作指令結(jié)束后則將進(jìn)行指令執(zhí)行或數(shù)據(jù) 的讀寫,這個操作要視存儲器操作指令而定。如執(zhí)行溫度轉(zhuǎn)換指令則控制器(單片機(jī))必須等待18B20執(zhí)行其指令,一般轉(zhuǎn)換時間為500uS。若要讀出當(dāng) 前的溫度數(shù)據(jù)我們需要執(zhí)行兩次工作周期,第一個周期為復(fù)位、跳過ROM指令、執(zhí)行溫度轉(zhuǎn)換存儲器操作指令、等待 500uS溫度轉(zhuǎn)換時間。緊接著執(zhí)行第二個 周期為復(fù)位、跳過ROM旨令、執(zhí)行讀RAM的存儲器操作指令、讀數(shù)據(jù)(最多為9 個字節(jié),中途可停止,只讀簡單溫度值則讀前2 個字節(jié)即可)。VPU取總線GND,DSI8B2H 采樣 堆小典型 垠大I5ps + I5ps - 3
40、0ms DS18B20 采樣 第小典型繪大圖2462寫時序圖.寫時間隙:寫時間隙分為寫“ 0”和寫“ 1”。在寫數(shù)據(jù)時間隙的前主控甜讀“tr吋隙主控器讀r”時隙n iLisrktc5D6D7vssL52液晶槿塊V3DD +5V10K電位器帶背光2.62圖2.61 LCD1602的使用電路圖LCD1602分為帶背光和不帶背光兩種,基控制器大部分為HD44780的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別,兩者尺寸差別如下圖所示BO. O匚9 5ir 呂75 O73- Te o廠一之 54oPQQQaaQooaaaaaaHT送亍XTQ -gE_* .0 gg -圖2.62 LCD1602尺寸圖LC
41、D1602主要技術(shù)參數(shù):顯示容量:16 X2個字符;芯片工作電壓 45 5.5V ;工作電流:2.0mA(5.0V);模塊最佳工作電壓:5.0V ;字符寸:2.95 X 4.35(WX H)mm引腳功能說明:1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表2.6所示:引腳說明符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負(fù)極表2.6引腳接口說明引腳接口說明:第1腳:VSS為
42、地電源。第2腳:VD取5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:R/W為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng) RS為低電平R/W 為高電平時可以讀忙信號,當(dāng) RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行 命令。第714腳:D曠D7為8位雙向數(shù)據(jù)線。第15腳:背光源正
43、極。第16腳:背光源負(fù)極。LCD1602指令說明及時序序號指RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標(biāo)返回000000001*3置輸入模式00000001I/DS4顯示開/關(guān)控制0000001DCB5光標(biāo)或字符移位000001S/CR/L*6置功能00001DLNF*7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù);據(jù)存貯器地址9讀忙標(biāo)志或地址01BF計(jì)數(shù)器地址10寫數(shù)至U CGRA或DDRA)10要寫的數(shù)據(jù)內(nèi)容11從 CGRAI或 DDRAI讀數(shù)11讀岀的數(shù)據(jù)內(nèi)容表2.6.21LCD1602指令說明及時序1602液晶模塊內(nèi)部的控
44、制器共有11條控制指令,如表2.6.2所示:控制命令表:1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址 00Ho指令3:光標(biāo)和顯示模式設(shè)置I/D :光標(biāo)移動方向,高電平右移,低電平左移S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。指令4:顯示開關(guān)控制。D:控制整體顯示的開與關(guān),高電平表示開顯示, 低電平表示關(guān)顯示。C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無 光標(biāo)。B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標(biāo)
45、或顯示移位S/C :高電平時移動顯示的文字,低電平時移動 光標(biāo)。指令6:功能設(shè)置命令。DL:高電平時為4位總線,低電平時為8位總線。 N:低電平時為單行顯示,高電平時雙行顯示。F:低電平時顯示5x7的點(diǎn)陣字符,高電平時顯示5x10的點(diǎn)陣字符。指令7:字符發(fā)生器RAM地址設(shè)置。指令8: DDRA地址設(shè)置。指令9:讀忙信號和光標(biāo)地址BF :為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。與HD44780相兼容的芯片時序表如下:讀狀態(tài)輸入RS=L R/W=H E=H輸出D0- D7= 犬態(tài)字寫指令輸入RS=L,R/W=L,D0-。7=
46、旨令碼,E=高脈沖輸出無讀數(shù)據(jù)輸入RS=H R/W=H E=H輸出D0- D7=B 據(jù)寫數(shù)據(jù)輸入RS=H R/W=L,D0-D7=數(shù)據(jù),E=高脈沖輸出無表2.6.22基本操作時序表RS圖2621讀操作時序圖2.6.22寫操作時序LCD1602的RAM地址映射及標(biāo)準(zhǔn)字庫表液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模 塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯 示字符地址,也就是告訴模塊在哪里顯示字符,下圖2.6.3是1602的內(nèi)部顯示地址。LCD1石字X2行00010203040506070809OA0B000D0E0F102丄40424344454
47、64 748494A4B4C4D4E4F5067J圖263 1602LCD 內(nèi)部顯示地址例如第二行第一個字符的地址是 40H,那么是否直接寫入40H就可以將光 標(biāo)定位在第二行第一個字符的位置呢?這樣不行,因?yàn)閷懭腼@示地址時要求最 高位D7恒定為高電平1所以實(shí)際寫入的數(shù)據(jù)應(yīng)該是 01000000B(40H +10000000B(80H)=11000000B(C0H)在對液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時光 標(biāo)是自動右移的,無需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于 忙的狀態(tài)。1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGRO M已經(jīng)存儲了 160個不同的 點(diǎn)陣字符圖
48、形,如圖2.6.3所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小 寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫 的英文字母“ A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點(diǎn)陣 字符圖形顯示出來,我們就能看到字母“ A”oooc0C1 1U1010110onil&l 11 IPO1301moMHX X XXOOQCCCRAMClFpPX X X X 0001H1AQadT+厶 qX X2&Rbrr孑nt&fX x X XL Mill1csr丿.K5EuRMi口+-X.0X X X XOL1OC7亂FVfttPXX X X X4111AGw刺wr*nR
49、x x x x locoCaHXhK干JXX X X x 10O|C21Viyrr21rK X X X 1O1*i-JzJ*工nTX XXX lCkl l4)+EKk才Vt口ZfX M X X: 1 lgS)VLi1七7點(diǎn)X 34 K X 1101MinXx*xxx unit*r*L g_-t7ft八XXX X1J11/Taa&*F口表263 CGROM和CGRA中字符代碼與圖形對應(yīng)關(guān)系圖1LCD1602的一般初始化(復(fù)位)過程延時15mS寫指令38H (不檢測忙信號)延時5mS寫指令38H (不檢測忙信號)延時5mS寫指令38H (不檢測忙信號)以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測忙信號
50、寫指令38H:顯示模式設(shè)置寫指令08H:顯示關(guān)閉寫指令01H:顯示清屏寫指令06H:顯示光標(biāo)移動設(shè)置寫指令0CH顯示開及光標(biāo)設(shè)置程序流程圖圖2.6.5程序流程圖蜂鳴器蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于 計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時 器等電子產(chǎn)品中作發(fā)聲器件。蜂鳴器分為有源蜂鳴器和無源蜂鳴器,本系統(tǒng)使 用的是有源蜂鳴器(內(nèi)部帶振蕩電路)驅(qū)動芯片ULN2003A圖 2.8 ULN2003美國 Texas Instruments公司、美國 Sprague公司生產(chǎn)的 ULN2003A由 7組達(dá)林頓晶體管陣列和相應(yīng)的電阻網(wǎng)絡(luò)以及鉗位二
51、極管網(wǎng)絡(luò)構(gòu)成,具有同時驅(qū) 動7組負(fù)載的能力,為單片雙極型大功率高速集成電路。ULN2003A特點(diǎn)及主要應(yīng)用領(lǐng)域ULN2003A!路具有以下特點(diǎn):電流增益高(大于1000):帶負(fù)載能力強(qiáng)(輸出電流大于500mA;溫 度范圍寬(4085C);工作電壓高(大于50V); ULN2003A電路主要用于如 下領(lǐng)域:伺服電機(jī);步進(jìn)電機(jī);電磁閥;可控照明燈。ULN2003A的典型應(yīng)用ULN2003理高壓大電流達(dá)林頓晶體管陣列電路的典型應(yīng)用電路框圖如圖2.8.2所示??梢钥闯?,該電路的應(yīng)用非常簡單。圖2.8.2 ULN2003A的典型應(yīng)用電路第三章軟件設(shè)計(jì)框架圖測量液面H 測量溫度T液面H和溫度在給定值之間
52、之間蜂鳴器報(bào)警打開抽水水泵關(guān)閉蜂鳴器報(bào)警 關(guān)閉抽水水泵各個部分驅(qū)動代碼簡介超聲波驅(qū)動代碼;溫度傳感器驅(qū)動代碼;LCD1602驅(qū)動代碼超聲波測距驅(qū)動代碼TRIG=1; / 觸發(fā)信號是高電平脈沖,寬度大于 10usDelayUs2x(10); 延 30US左右TRIG=0; while(!ECHO); / 等待高電平 TR0=1;/ 打開定時器while(ECHO); / 等待低電平 TR0=0;/ 關(guān)閉定時器S=TH0*256+TL0;算出超聲波來回時間S=S/58;/ 算出距離LCD1602 驅(qū)動代碼#defi ne CHECK_BUSY/是否使用判斷忙語句條件,后面使用條件編譯sbit RS
53、 = P2A4; / 定義端口sbit RW = P2A5;sbit EN = P2A6;#define RS_CLR RS=0#define RS_SET RS=1#define RW_CLR RW=0#define RW_SET RW=1#define EN_CLR EN=0#define EN_SET EN=1#define DataPort P0/* 判忙函數(shù) */bit LCD_Check_Busy(void) #ifdef CHECK_BUSYDataPort= 0 xFF;RS_CLR;RW_SET;EN_CLR;_nop_();EN_SET;return (bit)(DataP
54、ort & 0 x80);#elsereturn 0;#endif /* 寫入命令函數(shù) */void LCD_Write_Com(unsigned char com) while(LCD_Check_Busy(); / 忙則等待 RS_CLR;RW_CLR;EN_SET;DataPort= com;_nop_();EN_CLR; */* 寫入數(shù)據(jù)函數(shù)void LCD_Write_Data(unsigned char Data) while(LCD_Check_Busy(); / 忙則等待RS_SET;RW_CLR;EN_SET;DataPort= Data;_nop_();EN_CLR; TO
55、C o 1-5 h z /* 清屏函數(shù) */*void LCD_Clear(void) LCD_Write_Com(0 x01);DelayMs(5); /* 寫入字符串函數(shù) */void LCD_Write_String(unsigned char x,unsigned char y,unsigned char*s) while (*s) LCD_Write_Char(x,y,*s); s +; x+; /* 寫入字符函數(shù) */void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) if (y = 0)
56、LCD_Write_Com(0 x80 + x);else LCD_Write_Com(0 xC0 + x);LCD_Write_Data( Data); /* 初始化函數(shù) */void LCD_Init(void) LCD_Write_Com(0 x38); /* 顯示模式設(shè)置 */DelayMs(5); / 延時 5MSLCD_Write_Com(0 x38);DelayMs(5);LCD_Write_Com(0 x38);DelayMs(5);LCD_Write_Com(0 x38);LCD_Write_Com(0 x08); /*顯示關(guān)閉 */LCD_Write_Com(0 x01);
57、 /*顯示清屏 */LCD_Write_Com(0 x06); /*顯示光標(biāo)移動設(shè)置 */DelayMs(5);LCD_Write_Com(0 x0C); /*顯示開及光標(biāo)設(shè)置 */323溫度傳感器DS18b20驅(qū)動代碼 unsigned char dat = 0; for (i=8;i0;i-)18b20初始化*/bit Init_DS18B20(void) bit dat=0;DQ = 1; /DQ復(fù)位DelayUs2x(5);/稍做延時DQ = 0;/單片機(jī)將DQ拉低DelayUs2x(200); /精確延時 大于 480us 小于 960usDelayUs2x(200);DQ = 1;
58、/拉高總線DelayUs2x(50); /1560us 后 接收 60-240us 的存在脈沖dat=DQ; /如果 x=0 則初始化成功 , x=1 則初始化失敗DelayUs2x(25); /稍作延時返回return dat; /*讀取一個字節(jié)*/unsigned char ReadOneChar(void) unsigned char i=0; DQ = 0; / 給脈沖信號 dat=1;DQ = 1; /給脈沖信號if(DQ) dat|=0 x80;DelayUs2x(25); return(dat); /* 寫入一個字節(jié) */void WriteOneChar(unsigned char dat) unsigned char i=0;for (i=8; i0; i-) DQ =
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 店鋪?zhàn)赓U(出租)意向協(xié)議書
- 2025年度高端摩托車租賃及保養(yǎng)服務(wù)合同2篇
- 2025版?zhèn)€人入股合作協(xié)議書:互聯(lián)網(wǎng)公司股權(quán)分配合同4篇
- 2025年度個人消費(fèi)分期付款合同標(biāo)準(zhǔn)7篇
- 2025-2030全球石墨氮化碳行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025-2030全球封離型CO2激光器冷水機(jī)行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025年全球及中國鼻炎光療儀行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年全球及中國常壓等離子體裝置行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年度國際貨運(yùn)代理及物流服務(wù)合同
- 商家聯(lián)盟協(xié)議書
- 棋牌室禁止賭博警示語
- 2022-2023學(xué)年四川省南充市九年級(上)期末數(shù)學(xué)試卷
- 組建農(nóng)產(chǎn)品供應(yīng)鏈公司方案
- 公轉(zhuǎn)私人轉(zhuǎn)賬協(xié)議
- 液壓阻尼器工作原理
- 移動商務(wù)內(nèi)容運(yùn)營(吳洪貴)任務(wù)四 圖文類內(nèi)容的打造
- 個人房屋買賣購房合同
- 航空油料計(jì)量統(tǒng)計(jì)員(初級)理論考試復(fù)習(xí)題庫大全-下(判斷題匯總)
- 2022年度上海市養(yǎng)老護(hù)理員技師考試題(含答案)
- 養(yǎng)老護(hù)理員培訓(xùn)老年人日常生活照料
- 各種抽油泵的結(jié)構(gòu)及工作原理幻燈片
評論
0/150
提交評論