




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘 要隨著現(xiàn)代信息化技術(shù)的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實(shí)現(xiàn),能獨(dú)立工作的溫度檢測(cè)系統(tǒng)已廣泛應(yīng)用于各種不同的領(lǐng)域。本文介紹了一個(gè)基于89C51單片機(jī)和數(shù)字溫度傳感器DS18B20的測(cè)溫系統(tǒng),并用LED數(shù)碼管顯示溫度值,易于讀數(shù)。重點(diǎn)對(duì)傳感器在單片機(jī)下的硬件連接,軟件編程以及各模塊系統(tǒng)流程進(jìn)行了詳盡分析,對(duì)各部分的電路也一一進(jìn)行了介紹,該系統(tǒng)可以方便的實(shí)現(xiàn)實(shí)現(xiàn)溫度采集和顯示,并可根據(jù)需要任意設(shè)定上下限報(bào)警溫度,它使用起來相當(dāng)方便,具有精度高、量程寬、靈敏度高、體積小、功耗低等優(yōu)點(diǎn),適合于我們?nèi)粘I詈凸?、農(nóng)業(yè)生產(chǎn)中的溫度測(cè)量,也可以當(dāng)作溫度處理模塊嵌入其它系統(tǒng)中。關(guān)鍵詞:溫度測(cè)量;DS18B20;
2、AT89C51;溫度計(jì)目錄緒論11 設(shè)計(jì)背景21.1課題背景21.2設(shè)計(jì)內(nèi)容22 總體方案設(shè)計(jì)32.1 方案選擇32.2 系統(tǒng)原理32.3 總體設(shè)計(jì)框圖43 系統(tǒng)硬件設(shè)計(jì)53.1 主控制器選擇53.2 顯示電路73.3 溫度傳感器簡(jiǎn)介73.4 DS18B20溫度傳感器與單片機(jī)的接口電路123.5 時(shí)鐘電路123.6 復(fù)位電路133.7系統(tǒng)總體電路圖144 軟件設(shè)計(jì)154.1 C語言簡(jiǎn)介154.2程序編譯軟件keil介紹164.3溫度數(shù)據(jù)采集164.4主程序設(shè)計(jì)174.5 復(fù)位子程序設(shè)計(jì)194.6 讀寫程序設(shè)計(jì)195電路仿真215.1 Proteus軟件介紹215.2 智能溫度計(jì)Ptoteus仿
3、真21總結(jié)23參考文獻(xiàn)24附錄:源程序代碼25緒論隨著人們生活水平的不斷提高,單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人帶來的方便是不可否定的,各種數(shù)字系統(tǒng)的應(yīng)用也使人們的生活更加舒適。數(shù)字化控制、智能控制為現(xiàn)代人的工作、生活、科研等方面帶來方便。其中數(shù)字溫度計(jì)就是一個(gè)典型的例子。 數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便、測(cè)溫范圍廣、測(cè)溫精確、功能多樣話等優(yōu)點(diǎn)。其主要用于對(duì)測(cè)溫要求準(zhǔn)確度比較高的場(chǎng)所,或科研實(shí)驗(yàn)室使用,該設(shè)計(jì)使用AT89C51單片機(jī)作控制器,數(shù)字溫度傳感器DS18B20測(cè)量溫度,單片機(jī)接受傳感器輸出,經(jīng)處理用LED數(shù)碼管實(shí)現(xiàn)溫度值顯示。溫度的測(cè)量對(duì)人類日常生活、工業(yè)生產(chǎn)、
4、氣象預(yù)報(bào)、物資倉儲(chǔ)等都起著極其重要的作用,因此研究溫度的測(cè)量方法和裝置具有重要的意義。近年來,溫度檢測(cè)領(lǐng)域發(fā)展迅速,并且隨著數(shù)字技術(shù)的發(fā)展,溫度的測(cè)控芯片也相應(yīng)的登上歷史 的舞臺(tái),能夠在工業(yè)、農(nóng)業(yè)等各個(gè)領(lǐng)域中廣泛使用。溫度的測(cè)量的關(guān)鍵之處是溫度傳感器,其往往決定著一個(gè)溫度檢測(cè)系統(tǒng)的性能。傳統(tǒng)的溫度檢測(cè)以熱敏電阻和AD590為溫度敏感元件。熱敏電阻雖成本低, 但需信號(hào)處理電路,電路復(fù)雜,可靠性較低,測(cè)溫準(zhǔn)確度及抗干擾能力也有一定的不足。近年來,傳感器正處于傳統(tǒng)型向新型傳感器轉(zhuǎn)型的發(fā)展階段。新型的溫度傳感器的特點(diǎn)是微型化、數(shù)字化、智能化、多功能化、系統(tǒng)化、網(wǎng)絡(luò)化,它提高了抗干擾能力和可靠性,而且使
5、系統(tǒng)結(jié)構(gòu)更簡(jiǎn)潔,維護(hù)方便,縮小了空間。單片機(jī)具有集成度高、功能強(qiáng)、體積小、價(jià)格低、抗干擾能力等優(yōu)于一般CPU的優(yōu)點(diǎn),因此往往采用單片機(jī)作為數(shù)字控制器取代模擬控制器。1 設(shè)計(jì)背景1.1 課題背景溫度控制系統(tǒng)在國內(nèi)各行各業(yè)的應(yīng)用雖然已經(jīng)十分廣泛,但從國內(nèi)生產(chǎn)的溫度控制器來講,總體發(fā)展水平仍然不高,同日本、美國、德國等先進(jìn)國家相比,仍然有著較大的差距。成熟的溫控產(chǎn)品主要以“點(diǎn)位”控制及常規(guī)的PID控制器為主,它們只能適應(yīng)一般溫度系統(tǒng)控制,而用于較高控制場(chǎng)合的智能化、自適應(yīng)控制儀表,國內(nèi)技術(shù)還不十分成熟,形成商品化并廣泛應(yīng)用的控制儀表較少。隨著我國經(jīng)濟(jì)的發(fā)展及加入WTO,我國政府及企業(yè)對(duì)此都非常重視,
6、對(duì)相關(guān)企業(yè)資源進(jìn)行了重組,相繼建立了一些國家、企業(yè)的研發(fā)中心,開展創(chuàng)新性研究,使我國儀表工業(yè)得到了迅速的發(fā)展。1.2 設(shè)計(jì)內(nèi)容本設(shè)計(jì)主要是介紹了單片機(jī)控制下的溫度檢測(cè)系統(tǒng),詳細(xì)介紹了其硬件和軟件設(shè)計(jì),并對(duì)其各功能模塊做了詳細(xì)介紹,其主要功能和指標(biāo)如下:(1)利用溫度傳感器(DS18B20)測(cè)量某一點(diǎn)環(huán)境溫度;(2)測(cè)量范圍為-5599,精度為±0.5;(3)用LED進(jìn)行實(shí)際溫度值顯示。2 總體方案設(shè)計(jì)2.1 方案選擇考慮到在單片機(jī)屬于數(shù)字系統(tǒng),容易想到數(shù)字溫度傳感器,可選用DS18B20數(shù)字溫度傳感器,此傳感器為單總線數(shù)字溫度傳感器,體積小、構(gòu)成的系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,它可直接將溫度轉(zhuǎn)化成串
7、行數(shù)字信號(hào)給單片機(jī)處理,即可實(shí)現(xiàn)溫度顯示。另外DS18B20具有3引腳的小體積封裝,測(cè)溫范圍為-55+125攝氏度,測(cè)溫分辨率可達(dá)0.0625攝氏度,其測(cè)量范圍與精度都能符合設(shè)計(jì)要求。采用51單片機(jī)控制軟件編程的自由度大,而且體積小,硬件實(shí)現(xiàn)簡(jiǎn)單,安裝方便。2.2 系統(tǒng)原理由于單片機(jī)具有以下的很多優(yōu)點(diǎn),被我們選定為制作該作品的首選芯片。單片機(jī)特點(diǎn):(1)高集成度,體積小,高可靠性 單片機(jī)將各功能部件集成在一塊晶體芯片上,集成度很高,體積自然也是最小的。芯片本身是按工業(yè)測(cè)控環(huán)境要求設(shè)計(jì)的,內(nèi)部布線很短,其抗工業(yè)噪音性能優(yōu)于一般通用的CPU。單片機(jī)程序指令,常數(shù)及表格等固化在ROM中不易破壞,許多
8、信號(hào)通道均在一個(gè)芯片內(nèi),故可靠性高。 (2)控制功能強(qiáng) 為了滿足對(duì)對(duì)象的控制要求,單片機(jī)的指令系統(tǒng)均有極豐富的條件:分支轉(zhuǎn)移能力,I/O口的邏輯操作及位處理能力,非常適用于專門的控制功能。 (3)低電壓,低功耗,便于生產(chǎn)便攜式產(chǎn)品 為了滿足廣泛使用于便攜式系統(tǒng),許多單片機(jī)內(nèi)的工作電壓僅為1.8V3.6V,而工作電流僅為數(shù)百微安。 (4)易擴(kuò)展 片內(nèi)具有計(jì)算機(jī)正常運(yùn)行所必需的部件。芯片外部有許多供擴(kuò)展用的三總線及并行、串行輸入/輸出管腳,很容易構(gòu)成各種規(guī)模的計(jì)算機(jī)應(yīng)用系統(tǒng)。 (5)優(yōu)異的性能價(jià)格比 單片機(jī)的性能極高。為了提高速度和運(yùn)行效率,單片機(jī)已開始使用RISC流水線和DSP等技術(shù)。單片機(jī)的尋
9、址能力也已突破64KB的限制,有的已可達(dá)到1MB和16MB,片內(nèi)的ROM容量可達(dá)62MB,RAM容量則可達(dá)2MB。由于單片機(jī)的廣泛使用,因而銷量極大,各大公司的商業(yè)競(jìng)爭(zhēng)更使其價(jià)格十分低廉,其性能價(jià)格比極高。 采用AT89S51。AT89S51片內(nèi)具有8K字節(jié)程序存儲(chǔ)空間,256字節(jié)的數(shù)據(jù)存儲(chǔ)空間沒有EEPROM存儲(chǔ)空間,也與MCS-51系列單片機(jī)完全兼容,具有在線編程可擦除技術(shù)。兩種單片機(jī)都完全能夠滿足設(shè)計(jì)需要,STC89C51相對(duì)ATS89C52價(jià)格便宜,且抗干擾能力強(qiáng)。考慮到成本因素,因此選用STC89C51。2.3 總體設(shè)計(jì)框圖本方案設(shè)計(jì)的系統(tǒng)由單片機(jī)系統(tǒng)、數(shù)字溫度傳感器、LED顯示模塊
10、、按鍵控制模塊、溫度報(bào)警模塊組成,其總體架構(gòu)如下圖2.1.單片機(jī)測(cè)溫電路顯示電路驅(qū)動(dòng)電路按鍵輸入電路報(bào)警電路時(shí)鐘、復(fù)位電路 圖2.1 系統(tǒng)總體方框圖3 系統(tǒng)硬件設(shè)計(jì)3.1 主控制器選擇AT89C51 ATMEL公司生產(chǎn)的低電壓,高性能CMOS 8位單片機(jī)片內(nèi)含4K byTES的可反復(fù)擦寫的只讀程序存儲(chǔ)器(PEROM)和128 byTES的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8052 產(chǎn)品引腳兼容,片內(nèi)置通用8位中央處理器(CPU )和FLASH由存儲(chǔ)單元,功能強(qiáng)大AT89C52單片適用于許多較為復(fù)雜控制應(yīng)用場(chǎng)合。圖3.
11、1 AT89C51引腳圖STC89C51主要功能如表3.1所示,其PDIP封裝如圖3.1所示。表3.1 STC89C51主要功能 主要功能特性兼容MCS51指令系統(tǒng)8K可反復(fù)擦寫Flash ROM32個(gè)雙向I/O口256x8bit內(nèi)部RAM3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷時(shí)鐘頻率0-24MHz2個(gè)串行中斷可編程UART串行通道2個(gè)外部中斷源共6個(gè)中斷源2個(gè)讀寫中斷口線3級(jí)加密位低功耗空閑和掉電模式軟件設(shè)置睡眠和喚醒功能主電源引腳(2根)VCC(Pin40):電源輸入,接5V電源GND(Pin20):接地線外接晶振引腳(2根)XTAL1(Pin19):片內(nèi)振蕩電路的輸入端XTAL2(Pin20)
12、:片內(nèi)振蕩電路的輸出端控制引腳(4根)RST/VPP(Pin9):復(fù)位引腳,引腳上出現(xiàn)2個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。ALE/PROG(Pin30):地址鎖存允許信號(hào)PSEN(Pin29):外部存儲(chǔ)器讀選通信號(hào)EA/VPP(Pin31):程序存儲(chǔ)器的內(nèi)外部選通,接低電平從外部程序存儲(chǔ)器讀指令,如果接高電平則從內(nèi)部程序存儲(chǔ)器讀指令??删幊梯斎?輸出引腳(32根)STC89C51單片機(jī)有4組8位的可編程I/O口,分別位P0、P1、P2、P3口,每個(gè)口有8位(8根引腳),共32根。P0口(Pin39Pin32):8位雙向I/O口線,名稱為P0.0P0.7P1口(Pin1Pin8):8位準(zhǔn)雙向I/
13、O口線,名稱為P1.0P1.7 P2口(Pin21Pin28):8位準(zhǔn)雙向I/O口線,名稱為P2.0P2.7 P3口(Pin10Pin17):8位準(zhǔn)雙向I/O口線,名稱為P3.0P3.73.2 顯示電路使用四位一體共陽數(shù)碼管,并外接上拉電阻,已達(dá)到較好效果,如圖3.2。圖3.2 數(shù)碼管顯示電路3.3 溫度傳感器簡(jiǎn)介溫度傳感器的種類眾多,在應(yīng)用與高精度、高可靠性的場(chǎng)合時(shí)DALLAS(達(dá)拉斯)公司生產(chǎn)的DS18B20溫度傳感器當(dāng)仁不讓。超小的體積,超低的硬件開消,抗干擾能力強(qiáng),精度高,附加功能強(qiáng),使得DS18B20更受歡迎。對(duì)于我們普通的電子愛好者來說,DS18B20的優(yōu)勢(shì)更是我們學(xué)習(xí)單片機(jī)技術(shù)和
14、開發(fā)溫度相關(guān)的小產(chǎn)品的不二選擇。了解其工作原理和應(yīng)用可以拓寬您對(duì)單片機(jī)開發(fā)的思路。DS18B20的主要特征:(1)全數(shù)字溫度轉(zhuǎn)換及輸出。(2)先進(jìn)的單總線數(shù)據(jù)通信。(3)最高12位分辨率,精度可達(dá)土0.5攝氏度。(4)12位分辨率時(shí)的最大工作周期為750毫秒。(5)可選擇寄生工作方式。(6)檢測(cè)溫度范圍為55°C +125°C (67°F +257°F)。(7)內(nèi)置EEPROM,限溫報(bào)警功能。(8)64位光刻ROM,內(nèi)置產(chǎn)品序列號(hào),方便多機(jī)掛接。(9)多樣封裝形式,適應(yīng)不同硬件系統(tǒng)。DS18B20的另一個(gè)功能是可以在沒有外部電源供電的情況下工作。當(dāng)總線處
15、于高電平狀態(tài),DQ與上拉電阻連接通過單總線對(duì)器件供電。同時(shí)處于高電平狀態(tài)的總線信號(hào)對(duì)內(nèi)部電容(Cpp)充電,在總線處于低電平狀態(tài)時(shí),該電容提供能量給器件。這種提供能量的形式被稱為“寄生電源”。作為替代選擇,DS18B20同樣可以通過VDD引腳連接外部電源供電。圖3.3 DS18B20方框圖 圖3.4 引腳排列引腳說明:GND地 DQ數(shù)據(jù)I/O對(duì)于單線操作:漏極開路。當(dāng)工作在寄生電源模式時(shí),用來提供電源(建“寄生電源”節(jié))。VDD可選電源電壓NC無連接單總線信號(hào)DS18B20 需要嚴(yán)格的單總線協(xié)議以確保數(shù)據(jù)的完整性。協(xié)議包括集中單總線信號(hào)類型:復(fù)位脈沖、存在脈沖、寫0、寫1、讀0和讀1。所有這些
16、信號(hào),除存在脈沖外,都是由總線控制器發(fā)出的。復(fù)位序列:復(fù)位和存在脈沖和DS18B20 間的任何通訊都需要以初始化序列開始,初始化序列見圖3.5。一個(gè)復(fù)位脈沖跟著一個(gè)存在脈沖表明 DS18B20已經(jīng)準(zhǔn)備好發(fā)送和接收數(shù)據(jù)。在初始化序列期間,總線控制器拉低總線并保持480us以發(fā)出(TX)一個(gè)復(fù)位脈沖,然后釋放總線,進(jìn)入接收狀態(tài)(RX)。單總線由5K上拉電阻拉到高電平。當(dāng)DS18B20探測(cè)到I/O引腳上的上升沿后,等待15-60us,然后發(fā)出一個(gè)60-240us 低電平信號(hào)構(gòu)成的存在脈沖。單總線通常要求接一個(gè)約4.7K左右的上拉電阻,這樣,當(dāng)總線空閑時(shí),其狀態(tài)為高電平。圖3.5初始化時(shí)序讀/寫時(shí)序D
17、S18B20 的數(shù)據(jù)讀寫是通過時(shí)序處理位來確認(rèn)信息交換的。寫時(shí)序由兩種寫時(shí)序:寫1時(shí)序和寫0時(shí)序??偩€控制器通過寫1時(shí)序?qū)戇壿?到DS18B20,寫0時(shí)序?qū)戇壿?到DS18B20。所有寫時(shí)序必須最少持續(xù)60us,包括兩個(gè)寫周期之間至少1us 的恢復(fù)時(shí)間。當(dāng)總線控制器把數(shù)據(jù)線從邏輯高電平拉到低電平的時(shí)候,寫時(shí)序開始(見圖3.6)??偩€控制器要生產(chǎn)一個(gè)寫時(shí)序,必須把數(shù)據(jù)線拉到低電平然后釋放,在寫時(shí)序開 始后的15us釋放總線。當(dāng)總線被釋放的時(shí)候,5K的上拉電阻將拉高總線??偪刂破饕梢粋€(gè)寫0時(shí)序,必須把數(shù)據(jù)線拉到低電平并持續(xù)保持(至少60us)??偩€控制器初始化寫時(shí)序后,DS18B20 在一個(gè)1
18、5us到60us的窗口內(nèi)對(duì)I/O 線采樣。如果線上是高電平,就是寫1。如果線上是低電平,就是寫0。讀時(shí)序總線控制器發(fā)起讀時(shí)序時(shí),DS18B20僅被用來傳輸數(shù)據(jù)給控制器。因此,總線控制器在發(fā)出讀暫存器指令BEh或讀電源模式指令B4H后必須立刻開始讀時(shí)序,DS18B20可以提供請(qǐng)求信息。除此之外,總線控制器在發(fā)出發(fā)送溫度轉(zhuǎn)換指令44h或召回EEPROM指令B8h之后讀時(shí)序,詳見DS18B20功能指令節(jié)。所有讀時(shí)序必須最少60us,包括兩個(gè)讀周期間至少1us的恢復(fù)時(shí)間。當(dāng)總線控制器把數(shù)據(jù)線從高電平拉到低電平時(shí),讀時(shí)序開始,數(shù)據(jù)線必須至少保持1us,然后總線被釋放(見圖3.6)。在總線控制器發(fā)出讀時(shí)序
19、后,DS18B20通過拉高或拉低總線上來傳輸1或0。當(dāng)傳輸邏輯0結(jié)束后,總線將被釋放,通過上拉電阻回到上升沿狀態(tài)。從DS18B20輸出的數(shù)據(jù)在讀時(shí)序的下降沿出現(xiàn)后15us內(nèi)有效。 因此,總線控制器在讀時(shí)序開始后必須停止把I/O腳驅(qū)動(dòng)為低電平15us,以讀取I/O腳狀態(tài)。圖3.6 DS18B20讀寫時(shí)序圖3.7 DS18B20讀取溫度數(shù)值流程圖3.4 DS18B20溫度傳感器與單片機(jī)的接口電路單總線通常要求接一個(gè)約4.7K左右的上拉電阻,這樣,當(dāng)總線空閑時(shí),其狀態(tài)為高電平。圖3.8 DS18B20接線原理圖3.5 時(shí)鐘電路單片機(jī)的時(shí)鐘信號(hào)用來提供單片機(jī)內(nèi)各種微操作的時(shí)間基準(zhǔn),時(shí)鐘電路用于產(chǎn)生單片
20、機(jī)工作所需要的時(shí)鐘信號(hào)。單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,引腳XTALl和XTAL2分別是此放大電器的輸入端和輸出端,由于采用內(nèi)部方式時(shí),電路簡(jiǎn)單,所得的時(shí)鐘信號(hào)比較穩(wěn)定,實(shí)際使用中常采用這種方式。圖3.9 時(shí)鐘電路3.6 復(fù)位電路復(fù)位電路的用途:?jiǎn)纹瑱C(jī)復(fù)位電路就好比電腦的重啟部分,當(dāng)電腦在使用中出現(xiàn)死機(jī),按下重啟按鈕電腦內(nèi)部的程序從頭開始執(zhí)行。單片機(jī)也一樣,當(dāng)單片機(jī)系統(tǒng)在運(yùn)行中,受到環(huán)境干擾出現(xiàn)程序跑飛的時(shí)候,按下復(fù)位按鈕內(nèi)部的程序自動(dòng)從頭開始執(zhí)行。51單片機(jī)要復(fù)位只需要在第9引腳接個(gè)高電平持續(xù)2US就可以實(shí)現(xiàn),那這個(gè)過程是如何實(shí)現(xiàn)的呢?在單片機(jī)系統(tǒng)中,系統(tǒng)上電啟動(dòng)的時(shí)候復(fù)位
21、一次,當(dāng)按鍵按下的時(shí)候系統(tǒng)再次復(fù)位,如果釋放后再按下,系統(tǒng)還會(huì)復(fù)位。所以可以通過按鍵的斷開和閉合在運(yùn)行的系統(tǒng)中控制其復(fù)位。圖3.10 復(fù)位電路3.7系統(tǒng)總體電路圖當(dāng)接通電源以后,溫度傳感器正常工作,溫度傳感器將根據(jù)被測(cè)溫度的不同來采集不同的數(shù)據(jù),然后將所采集到的數(shù)據(jù)傳送到比較器到中,然后由比較器將采集到的數(shù)據(jù)轉(zhuǎn)變成高低電平,在送入單片機(jī),單片機(jī)通過控制各個(gè)引腳電平的高低來來控制溫度的顯示輸出。圖3.11 總體設(shè)計(jì)圖4 軟件設(shè)計(jì)4.1 C語言簡(jiǎn)介C語言是目前世界上流行、使用最廣泛的高級(jí)程序設(shè)計(jì)語言。C語言對(duì)操作系統(tǒng)和系統(tǒng)使用程序以及需要對(duì)硬件進(jìn)行操作的場(chǎng)合,用C語言明顯優(yōu)于其它高級(jí)語言,許多大型
22、應(yīng)用軟件都是用C語言編寫的。C語言具有繪圖能力強(qiáng),可移植性,并具備很強(qiáng)的數(shù)據(jù)處理能力,因此適于編寫系統(tǒng)軟件,三維,二維圖形和動(dòng)畫它是數(shù)值計(jì)算的高級(jí)語言。 常用的編譯軟件有Microsoft Visual C+,Borland C+,Watcom C+ ,Borland C+, Borland C+ Builder,Borland C+ 3.1 for DOS,Watcom C+ 11.0 for DOS,GNU DJGPP C+, Lccwin32 C Compiler 3.1,Microsoft C,High C,等等。C語言的發(fā)展歷史:C語言的發(fā)展頗為有趣。它的原型ALGOL 60語言。1
23、963年,劍橋大學(xué)將ALGOL 60語言發(fā)展成為CPL(Combined Programming Language)語言。1967年,劍橋大學(xué)的Matin Richards 對(duì)CPL語言進(jìn)行了簡(jiǎn)化,于是產(chǎn)生了BCPL語言。1970年,美國貝爾實(shí)驗(yàn)室的Ken Thompson將BCPL進(jìn)行了修改,并為它起了一個(gè)有趣的名字“B語言”。意思是將CPL語言煮干,提煉出它的精華。并且他用B語言寫了第一個(gè)UNIX操作系統(tǒng)。而在1973年,B語言也給人“煮”了一下,美國貝爾實(shí)驗(yàn)室的D.M.RITCHIE在B語言的基礎(chǔ)上最終設(shè)計(jì)出了一種新的語言,他取了BGPL的第二個(gè)字母作為這種語言的名字,這就是C語言。 為
24、了使UNIX操作系統(tǒng)推廣,1977年Dennis M.Ritchie發(fā)表了不依賴于具體機(jī)器系統(tǒng)的C語言編譯文本可移植的C語言編譯程序。 1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著The C Programming Language,從而使C語言成為目前世界上流行最廣泛的高級(jí)程序設(shè)計(jì)語言。1988年,隨著微型計(jì)算機(jī)的日益普及,出現(xiàn)了許多C語言版本。由于沒有統(tǒng)一的標(biāo)準(zhǔn),使得這些C語言之間出現(xiàn)了一些不一致的地方。為了改變這種情況,美國國家標(biāo)準(zhǔn)研究所(ANSI)為C語言制定了一套ANSI標(biāo)準(zhǔn),成為現(xiàn)行的C語言標(biāo)準(zhǔn)3.C語言的主要特點(diǎn) 。C語言發(fā)展迅速,而
25、且成為最受歡迎的語言之一,主要因?yàn)樗哂袕?qiáng)大的功能。許多著名的系統(tǒng)軟件,如DBASEPLUS、DBASE都是由C語言編寫的。用C語言加上一些匯編語言子程序,就更能顯示C語言的優(yōu)勢(shì)了,象PC- DOS 、WORDSTAR等就是用這種方法編寫的。4.2程序編譯軟件keil介紹Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(uVision)將這些部分組合
26、在一起。運(yùn)行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil 的優(yōu)勢(shì)。4.3溫度數(shù)據(jù)采集根據(jù)DS18B20的通訊協(xié)議,單片機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過三個(gè)步驟:每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位操作,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令
27、,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作,復(fù)位要求單片機(jī)將數(shù)據(jù)線下拉50微秒,然后釋放,當(dāng)DS18B20受到信號(hào)后等待1660微秒左右,然后發(fā)出60240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。表4.1 指令與約定代碼指令約定代碼功能讀ROM33H讀DS1820溫度傳感器ROM中的編碼(即64位地址)符合ROM55表4.1 指令與約定代碼H發(fā)出此命令之后,接著發(fā)出64位ROM編碼,訪問單總線上與該編碼相對(duì)應(yīng)的BS1820使之作出響應(yīng),為下一步對(duì)該DS1820的讀寫作準(zhǔn)備。搜索ROMOFOH用于確定掛接在同一總線上DS1820的個(gè)數(shù)和識(shí)別64位ROM地址。為操作各器件作好準(zhǔn)備。跳過RO
28、MOCCH忽略64位ROM地址,直接向DS1820發(fā)溫度變換命令。適用與單片工作。溫度變換44H啟動(dòng)DS1820進(jìn)行溫度轉(zhuǎn)換12位轉(zhuǎn)換時(shí)最廠為750ms(9位為93.75ms)。結(jié)果存入內(nèi)部9字節(jié)RAM中。讀暫存器OBEH讀內(nèi)部RAM中9字節(jié)的內(nèi)容。寫暫存器4EH發(fā)出向內(nèi)部RAM的3、4字節(jié)寫上、下限溫度數(shù)據(jù)命令,緊跟該命令之后,是傳送兩字節(jié)的數(shù)據(jù)。復(fù)制暫存器48H將RAM中第3、4字節(jié)的內(nèi)容復(fù)制到EEPROM中重EEPROMOB8H將EEPROM中內(nèi)容恢復(fù)到RAM中的第3、4字節(jié)。讀供電方式OB4H讀DS1820的供電模式。寄生東佃時(shí)DS1820發(fā)送“0”,外界電源供電DS1820發(fā)送“1”
29、。4.4主程序設(shè)計(jì)整個(gè)系統(tǒng)的功能是由硬件電路配合軟件來實(shí)現(xiàn)的,當(dāng)硬件基本定型的時(shí)候軟件也基本定下拉了,從軟件的功能不同,可以分為兩的類:一是主程序,它是整個(gè)軟件的核心,專門用來協(xié)調(diào)各個(gè)執(zhí)行模塊和操作者的聯(lián)系。二是子程序,它是用來完成各種實(shí)質(zhì)性的工作的,如測(cè)量、計(jì)算、顯示、通訊等。每一個(gè)執(zhí)行軟件就是一個(gè)小的執(zhí)行模塊,這里將每一個(gè)模塊一一列出來,并為每個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好以后,就可以規(guī)劃監(jiān)控軟件了。首先要根據(jù)系統(tǒng)的總體功能選擇一種最合適的主程序結(jié)構(gòu),然后根據(jù)實(shí)時(shí)性的條件,合理安排監(jiān)控軟件和執(zhí)行軟件之間的調(diào)度關(guān)系。當(dāng)DS18B20接受到溫度轉(zhuǎn)換命令后,開始啟動(dòng)溫度轉(zhuǎn)換。
30、轉(zhuǎn)換完成后的溫度值就以16位帶符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼形式存儲(chǔ)在高速暫存存儲(chǔ)器的0,1字節(jié)。單片機(jī)可以通過單線總線讀到該數(shù)據(jù),讀取時(shí)低位字節(jié)在前,高位字節(jié)在后,數(shù)據(jù)格式以0.0625攝氏度/LSB形式表示。溫度值低位和高位字節(jié)格式如表5所示,其中“S”為標(biāo)志位,對(duì)應(yīng)的溫度計(jì)算:當(dāng)符號(hào)位S=0時(shí),直接將二進(jìn)制位轉(zhuǎn)換成10進(jìn)制位;當(dāng)S=1時(shí),先將二進(jìn)制各位取反加一后再計(jì)算十進(jìn)制值。表4.2 溫度值低/高位字節(jié)DS18B20在完成溫度轉(zhuǎn)換后,會(huì)把測(cè)得的溫度值與TH,TL作比較,若TTH或T<TL,則將該器件內(nèi)的報(bào)警標(biāo)志位置位,并對(duì)主機(jī)發(fā)出報(bào)警搜索命令作出響應(yīng)。主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示、
31、讀出并處理DS18B20的測(cè)量的當(dāng)前溫度值,溫度測(cè)量每1s進(jìn)行一次。這樣可以在一秒之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程見圖4.1所示。圖4.1主程序流程圖通過調(diào)用讀溫度子程序把存入內(nèi)存儲(chǔ)中的整數(shù)部分與小數(shù)部分分開存放在不同的兩個(gè)單元中,然后通過調(diào)用顯示子程序顯示出來。4.5 復(fù)位子程序設(shè)計(jì)DS18B20復(fù)位時(shí)序圖參看后面芯片功能部分有詳細(xì)的介紹。在這一部分只給出程序流程圖,然后給出根據(jù)流程圖所編寫的DS18B20復(fù)位子程序。圖4.2 復(fù)位程序流程圖4.6 讀寫程序設(shè)計(jì)寫時(shí)序:對(duì)于DS18B20的寫時(shí)序仍然分為寫0時(shí)序和寫1時(shí)序兩個(gè)過程。當(dāng)主機(jī)總線 t o 時(shí)刻從高拉至低電平時(shí),就產(chǎn)生寫時(shí)間隙,從t
32、o時(shí)刻開始15us 之內(nèi)應(yīng)將所需寫的位送到總線上。DSl820 -在t o后1560us間對(duì)總線采樣。若低電平寫入的位是0;若高電平寫入的位是1。連續(xù)寫2位間的間隙應(yīng)大于 1us。DS18B20寫出子程序流程圖如圖4.3所示。讀時(shí)序:主機(jī)總線t0時(shí)刻從高拉至低電平時(shí),總線只需保持低電平1us,之后在t1時(shí)刻將總線拉高,產(chǎn)生讀時(shí)間隙,讀時(shí)間隙在t1時(shí)刻后t2時(shí)刻前有效。t2距t0為15us,也就是說,t2時(shí)刻前主機(jī)必須完成讀位,并在DS18B20讀出子程序流程圖如圖4.4所示。圖4.3 DS18B20寫入子程序流程圖 圖4.4 DS18B20讀出子程序流程圖5電路仿真5.1 Proteus軟件介
33、紹Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。功能特點(diǎn) Proteus軟件具有其它EDA工具軟件(例:multisim)的功能。這些功能
34、是:1原理布圖2PCB自動(dòng)或人工布線3SPICE電路仿真革命性的特點(diǎn)1互動(dòng)的電路仿真用戶甚至可以實(shí)時(shí)采用諸如RAM,ROM,鍵盤,馬達(dá),LED,LCD,AD/DA,部分SPI器件,部分IIC器件。2仿真處理器及其外圍電路可以仿真51系列、AVR、PIC、ARM、等常用主流單片機(jī)。還可以直接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運(yùn)行后輸入輸出的效果。配合系統(tǒng)配置的虛擬邏輯分析儀、示波器等,Proteus建立了完備的電子設(shè)計(jì)開發(fā)環(huán)境。5.2 智能溫度計(jì)Ptoteus仿真1.首先啟動(dòng)KEIL C51軟件的集成開發(fā)環(huán)境,從桌面上雙擊uVision圖標(biāo)以啟動(dòng)軟件。2.建立工程文件。通常單
35、片機(jī)應(yīng)用系統(tǒng)軟件包含多個(gè)源程序文件,KEIL C51使用工程這一概念,將這些參數(shù)設(shè)置和所需的所有文件都加在一個(gè)工程中。因此,需要建立一個(gè)工程文件,并為這個(gè)工程選擇CPU,確定編譯,匯編,連接的參數(shù),指定調(diào)試的方式。3.建立并添加源文件。使用菜單或者單擊工具欄的新建文件按鈕,出現(xiàn)文本便捷窗口,在該窗口中輸入新編制的源程序并保存該文件。然后,我打開已經(jīng)畫好的仿真圖,再將生成的HEX文件導(dǎo)入單片機(jī)里,點(diǎn)擊開始按鈕,電路正常工作,并且能夠?qū)崿F(xiàn)預(yù)先設(shè)想的所有功能,而且效果很好,從而驗(yàn)證了我的程序的正確性。圖5.1 仿真結(jié)果圖總結(jié)此次創(chuàng)新實(shí)踐中,難點(diǎn)在于DS18B20的使用,即對(duì)它的時(shí)序控制、初始化以及字
36、節(jié)讀寫方法,任何一個(gè)環(huán)節(jié)出錯(cuò)或是時(shí)序控制不到位的話就不能得到正確的數(shù)據(jù)。一旦學(xué)會(huì)了正確的使用方法,就能感覺到它帶來的便利是熱電偶不能比擬的,以后再次使用的話就能很快上手了。軟件設(shè)計(jì)中,把程序按功能分模塊的話能提高編程效率,把問題一一解決,同時(shí)畫流程圖能幫助理清思路,使問題簡(jiǎn)單化。定義變量時(shí),盡量定義局部變量,在字符型變量能達(dá)到要求的情況下就不用定義成整形變量了,以節(jié)省內(nèi)存空間。同時(shí)局部變量應(yīng)避免與全局變量取同名,否則全局變量將被屏蔽或與局部變量相沖突而達(dá)不到設(shè)計(jì)的效果。另一方面,取變量名時(shí)也要講究技巧,應(yīng)盡量使其見名知意,同樣地,寫程序時(shí)加注釋確是非常必要的,否則隔一段時(shí)間后,想再改進(jìn)或做擴(kuò)展
37、的話就比較困難了,因?yàn)榧词故亲约簩懙某绦蛞沧兊秒y讀難懂了??偟膩碚f,自己從這次獨(dú)立的課程設(shè)計(jì)中收獲了一些知識(shí)與經(jīng)驗(yàn),一些從書本中學(xué)之不來的東西,不是說理論無用,而這恰恰是在理論的土壤中開出的花朵,是在理論的肩膀望見的更寬廣的道路。參考文獻(xiàn)1孫育才.單片微型計(jì)算機(jī)及其應(yīng)用.南京:東南大學(xué)出版社,20042潘新民 王燕芳.微型計(jì)算機(jī)控制技術(shù).北京:電子工業(yè)出版社,2003 4李群芳.單片機(jī)原理及接口技術(shù).北京:電子工業(yè)出版社,20085李光飛.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo).北京:北京航空航天大學(xué)出版社,20046徐瑋. C51單片機(jī)高效入門(第2版).北京:機(jī)械工業(yè)出版社,2010附錄:源程序代碼#in
38、clude<reg52.h> #define ui unsigned int#define uc unsigned char /宏定義sbit DQ =P37; /定義DS18B20總線I/Obit bdata fuhao;uc qian,bai,shi,ge;uc code led=0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x47,0xDF,0xD7;uc code led_dian=0x7f,0x64,0xbd,0xf5,0xe6,0xf3,0xfb,0x67,0xff,0xf7;=DS18B20=/*延時(shí)子程序*/void Delay(int n
39、um)while(num-) ;/*初始化DS18B20*/void Init_DS18B20()DQ = 1; /DQ復(fù)位Delay(8); /稍做延時(shí)DQ = 0; /單片機(jī)將DQ拉低Delay(80); /精確延時(shí),大于480usDQ = 1; /拉高總線Delay(40);/*讀一個(gè)字節(jié)*/uc ReadOneChar()uc i=0;uc dat = 0;for (i=8;i>0;i-)DQ = 0; / 給脈沖信號(hào)dat>>=1;DQ = 1; / 給脈沖信號(hào)if(DQ)dat|=0x80;Delay(4);return(dat);/*寫一個(gè)字節(jié)*/void WriteOneChar(uc dat)uc i=0;for (i=8; i>0; i-)DQ = 0;DQ = dat&0x01;D
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 家教班教師管理制度
- 應(yīng)急局保密管理制度
- 錄播室設(shè)備管理制度
- 彼得德魯克管理制度
- 德品佳水餃管理制度
- 心臟病臨床管理制度
- 快遞寄遞點(diǎn)管理制度
- 急診科物價(jià)管理制度
- 總授信額度管理制度
- 情報(bào)研判室管理制度
- (新版)供電可靠性(初級(jí))理論普考題庫及答案匯總-下(判斷題)
- 事業(yè)單位工勤人員技師考試職業(yè)道德復(fù)習(xí)試題
- 職業(yè)安全健康現(xiàn)場(chǎng)檢查記錄表參考范本
- 冷凍水管道工程施工工藝
- GA∕T 1699-2019 法庭科學(xué) 復(fù)制筆跡檢驗(yàn)指南
- 杭電 通信電路復(fù)習(xí)
- 初物管理辦法及規(guī)定
- 對(duì)照品管理SOP雙語
- 積雪草提取物對(duì)胃粘膜的保護(hù)作用及其機(jī)制探討
- STEP7下冗余IO編程
- 道教全真禮斗清科儀
評(píng)論
0/150
提交評(píng)論