測溫系統(tǒng)報(bào)告完整(01)課件_第1頁
測溫系統(tǒng)報(bào)告完整(01)課件_第2頁
測溫系統(tǒng)報(bào)告完整(01)課件_第3頁
測溫系統(tǒng)報(bào)告完整(01)課件_第4頁
測溫系統(tǒng)報(bào)告完整(01)課件_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 工 程 訓(xùn) 制 作 設(shè) 計(jì) 報(bào) 告 題目: 測溫系統(tǒng) 班級(jí): 指導(dǎo)老師: 設(shè)計(jì)者: 目錄1 緒言 1.1 課題背景.4 1.2 課題的主要任務(wù)和內(nèi)容.42 溫度測量系統(tǒng)的總體設(shè)計(jì)方案.5 2.1 溫度測量系統(tǒng)的硬件設(shè)計(jì)方案.5 2.2 溫度測量系統(tǒng)的軟件設(shè)計(jì)方案.53 溫度測量系統(tǒng)的硬件電路設(shè)計(jì) 3.1 概述.7 3.2 傳感器簡介 3.2.1 DS18B20引腳功能介紹.8 3.2.2 DS18B20的測量原理.8 3.3 單片機(jī)的原理及應(yīng)用 3.3.1 AT89S51單片機(jī)原理簡介9 3.4 單片機(jī)外圍電路的設(shè)計(jì) 3.4.1 晶振電路和復(fù)位電路的設(shè)計(jì).12 3.4.2 LCD電路的設(shè)計(jì).

2、144 溫度測量系統(tǒng)的軟件程序設(shè)計(jì)4.1 概述154.2 溫度測量系統(tǒng)的總體程序設(shè)計(jì).164.3 DS18B20子程序的設(shè)計(jì)174.4 LCD顯示子程序的設(shè)計(jì)185 系統(tǒng)調(diào)試與分析5.1 調(diào)試故障及原因分析.186 結(jié)論與展望6.1 結(jié)論.186.2 展望.19參考文獻(xiàn).19附錄20軟件代碼.23第一章 緒言1.1課題背景 溫度控制廣泛應(yīng)用于人們的生活和生產(chǎn)中,人們使用溫度計(jì)來采集溫度,通過人工操作加熱、通風(fēng)和降溫設(shè)備,這樣不僅控制精度低、實(shí)時(shí)性差,而且操作人員的勞動(dòng)強(qiáng)度大。即使有些用戶采用半導(dǎo)體二極管作溫度傳感器,但由于其互換性差,效果也不理想。在某些行業(yè)中對(duì)溫度要求較高,由于工作環(huán)境溫度不

3、合理而引發(fā)的事故時(shí)有發(fā)生。對(duì)工業(yè)生產(chǎn)可靠進(jìn)行產(chǎn)生影響,甚至操作人員的安全。為了避免這些缺點(diǎn),需要在某些特定的環(huán)境里安裝數(shù)字溫度測量及控制設(shè)備。本設(shè)計(jì)由于采用了新型單片機(jī)對(duì)溫度進(jìn)行控制,以其測量精度高,操作方便,可運(yùn)行性強(qiáng),價(jià)格低廉等優(yōu)點(diǎn),特別適用于生活、醫(yī)療、工業(yè)生產(chǎn)等方面的溫度測量及控制。1.2課題的主要任務(wù)及內(nèi)容 本設(shè)計(jì)是一個(gè)數(shù)字溫度控制系統(tǒng),能測量溫度,并能實(shí)時(shí)顯示出溫度,還能通過串口將溫度值顯示到pc機(jī)上。主要任務(wù)是能對(duì)溫度進(jìn)行自動(dòng)的監(jiān)測和控制。設(shè)計(jì)中采用單片機(jī)來控制溫度,因此要有溫度的采集電路,溫控電路,顯示電路等幾個(gè)部分。要實(shí)現(xiàn)系統(tǒng)的設(shè)計(jì)要用到的知識(shí)點(diǎn)有單片機(jī)的原理及其應(yīng)用,溫度傳

