基于單片機(jī)的智能溫度計(jì)的設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的智能溫度計(jì)的設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的智能溫度計(jì)的設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的智能溫度計(jì)的設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的智能溫度計(jì)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)課程設(shè)計(jì)目錄1設(shè)計(jì)背景11.1課題背景11.2設(shè)計(jì)內(nèi)容12智能溫度計(jì)系統(tǒng)簡(jiǎn)介22.1方案選擇22.2系統(tǒng)設(shè)計(jì)原理32.3系統(tǒng)組成43.系統(tǒng)硬件設(shè)計(jì)63.1DS18B20溫度傳感器63.1.1DS18B20介紹63.1.2溫度傳感器工作原理63.1.3DS18B20相關(guān)介紹83.1.4DS18B20使用中的注意事項(xiàng)93.2液晶顯示器(1602液晶顯示器)103.2.1液晶顯示器的介紹103.2.2 1602LCD的特性113.2.3液晶模塊簡(jiǎn)介113.2.3液晶顯示部分與89C51的接口133.3 80C51單片機(jī)的介紹143.3.1 80C51單片機(jī)的主要特性153.3.2 80C51單

2、片機(jī)管腳163.3.3 80C51單片機(jī)的中斷系統(tǒng)183.3.4 80C51單片機(jī)的定時(shí)/計(jì)數(shù)器183.3.5 80C51單片機(jī)的最小系統(tǒng)193.4系統(tǒng)總體電路圖204.軟件設(shè)計(jì)簡(jiǎn)介214.1 C語(yǔ)言簡(jiǎn)介214.2 程序設(shè)計(jì)215.電路仿真245.1 Proteus軟件介紹7245.2智能溫度計(jì)Ptoteus仿真25總結(jié)27參考文獻(xiàn)28附錄:源程序代碼29411設(shè)計(jì)背景溫度控制廣泛應(yīng)用于人們的生產(chǎn)和生活中,人們使用溫度計(jì)來采集溫度,通過人工操作加熱、通風(fēng)和降溫設(shè)備來控制溫度,這樣不但控制精度低、實(shí)時(shí)性差,而且操作人員的勞動(dòng)強(qiáng)度大。即使有些用戶采用半導(dǎo)體二極管作溫度傳感器,但由于其互換性差,效果

3、也不理想。在某些行業(yè)中對(duì)溫度的要求較高,由于工作環(huán)境溫度不合理而引發(fā)的事故時(shí)有發(fā)生。對(duì)工業(yè)生產(chǎn)可靠進(jìn)行造成影響,甚至操作人員的安全。為了避免這些缺點(diǎn),需要在某些特定的環(huán)境里安裝數(shù)字溫度測(cè)量及控制設(shè)備。本設(shè)計(jì)由于采用了新型單片機(jī)對(duì)溫度進(jìn)行測(cè)量,以其測(cè)量精度高,操作簡(jiǎn)單。可運(yùn)行性強(qiáng),價(jià)格低廉等優(yōu)點(diǎn),特別適用于生活,醫(yī)療,工業(yè)生產(chǎn)等方面的溫度測(cè)量。本設(shè)計(jì)是一個(gè)智能溫度測(cè)量,能測(cè)柜內(nèi)的溫度,并能在超限的情況下進(jìn)行控制、調(diào)整,并報(bào)警。1.1課題背景隨著科技的不斷進(jìn)步,在工業(yè)生產(chǎn)中溫度是常用的被控參數(shù),而采用單片機(jī)來對(duì)這些被控參數(shù)進(jìn)行控制已成為當(dāng)今的主流。采用數(shù)字溫度傳感器DS18B20,因其內(nèi)部集成了A

4、/D轉(zhuǎn)換器,使得電路結(jié)構(gòu)更加簡(jiǎn)單,而且減少了溫度測(cè)量轉(zhuǎn)換時(shí)的精度損失,使得測(cè)量溫度更加精確。1.2設(shè)計(jì)內(nèi)容本次課程設(shè)計(jì)模擬工業(yè)現(xiàn)場(chǎng),對(duì)溫度進(jìn)行測(cè)量,并實(shí)時(shí)顯示出來,并且可以設(shè)定溫度的上下限,當(dāng)溫度達(dá)到上下限時(shí) 系統(tǒng)自動(dòng)報(bào)警。控制系統(tǒng)主控制器采用51單片機(jī),溫度測(cè)量采用DS18B20,設(shè)定溫度后,當(dāng)溫度達(dá)到設(shè)定限時(shí),可以通過閃彩燈和響蜂鳴器報(bào)警提示,并且實(shí)時(shí)顯示在1602液晶顯示器上。2智能溫度計(jì)系統(tǒng)簡(jiǎn)介2.1方案選擇該系統(tǒng)主要由溫度測(cè)量和數(shù)據(jù)采集兩部分電路組成,實(shí)現(xiàn)的方法有很多種,下面將列出兩種在日常生活中和工農(nóng)業(yè)生產(chǎn)中經(jīng)常用到的實(shí)現(xiàn)方案。方案一:采用熱電偶溫差電路測(cè)溫,溫度檢測(cè)部分可以使用低

5、溫?zé)崤?,熱電偶由兩個(gè)焊接在一起的異金屬導(dǎo)線所組成,熱電偶產(chǎn)生的熱電勢(shì)由兩種金屬的接觸電勢(shì)和單一導(dǎo)體的溫差電勢(shì)組成。通過將參考結(jié)點(diǎn)保持在已知溫度并測(cè)量該電壓,便可推斷出檢測(cè)結(jié)點(diǎn)的溫度。數(shù)據(jù)采集部分則使用帶有A/D 通道的單片機(jī),在將隨被測(cè)溫度變化的電壓或電流采集過來,進(jìn)行A/D 轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將被測(cè)溫度顯示出來。熱電偶的優(yōu)點(diǎn)是工作溫度范圍非常寬,且體積小,但是它們也存在著輸出電壓小、容易遭受來自導(dǎo)線環(huán)路的噪聲影響以及漂移較高的缺點(diǎn),并且這種設(shè)計(jì)需要用到A/D 轉(zhuǎn)換電路,感溫電路比較麻煩。系統(tǒng)主要包括對(duì)A/D0809 的數(shù)據(jù)采集,自動(dòng)手動(dòng)工作方式檢測(cè),溫

