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

下載本文檔

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

文檔簡介

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

2、.1 80C51單片機(jī)的主要特性 153.3.2 80C51單片機(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ì)簡介 214.1 C語言簡介 214.2 程序設(shè)計(jì) 215 .電路仿真 245.1 Proteus 軟件介紹7 245.2 智能溫度計(jì)Ptoteus仿真 25總結(jié) 27參考文獻(xiàn) 28附錄:源程序代碼 291設(shè)計(jì)背景溫度控制廣泛應(yīng)用于人們的生產(chǎn)和生活中,人們使用溫度計(jì)來采集溫度,通過人工 操作加熱、通風(fēng)和降溫設(shè)備來控制溫度,這樣不但控制精度低、實(shí)

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

4、控參數(shù),而采用單片機(jī)來對這 些被控參數(shù)進(jìn)行控制已成為當(dāng)今的主流。采用數(shù)字溫度傳感器DS18B20因其內(nèi)部集成了 A/D轉(zhuǎn)換器,使得電路結(jié)構(gòu)更加簡單,而且減少了溫度測量轉(zhuǎn)換時(shí)的精度損失,使得 測量溫度更加精確。1.2 設(shè)計(jì)內(nèi)容本次課程設(shè)計(jì)模擬工業(yè)現(xiàn)場,對溫度進(jìn)行測量,并實(shí)時(shí)顯示出來,并且可以設(shè)定溫 度的上下限,當(dāng)溫度達(dá)到上下限時(shí) 系統(tǒng)自動(dòng)報(bào)警。控制系統(tǒng)主控制器采用51單片機(jī),溫度測量采用DS18B20設(shè)定溫度后,當(dāng)溫度達(dá)到設(shè)定限時(shí),可以通過閃彩燈和響蜂鳴 器報(bào)警提示,并且實(shí)時(shí)顯示在1602液晶顯示器上。2智能溫度計(jì)系統(tǒng)簡介2.1 方案選擇該系統(tǒng)主要由溫度測量和數(shù)據(jù)采集兩部分電路組成,實(shí)現(xiàn)的方法有

5、很多種,下面將 列出兩種在日常生活中和工農(nóng)業(yè)生產(chǎn)中經(jīng)常用到的實(shí)現(xiàn)方案。萬案一:采用熱電偶溫差電路測溫,溫度檢測部分可以使用低溫?zé)崤?,熱電偶由兩個(gè)焊接在 一起的異金屬導(dǎo)線所組成,熱電偶產(chǎn)生的熱電勢由兩種金屬的接觸電勢和單一導(dǎo)體的溫 差電勢組成。通過將參考結(jié)點(diǎn)保持在已知溫度并測量該電壓,便可推斷出檢測結(jié)點(diǎn)的溫 度。數(shù)據(jù)采集部分則使用帶有 A/D通道的單片機(jī),在將隨被測溫度變化的電壓或電流采 集過來,進(jìn)行A/D轉(zhuǎn)換后,就可以用單片機(jī)進(jìn)行數(shù)據(jù)的處理,在顯示電路上,就可以將 被測溫度顯示出來。熱電偶的優(yōu)點(diǎn)是工作溫度范圍非常寬,且體積小,但是它們也存在 著輸出電壓小、容易遭受來自導(dǎo)線環(huán)路的噪聲影響以及漂移

6、較高的缺點(diǎn),并且這種設(shè)計(jì) 需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。系統(tǒng)主要包括對A/D0809的數(shù)據(jù)采集,自動(dòng)手動(dòng)工作方式檢測,溫度的顯示等,這 幾項(xiàng)功能的信號通過輸入輸出電路經(jīng)單片機(jī)處理。此外還有復(fù)位電路,晶振電路,啟動(dòng) 電路等。故現(xiàn)場輸入硬件有手動(dòng)復(fù)位鍵、A/D轉(zhuǎn)換芯片,處理芯片為51芯片,執(zhí)行機(jī)構(gòu)有4位數(shù)碼管、報(bào)警器等。系統(tǒng)框圖如圖 2.1所示。數(shù)碼管 仁二U :ADC0809單片機(jī)報(bào)警電路測溫電路晶振電路按鍵防抖動(dòng)復(fù)位電路圖2.1熱電偶溫差電路測溫系統(tǒng)框圖萬案一:采用數(shù)字溫度芯片DS18B20測量溫度,輸出信號全數(shù)字化。便于單片機(jī)處理及控制, 省去傳統(tǒng)的測溫方法的很多外圍電路。且該芯