4、感器的原理和應(yīng)用,及顯示電路的設(shè)計(jì)等。第二章 溫度測量系統(tǒng)的整體設(shè)計(jì)方案2.1溫度測量系統(tǒng)的硬件設(shè)計(jì)方案采用溫度傳感器DS18B20。DS18B20可以滿足從-55攝氏度到+125攝氏度測量范圍,可編程為0.0625。且DS18B20測量精度高,增值量為0.5攝氏度,在一秒內(nèi)把溫度轉(zhuǎn)化成數(shù)字,測得的溫度值的存儲(chǔ)在兩個(gè)八位的RAM中,單片機(jī)直接從中讀出數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制就是溫度,使用方便。采用寄生電源工作方式用CPU口線少,可節(jié)省大量引線和邏輯電路。采用LCD顯示。LCD液晶顯示具有豐富多樣性、靈活性、電路簡單、易于控制而且功耗小等優(yōu)點(diǎn)。 當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完

5、成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的第1,2字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式以0.062 5 /LSB形式表示。2.1溫度測量系統(tǒng)的軟件設(shè)計(jì)方案主程序是系統(tǒng)的監(jiān)控程序,在程序運(yùn)行的過程中必須先經(jīng)過初始化,包括中斷程序以及各個(gè)控制端口的初始化工作。流程圖如圖所示。系統(tǒng)在初始化完成后就進(jìn)入溫度測量程序,實(shí)施的測量當(dāng)前的溫度并通過顯示電路在LCD上顯示。程序中以中斷的方式來重新設(shè)定溫度上下限。根據(jù)硬件設(shè)計(jì)完成對(duì)溫度的控制。系統(tǒng)軟件流程圖開始系統(tǒng)初始化溫度測量顯示系統(tǒng)第三章 溫度測量系統(tǒng)的硬件電路設(shè)計(jì)3.1 概述 該溫度測量系統(tǒng)

6、主要由DS18B20、AT89S51、LCD1602等部分構(gòu)成,根據(jù)系統(tǒng)的設(shè)計(jì)要求,當(dāng)溫度傳感器DS18B20把所測得的溫度發(fā)送到AT89S51單片機(jī)上,經(jīng)AT89S51處理,將把溫度在顯示電路上顯示,除了顯示溫度以外還可以設(shè)置一個(gè)晶振電路,對(duì)所測溫度進(jìn)行監(jiān)控。利用外接的鍵盤設(shè)置電路,對(duì)溫度進(jìn)行上下限設(shè)置。當(dāng)溫度高于或低于設(shè)定溫度時(shí),就啟動(dòng)相應(yīng)程序。 選擇DS18B20作為本系統(tǒng)的溫度傳感器,選擇單片機(jī)AT89S51為測控系統(tǒng)的核心來完成數(shù)據(jù)采集、處理、顯示、報(bào)警等功能。選用數(shù)字溫度傳感器DS18B20,輸出信號(hào)全數(shù)字化。便于單片機(jī)處理及控制,省去傳統(tǒng)的測溫方法的很多外圍電路,省卻了采樣/保持

7、電路、運(yùn)放、數(shù)模轉(zhuǎn)換電路以及進(jìn)行長距離傳輸時(shí)的串并轉(zhuǎn)換電路,簡化了電路,縮短了系統(tǒng)的工作時(shí)間,降低了系統(tǒng)的硬件成本。 當(dāng)LCD液晶顯示器接收到來自AT89S51單片機(jī)傳送來的溫度信息后,分別顯示了當(dāng)前的溫度,溫度上限,溫度下限和溫度計(jì)運(yùn)行時(shí)間。 設(shè)計(jì)性能要求: (1)利用溫度傳感器(DS18B20)測量某一點(diǎn)環(huán)境溫度。 (2)測量范圍為-55110,精度為0.5。 (3)用LCD1602液晶進(jìn)行實(shí)際溫度值顯示。 3.2 傳感器簡介3.2.1 DS18B20引腳功能的介紹 DS18B20管腳圖 在硬件上,DS18B20與單片機(jī)的連接有兩種方法,一種是VCC接外部電源,GND接地,I/O與單片機(jī)的