6、度的顯示等,這幾項(xiàng)功能的信號(hào)通過輸入輸出電路經(jīng)單片機(jī)處理。此外還有復(fù)位電路,晶振電路,啟動(dòng)電路等。故現(xiàn)場(chǎng)輸入硬件有手動(dòng)復(fù)位鍵、A/D 轉(zhuǎn)換芯片,處理芯片為51 芯片,執(zhí)行機(jī)構(gòu)有4 位數(shù)碼管、報(bào)警器等。系統(tǒng)框圖如圖2.1 所示。圖2.1 熱電偶溫差電路測(cè)溫系統(tǒng)框圖方案二:采用數(shù)字溫度芯片DS18B20 測(cè)量溫度,輸出信號(hào)全數(shù)字化。便于單片機(jī)處理及控制,省去傳統(tǒng)的測(cè)溫方法的很多外圍電路。且該芯片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測(cè)溫元件,此元件線形較好。在0100 攝氏度時(shí),最大線形偏差小于1 攝氏度。DS18B20 的最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)DS18B20和微控制器AT89

7、S51構(gòu)成的溫度測(cè)量裝置,它直接輸出溫度的數(shù)字信號(hào),可直接與計(jì)算機(jī)連接。這樣,測(cè)溫系統(tǒng)的結(jié)構(gòu)就比較簡(jiǎn)單,體積也不大。采用51 單片機(jī)控制,軟件編程的自由度大,可通過編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實(shí)現(xiàn)簡(jiǎn)單,安裝方便。既可以單獨(dú)對(duì)多DS18B20控制工作,還可以與PC 機(jī)通信上傳數(shù)據(jù),另外AT89S51 在工業(yè)控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很成熟。該系統(tǒng)利用AT89S51芯片控制溫度傳感器DS18B20進(jìn)行實(shí)時(shí)溫度檢測(cè)并顯示,能夠?qū)崿F(xiàn)快速測(cè)量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報(bào)警溫度。該系統(tǒng)擴(kuò)展性非常強(qiáng),它可以在設(shè)計(jì)中加入時(shí)鐘芯片DS1302以獲

8、取時(shí)間數(shù)據(jù),在數(shù)據(jù)處理同時(shí)顯示時(shí)間,并可以利用AT24C16芯片作為存儲(chǔ)器件,以此來對(duì)某些時(shí)間點(diǎn)的溫度數(shù)據(jù)進(jìn)行存儲(chǔ),利用鍵盤來進(jìn)行調(diào)時(shí)和溫度查詢,獲得的數(shù)據(jù)可以通過MAX232芯片與計(jì)算機(jī)的RS232接口進(jìn)行串口通信,方便的采集和整理時(shí)間溫度數(shù)據(jù)。從以上兩種方案,容易看出方案一的測(cè)溫裝置可測(cè)溫度范圍寬、體積小,但是線性誤差較大。方案二的測(cè)溫裝置電路簡(jiǎn)單、精確度較高、實(shí)現(xiàn)方便、軟件設(shè)計(jì)也比較簡(jiǎn)單,故本次設(shè)計(jì)采用了方案二。2.2系統(tǒng)設(shè)計(jì)原理利用溫度傳感器DS18B20可以直接讀取被測(cè)溫度值,進(jìn)行轉(zhuǎn)換的特性,模擬溫度值經(jīng)過DS18B20處理后轉(zhuǎn)換為數(shù)字值,然后送到單片機(jī)中進(jìn)行數(shù)據(jù)處理,并與設(shè)置的溫度

9、報(bào)警限比較,超過限度后通過揚(yáng)聲器報(bào)警并且指示燈閃爍。同時(shí)處理后的數(shù)據(jù)送到LCD中顯示。2.3系統(tǒng)組成本課題以是80C51單片機(jī)為核心設(shè)計(jì)的一種智能溫度測(cè)試系統(tǒng),系統(tǒng)整體硬件電路包括:傳感器數(shù)據(jù)采集電路,溫度顯示電路,上下限報(bào)警調(diào)整電路,單片機(jī)主板電路等組成。系統(tǒng)框圖主要由主控制器、單片機(jī)復(fù)位、報(bào)警按鍵設(shè)置、時(shí)鐘振蕩、LED顯示、溫度傳感器組成。系統(tǒng)框圖如圖2.2所示。圖2.2 系統(tǒng)基本方框圖主控制器單片機(jī)AT89C51具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。顯示電路液晶顯示器是一種將液晶顯示器件,連接器件

10、,集成電路,PCB線路板,背光源,結(jié)構(gòu)器件裝配在一起的組件。根據(jù)顯示內(nèi)容和方式的不同可以分為,數(shù)顯LCD,點(diǎn)陣字符LCD,點(diǎn)陣圖形LCD在此設(shè)計(jì)中我們采用點(diǎn)陣字符LCD,這里采用常用的2行16個(gè)字的1602液晶模塊。溫度傳感器溫度傳感器采用美國(guó)DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20溫度傳感器。DS18B20輸出信號(hào)全數(shù)字化。便于單片機(jī)處理及控制,在0100 攝氏度時(shí),最大線形偏差小于1 攝氏度,采用單總線的數(shù)據(jù)傳輸,可直接與計(jì)算機(jī)連接。用AT89S51芯片控制溫度傳感器DS18B20進(jìn)行實(shí)時(shí)溫度檢測(cè)并顯示,能夠?qū)崿F(xiàn)快速測(cè)量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報(bào)警溫度。獲得的數(shù)據(jù)可以通過MAX

11、232芯片與計(jì)算機(jī)的RS232接口進(jìn)行串口通信,方便的采集和整理時(shí)間溫度數(shù)據(jù)。3.系統(tǒng)硬件設(shè)計(jì)3.1DS18B20溫度傳感器3.1.1DS18B20介紹 圖 3.1 圖3.2 圖3.3DALLAS 最新單線數(shù)字溫度傳感器DS18B20是一種新型的“一線器件”,其體積更小、更適用于多種場(chǎng)合、且適用電壓更寬、更經(jīng)濟(jì)。DALLAS 半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20是世界上第一片支持“一線總線”接口的溫度傳感器。溫度測(cè)量范圍為-55+125 攝氏度,可編程為9位12 位轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625攝氏度,分辨率設(shè)定參數(shù)以及用戶設(shè)定的報(bào)警溫度存儲(chǔ)在EEPROM 中,掉電后依然保存。被測(cè)

12、溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出;其工作電源既可以在遠(yuǎn)端引入,也可以采用寄生電源方式產(chǎn)生;多個(gè)DS18B20可以并聯(lián)到3 根或2 根線上,CPU只需一根端口線就能與諸多DS18B20 通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。因此用它來組成一個(gè)測(cè)溫系統(tǒng),具有線路簡(jiǎn)單,在一根通信線,可以掛很多這樣的數(shù)字溫度計(jì),十分方便。圖3.1是DS18B20的一種封裝形式,圖3.2是DS18B20的一種常用接法。圖3.3是仿真軟件的封裝形式。3.1.2溫度傳感器工作原理 DS18B20測(cè)溫原理:低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶

13、振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(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ù)值即為所測(cè)溫度。DS18B20功能特點(diǎn):1. 采用單總線技術(shù),與單片機(jī)通信只需要一根I/O線,在一根線上可以掛接多個(gè)DS18B20。2. 每只DS18B20具有一個(gè)獨(dú)有的,不可修改的64位序列號(hào),根據(jù)序列號(hào)訪問地應(yīng)的器件

14、。3. 低壓供電,電源范圍從35V,可以本地供電,也可以直接從數(shù)據(jù)線上竊取電源(寄生電源方式)。4. 測(cè)溫范圍為-55+125,在-1085范圍內(nèi)誤差為±0.5。5. 可編輯數(shù)據(jù)為912位,轉(zhuǎn)換12位溫度時(shí)間為750ms(最大)。6. 用戶可自設(shè)定報(bào)警上下限溫度。7. 報(bào)警搜索命令可識(shí)別和尋址哪個(gè)器件的溫度超出預(yù)定值。8. DS18B20的分辯率由用戶通過EEPROM設(shè)置為912位。9. DS18B20可將檢測(cè)到溫度值直接轉(zhuǎn)化為數(shù)字量,并通過串行通信的方式與主控制器進(jìn)行數(shù)據(jù)通信。DS18B20有4個(gè)主要的數(shù)據(jù)部件:1. 光刻ROM中的64位序列號(hào)是出廠前被光刻好的,它可以看作是該DS

15、18B20的地址序列碼。64位光刻ROM的排列是:開始8位(28H)是產(chǎn)品類型標(biāo)號(hào),接著的48位是該DS18B20自身的序列號(hào),最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一個(gè)DS18B20都各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè)DS18B20的目的。2. DS18B20中的溫度傳感器可完成對(duì)溫度的測(cè)量,以12位轉(zhuǎn)化為例:用16位符號(hào)擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625/LSB形式表達(dá),其中S為符號(hào)位。3. DS18B20溫度傳感器的存儲(chǔ)器 DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速暫存RAM和一個(gè)非易失性的可電擦除的EEPRA

16、M,后者存放高溫度和低溫度觸發(fā)器 TH、TL和結(jié)構(gòu)寄存器。4. 配置寄存器。DS18B20內(nèi)部結(jié)構(gòu)及功能:DS18B20的內(nèi)部結(jié)構(gòu)如圖3.4所示。主要包括:寄生電源,溫度傳感器,64位ROM和單總線接口,存放中間數(shù)據(jù)的高速暫存器RAM,用于存儲(chǔ)用戶設(shè)定溫度上下限值的TH和TL觸發(fā)器,存儲(chǔ)與控制邏輯,8位循環(huán)冗余校驗(yàn)碼(CRC)發(fā)生器等7部分圖3.4 DS18B20內(nèi)部結(jié)構(gòu)及功能3.1.3DS18B20相關(guān)介紹溫度的讀?。篋S18B20在出廠時(shí)以配置為12位,讀取溫度時(shí)共讀取16位,所以把后11位的2進(jìn)制轉(zhuǎn)化為10進(jìn)制后在乘以0.0625便為所測(cè)的溫度,還需要判斷正負(fù)。前5個(gè)數(shù)字為符號(hào)位,當(dāng)前5

17、位為1時(shí),讀取的溫度為負(fù)數(shù);當(dāng)前5位為0時(shí),讀取的溫度為正數(shù)。(1)DS18B20的初始化:1. 先將數(shù)據(jù)線置高電平“1”。2. 延時(shí)(該時(shí)間要求的不是很嚴(yán)格,但是盡可能的短一點(diǎn))。3. 數(shù)據(jù)線拉到低電平“0”。4. 延時(shí)750微秒(該時(shí)間的時(shí)間范圍可以從480到960微秒)。5.數(shù)據(jù)線拉到高電平“1”。6. 延時(shí)等待(如果初始化成功則在15到60毫秒時(shí)間之內(nèi)產(chǎn)生一個(gè)由DS18B20所返回的低電平“0”。據(jù)該狀態(tài)可以來確定它的存在,但是應(yīng)注意不能無(wú)限的進(jìn)行等待,不然會(huì)使程序進(jìn)入死循環(huán),所以要進(jìn)行超時(shí)控制7. 若CPU讀到了數(shù)據(jù)線上的低電平“0”后,還要做延時(shí),其延時(shí)的時(shí)間從發(fā)出的高電平算起(第

18、(5)步的時(shí)間算起)最少要480微秒。8.將數(shù)據(jù)線再次拉高到高電平“1”后結(jié)束。(2)DS18B20的寫操作:1. 數(shù)據(jù)線先置低電平“0”。2. 延時(shí)確定的時(shí)間為15微秒。3. 按從低位到高位的順序發(fā)送字節(jié)(一次只發(fā)送一位)。4. 延時(shí)時(shí)間為45微秒。5. 將數(shù)據(jù)線拉到高電平。6. 重復(fù)上(1)到(6)的操作直到所有的字節(jié)全部發(fā)送完為止。7. 最后將數(shù)據(jù)線拉高。(3)DS18B20的讀操作:1. 將數(shù)據(jù)線拉高“1”。2. 延時(shí)2微秒。3. 將數(shù)據(jù)線拉低“0”。4. 延時(shí)15微秒。5. 將數(shù)據(jù)線拉高“1”。6. 延時(shí)15微秒。7. 讀數(shù)據(jù)線的狀態(tài)得到1個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。8. 延時(shí)30微秒

19、。3.1.4DS18B20使用中的注意事項(xiàng)DS18B20 雖然具有測(cè)溫系統(tǒng)簡(jiǎn)單、測(cè)溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題:1. DS18B20 從測(cè)溫結(jié)束到將溫度值轉(zhuǎn)換成數(shù)字量需要一定的轉(zhuǎn)換時(shí)間,這是必須保證的,不然會(huì)出現(xiàn)轉(zhuǎn)換錯(cuò)誤的現(xiàn)象,使溫度輸出總是顯示85。2. 在實(shí)際使用中發(fā)現(xiàn),應(yīng)使電源電壓保持在5V 左右,若電源電壓過低,會(huì)使所測(cè)得的溫度精度降低。3. 較小的硬件開銷需要相對(duì)復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對(duì)DS1820進(jìn)行讀寫編程時(shí),必須嚴(yán)格的保證讀寫時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。在使用PL/M、C等高級(jí)

20、語(yǔ)言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對(duì)DS1820操作部分最好采用匯編語(yǔ)言實(shí)現(xiàn)。4. 在DS18B20的有關(guān)資料中均未提及單總線上所掛DS18B20 數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個(gè)DS18B20,在實(shí)際應(yīng)用中并非如此,當(dāng)單總線上所掛DS18B20 超過8 個(gè)時(shí),就需要解決微處理器的總線驅(qū)動(dòng)問題,這一點(diǎn)在進(jìn)行多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)時(shí)要加以注意。5. 在DS18B20測(cè)溫程序設(shè)計(jì)中,向DS18B20 發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS18B20的返回信號(hào),一旦某個(gè)DS18B20 接觸不好或斷線,當(dāng)程序讀該DS18B20 時(shí),將沒有返回信號(hào),程序進(jìn)入死循環(huán),這一點(diǎn)在進(jìn)行DS18B20硬件連接和軟件設(shè)計(jì)時(shí)也要