7、片的物理化學(xué)性很穩(wěn)定,它能用做工業(yè)測 溫元件,此元件線形較好。在0100攝氏度時(shí),最大線形偏差小于1攝氏度。DS18B20 的最大特點(diǎn)之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計(jì)DS18B2師微控制器AT89S51構(gòu)成的溫度測量裝置,它直接輸出溫度的數(shù)字信號,可直接與計(jì)算機(jī)連接。這樣,測溫系 統(tǒng)的結(jié)構(gòu)就比較簡單,體積也不大。采用51單片機(jī)控制,軟件編程的自由度大,可通過 編程實(shí)現(xiàn)各種各樣的算術(shù)算法和邏輯控制,而且體積小,硬件實(shí)現(xiàn)簡單,安裝方便。既 可以單獨(dú)對多DS18B20空制工作,還可以與PC機(jī)通信上傳數(shù)據(jù),另外 AT89S51在工業(yè) 控制上也有著廣泛的應(yīng)用,編程技術(shù)及外圍功能電路的配合使用都很

8、成熟。該系統(tǒng)利用AT89S51芯片控制溫度傳感器DS18B20S行實(shí)時(shí)溫度檢測并顯示,能夠 實(shí)現(xiàn)快速測量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報(bào)警溫度。該系統(tǒng)擴(kuò)展性非常強(qiáng), 它可以在設(shè)計(jì)中加入時(shí)鐘芯片 DS1302以獲取時(shí)間數(shù)據(jù),在數(shù)據(jù)處理同時(shí)顯示時(shí)間,并 可以利用AT24C165片作為存儲(chǔ)器件,以此來對某些時(shí)間點(diǎn)的溫度數(shù)據(jù)進(jìn)行存儲(chǔ),利用 鍵盤來進(jìn)行調(diào)時(shí)和溫度查詢,獲得的數(shù)據(jù)可以通過 MAX232E片與計(jì)算機(jī)的RS2328口 進(jìn)行串口通信,方便的采集和整理時(shí)間溫度數(shù)據(jù)。從以上兩種方案,容易看出方案一的測溫裝置可測溫度范圍寬、體積小,但是線性 誤差較大。方案二的測溫裝置電路簡單、精確度較高、實(shí)現(xiàn)方便

9、、軟件設(shè)計(jì)也比較簡單, 故本次設(shè)計(jì)采用了方案二。2.2 系統(tǒng)設(shè)計(jì)原理利用溫度傳感器DS18B2可以直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換的特性,模擬溫度值 經(jīng)過DS18B2眥理后轉(zhuǎn)換為數(shù)字值,然后送到單片機(jī)中進(jìn)行數(shù)據(jù)處理,并與設(shè)置的溫度 報(bào)警限比較,超過限度后通過揚(yáng)聲器報(bào)警并且指示燈閃爍。同時(shí)處理后的數(shù)據(jù)送到LCD中顯示。2.3 系統(tǒng)組成本課題以是80C51單片機(jī)為核心設(shè)計(jì)的一種智能溫度測試系統(tǒng), 系統(tǒng)整體硬件電路 包括:傳感器數(shù)據(jù)采集電路,溫度顯示電路,上下限報(bào)警調(diào)整電路,單片機(jī)主板電路等 組成。系統(tǒng)框圖主要由主控制器、單片機(jī)復(fù)位、報(bào)警按鍵設(shè)置、時(shí)鐘振蕩、LED顯示、溫度傳感器組成。單片機(jī)復(fù)位系統(tǒng)框圖