8、I/O線相連;另一種是用寄生電源供電,此時(shí)UDD、GND接地,I/O接單片機(jī)I/O。內(nèi)部寄生電源I/O口線要接5K左右的上拉電阻。P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳電位被內(nèi)部上拉電阻拉高,且作為輸入。作為輸入時(shí),P2口的管腳電位被外部拉低,將輸出電流,這是由于內(nèi)部上拉的緣故。傳感器數(shù)據(jù)采集電路主要指DS18B20溫度傳感器與單片機(jī)的接口電路。DS18B20可以采用兩種方式供電,一種是采用電源供電方式,此時(shí)DS18B20的1腳接地,2腳作為信號(hào)線,3腳接電源。另一種是寄生電源供電方式考慮到實(shí)際應(yīng)用中寄生電源供電方式適

9、應(yīng)能力差且易損壞,此處采用電源供電方式,I/O口接單片機(jī)的P2.0口。3.2.2 DS18B20的測量原理當(dāng)DSI8B20接收到溫度轉(zhuǎn)換命令后,開始啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的0,1字節(jié)。單片機(jī)可通過單線接口讀到該數(shù)據(jù),讀取時(shí)低位在前,高位在后,數(shù)據(jù)格式以0062 5LSB形式表示。 DS18B20 的測溫原理如圖 3所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定的脈沖信號(hào)送給減法計(jì)數(shù)器1,高溫度系數(shù)晶振隨溫度變化其振蕩頻率明顯改變,所產(chǎn)生的信號(hào)作為減法計(jì)數(shù)器2的脈沖輸入,圖中還隱含著計(jì)數(shù)門,當(dāng)計(jì)數(shù)門打開時(shí),DS18B

10、20 就對(duì)低溫度系數(shù)振蕩器產(chǎn)生的時(shí)鐘脈沖進(jìn)行計(jì)數(shù),進(jìn)而完成溫度測量。計(jì)數(shù)門的開啟時(shí)間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55所對(duì)應(yīng)的基數(shù)分別置入減法計(jì)數(shù)器1、溫度寄存器中,減法計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55所對(duì)應(yīng)的一個(gè)基數(shù)值。減法計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)減法計(jì)數(shù)器1 的預(yù)置值減到0 時(shí),溫度寄存器的值將加1,減法計(jì)數(shù)器1 的預(yù)置將重新被裝入,減計(jì)數(shù)器1 重新開始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到減法計(jì)數(shù)器2 計(jì)數(shù)到0 時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測溫度。圖中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其

11、輸出用于修正減法計(jì)數(shù)器的預(yù)置值,只要計(jì)數(shù)門仍未關(guān)閉就重復(fù)上述過程,直至溫度寄存器值達(dá)到被測溫度值。另外,由于DS18B20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。系統(tǒng)對(duì)DS18B20的各種操作必須按協(xié)議進(jìn)行。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)發(fā)ROM 功能命令發(fā)存儲(chǔ)器操作命令處理數(shù)據(jù)。各種操作的時(shí)序圖與DS1820 相同。3.3 單片機(jī)的原理及應(yīng)用 3.3.1 AT89S51單片機(jī)原理簡介AT89S51作為溫度測試系統(tǒng)設(shè)計(jì)的核心器件。該器件采用了可靠的CMOS工藝制造技術(shù)。具有高性能的8位單片機(jī),屬于標(biāo)準(zhǔn)的MCS一51的CMOS產(chǎn)品。片內(nèi)含8K bytes

12、的可販毒擦寫的只讀程序存儲(chǔ)器(PEROM)和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件兼容標(biāo)準(zhǔn)的MCS-51指令系統(tǒng)。片內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元。結(jié)合了HMOS的高速和高密度技術(shù)及CHMOS的低功耗特征。AT89S51單片機(jī)提供以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S51 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中