21、給予一定的重視。3.2液晶顯示器(1602液晶顯示器)3.2.1液晶顯示器的介紹顯示器是人與機(jī)器溝通的重要界面,早期以顯像管(CRT/Cathode Ray Tube)顯示器為主,但隨著科技不斷進(jìn)步,各種顯示技術(shù)如雨后春筍般誕生,近來由于液晶(LCD)顯示器具有輕薄短小、耗電量低、無(wú)輻射危險(xiǎn),平面直角顯示以及影像穩(wěn)定不閃爍等優(yōu)勢(shì),在近年來價(jià)格不斷下跌的吸引下,逐漸取代CRT之主流地位,顯示器明日之星架勢(shì)十足。液晶是一種既具有液體的流動(dòng)性又具有光學(xué)特性的有機(jī)化合物,它的透明程度和呈現(xiàn)的顏色受外加電場(chǎng)的影響,利用這特點(diǎn)便可做成字符顯示器。液晶顯示器(LCD)英文全稱為L(zhǎng)iquid Crystal

22、Display,它一種是采用了液晶控制透光度技術(shù)來實(shí)現(xiàn)色彩的顯示器。和CRT顯示器相比,LCD的優(yōu)點(diǎn)是很明顯的。由于通過控制是否透光來控制亮和暗,當(dāng)色彩不變時(shí),液晶也保持不變,這樣就無(wú)須考慮刷新率的問題。顯示接口用來顯示系統(tǒng)的狀態(tài),命令或采集的電壓數(shù)據(jù)。本系統(tǒng)顯示部分用的是LCD液晶模塊,采用一個(gè)16×2的字符型液晶顯示模塊。1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊它有若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符。每位之間有一個(gè)點(diǎn)距的間隔每行之間也有也有間隔起到了字符間距和行間距的作用,正因?yàn)槿绱怂运荒?/p>

23、顯示圖形(用自定義CGRAM,顯示效果也不好)1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字)。目前市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。圖3.5 1602液晶顯示器一種接法3.2.2 1602LCD的特性(1)+5V電壓,對(duì)比度可調(diào)(2)內(nèi)含復(fù)位電路(3)提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能(4)有80字節(jié)顯示數(shù)據(jù)存儲(chǔ)器DDRAM(5)內(nèi)建有160個(gè)5X7點(diǎn)陣的字型的字符發(fā)生器CGROM(6)8個(gè)可由

24、用戶自定義的5X7的字符發(fā)生器CGRAM字符型LCD1602通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線VCC(15腳)和地線GND(16腳)(圖3.5是1602液晶顯示器的一種接法)3.2.3液晶模塊簡(jiǎn)介L(zhǎng)M016L的結(jié)構(gòu)及功能:LM016L液晶模塊采用HD44780控制器,hd44780具有簡(jiǎn)單而功能較強(qiáng)的指令集,可以實(shí)現(xiàn)字符移動(dòng),閃爍等功能,LM016L與單片機(jī)MCU通訊可采用8位或4位并行傳輸兩種方式,hd44780控制器由兩個(gè)8位寄存器,指令寄存器(IR)和數(shù)據(jù)寄存器(DR)忙標(biāo)志(BF),顯示數(shù)RAM(DDRAM),字符發(fā)生器ROMA(CGOROM)字符發(fā)生

25、器RAM(CGRAM),地址計(jì)數(shù)器RAM(AC)。IR用于寄存指令碼,只能寫入不能讀出,DR用于寄存數(shù)據(jù),數(shù)據(jù)由內(nèi)部操作自動(dòng)寫入DDRAM和CGRAM,或者暫存從DDRAM和CGRAM讀出的數(shù)據(jù),BF為1時(shí),液晶模塊處于內(nèi)部模式,不響應(yīng)外部操作指令和接受數(shù)據(jù),DDTAM用來存儲(chǔ)顯示的字符,能存儲(chǔ)80個(gè)字符碼,CGROM由8位字符碼生成5*7點(diǎn)陣字符160中和5*10點(diǎn)陣字符32種.8位字符編碼和字符的對(duì)應(yīng)關(guān)系,可以查看參考文獻(xiàn)(30)中的表4.CGRAM是為用戶編寫特殊字符留用的,它的容量?jī)H64字節(jié),可以自定義8個(gè)5*7點(diǎn)陣字符或者4個(gè)5*10點(diǎn)陣字符,AC可以存儲(chǔ)DDRAM和CGRAM的地址

26、,如果地址碼隨指令寫入IR,則IR自動(dòng)把地址碼裝入AC,同時(shí)選擇DDRAM或CGRAM但愿,LM016L液晶模塊的引腳圖如圖3.7所示。圖3.7 1601引腳圖LM016L引腳介紹:Vss(1腳):一般接地。Vdd(2腳):接電源。Vee(3腳):液晶顯示器對(duì)比度調(diào)整端,接電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高(對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對(duì)比度)。RS(4腳):RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。R/W(5腳):R/W為讀寫信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。E(6腳):E(或EN)端為使能(enabl

27、e)端,下降沿使能。DB0(7腳):底4位三態(tài)、雙向數(shù)據(jù)總線 0位(最低位)。DB1(8腳):底4位三態(tài)、雙向數(shù)據(jù)總線 1位。DB2(9腳):底4位三態(tài)、雙向數(shù)據(jù)總線 2位。DB3(10腳):底4位三態(tài)、雙向數(shù)據(jù)總線 3位。DB4(11腳):高4位三態(tài)、雙向數(shù)據(jù)總線 4位。DB5(12腳):高4位三態(tài)、雙向數(shù)據(jù)總線 5位。DB6(13腳):高4位三態(tài)、雙向數(shù)據(jù)總線 6位。DB7(14腳):高4位三態(tài)、雙向數(shù)據(jù)總線 7位(最高位)(也是busy flang)。寄存器選擇控制如表3.8。表3.8 寄存器選擇控制RSR/W操作說明00寫入指令寄存器(清除屏等)01讀busy flag(DB7),以及