10、如圖2.2所示。LED示報(bào)警按鍵設(shè)置主控制器時(shí)鐘振蕩圖2.2系統(tǒng)基本方框圖主控制器單片機(jī)AT89C51具有低電壓供電和體積小等特點(diǎn),四個(gè)端口只需要兩個(gè)口就能滿足 電路系統(tǒng)的設(shè)計(jì)需要,很適合便攜手持式產(chǎn)品的設(shè)計(jì)使用系統(tǒng)可用二節(jié)電池供電。顯示電路液晶顯示器是一種將液晶顯示器件,連接器件,集成電路,PCB線路板,背光源,結(jié)構(gòu)器 件裝配在一起的組件。根據(jù)顯示內(nèi)容和方式的不同可以分為,數(shù)顯LCD點(diǎn)陣字符LCD點(diǎn)陣圖形LC匕設(shè)計(jì)中我們采用點(diǎn)陣字符 LCR這里采用常用的2行16個(gè)字的1602液 品模塊。溫度傳感器溫度傳感器采用美國DALLA芥導(dǎo)體公司生產(chǎn)的DS18B20S度傳感器。DS18B20B 出信號全

11、數(shù)字化。便于單片機(jī)處理及控制,在0100攝氏度時(shí),最大線形偏差小于1攝 氏度,采用單總線的數(shù)據(jù)傳輸,可直接與計(jì)算機(jī)連接。用AT89S51芯片控制溫度傳感器DS18B20!行實(shí)時(shí)溫度檢測并顯示,能夠?qū)崿F(xiàn)快速測量環(huán)境溫度,并可以根據(jù)需要設(shè)定上下限報(bào)警溫度。獲得的數(shù)據(jù)可以通過MAX232芯片與計(jì)算機(jī)的RS232接口進(jìn)行串口通信,方便的采集和整理時(shí)間溫度數(shù)據(jù)。3.系統(tǒng)硬件設(shè)計(jì)3.1DS18B20溫度傳感器3.1.1DS18B20 介紹DALLAS 1SBZ01 2. 3顯2 F-" ! I,! I -1(. >-92 r 15dti圖3.1圖3.2VCC DQ GND3S13B2027

12、.0圖3.3DALLAS最新單線數(shù)字溫度傳感器 DS18B201一種新型的“一線器件”,其體積更 小、更適用于多種場合、且適用電壓更寬、更經(jīng)濟(jì)。DALLAS*導(dǎo)體公司的數(shù)字化溫度傳感器DS18B201世界上第一片支持“一線總線”接口的溫度傳感器。溫度測量范圍為-55+125攝氏度,可編程為9位12位轉(zhuǎn)換精度,測溫分辨率可達(dá) 0.0625攝氏度, 分辨率設(shè)定參數(shù)以及用戶設(shè)定的報(bào)警溫度存儲(chǔ)在EEPROW,掉電后依然保存。被測溫度用符號擴(kuò)展的16位數(shù)字量方式用行輸出;其工作電源既可以在遠(yuǎn)端引入,也可以采 用寄生電源方式產(chǎn)生;多個(gè)DS18B2ST以并聯(lián)到3根或2根線上,CPLR需一根端口線 就能與諸多

13、DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。 因此用它來組成一個(gè)測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字 溫度計(jì),十分方便。圖3.1是DS18B20I勺一種封裝形式,圖3.2是DS18B20勺一種常用 接法。圖3.3是仿真軟件的封裝形式。3.1.2溫度傳感器工作原理DS18B20測溫原理:低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計(jì)數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55c所對應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計(jì)數(shù)

14、,當(dāng)計(jì)數(shù)器 1的預(yù)置值 減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開始 對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器 2計(jì)數(shù)到0時(shí),停止 溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測溫度。DS18B2M能特點(diǎn):1 .采用單總線技術(shù),與單片機(jī)通信只需要一根I/O線,在一根線上可以掛接多個(gè)DS18B202 .每只DS18B2CM有一個(gè)獨(dú)有的,不可修改的64位序列號,根據(jù)序列號訪問地應(yīng) 的器件。3 .低壓供電,電源范圍從35V,可以本地供電,也可以直接從數(shù)據(jù)線上竊取電源 (寄生電源方式)。4 .測溫范圍為-55C+125C,在-10C85c范圍內(nèi)誤差