13、斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。 由于此設(shè)計(jì)需要編寫程序,需要將程序烤入單片機(jī)中,因此單片機(jī)必須具有足夠多的存儲(chǔ)空間,其具有8K字節(jié)的Flash完全滿足要求。32位的I/O 口線能夠使得單片機(jī)與溫度顯示器、溫度傳感器、鍵盤、報(bào)警電路、按鍵電路和指示燈連接等等變得可能。16位的定時(shí)計(jì)數(shù)器使得讀取數(shù)據(jù)變得更加簡單,同時(shí)其結(jié)構(gòu)有利于晶振電路和復(fù)位電路的連接。最重要的是,能夠在掉電狀態(tài)下保存RAM內(nèi)的數(shù)據(jù)。 AT89S51單片機(jī)有兩種可用軟件編程的省電模式,它們是空閑模式和掉電工作模式。這兩種方式是控制專用寄存器PCON(即

14、電源控制寄存器)中的PD(PCON1)和IDL(PCON0)位來實(shí)現(xiàn)的。PD是掉電模式,當(dāng)PD=1時(shí),激活掉電工作模式,單片機(jī)進(jìn)入掉電工作狀態(tài)。IDL是空閑等待方式,當(dāng)IDL=1,激活空閑工作模式,點(diǎn)偏激進(jìn)入睡眠狀態(tài)。如需同時(shí)進(jìn)入兩種工作模式,即PD和IDL同時(shí)為1,則先激活掉電模式。 在空閑工作狀態(tài)下,CPU保持睡眠狀態(tài)而所有的片內(nèi)的外設(shè)都保持激活狀態(tài),這種方式由軟件產(chǎn)生,此時(shí),片內(nèi)RAM和所有特殊功能寄存器的內(nèi)容保持不變??臻e模式可由任何允許的中斷請(qǐng)求或硬件復(fù)位終止。 終止空閑工作模式的方法有兩種,進(jìn)入中斷服務(wù)程序,執(zhí)行完中斷服務(wù)程序并緊隨RST1(中斷返回)指令后,下一條要執(zhí)行的指令就是

15、使單片機(jī)進(jìn)入空閑模式的那條指令后面的一條指令。 其二是通過硬件復(fù)位可以將空閑工作模式終止。需要注意的是,當(dāng)由硬件復(fù)位來終止空閑工作模式時(shí),CPU通常是從激活空閑模式那條指令的嚇一跳指令開始繼續(xù)執(zhí)行程序的,要完成內(nèi)部復(fù)位操作,硬件復(fù)位脈沖要保持兩個(gè)機(jī)器周期(24個(gè)時(shí)鐘周期)有效,在這種情況下,內(nèi)部禁止CPU訪問片內(nèi)RAM,而允許訪問其他端口。為了避免可能對(duì)端口產(chǎn)生意外寫入,激活空閑狀態(tài)的那條指令后一條指令不應(yīng)是一條端口或外部存儲(chǔ)器的寫入指令。 在掉電模式下,振蕩器停止工作,進(jìn)入掉電模式的指令是最后一條被執(zhí)行的指令。片內(nèi)RAM和特殊功能寄存器的內(nèi)容在終止掉電模式前被凍結(jié)。退出掉電模式的唯一方法是硬

16、件復(fù)位,復(fù)位后將重新定義全部特殊功能寄存器但并沒有因此改變RAM中的內(nèi)容,在Vcc恢復(fù)到正常工作電平前,復(fù)位應(yīng)無效,但必須保持一定時(shí)間以使振蕩器重啟動(dòng)并穩(wěn)定工作。 AT89S51單片機(jī)具有一些極限參數(shù): (1)工作溫度:-55攝氏度至+125攝氏度 (2)儲(chǔ)藏溫度:-65攝氏度至+150攝氏度 (3)任一引腳對(duì)地電壓:-1.0V至+7.0V (4)最高工作電壓:6.6V (5)直流輸出電流:15.0mA 3.4 單片機(jī)外圍電路的設(shè)計(jì) 3.4.1 晶振電路和復(fù)位電路的設(shè)計(jì) 晶振電路和復(fù)位電路與單片機(jī)連接構(gòu)成最小系統(tǒng)電路, 在晶振電路中,主要用 到了XTAL1和XTAL2兩個(gè)引腳。 (1)XTAL