28、讀取位址計(jì)數(shù)器(DB0DB6)值10寫入數(shù)據(jù)寄存器(顯示各字型等)11從數(shù)據(jù)寄存器讀取數(shù)據(jù)3.2.3液晶顯示部分與89C51的接口如圖3.9所示。用89C51的P0口作為數(shù)據(jù)線,用P2.2、P2.1、P2.0分別作為L(zhǎng)CD的E、R/W、RS。其中E是下降沿觸發(fā)的片選信號(hào),R/W是讀寫信號(hào),RS是寄存器選擇信號(hào)本模塊設(shè)計(jì)要點(diǎn)如下:顯示模塊初始化:首先清屏,再設(shè)置接口數(shù)據(jù)位為8位,顯示行數(shù)為2行,字型為5×7點(diǎn)陣,然后設(shè)置為整體顯示,取消光標(biāo)和字體閃爍,最后設(shè)置為正向增量方式且不移位。向LCD的顯示緩沖區(qū)中送字符,程序中采用2個(gè)字符數(shù)組,一個(gè)顯示字符,另一個(gè)顯示電壓數(shù)據(jù),要顯示的字符或數(shù)

29、據(jù)被送到相應(yīng)的數(shù)組中,完成后再統(tǒng)一顯示.首先取一個(gè)要顯示的字符或數(shù)據(jù)送到LCD的顯示緩沖區(qū),程序延時(shí)2.5ms,判斷是否夠顯示的個(gè)數(shù),不夠則地址加一取下一個(gè)要顯示的字符或數(shù)據(jù)。圖3.9 液晶與89C51的接口3.3 80C51單片機(jī)的介紹80C51單片機(jī)最初是由Intel 公司開發(fā)設(shè)計(jì)的,但后來Intel 公司把51 核的設(shè)計(jì)方案賣給了幾家大的電子設(shè)計(jì)生產(chǎn)商,譬如 SST、Philip、Atmel 等大公司。如是市面上出現(xiàn)了各式各樣的但均以51 為內(nèi)核的單片機(jī),倒是Intel 公司自己的單片機(jī)卻顯得遜色了。這些各大電子生產(chǎn)商推出的單片機(jī)都兼容51 指令、并在51 的基礎(chǔ)上擴(kuò)展一些功能而內(nèi)部結(jié)構(gòu)

30、是與51 一致的。80C51有40個(gè)引腳,4個(gè)8位并行I/O口,1個(gè)全雙工異步串行口,同時(shí)內(nèi)含5個(gè)中斷源,2個(gè)優(yōu)先級(jí),2個(gè)16位定時(shí)/計(jì)數(shù)器。80C51的存儲(chǔ)器系統(tǒng)由4K的程序存儲(chǔ)器(掩膜ROM),和128B的數(shù)據(jù)存儲(chǔ)器(RAM)組成。80C51單片機(jī)的基本組成框圖見圖3.10。圖3.10 80C51單片機(jī)結(jié)構(gòu)圖由圖3.10可見,8051單片機(jī)主要由以下幾部分組成:cpu系統(tǒng):8位cpu,含布爾處理器;時(shí)鐘電路;總線控制邏輯。存儲(chǔ)器系統(tǒng) 4K字節(jié)的程序存儲(chǔ)器(ROM/EPROM/Flash,可外擴(kuò)至64KB);128字節(jié)的數(shù)據(jù)存儲(chǔ)器(RAM,可再外擴(kuò)64KB);特殊功能寄存器SFR。I/O口和

31、其他功能單元,4個(gè)并行I/O口;2個(gè)16位定時(shí)計(jì)數(shù)器:1個(gè)全雙工異步串行口;中斷系統(tǒng)(5個(gè)中斷源,2個(gè)優(yōu)先級(jí))。3.3.1 80C51單片機(jī)的主要特性1. 一個(gè)8 位的微處理器(CPU)。2. 片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM(128B),用以存放可以讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù)等,SST89 系列單片機(jī)最多提供1K 的RAM。3. 片內(nèi)程序存儲(chǔ)器ROM(4KB),用以存放程序、一些原始數(shù)據(jù)和表格。但也有一些單片機(jī)內(nèi)部不帶ROM/EPROM,如8031,8032,80C31 等。目前單片機(jī)的發(fā)展趨勢(shì)是將RAM 和ROM 都集成在單片機(jī)里面,這樣既方便了用戶進(jìn)行設(shè)計(jì)又提高了系統(tǒng)的抗

32、干擾性。4. 四個(gè)8 位并行IO 接口P0P3,每個(gè)口既可以用作輸入,也可以用作輸出。5. 兩個(gè)定時(shí)器計(jì)數(shù)器,每個(gè)定時(shí)器計(jì)數(shù)器都可以設(shè)置成計(jì)數(shù)方式,用以對(duì)外部事件進(jìn)行計(jì)數(shù),也可以設(shè)置成定時(shí)方式,并可以根據(jù)計(jì)數(shù)或定時(shí)的結(jié)果實(shí)現(xiàn)計(jì)算機(jī)控制。為方便設(shè)計(jì)串行通信,目前的52 系列單片機(jī)都會(huì)提供3 個(gè)16 位定時(shí)器/計(jì)數(shù)器。6. 五個(gè)中斷源的中斷控制系統(tǒng)?,F(xiàn)在新推出的單片機(jī)都不只5 個(gè)中斷源。7. 一個(gè)全雙工UART(通用異步接收發(fā)送器)的串行IO 口,用于實(shí)現(xiàn)單片機(jī)之間或單機(jī)與微機(jī)之間的串行通信。8. 片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,但石英晶體和微調(diào)電容需要外接。最高允許振蕩頻率為12MHz。SST89V5

33、8RD 最高允許振蕩頻率達(dá)40MHz,因而大大的提高了指令的執(zhí)行速度。3.3.2 80C51單片機(jī)管腳圖3.11 80C51單片機(jī)管腳時(shí)鐘電路引腳XTAL1 和XTAL2:XTAL2(18 腳):接外部晶體和微調(diào)電容的一端;在8051 片內(nèi)它是振蕩電路反相放大器的輸出端,振蕩電路的頻率就是晶體固有頻率。若需采用外部時(shí)鐘電路時(shí),該引腳輸入外部時(shí)鐘脈沖。XTAL1(19 腳):接外部晶體和微調(diào)電容的另一端;在片內(nèi)它是振蕩電路反相放大器的輸入端。在采用外部時(shí)鐘時(shí),該引腳必須接地??刂菩盘?hào)引腳RST,ALE,PSEN 和EA:RST/VPD(9 腳):RST 是復(fù)位信號(hào)輸入端,高電平有效。當(dāng)此輸入端保