15、為± 0.5 C。5 .可編輯數(shù)據(jù)為912位,轉(zhuǎn)換12位溫度時(shí)間為750ms (最大)。6 .用戶可自設(shè)定報(bào)警上下限溫度。7 .報(bào)警搜索命令可識別和尋址哪個(gè)器件的溫度超出預(yù)定值。8 . DS18B20的分辯率由用戶通過 EEPROM:置為912位。9 . DS18B2W將檢測到溫度值直接轉(zhuǎn)化為數(shù)字量, 并通過串行通信的方式與主控制 器進(jìn)行數(shù)據(jù)通信。DS18B20t 4個(gè)主要的數(shù)據(jù)部件:1 .光刻ROMP的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20I勺地 址序列碼。64位光刻ROM勺排列是:開始8位(28口 是產(chǎn)品類型標(biāo)號,接著的48位是 該DS18B201身的序列號

16、,最后8位是前面56位的循環(huán)冗余校驗(yàn)碼(CRC=X8+X5+X4+1 光刻ROM勺作用是使每一個(gè)DS18B2(tB各不相同,這樣就可以實(shí)現(xiàn)一根總線上掛接多個(gè) DS18B20I勺目的。2 . DS18B2葉的溫度傳感器可完成對溫度的測量,以 12位轉(zhuǎn)化為例:用16位符號 擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以 0.0625 C/LSB形式表達(dá),其中S為符號位。3 . DS18B20溫度傳感器的存儲(chǔ)器DS18B20溫度傳感器的內(nèi)部存儲(chǔ)器包括一個(gè)高速 暫存RA防口一個(gè)非易失性的可電擦除的 EEPRAM!者存放高溫度和低溫度觸發(fā)器 TH、TL 和結(jié)構(gòu)寄存器。4 .配置寄存器。DS18B2(rt部結(jié)構(gòu)及功能:

17、DS18B20I勺內(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部分M64位RO和單線接口圖3.4 DS18B20內(nèi)部結(jié)構(gòu)及功能存儲(chǔ)器與控制邏輯3.1.3DS18B20相關(guān)介紹溫度的讀?。篋S18B20ft出廠時(shí)以配置為12位,讀取溫度時(shí)共讀取16位,所以把后11位的2 進(jìn)制轉(zhuǎn)化為10進(jìn)制后在乘以0.0625便為所測的溫度,還需要判斷正負(fù)。前 5個(gè)數(shù)字為 符號位,當(dāng)前5位為1時(shí),讀取的溫度為負(fù)數(shù);當(dāng)前 5位為0時(shí),讀取的

18、溫度為正數(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è)由 DS18B205T返回的低電平“0據(jù)該狀態(tài)可以來確定它的存在,但是應(yīng)注意不能無限的進(jìn)行等待,不然會(huì)使程序進(jìn)入死循環(huán),所以要進(jìn)行超時(shí)控制7 .若CPU讀到了數(shù)據(jù)線上的低電平 “詬,還要做延時(shí),其延時(shí)的時(shí)間從發(fā)出的高 電平算起(第(5)步的時(shí)間算起)最少要480微秒

19、。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ù)線拉高“仔2 .延時(shí)2微秒。3 .將數(shù)據(jù)線拉低“0”4 .延時(shí)15微秒。5 .將數(shù)據(jù)線拉高“1?!? .延時(shí)15微秒。7 .讀數(shù)據(jù)線的狀態(tài)得到1個(gè)狀態(tài)位,并進(jìn)行數(shù)據(jù)處理。8 .延時(shí)30微秒。3.1.4DS18B20使用中的注

20、意事項(xiàng)DS18B20雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),但 在實(shí)際應(yīng)用中也應(yīng)注意以下幾方面的問題:1 . DS18B20從測溫結(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ì)使所測 得的溫度精度降低。3 .較小的硬件開銷需要相對復(fù)雜的軟件進(jìn)行補(bǔ)償,由于DS1820與微處理器間采用 串行數(shù)據(jù)傳送,因此,在對 DS1820進(jìn)行讀寫編程時(shí),必須嚴(yán)格的保證讀寫時(shí)序,否則 將無法讀取測溫結(jié)果。在使用 PL/M、C等高級語言進(jìn)行系統(tǒng)程序設(shè)計(jì)時(shí),對

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

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

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

24、顯示圖形(用自定義 CGRAM顯示效果也不好)1602LCD指顯示白內(nèi)容為16X2即可以顯示兩行,每行16個(gè)字符液晶模塊(顯示 字符和數(shù)字)。目前市面上字符液晶絕大多數(shù)是基于 HD44780液晶芯片的,控制原理是完全相同的, 因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。1602液晶接口圖3.5 1602液晶顯示器一種接法3.2.2 1602LCD 的特性(1) +5V電壓,對比度可調(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ā)生器

25、CGROM(6) 8個(gè)可由用戶自定義的5X7的字符發(fā)生器CGRAM字符型LCD1602!常有14條引腳線或16條引腳線的LCR多出來的2條線是背光 電源線VCC(15卻)和地線GND(16腳)(圖3.5是1602液晶顯示器的一種接法)3.2.3 液晶模塊簡介LM016L的結(jié)構(gòu)及功能:LM016L液晶模塊采用HD44780控制器,hd44780具有簡單而功能較強(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ā)生

26、器ROMA (CGOROM字符發(fā)生器RAM (CGRAM,地址計(jì)數(shù)器RAM(AC) IR用于寄存指令碼,只能寫入不能讀出,DR用于寄存數(shù)據(jù),數(shù)據(jù)由內(nèi)部操作自動(dòng)寫入 DDRAM和CGRA%者暫存從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位字符編碼和字符的對應(yīng)關(guān)系,可以查看參考文獻(xiàn)(30) 中的表4. CGRAM是為用戶編寫特殊字符留用的,它的容量僅 64字節(jié),可以自定義8 個(gè)5*7點(diǎn)陣字符或者4個(gè)5*10點(diǎn)陣

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

28、號線,高電平(1)時(shí)進(jìn)行讀操作,低電平。時(shí)進(jìn)行寫操 作。E (6腳):E域EN避為使能(enable)端,下降沿使能。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位6位。7位(最高位)(也是 busy flang)。DB6 (13腳):高4位三態(tài)、雙向數(shù)據(jù)總線DB7 (14腳):高4位三態(tài)、雙向數(shù)據(jù)總線寄存器選擇控制如表3.8表3.8

29、寄存器選擇控制RSR/W操作說明00寫入指令寄存器(清除屏等)01讀busy flag ( DB7),以及讀取位址計(jì)數(shù)器(DB0DB6 值10寫入數(shù)據(jù)寄存器(顯示各字型等)11從數(shù)據(jù)寄存器讀取數(shù)據(jù)3.2.3液晶顯示部分與89C51的接口如圖3.9所示。用89C51的P0 口作為數(shù)據(jù)線,用P22 P2.1、P2.0分別作為LCD 的E、R/W、RS其中E是下降沿觸發(fā)的片選信號,R/W是讀寫信號,RS是寄存器選擇 信號本模塊設(shè)計(jì)要點(diǎn)如下:顯示模塊初始化:首先清屏,再設(shè)置接口數(shù)據(jù)位為8位,顯示行數(shù)為2行,字型為5X7點(diǎn)陣,然后設(shè)置為整體顯示,取消光標(biāo)和字體閃爍,最后設(shè)置 為正向增量方式且不移位。向L

30、CD的顯示緩沖區(qū)中送字符,程序中采用2個(gè)字符數(shù)組,一個(gè)顯示字符,另一個(gè)顯示電壓數(shù)據(jù),要顯示的字符或數(shù)據(jù)被送到相應(yīng)的數(shù)組中,完成 后再統(tǒng)一顯示.首先取一個(gè)要顯示的字符或數(shù)據(jù)送到 LCD的顯示緩沖區(qū),程序延時(shí)2.5ms, 判斷是否夠顯示的個(gè)數(shù),不夠則地址加一取下一個(gè)要顯示的字符或數(shù)據(jù)。ALARH TEHP Hl LGHi: S3 LO: -29RP12 do3-d18 d47d5s dedr':,111-oLPCDPO.OJADO BA J JAr-ta dl3S3«r UB1 JrtL* IIP0.2JAD?37DH A時(shí)rP0.5/A£>aPO.77AD73。

31、g我口c n在日*F2.1/A9修2?r 2 .2/Al ni iido必0U1圖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)是與51 一致的。80C51有40個(gè)弓唧,4個(gè)8位并行I/O 口,1個(gè)全雙工異步用行口,同時(shí)內(nèi)含 5個(gè) 中

32、斷源,2個(gè)優(yōu)先級,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);特殊功能寄存器SFRI/O 口和其他功能單元,4個(gè)并行I/O 口; 2個(gè)16位定時(shí)計(jì)數(shù)器:1個(gè)全雙工異步用 行口;中斷系統(tǒng)(5個(gè)

33、中斷源,2個(gè)優(yōu)先級)。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ā)展趨勢是將 RAM和ROM都集成在單片機(jī)里面,這樣既方便了用戶進(jìn)行設(shè)計(jì)又提高了系統(tǒng)的抗干擾 性。4 .四個(gè)8位并行I/O接口 P0P3每個(gè)口既可以用作輸入,也可以用作輸出5 .兩

34、個(gè)定時(shí)器/計(jì)數(shù)器,每個(gè)定時(shí)器/計(jì)數(shù)器都可以設(shè)置成計(jì)數(shù)方式,用以對外部事件進(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ā)送器)的串行I/O 口,用于實(shí)現(xiàn)單片機(jī)之間或 單機(jī)與微機(jī)之間的串行通信。8 .片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,但石英晶體和微調(diào)電容需要外接。最高允許振蕩頻 率為12MHz。SST89V58RDt高允許振蕩頻率達(dá)40MHz,因而大大的提高了指令的執(zhí)行 速度。3.3.2 80C5

35、1單片機(jī)管腳pi n r*i. i P1 w pi a Pl .4 PI S pi a R1 .7 HST (RXD) P3.O <TXD) R3. I (INTO) P3.2 (IZTI ) R3.3 (TO) Rn 4 (T1 ) P3.5 WH) 2.6 <RO) RH 7 XTAL£ XTAL1GhlD匚 匚 匚 匚 匚 匚 圖3.11 80C51 單片機(jī)管腳I vcc I尸口 QI PO. II PO 2 I PO 3I RO 4 I PO.BI RU.tf I FO 7(AOO> (AD1)gum (A 匚14) (ADS)(A75)(A4)CA13)