17、1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。(2)XTAL2:來自反向振蕩器的輸出。在晶振電路中,AT89S51具有兩種晶振方式,一種是片內(nèi)時(shí)鐘振蕩方式,但需要在引腳外接石英晶體和振蕩電容,振蕩電容的值一般取10-30pf。另一種是外部時(shí)鐘方式,即將XTAL1接外部時(shí)鐘,XTAL2腳懸空。本設(shè)計(jì)的晶振電路如圖1所示。圖1 晶振電路單片機(jī)的晶振頻率采用11.0592MHZ,加兩個(gè)30pF電容。XTAL1和XTAL2分別為反向放大器的輸入和輸出,外接石英晶體和振蕩電容,構(gòu)成了片內(nèi)時(shí)鐘振蕩方式。而振蕩周期指的就是單片機(jī)外接石英晶體振蕩器的周期。當(dāng)時(shí)鐘起振后,產(chǎn)生一定的頻率的時(shí)鐘信號(hào),單片機(jī)的C

18、PU在時(shí)鐘信號(hào)的控制下能一步一步完成自己的工作,同時(shí)與整個(gè)系統(tǒng)相關(guān)的周期還有振蕩周期、狀態(tài)周期、機(jī)器周期和指令周期。電容C1和C2主要用于校正波形,振蕩器的作用主要是產(chǎn)生時(shí)鐘振蕩。而整個(gè)電路的作用則是為了產(chǎn)生自激振蕩。對(duì)于復(fù)位電路,AT89S51有兩種復(fù)位方式,分別是上點(diǎn)復(fù)位和按鍵復(fù)位。本設(shè)計(jì)采用的是按鍵復(fù)位,即利用一個(gè)復(fù)位電容和按鍵的組合使得復(fù)位變得更加直接和簡單。引腳RST作用是復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。在按下按鍵后,系統(tǒng)自動(dòng)復(fù)位,十分方便。在復(fù)位電路中添加按鍵主要是為了能夠使得復(fù)位更加方便,電容主要是在復(fù)位后進(jìn)行充電,而上拉電阻起到限流的作用,

19、保護(hù)了電路。圖2 復(fù)位電路單片機(jī)最小系統(tǒng)3.4.2 LCD電路的設(shè)計(jì)液晶顯示器是一種將液晶顯示器件,連接器件,集成電路,PCB線路板,背光源,結(jié)構(gòu)器件裝配在一起的組件。在顯示電路中,VSS接地,VDD接5V正電源, VEE為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,為了獲得最佳對(duì)比度,VEE接地。RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。E端為使能

20、端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。RS和R/W選用不同的高低電平,將影響寄存器的選擇。表4-1 寄存器選擇控制表RSR/W操作說明00寫入指令寄存器(清除屏等)01讀busy flag(DB7),以及讀取位址計(jì)數(shù)器(DB0DB6)值10寫入數(shù)據(jù)寄存器(顯示各字型等)11從數(shù)據(jù)寄存器讀取數(shù)據(jù) 由于液晶顯示器的功能是顯示各字符,所以RS置高電平,R/W接地。8位雙向數(shù)據(jù)線D0-D7與雙向I/O口相連。第四章 溫度測量系統(tǒng)的軟件程序設(shè)計(jì)4.1 概述在硬件設(shè)計(jì)完成之后,接下來就是設(shè)計(jì)最核心和最主要的軟件部分設(shè)計(jì)。所謂軟件需求就是把軟件變換成軟件的具體設(shè)計(jì)方案(即模塊結(jié)構(gòu))的過程。模塊