34、持備用電源的輸入端。當(dāng)主電源Vcc 發(fā)生故障,降低到低電平規(guī)定值時(shí),將5V 電源自動(dòng)兩個(gè)機(jī)器周期(24個(gè)時(shí)鐘振蕩周期)的高電平時(shí),就可以完成復(fù)位操作。RST 引腳的第二功能是VPD,即接入RST 端,為RAM 提供備用電源,以保證存儲(chǔ)在RAM 中的信息不丟失,從而合復(fù)位后能繼續(xù)正常運(yùn)行。ALE/PROG(30 腳):地址鎖存允許信號(hào)端。當(dāng)8051 上電正常工作后,ALE 引腳不斷向外輸出正脈沖信號(hào),此頻率為振蕩器頻率fOSC 的1/6。CPU 訪問片外存儲(chǔ)器時(shí),ALE 輸出信號(hào)作為鎖存低8 位地址的控制信號(hào)。平時(shí)不訪問片外存儲(chǔ)器時(shí),ALE 端也以振蕩頻率的1/6 固定輸出正脈沖,因而ALE 信

35、號(hào)可以用作對(duì)外輸出時(shí)鐘或定時(shí)信號(hào)。此引腳的第二功能PROG 在對(duì)片內(nèi)帶有4KB EPROM 的8751 編程寫入(固化程序)時(shí),作為編程脈沖輸入端。PSEN(29 腳):程序存儲(chǔ)允許輸出信號(hào)端。在訪問片外程序存儲(chǔ)器時(shí),此端定時(shí)輸出負(fù)脈沖作為讀片外存儲(chǔ)器的選通信號(hào)。此引肢接EPROM 的OE 端。PSEN 端有效,即允許讀出EPROMROM 中的指令碼。EA/Vpp(31 腳):外部程序存儲(chǔ)器地址允許輸入端/固化編程電壓輸入端。當(dāng)EA 引腳接高電平時(shí),CPU只訪問片內(nèi)EPROM/ROM并執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令,但當(dāng)PC(程序計(jì)數(shù)器)的值超過0FFFH(對(duì)8751/8051 為4K)時(shí),將自動(dòng)

36、轉(zhuǎn)去執(zhí)行片外程序存儲(chǔ)器內(nèi)的程序。當(dāng)輸入信號(hào)EA 引腳接低電平(接地)時(shí),CPU 只訪問外部EPROM/ROM 并執(zhí)行外部程序存儲(chǔ)器中的指令,而不管是否有片內(nèi)程序存儲(chǔ)器。對(duì)于無(wú)片內(nèi)ROM 的8031 或8032,需外擴(kuò)EPROM,此時(shí)必須將EA 引腳接地。此引腳的第二功能是Vpp 是對(duì)8751 片內(nèi)EPROM固化編程時(shí),作為施加較高編程電壓(一般12V21V)的輸入端。輸入/輸出端口P0/P1/P2/P3:P0口(P0.0P0.7,3932 腳):P0口是一個(gè)漏極開路的8 位準(zhǔn)雙向I/O口。作為漏極開路的輸出端口,每位能驅(qū)動(dòng)8 個(gè)LS 型TTL 負(fù)載。當(dāng)P0 口作為輸入口使用時(shí),應(yīng)先向口鎖存器(

37、地址80H)寫入全1,此時(shí)P0 口的全部引腳浮空,可作為高阻抗輸入。作輸入口使用時(shí)要先寫1,這就是準(zhǔn)雙向口的含義。在CPU 訪問片外存儲(chǔ)器時(shí),P0口分時(shí)提供低8 位地址和8 位數(shù)據(jù)的復(fù)用總線。在此期間,P0口內(nèi)部上拉電阻有效。P1口(P1.0P1.7,18 腳):P1口是一個(gè)帶內(nèi)部上拉電阻的8 位準(zhǔn)雙向I/O口。P1口每位能驅(qū)動(dòng)4 個(gè)LS 型TTL 負(fù)載。在P1口作為輸入口使用時(shí),應(yīng)先向P1口鎖存地址(90H)寫入全1,此時(shí)P1口引腳由內(nèi)部上拉電阻拉成高電平。P2口(P2.0P2.7,2128 腳):P2口是一個(gè)帶內(nèi)部上拉電阻的8 位準(zhǔn)雙向I/O口。P1口每位能驅(qū)動(dòng)4個(gè)LS 型TTL 負(fù)載。在