36、(Aim 1 )(Ae>時(shí)鐘電路弓I腳XTAL1和XTAL2XTAL2(18腳):接外部晶體和微調(diào)電容的一端;在 8051片內(nèi)它是振蕩電路反相放 大器的輸出端,振蕩電路的頻率就是晶體固有頻率。若需采用外部時(shí)鐘電路時(shí),該引腳 輸入外部時(shí)鐘脈沖。XTAL1(19腳):接外部晶體和微調(diào)電容的另一端;在片內(nèi)它是振蕩電路反相放大器 的輸入端。在采用外部時(shí)鐘時(shí),該引腳必須接地??刂菩盘柟璉腳RST,ALE,PSE和EA:RST/VPD(9腳):RST是復(fù)位信號輸入端,高電平有效。當(dāng)此輸入端保持備用電源的 輸入端。當(dāng)主電源Vcc發(fā)生故障,降低到低電平規(guī)定值時(shí),將+ 5V電源自動(dòng)兩個(gè)機(jī)器 周期(24個(gè)時(shí)

37、鐘振蕩周期)的高電平時(shí),就可以完成復(fù)位操作。RST引腳的第二功能是VPD, 即接入RST端,為RAM提供備用電源,以保證存儲(chǔ)在 RAM中的信息不丟失,從而合 復(fù)位后能繼續(xù)正常運(yùn)行。ALE/PROG(30腳):地址鎖存允許信號端。當(dāng)8051上電正常工作后,ALE引腳不斷 向外輸出正脈沖信號,此頻率為振蕩器頻率 fOSC的1/6。CPU訪問片外存儲(chǔ)器時(shí),ALE 輸出信號作為鎖存低8位地址的控制信號。平時(shí)不訪問片外存儲(chǔ)器時(shí),ALE端也以振蕩頻率的1/6固定輸出正脈沖,因而ALE 信號可以用作對外輸出時(shí)鐘或定時(shí)信號。此引腳的第二功能PROG在對片內(nèi)帶有4KB EPROM的8751編程寫入(固化程序)

38、時(shí),作為編程脈沖輸入端。PSEN(29腳):程序存儲(chǔ)允許輸出信號端。在訪問片外程序存儲(chǔ)器時(shí),此端定時(shí)輸出 負(fù)脈沖作為讀片外存儲(chǔ)器的選通信號。此引肢接 EPROM的OE端。PSEN端有效,即 允許讀出EPROM/ROM中的指令碼。EA/Vpp(31腳):外部程序存儲(chǔ)器地址允許輸入端/固化編程電壓輸入端。當(dāng)EA引 腳接高電平時(shí),CPU只訪問片內(nèi)EPROM/ROM并執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令,但當(dāng) PC程序計(jì)數(shù)器)的值超過0FFFH(t 8751/8051為4K)時(shí),將自動(dòng)轉(zhuǎn)去執(zhí)行片外程序存儲(chǔ) 器內(nèi)的程序。if輸入信號EA引腳接低電平(接地)時(shí),CPU只訪問外部EPROM/ROM并 執(zhí)行外部程序存儲(chǔ)