21、化結(jié)構(gòu)設(shè)計(jì)既是根據(jù)要求和硬件設(shè)計(jì)的結(jié)構(gòu),將整個(gè)系統(tǒng)的功能分成許多小的功能模塊,再根據(jù)小的功能模塊進(jìn)行程序編寫的過程。這樣的設(shè)計(jì)方法,使得系統(tǒng)的整個(gè)功能和各部分的功能趨于明朗化。當(dāng)系統(tǒng)出現(xiàn)問題,就可以根據(jù)功能設(shè)置找出問題的根源,從而更快的解決問題。所以,在整個(gè)設(shè)計(jì)過程中,軟件設(shè)計(jì)必須與硬件設(shè)計(jì)緊密結(jié)合在一起?;贒S18B20溫度傳感器的溫度顯示器的軟件設(shè)計(jì)程序包括初始化函數(shù)、復(fù)位函數(shù)、寫命令函數(shù)、寫數(shù)據(jù)函數(shù)、顯示函數(shù)、溫度轉(zhuǎn)換函數(shù)等幾部分。4.2 溫度測量系統(tǒng)的總體程序設(shè)計(jì)在主程序模塊中,需要完成對(duì)LCD初始化、溫度轉(zhuǎn)換、顯示函數(shù)的設(shè)計(jì)。AT89S51的P0端口連接的是LCD1602的D0到D

22、7端口用于顯示溫度,AT89S51的P2.7(28引腳)端口連接的是LCD1602的RS端口,AT89S51的P2.6(27引腳)端口連接的是LCD1602的En端口,高電平時(shí)顯示溫度,P2.0(21引腳)端口連接DA18B20的I/O端口,用于收集溫度。其程序流程如圖所示:開始初始化是否正溫度讀取溫度值溫度值轉(zhuǎn)換LCD顯示讀取溫度值返回4.3 DS18B20子程序的設(shè)計(jì)初始化DS18B20溫度采集處理顯示處理子程序退出4.4 LCD顯示子程序的設(shè)計(jì) 首先要對(duì)LCD初始化,然后將由單片機(jī)和溫度采集器處理后的溫度按照所給定的地址顯示在所指定的位置。第五章 系統(tǒng)調(diào)試與分析5.1故障及原因分析在測試

23、lcd時(shí)發(fā)現(xiàn),單片機(jī)不能正常工作。首先對(duì)單片機(jī)與lcd進(jìn)行了檢查,沒發(fā)現(xiàn)問題;然后對(duì)晶振電路與復(fù)位電路進(jìn)行了檢查,均未找到故障;在對(duì)pcb板的電路線進(jìn)行檢查時(shí)發(fā)現(xiàn)單片機(jī)的19引腳和20引腳串聯(lián)接地,經(jīng)過與原理圖的對(duì)比發(fā)現(xiàn)19引腳與20引腳之間無短路,經(jīng)過調(diào)試與糾正后lcd可正常工作。第六章 結(jié)論與展望6.1 結(jié)論 在本次的項(xiàng)目設(shè)計(jì)中,我們發(fā)現(xiàn)了很多問題,只有通過實(shí)踐才能真正的掌握從課本學(xué)到的知識(shí),其中讓我們感觸最深的就是單片機(jī)的學(xué)習(xí)和對(duì)單片機(jī)算法的設(shè)計(jì),這讓我們深刻的認(rèn)識(shí)到C語言程序的設(shè)計(jì)并不像我們?cè)谡n堂上學(xué)到的簡單,如果我們只學(xué)習(xí)理論的知識(shí),根本談不上對(duì)知識(shí)的掌握。從這次的課題設(shè)計(jì)中,我們真

24、正的意識(shí)到,在以后的學(xué)習(xí)中應(yīng)多聯(lián)系實(shí)際,把我們所學(xué)的理論知識(shí)應(yīng)用到實(shí)際生活中去,學(xué)習(xí)單片機(jī)更是如此。程序只有在平時(shí)多讀多寫才能提高。這是我們本次次項(xiàng)目的主要收獲。6.2 展望 通過這次的課題設(shè)計(jì)中,我們小有收獲的認(rèn)識(shí)了單片機(jī),激發(fā)了我們繼續(xù)深入實(shí)踐的興趣,我們要鍥而不舍的繼續(xù)努力學(xué)習(xí)更多的未知的知識(shí)。參考文獻(xiàn)附錄原理圖和PCB圖 軟件代碼#includereg52.h#define uchar unsigned char#define uint unsigned int#define jump_ROM 0xCC /寫跳過讀ROM指令。因?yàn)橹粚?duì)一個(gè)DB18B20操作。#define start