38、訪問片外EPROM/RAM 時(shí),它輸出高8 位地址。P3口(P3.0P3.7,1017 腳):P3口是一個(gè)帶內(nèi)部上拉電阻的8 位準(zhǔn)雙向I/O口。P3口每位能驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。P3口與其它I/O 端口有很大的區(qū)別,它的每個(gè)引腳都有第二功能,如下:P3.0:(RXD)串行數(shù)據(jù)接收。P3.1:(RXD)串行數(shù)據(jù)發(fā)送。P3.2:(INT0#)外部中斷0輸入。P3.3:(INT1#)外部中斷1輸入。P3.4:(T0)定時(shí)/計(jì)數(shù)器0的外部計(jì)數(shù)輸入。P3.5:(T1)定時(shí)/計(jì)數(shù)器1的外部計(jì)數(shù)輸入。P3.6:(WR#)外部數(shù)據(jù)存儲(chǔ)器寫選通。P3.7:(RD#)外部數(shù)據(jù)存儲(chǔ)器讀選通。3.3.3 80C5

39、1單片機(jī)的中斷系統(tǒng)80C51系列單片機(jī)的中斷系統(tǒng)有5個(gè)中斷源,2個(gè)優(yōu)先級(jí),可以實(shí)現(xiàn)二級(jí)中斷服務(wù)嵌套。由片內(nèi)特殊功能寄存器中的中斷允許寄存器IE控制CPU是否響應(yīng)中斷請(qǐng)求;由中斷優(yōu)先級(jí)寄存器IP安排各中斷源的優(yōu)先級(jí);同一優(yōu)先級(jí)內(nèi)各中斷同時(shí)提出中斷請(qǐng)求時(shí),由內(nèi)部的查詢邏輯確定其響應(yīng)次序。3.3.4 80C51單片機(jī)的定時(shí)/計(jì)數(shù)器在單片機(jī)應(yīng)用系統(tǒng)中,常常會(huì)有定時(shí)控制需求,如定時(shí)輸出、定時(shí)檢測(cè)、定時(shí)掃描等;也經(jīng)常要對(duì)外部事件進(jìn)行計(jì)數(shù)。80C51單片機(jī)內(nèi)集成有兩個(gè)可編程的定時(shí)/計(jì)數(shù)器:T0和T1,它們既可以工作于定時(shí)模式,也可以工作于外部事件計(jì)數(shù)模式,此外,T1還可以作為串行口的波特率發(fā)生器。3.3.5

40、 80C51單片機(jī)的最小系統(tǒng)單片機(jī)最小系統(tǒng)是單片機(jī)能工作的最基本電路,接好最小系統(tǒng)對(duì)于做實(shí)物來說極其重要。如圖3.123.12 單片機(jī)及其最小系統(tǒng)單片機(jī)最小系統(tǒng)如圖所示,主要由以下六部分組成(1)AT89S52單片機(jī):(2)I/O口:其中有4個(gè)雙向的8位并行I/O端口,分別記作P0、P1、P2、P3,都可以用于數(shù)據(jù)的輸出和輸入,其中有些I/O口具有第二功能。(3)時(shí)鐘電路:時(shí)鐘電路用于產(chǎn)生MCS-52單片機(jī)工作所必須的時(shí)鐘控制信號(hào),內(nèi)部電路在時(shí)鐘信號(hào)的控制下,嚴(yán)格地按時(shí)序指令工作。(4)復(fù)位電路:MCS-51的復(fù)位是由外部的復(fù)位電路來實(shí)現(xiàn)。采用最簡(jiǎn)單的外部按鍵復(fù)位電路。按鍵自動(dòng)復(fù)位是通過外部復(fù)

41、位電路的來實(shí)現(xiàn)的.(5)EA腳:把EA腳接高電平,單片機(jī)訪問片內(nèi)程序存儲(chǔ)器。(6)單片機(jī)的第20和40引腳為單片機(jī)的GND和VCC,為單片機(jī)供電,必須接好3.4系統(tǒng)總體電路圖總體電路圖如仿真圖3.13所示。溫度傳感器連接在P3.3口。K2為顯示報(bào)警溫度鍵,連接P1.4口。K1為正常顯示溫度,連接P1.7口。按下K1則顯示器顯示當(dāng)前溫度,按下K2則會(huì)顯示所設(shè)定的溫度上下限值。P2.3和P2.6分別為高溫和低溫閃爍,當(dāng)所測(cè)得的結(jié)果高于或者低于所設(shè)置的溫度上下限時(shí)就會(huì)閃爍報(bào)警,同時(shí)連接于P3.7的蜂鳴器就會(huì)報(bào)警。圖3.13 總體電路圖4.軟件設(shè)計(jì)簡(jiǎn)介4.1C語(yǔ)言簡(jiǎn)介C語(yǔ)言是嵌入式系統(tǒng)中一種通用語(yǔ)言,

42、其數(shù)據(jù)類型及運(yùn)算符豐富,代碼率高,較好的移植性及豐富的功能函數(shù),并具有良好的程序結(jié)構(gòu),適用于各種應(yīng)用的程序設(shè)計(jì),是目前嵌入式系統(tǒng)中使用較廣泛的編程語(yǔ)言。嵌入式系統(tǒng)中的使用的C語(yǔ)言和ANSI標(biāo)準(zhǔn)的C語(yǔ)言比較,其語(yǔ)法規(guī)則是相同的,但由于它控制嵌入式應(yīng)用系統(tǒng)硬件,而不同的嵌入式系統(tǒng)核心控制部件是不同的,因此,不同的嵌入式系統(tǒng)的C語(yǔ)言采用不同的C編譯器。51單片機(jī)的語(yǔ)言采用51編譯器。由C51產(chǎn)生的目標(biāo)代碼短并且運(yùn)行速度快,所需空間小,符合C語(yǔ)言的ANSI標(biāo)準(zhǔn),生成的代碼遵循INTEL目標(biāo)文件格式。應(yīng)用C51編程具有以下優(yōu)點(diǎn):C51管理內(nèi)部寄存器和存儲(chǔ)器的分配,編程時(shí),無(wú)須考慮不同存儲(chǔ)器的尋址和數(shù)據(jù)類

43、型等細(xì)節(jié)問題;程序由若干函數(shù)組成,具有良好的模塊化結(jié)構(gòu);有豐富的子程序庫(kù)可直接引用,從而大大減少用戶編程的工作量;C語(yǔ)言和匯編語(yǔ)言可以交叉使用,匯編語(yǔ)言程序代碼短,運(yùn)行速度快,但復(fù)雜編程耗時(shí)。如果用匯編語(yǔ)言編寫與硬件有關(guān)的部分程序,用C語(yǔ)言編寫與硬件無(wú)關(guān)的運(yùn)算部分程序,就可以充分發(fā)揮兩種語(yǔ)言的特長(zhǎng),可以提高開發(fā)效率。編寫好的C語(yǔ)言程序編譯成功后,生成HEX文件,通過ISP下載到單片機(jī)即可運(yùn)行4.2 程序設(shè)計(jì)整個(gè)系統(tǒng)的功能是由硬件電路配合軟件來實(shí)現(xiàn)的,當(dāng)硬件基本定型后,軟件的功能也就基本定下來了。從軟件的功能不同可分為兩大類:一是監(jiān)控軟件(主程序),它是整個(gè)控制系統(tǒng)的核心,專門用來協(xié)調(diào)各執(zhí)行模塊

44、和操作者的關(guān)系。二是執(zhí)行軟件(子程序),它是用來完成各種實(shí)質(zhì)性的功能如測(cè)量、計(jì)算、顯示、通訊等。每一個(gè)執(zhí)行軟件也就是一個(gè)小的功能執(zhí)行模塊。這里將各執(zhí)行模塊一一列出,并為每一個(gè)執(zhí)行模塊進(jìn)行功能定義和接口定義。各執(zhí)行模塊規(guī)劃好后,就可以規(guī)劃監(jiān)控程序了。首先要根據(jù)系統(tǒng)的總體功能選擇一種最合適的監(jiān)控程序結(jié)構(gòu),然后根據(jù)實(shí)時(shí)性的要求,合理地安排監(jiān)控軟件和各執(zhí)行模塊之間地調(diào)度關(guān)系。主程序流程:初始化調(diào)用LCD初始化子程序調(diào)用設(shè)置溫度報(bào)警值程序調(diào)用讀取溫度子程序延時(shí)K1,K2有無(wú)按下K1按下K2按下讀取溫度值讀取溫度值判斷是否超溫并報(bào)警jing警調(diào)用顯示當(dāng)前溫度子程序調(diào)用顯示報(bào)警上下限子程序圖4.1 主程序流

45、程圖DS18B20初始化流程圖:圖4.2 DS18B20初始化流程圖5.電路仿真5.1 Proteus軟件介紹7Proteus軟件是英國(guó)Labcenter electronics公司出版的EDA工具軟件(該軟件中國(guó)總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國(guó)內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了

46、從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。該軟件的特點(diǎn)是:1. 實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合,具有模擬電路仿真、數(shù)字電路仿真、各種單片機(jī)(51系列、AVR、PIG等常用的MCU)及其外圍電路(如LCD、RAM、ROM、鍵盤、LED、A/D、D/

47、A)組成的系統(tǒng)仿真。2. 提供了多種虛擬儀器。如示波器、邏輯分析儀、信號(hào)發(fā)生器等,調(diào)試非常方便。3. 提供軟件調(diào)試功能,同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil等軟件。4. 具有強(qiáng)大的原理圖繪制功能。5. 獨(dú)特的單片機(jī)協(xié)同仿真功能(VSM)支持主流的CPU類型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU類型隨著版本升級(jí)還在繼續(xù)增加,如即將支持CORTEX、DSP處理器。6.編譯及調(diào)試:支持單片機(jī)匯編語(yǔ)言的編輯/編譯/源碼級(jí)仿真,內(nèi)帶8051、AVR、PIC的匯編

48、編譯器,也可以與第三方集成編譯環(huán)境(如IAR、Keil和Hitech)結(jié)合,進(jìn)行高級(jí)語(yǔ)言的源碼級(jí)仿真和調(diào)試。7.繪制原理圖:繪制原理圖要在原理圖編輯窗口中的藍(lán)色方框內(nèi)完成。原理圖編輯窗口的操作是不同于常用的WINDOWS應(yīng)用程序的,正確的操作是:用左鍵放置元件;右鍵選擇元件;雙擊右鍵刪除元件;右鍵拖選多個(gè)元件;先右鍵后左鍵編輯元件屬性;先右鍵后左鍵拖動(dòng)元件;連線用左鍵,刪除用右鍵;改連接線:先右擊連線,再左鍵拖動(dòng);中鍵放縮原理圖。5.2智能溫度計(jì)Ptoteus仿真當(dāng)智能溫度計(jì)的上限設(shè)定為70度,下線設(shè)定為20度時(shí),仿真圖分別為圖5.1和圖5.2。如圖5.1,當(dāng)設(shè)定溫度為22.5度時(shí),超過下限,

49、第二個(gè)黃燈閃爍,蜂鳴器報(bào)警。如圖5.2,當(dāng)設(shè)定溫度為80.5時(shí),超過溫度上限,第一個(gè)黃燈閃爍,蜂鳴器報(bào)警。圖5.1 當(dāng)下限設(shè)定為20度時(shí)圖5.2 當(dāng)上限設(shè)定為70度時(shí)總結(jié)本文介紹了基于80C51單片機(jī)的智能溫度計(jì)控制系統(tǒng)的設(shè)計(jì),對(duì)整個(gè)硬件電路和軟件程序設(shè)計(jì)做了分析,文中介紹了智能溫度計(jì)的現(xiàn)狀及發(fā)展,介紹了仿真軟件proteus的基本知識(shí),學(xué)習(xí)了proteus的仿真方法和步驟,介紹了數(shù)字溫度計(jì)的設(shè)計(jì)方案選擇及原理介紹,加深了51單片機(jī)的知識(shí)了解,介紹51單片機(jī)的結(jié)構(gòu)、特點(diǎn)等。并學(xué)習(xí)了數(shù)字溫度傳感器DS18B20,設(shè)計(jì)軟件仿真,更直觀的反應(yīng)設(shè)計(jì)的正確性。本文對(duì)其中的一些基本原理也做了簡(jiǎn)要的概述。其

50、實(shí)寫完了本篇課程設(shè)計(jì),也僅僅是對(duì)智能溫度計(jì)控制系統(tǒng)做出了一個(gè)簡(jiǎn)單的設(shè)計(jì)方案。本次課設(shè)不僅對(duì)設(shè)計(jì)電路做了仿真,而且做了實(shí)物,通過對(duì)電路板的焊接,元件的擺放,程序的調(diào)試,加深了對(duì)單片機(jī)的理解,增強(qiáng)了實(shí)際操作能力。參考文獻(xiàn)1孫育才.單片微型計(jì)算機(jī)及其應(yīng)用.南京:東南大學(xué)出版社,2004。2潘新民王燕芳.微型計(jì)算機(jī)控制技術(shù).北京:電子工業(yè)出版社,2003。3李群芳.單片機(jī)原理及接口技術(shù).北京:電子工業(yè)出版社,2008。4李光飛.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo).北京:北京航空航天大學(xué)出版社,2004。5 杜洋.愛上單片機(jī).北京:人民郵電出版社,2011。6 彭偉. 單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例基于8051+

51、Proteus仿真. 北京:電子工業(yè)出版社,2011。7 郭天祥. 51單片機(jī)C語(yǔ)言教程入門,提高,開發(fā),拓展全攻略.北京:電子工業(yè)出版社,2009。附錄:源程序代碼#include<reg51.h>#include<INTRINS.H>#define uchar unsigned char#define uint unsigned int#define delayNOP() _nop_();_nop_();_nop_();_nop_();sbit HI_LED=P23; sbit LO_LED=P26;sbit DQ =P33; /DS18B20數(shù)據(jù)線sbit BEE

52、P=P37;/報(bào)警器sbit LCD_RS=P20;sbit LCD_RW=P21;sbit LCD_EN=P22;sbit K1=P17;/正常顯示溫度,越界時(shí)報(bào)警sbit K2=P14;/顯示報(bào)警溫度uchar code Temp_Disp_Title ="Current Time:"uchar Current_Temp_Display_Buffer="TEMP: "uchar code Temperature_Char8=0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00;/溫度字符uchar code Alarm_Te

53、mp="ALARM TEMP Hi LO"uchar Alarm_HI_LO_STR="Hi: LO: "uchar temp_data2=0x00,0x00;uchar temp_alarm2=0x00,0x00;uchar display5 =0x00,0x00,0x00,0x00,0x00;/溫度值uchar displayl3=0x00,0x00,0x00;/溫度報(bào)警值uchar code df_Table=0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9;/溫度小數(shù)位對(duì)照表char Alarm_Temp_HL2=30,-20;uc

54、har CurrentT=0;/當(dāng)前讀取的溫度整數(shù)部分uchar Temp_Value=0x00,0x00;/從DS18B20讀取的溫度值uchar Display_Digit=0,0,0,0;/待顯示的各溫度數(shù)位bit HI_Alarm =0,LO_Alarm=0;/高低溫報(bào)警標(biāo)志bit DS18B20_IS_OK=1;/傳感器正常標(biāo)志uint Time0_Count=0;/定時(shí)器延時(shí)累加void DelayXus(int x) uchar i; while(x-) for(i=0;i<200;i+); bit LCD_Busy_Check() bit result;LCD_RS=0;

55、LCD_RW=1;LCD_EN=1;delayNOP();result=(bit)(P0&0x80);LCD_EN=0;return result;void Write_LCD_Command(uchar cmd) while(LCD_Busy_Check(); LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_();_nop_(); P0=cmd;delayNOP(); LCD_EN=1;delayNOP();LCD_EN=0;void Write_LCD_Data(uchar dat)while(LCD_Busy_Check();LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=dat;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;void Set_LCD_POS(uchar pos) Write_LCD_Command(pos|0x80);void LCD_Initialise()Write_LCD_Command(0x01);DelayXus(5); Wri

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論