39、器中的指令,而不管是否有片內(nèi)程序存儲(chǔ)器。對于無片內(nèi)ROM的8031或8032,需外擴(kuò)EPROM此時(shí)必須將EA引腳接地。此引腳的第二功能是 Vpp是 對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) 先向口鎖存器(地址80H)寫入全1,此時(shí)P0 口的全部引腳浮空,可作為高阻抗輸入。作輸 入口使用時(shí)要先寫1,這就是準(zhǔn)雙向口的含義。在 CPU訪

40、問片外存儲(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ù)載。在訪問片外EPROM/RAM時(shí),它輸出高8位地 址。P3 口 (P3.0P3.7, 1017腳):P3 口是一

41、個(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ā)送。P32 (INT0#K卜部中斷0輸入。P33 (INT1#K卜部中斷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 80C51單片機(jī)的中斷系統(tǒng)80C51系列單片機(jī)的中斷系統(tǒng)有5個(gè)中斷源,2個(gè)優(yōu)先級,可以實(shí)現(xiàn)二級中斷服務(wù)

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

43、對于做實(shí)物來說極其重要。如圖3.12VCC1011RIY1JU 059券IPLQVCCPL1P0,0P1JPQ.lPL3P0.2PL4P0 3PL5.AIO&IP04P1.6.MSOP1.7.SCKPC.6RSTP0.7P3.QRXDEATPP3,LTXDATEPROGP5.2.INTUFSENMMP331NT1P2.7P3.4-T0P2.6P3.5.T1P2.5P3.6 八VBlP2 4P3+ RliP2.3NT AL 2!P2,2VTALIPZ1GNDP2.0VI ATS9S529巴"Q LPL4 f rni?PL。 丁 pTsPLC L 久L至 EiF 3 PTlT4。

44、3 9 PU.U3S PO 1,1 PC 236 PO 5J? pai54 PU -3 3 加。632 PM7IlTo莎WS PL7京Pl 53.12 單片機(jī)及其最小系統(tǒng)單片機(jī)最小系統(tǒng)如圖所示,主要由以下六部分組成(1) AT89S52Wt機(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í)鐘控制信號,內(nèi)部電 路在時(shí)鐘信號的控制下,嚴(yán)格地按時(shí)序指令工作。(4)復(fù)位電路:MCS-51的復(fù)位是由外部的復(fù)位電路來實(shí)現(xiàn)。采用最簡單的外部按

45、鍵復(fù)位電路。按鍵自動(dòng)復(fù)位是通過外部復(fù)位電路的來實(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)所測得 的結(jié)果高于或者低于所設(shè)置的溫度上下限時(shí)就會(huì)閃爍報(bào)警,同時(shí)連接于P3.7的蜂鳴器就會(huì)報(bào)警Current Tifie:TEMP:Tc

46、4FFU2L2sriiH. FR5Q "Sit" INN ,-20.5 C_LC2llu1+椎勢4lE 具 SS-.r 耳SKTj心hi .時(shí) 1s/ADJro.4AD4RSTO .7rftD ,FSEMFZ 箱!9P2協(xié)忖A|_EFZ旦印?至P£小電信F2.C/AI4*1.0TBR版91 1ps.nrrxhF3.2JiNTOp#mFMP1j4PS- 叫U皿7e.h/SF語JIMF區(qū)3J. M ii 五 I: 12 1ZI zr 27L'l當(dāng) RVJ/ F J圖3.13 總體電路圖4 .軟件設(shè)計(jì)簡介4.1 C語言簡介C語言是嵌入式系統(tǒng)中一種通用語言,其數(shù)據(jù)

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

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

49、調(diào)各執(zhí)行模塊和操作者的關(guān)系。二是執(zhí)行軟件(子程 序),它是用來完成各種實(shí)質(zhì)性的功能如測量、計(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)系。主程序流程:圖4.1 主程序流程圖DS18B20初始化流程圖:(開始<圖4.2 DS18B20初始化流程圖5 .電路仿真5.1 Proteus 軟件介紹7Proteus軟件是英國Labcenter ele

50、ctronics公司出版的EDA工具軟件(該軟件中國總 代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能 仿真單片機(jī)及外圍器件。它是目前最好的仿真單片機(jī)及外圍器件的工具。雖然目前國內(nèi) 推廣剛起步,但已受到單片機(jī)愛好者、從事單片機(jī)教學(xué)的教師、致力于單片機(jī)開發(fā)應(yīng)用 的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代 碼調(diào)試到單片機(jī)與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計(jì),真正實(shí)現(xiàn)了從概念到產(chǎn)品的完整設(shè)計(jì)。是目前世界上唯一將電路仿真軟件、PCB®計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持 8051、HC1&

51、#171; PIC10/12/16/18/24/30/DsPIC33、AVR ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列J處理器,并持續(xù)增加其 他系列處理器模型。在編譯方面,它也支持IAR Keil和MPLAB等多種編譯器。該軟件的特點(diǎn)是:1 .實(shí)現(xiàn)了單片機(jī)仿真和SPIC西路仿真相結(jié)合,具有模擬電路仿真、數(shù)字電路仿真、 各種單片機(jī)(51系列、AVR PIG等常用的MCU)及其外圍電路(如LCD RAM、ROM、鍵 盤、LED A/D、D/A織成的系統(tǒng)仿真。2 .提供了多種虛擬儀器。如示波器、邏輯分析儀、信號發(fā)生器等,調(diào)試非常方便。3 .提供軟件調(diào)試功能,同時(shí)支

52、持第三方的軟件編譯和調(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類型隨著版本升級還在繼續(xù)增加, 如即將支持CORTEXDSP處理器。6 .編譯及調(diào)試:支持單片機(jī)匯編語言的編輯/編譯/源碼級仿真,內(nèi)帶8051、AVR PIC的匯編編譯器,也可以與第三方集成編譯環(huán)境(如 IAR Keil和Hitech)結(jié)合,進(jìn)行 高級語言的源碼級仿真和調(diào)試。7 .繪

53、制原理圖:繪制原理圖要在原理圖編輯窗口中的藍(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í),超過下限,第二個(gè)黃燈閃爍,蜂鳴器報(bào) 如圖5.2,當(dāng)設(shè)定溫度為80.5時(shí),超過溫度上限,第一個(gè)黃燈閃爍,蜂鳴

54、器報(bào)LCD1,-,UO161' pCurrent I;TEHF: -22.5 ”IB圖5.1 當(dāng)下限設(shè)定為一20度時(shí)RP1 j<q . . . L_l*_, .1冽一 .,一 '1>R1息 r . r «- i -I OE ' 1, 1CMFAKI泡!丸L1PUDTADD PD.1WD1FU*JDWJCTAL2PE3Mlm P 口時(shí)由 pgi * PCLSAJD。WSTPO.TC?FZ.1MA FZJTAig陜?nèi)战↖ALfu*母像FZjS'AI * F3J.1S1口PIDILKli iri.iP1ZP3.1EDP32TOTnP1«3PM-1IP1A,35P l與p-q 個(gè)T1F-IjSpzjsOTIT"T”MF30 ;圖 I311 15Fis LSIIZ1 2RWx Z3riR21LI"1g6GHp 1_TEMP!:忡:;C1 *H S51碧LVMI u.misiiL,此京顯乖期 o;二| 沁:.1ZM .1 St -4QIE as- C3Current rshfUT?<T冉 L

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論