25、0x44 /寫溫度轉(zhuǎn)換指令。#define read_EEROM 0xBE /讀暫存器,讀內(nèi)部RAM中9字節(jié)的溫度sbit DQ=P20; /DS18B02唯一與單片機(jī)連接的數(shù)據(jù)端sbit lcdrs=P27; /數(shù)據(jù)命令選擇控制sbit lcden=P26; /使能信號(hào)uchar i;uchar TMPH,TMPL; /用于讀取高低 8位數(shù)據(jù)。uchar code tab11 = 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2e; /帶小數(shù)點(diǎn)/00101110為小數(shù)點(diǎn) /uchar show11 = 0x30,0x31,0x32,0

26、x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2e; uchar show6 = 0,0,0,0x2e,0,0x43; /帶小數(shù)點(diǎn)/00101110為小數(shù)點(diǎn) /* 以下為延時(shí)函數(shù),晶振為11.0592的時(shí)候,延時(shí)一次大約為:16us。*/void delay(uint us) uint s; for(s=0;sus;s+);/* 一下為復(fù)位函數(shù)。resert() 并且讀取它的信號(hào)。 注意:一個(gè)delay(1)=16us*/uchar resert(void) uchar receive_ready; DQ=0; delay(32) ; /最好延時(shí)時(shí)間為480us。 本

27、次為32*16=512us。 DQ=1; delay(3); /延時(shí)等待。 receive_ready=DQ; /獲取信號(hào)。 delay(25); /等待時(shí)間隙 完。 不超過480us,本次為400us。 return receive_ready; /返回信號(hào)/* 名稱 : read_bit()* 功能 : 從DS18B20讀一個(gè)位值* 輸入 : 無* 輸出 : 從DS18B20讀出的一個(gè)位值*/uchar read_bit() uchar i; DQ=0; DQ=1; for(i=0;i3;i+); /從時(shí)間隙開始延時(shí)15us。 return DQ; /讀出的一個(gè)位值返回/* 名稱 : wr

28、ite_bit()* 功能 : 向DS18B20寫一位* 輸入 : bitval(要對(duì)DS18B20寫入的位值)* 輸出 : 無*/void write_bit(bitval) DQ=0; /先把數(shù)據(jù)位置0,開始時(shí)間隙。 /delay(1); /延時(shí)16us。 if(bitval=1) DQ=1; delay(5); /5 /在其余的時(shí)間隙保持值。 DQ=1;/* 名稱 : read_byte()* 功能 : 從DS18B20讀一個(gè)字節(jié)* 輸入 : 無* 輸出 : 從DS18B20讀到的值*/uchar read_byte() uchar i; uchar value=0; for(i=0;i

29、8;i+) if(read_bit() /當(dāng)read_bit()=0時(shí),value=0; 當(dāng) read_bit()=1時(shí),執(zhí)行 value|=0x01i;,value=1。 value|=0x01i; /按位或|。 有一個(gè)為1則為1 delay(6) ; /6 /等待剩下時(shí)間隙。 return value;/* 名稱 : write_byte()* 功能 : 向DS18B20寫一個(gè)字節(jié)* 輸入 : val(要對(duì)DS18B20寫入的命令值)* 輸出 : 無*/void write_byte(uchar val) uchar i,temp; for(i=0;ii; temp=temp&0x01; write_bit(temp); delay(5); /1/*獲取溫度的數(shù)值*uint get_temp() float f_temp; uint temp; / P2=0x00; resert(); /通過單總線的所有執(zhí)行(處理 )都從一個(gè)初始化程序開始。其包括總線發(fā)出的復(fù)位脈沖和 從機(jī)發(fā)出的脈沖。(單機(jī)) write_byte(jump_ROM); / 寫跳過讀ROM指令。因?yàn)橹粚?duì)一個(gè)DB18B20操作。 write_byte(read_EEROM); /read_EEROM =0xBE ,讀暫存器,讀內(nèi)部RAM中9字節(jié)的溫度 TMPL =

溫馨提示

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

評(píng)論

0/150

提交評(píng)論