畢業(yè)設(shè)計—基于單片機(jī)的溫度采集與控制設(shè)計_第1頁
畢業(yè)設(shè)計—基于單片機(jī)的溫度采集與控制設(shè)計_第2頁
畢業(yè)設(shè)計—基于單片機(jī)的溫度采集與控制設(shè)計_第3頁
畢業(yè)設(shè)計—基于單片機(jī)的溫度采集與控制設(shè)計_第4頁
畢業(yè)設(shè)計—基于單片機(jī)的溫度采集與控制設(shè)計_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、畢業(yè)論文基于單片機(jī)的溫度采集與控制設(shè)計論文作者專 業(yè)學(xué) 號班 級指導(dǎo)教師:摘 要隨著現(xiàn)代信息技術(shù)的飛速發(fā)展,溫度測量控制系統(tǒng)在工業(yè)、農(nóng)業(yè)及人們的日常生活中扮演著一個越來越重要的角色,它對人們的生活具有很大的影響,所以溫度采集控制系統(tǒng)的設(shè)計與研究有十分重要的意義。采用單片機(jī)對溫度進(jìn)行控制,不僅具有控制方便和組態(tài)簡單的優(yōu)點,而且可以提高被控溫度的技術(shù)指標(biāo)。溫度檢測是現(xiàn)代檢測技術(shù)的重要組成部分,在保證產(chǎn)品質(zhì)量、節(jié)約能源和安全生產(chǎn)等方面起著關(guān)鍵的作用。單片機(jī)具有體積小、功能強(qiáng)、成本低、應(yīng)用面廣等優(yōu)點,可以說,智能控制與自動控制的核心就是單片機(jī)。現(xiàn)代電子工業(yè)的飛速發(fā)展對自動測試的要求越來越高。采用單片機(jī)

2、對溫度進(jìn)行控制,不僅具有控制方便和組態(tài)簡單的優(yōu)點,而且可以提高被控溫度的技術(shù)指標(biāo)。隨著科學(xué)技術(shù)的發(fā)展,由單片集成電路構(gòu)成的溫度傳感器的種類越來越多,測量的精度越來越高,響應(yīng)時間越來越短,因其使用方便、無需變換電路等特點已經(jīng)得到了廣泛的應(yīng)用。本文正是介紹了一種基于ds18b20單片機(jī)溫度采集系統(tǒng)的硬件結(jié)構(gòu)及匯編程序。該裝置采用硬件有8051,ds18b20,led。且具有顯示精度高、價格低廉、結(jié)構(gòu)簡單、擴(kuò)展方便和應(yīng)用廣泛等一系列優(yōu)點。關(guān)鍵詞:單片機(jī),溫度傳感器,led數(shù)碼管目 錄摘 要i1 單片機(jī)的概述11.1什么是單片機(jī)11.2 單片機(jī)的特點21.3 單片機(jī)的應(yīng)用領(lǐng)域31.4 單片機(jī)的發(fā)展趨勢

3、42 硬件介紹52.1 8051簡介52.2 ds18b20 簡介72.3 ds18b20與單片機(jī)的接口電路82.4數(shù)碼管簡介92.5 數(shù)碼管與單片機(jī)的接口電路113系統(tǒng)功能與設(shè)計113.1 溫度采集與控制系統(tǒng)功能介紹123.2 溫度采集與控制系統(tǒng)硬件設(shè)計133.3 溫度采集與顯示軟件設(shè)計133.4 溫度控制軟件設(shè)計19結(jié)束語23參考文獻(xiàn)24致 謝25iii1 單片機(jī)的概述1.1什么是單片機(jī)單片機(jī)與現(xiàn)代微型計算機(jī)一樣,系統(tǒng)結(jié)構(gòu)均采用馮諾依曼提出的“存儲程序”思想,即程序和數(shù)據(jù)都被存放在內(nèi)存中,采用二進(jìn)制代替十進(jìn)制進(jìn)行運(yùn)算和存儲程序。人們將計算機(jī)要處理的數(shù)據(jù)和運(yùn)算方法、步驟,事先按計算機(jī)要執(zhí)行的

4、操作命令和有關(guān)原始數(shù)據(jù)編織成程序(二進(jìn)制代碼),存放在計算機(jī)內(nèi)部的存儲器。,計算機(jī)在運(yùn)行時能夠自動地,連續(xù)地從存儲器中取出并執(zhí)行,不許人工加以干預(yù)。通常最基本的單片機(jī)由以下幾部分組成:圖1-1 單片機(jī)的典型結(jié)構(gòu)框圖(1)中央處理器單片機(jī)中的中央處理器cpu和通用微處理器基本相同,由運(yùn)算器和控制器組成,另外增設(shè)了“面向控制”的處理功能,如位處理、查表、多種跳轉(zhuǎn)、乘除法運(yùn)算、狀態(tài)檢測、中斷處理等,增強(qiáng)了實時性。(2)存儲器單片機(jī)的存儲空間有兩種基本結(jié)構(gòu)。一種是普林斯頓結(jié)構(gòu)(princeton),將程序和數(shù)據(jù)合用一個存儲器空間,即rom和ram的地址同在一個空間里分配不同的地址。cpu訪問存儲器時,

5、一個地址對應(yīng)惟一的一個存儲單元,可以是rom,也可以是ram,用同類的訪問指令。另一種是將程序存儲器和數(shù)據(jù)存儲器截然分開,分別尋址的結(jié)構(gòu),稱為哈佛(harvard)結(jié)構(gòu)。cpu用不同的指令訪問不同的存儲器空間。由于單片機(jī)實際應(yīng)用中“面向控制”的特點,一般需要較大的程序存儲器。目前,包括mcs-51和80c51系列的單片機(jī)均采用程序存儲器和數(shù)據(jù)存儲器截然分開的哈佛結(jié)構(gòu)。 數(shù)據(jù)存儲器(ram)在單片機(jī)中,用隨機(jī)存取的存儲器(ram)來存儲數(shù)據(jù),暫存運(yùn)行期間的數(shù)據(jù)、中間結(jié)果、緩沖和標(biāo)志位等,所以稱之為數(shù)據(jù)存儲器。一般在單片機(jī)內(nèi)部設(shè)置一定容量(64b256b)的ram,并以高速ram的形式集成在單片機(jī)

6、內(nèi),以加快單片機(jī)的運(yùn)行速度。同時,單片機(jī)內(nèi)還把專用的寄存器和通用的寄存器放在同一片內(nèi)ram統(tǒng)一編址,以利于運(yùn)行速度的提高。對于某些應(yīng)用系統(tǒng),還可以外部擴(kuò)展數(shù)據(jù)存儲器。 程序存儲器(rom)單片機(jī)的應(yīng)用中常常將開發(fā)調(diào)試成功后的應(yīng)用程序存儲在程序存儲器中,因為不再改變,所以這種存儲器都采用只讀存儲器rom的形式。(3)并行i/o口單片機(jī)為了突出控制的功能,提供了數(shù)量多、功能強(qiáng)、使用靈活的并行i/o口。使用上不僅可靈活地選擇輸入或輸出,還可作為系統(tǒng)總線或控制信號線,從而為擴(kuò)展外部存儲器和i/o接口提供了方便。(4)串行i/o口高速的8位單片機(jī)都可提供全雙工串行i/o口,因而能和某些終端設(shè)備進(jìn)行串行通

7、信,或者和一些特殊功能的器件相連接。(5)定時器/計數(shù)器在實際的應(yīng)用中,單片機(jī)往往需要精確地定時,或者需對外部事件進(jìn)行計數(shù),因而在單片機(jī)內(nèi)部設(shè)置了定時器/計數(shù)器電路,通過中斷,實現(xiàn)定時/計數(shù)的自動處理。1.2 單片機(jī)的特點 (1) 小巧靈活,成本低,易于產(chǎn)品化,有優(yōu)異的性能價格比 (2) 集成度高,由很高的可靠性,能在惡劣的環(huán)境下工作。單片機(jī)吧功能部件集成在一塊芯片內(nèi)部,縮短和減少了功能部件之間的連線,提高了單片機(jī)的可靠性和抗干擾能力。 (3)控制功能強(qiáng),特別是集成了功能接口電路,使用更方便,更有效。指令面向控制對象,可以直接對功能部件進(jìn)行操作,易于實現(xiàn)從簡單到復(fù)雜的各類控制任務(wù)。(4)低功耗

8、,低電壓,便于生產(chǎn)便攜式產(chǎn)品。單片機(jī)所具有的以上顯著特點,使它在各個領(lǐng)域都得到廣泛應(yīng)用,從日常的智能化家電產(chǎn)品到專業(yè)的智能儀表,從單個的實時測控系統(tǒng)到分布式多機(jī)系統(tǒng)以及嵌入式系統(tǒng)。使用單片機(jī)已經(jīng)成為各個行業(yè)提高產(chǎn)品性能,降低生產(chǎn)成本,提高生產(chǎn)效率的重要手段。例如交通燈,霓虹燈控制,廣場上的計時牌等系統(tǒng)中都用到了單片機(jī)控制1。1.3 單片機(jī)的應(yīng)用領(lǐng)域由于單片機(jī)功能的飛速發(fā)展,它的應(yīng)用范圍日益廣泛,已遠(yuǎn)遠(yuǎn)超出了計算機(jī)科學(xué)的領(lǐng)域。小到玩具、信用卡,大到航天器、機(jī)器人,從實現(xiàn)數(shù)據(jù)采集、過程控制、模糊控制等智能系統(tǒng)到人類的日常生活,到處都離不開單片機(jī)。其主要的應(yīng)用領(lǐng)域如下:(1)在測控系統(tǒng)中的應(yīng)用單片機(jī)

9、可以用于構(gòu)成各種工業(yè)控制系統(tǒng)、自適應(yīng)控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)等。例如,工業(yè)上的鍋爐控制、水閘自動控制、及軍事上的雷達(dá)、導(dǎo)彈系統(tǒng)等。(2)在智能化儀器儀表中的應(yīng)用單片機(jī)應(yīng)用于儀器儀表設(shè)備中促使儀器儀表向數(shù)字化、智能化、多功能化和綜合化等方向發(fā)展。單片機(jī)的軟件編程技術(shù)使長期以來測量儀表中的誤差修正阿、線性化的處理等難題迎刃而解。(3)在機(jī)電一體化中的應(yīng)用單片機(jī)與傳統(tǒng)的機(jī)械產(chǎn)品結(jié)合使傳統(tǒng)的機(jī)械產(chǎn)品結(jié)構(gòu)簡化,控制走向智能化,構(gòu)成新一代的機(jī)電一體化產(chǎn)品。這是機(jī)械工業(yè)發(fā)展的方向。(4)在智能接口中的應(yīng)用計算機(jī)系統(tǒng),特別是較大型的工業(yè)測控系統(tǒng)中采用單片機(jī)進(jìn)行接口的控制管理,單片機(jī)與主機(jī)并行工作,可大大提高系統(tǒng)

10、的運(yùn)行速度。如數(shù)字濾波、誤差修正、線性化處理等。(5)在人類生活中的應(yīng)用單片機(jī)由于其價格低廉、體積小巧,被廣泛應(yīng)用在人類生活的諸多場合,如洗衣機(jī)、空調(diào)器、視聽音響設(shè)備、信用卡、樓宇防盜系統(tǒng)等。單片機(jī)將使人類的生活更加方便舒適,豐富多彩。1.4 單片機(jī)的發(fā)展趨勢由于8位機(jī)價格便宜,且在速度與功能上逐步與16位機(jī)逼近,可以預(yù)計,在未來很長時間內(nèi),8位單片機(jī)仍將是單片機(jī)的主流機(jī)型。從發(fā)展的趨勢來說,單片機(jī)正朝著低功耗微型化方向發(fā)展。(1)低功耗cmos化在許多應(yīng)用場合,單片機(jī)不僅要由很小的體積,而且還需要較低的工作電壓和績效的功耗?,F(xiàn)在各個單片機(jī)制造商基本都采用了cmos工藝,并設(shè)有空閑和掉電兩種工

11、作方式。 (2)內(nèi)部資源豐富,外圍電路內(nèi)裝化,整體微型化 近年來,世界各大半導(dǎo)體廠商熱衷于開發(fā)增強(qiáng)型8位單片機(jī),片內(nèi)新增了a/d和d/a轉(zhuǎn)換器,監(jiān)視定時器,dma通道和總線接口等。有些廠家還把晶振和lcd驅(qū)動電路集成到芯片之中,還可以根據(jù)用戶的要求量身定做,制造出具有自己特色的單片機(jī)芯片。片內(nèi)資源豐富,功能強(qiáng)大,構(gòu)成單片機(jī)控制系統(tǒng)的硬件開銷越來越少。(3)大容量,高性能單片機(jī)片內(nèi)存儲器的容量進(jìn)一步擴(kuò)大,存儲器種類也從普通的rom或eprom向flash方向發(fā)展,具有在線編程功能。cpu字長增加,總線速度提高,硬件功能擴(kuò)充,指令執(zhí)行速度加快。對外部存儲器,i/o口尋址能力增強(qiáng),更利于系統(tǒng)的擴(kuò)展和

12、開發(fā)。 2 硬件介紹 2.1 8051簡介 如圖12所示為8051的管腳圖(一) 引腳簡要說明(1) 主電源引腳vcc和vssvcc(40腳):主電源接5vvss(20腳):接地(2) 時鐘電路引腳xtal1 和xtal2xtal2(18腳):接外部晶體振蕩器的一端。片內(nèi)是一個振蕩電路反相放大器的輸出端。xtal1(19腳):接外部晶體振蕩器的另一端。片內(nèi)是一個振蕩電路反相放大器的輸入端。(3) 控制信號rst/vpd、ale/(/prog) 、/ psen和 (/ea)/vpprst/vpd(9腳):復(fù)位端。高電平有效,寬度在24個時鐘周期寬度以上,使單片機(jī)復(fù)位。該引腳有復(fù)用功能,vpd為備

13、用電源輸入端,防止主電源掉電。ale/(/prog)(30腳):地址鎖存信號端。訪問片外存貯器時,ale作低八位地址的鎖存控制信號。平時不訪問片外存貯器時,該端以六分之一的時鐘振蕩頻率固定輸出脈沖。ale端負(fù)載驅(qū)動能力為8個lsttl門。該引腳有復(fù)用功能, 為片內(nèi)程序存貯器編程(固化)的編程脈沖輸入。/psen(29腳):片外程序存貯器讀選通信號端。負(fù)載能力為8lsttl門。(/ea)/vpp(31腳):/ea端接高電平時,cpu取指令從片內(nèi)程序存貯器自動順延至片外程序存貯器。 /ea端接低電平時,cpu僅從片外程序存貯器取指令。該引腳有復(fù)用功能,vpp為片內(nèi)程序存貯器編程時的編程電壓。 (4

14、) 輸入/輸出引腳p0、p1、p2和p3口p0.0p0.7(3932腳):訪問片外存貯器時作為低八位地址線和八位數(shù)據(jù)線(復(fù)用)。負(fù)載能力為8個lsttl門。 p1.0p1.7(18腳): 8位準(zhǔn)雙向i/o口。負(fù)載能力為3個lsttl門。p2.0p2.7(2128腳):訪問片外存貯器時作為高八位地址線。 p3.0p3.7(1017腳):8位準(zhǔn)雙向i/o口。負(fù)載能力為3個lsttl門。另外還有專門的第二功能2(二) p3口的第二功能p3.0(10腳): rxd(串行口輸入端)p3.1(11腳): txd(串行口輸出端)p3.2(12腳): /int0(外部中斷0輸入端)p3.3(13腳): /in

15、t1(外部中斷1輸入端)p3.4(14腳): t0(定時器/計數(shù)器0外部輸入端)p3.5(15腳): t1(定時器/計數(shù)器1外部輸入端)p3.6(16腳): /wr(片外數(shù)據(jù)存貯器寫選通信號輸出端)p3.7(17腳): /rd(片外數(shù)據(jù)存貯器讀選通信號輸出端)2.2 ds18b20 簡介ds18b20是美國dallas半導(dǎo)體公司生產(chǎn)的可組網(wǎng)數(shù)字式溫度傳感器,在其內(nèi)部使用了在板(on-b0ard)專利技術(shù)。全部傳感原件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi),與其他溫度傳感器相比,ds18b20具有以下特性:(1)獨(dú)特的單線接口方式:ds18b20與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器

16、與ds18b20的雙向通訊。(2)ds18b20支持多點組網(wǎng)功能,多個ds18b20并聯(lián)可以實現(xiàn)多點測溫(3)ds18b20在使用中不需要任何外圍元件。 (4)測溫范圍:-55 +125 。固有測溫分辨率為0.5 。 (5)通過編程可實現(xiàn)912位的數(shù)字量方式串行傳送。 (6)用戶可設(shè)定非易失性的報警上、下限值。(7)負(fù)壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。to92封裝的ds1820的引腳排列見下圖圖13 ds18b20的管教排列其引腳功能描述如下(1) gnd :地信號 (2) dq :數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源

17、。 (3) vdd :可選擇的vdd引腳。當(dāng)工作于寄生電源時,此引腳必須接地。 2.3 ds18b20與單片機(jī)的接口電路 由于ds18b20采用的是1wire總線協(xié)議方式,即在一根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸,且ds18b20是在一根i/o線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴(yán)格的時序要求。ds18b20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機(jī)需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命

18、令的傳輸都是低位在先。 將的1腳接地,3腳接電源,2腳可任接單片機(jī)的io口需要外加4.7k的上拉電阻。如下圖14所示 u 6, 圖14 ds18b20與單片機(jī)的接口電路2.4數(shù)碼管簡介 七段數(shù)碼管引腳圖(1)數(shù)碼管使用條件:a、段及小數(shù)點上加限流電阻b、使用電壓:段:根據(jù)發(fā)光顏色決定; 小數(shù)點:根據(jù)發(fā)光顏色決定c、使用電流:靜態(tài):總電流 80ma(每段 10ma);動態(tài):平均電流 4-5ma 峰值電流 100ma上面是七段數(shù)碼管引腳圖,其中共陽極數(shù)碼管引腳圖和共陰極的是一樣的。(2) 數(shù)碼管的分類 共陰極數(shù)碼管7段熒光數(shù)碼管有公共的地,即7個發(fā)光二極管的負(fù)極全部連接在了一起,只要給想點亮的二極

19、管高電平就可以使其發(fā)光。這樣做的好處是可以免去布線、相互間的干擾等很多麻煩。這種連接方式的數(shù)碼管叫做共陰極數(shù)碼管。 共陽極數(shù)碼管有的讀者可能會問,是不是只有這一種接法?可不可以給出共同的正向電壓,然后通過控制負(fù)極的電壓來控制二極管的發(fā)光或者熄滅呢?只要電器特性參數(shù)和芯片的驅(qū)動能力準(zhǔn)許,完全可以通過控制負(fù)極的電壓來控制二極管的發(fā)光或者熄滅。這種連接方式的數(shù)碼管又叫做共陽極數(shù)碼管。對應(yīng)前面介紹的兩種數(shù)碼管可以采用灌電流和拉電流兩種連接方法,如果采用了灌電流連接,就要相對應(yīng)地選擇共陽極數(shù)碼管;反之,如果采用了拉電流連接,就要相應(yīng)選擇共陰極數(shù)碼管。實際使用中可以根據(jù)器件的特性參數(shù)做出合適的選擇。(3)

20、數(shù)碼管顯示原理前面已經(jīng)介紹過,7段數(shù)碼管是由7個獨(dú)立的二極管采用共陰或共陽的方法連接而成。通常將這7個獨(dú)立的二極管做成a、b、c、d、e、f、g這7個筆劃。通過一個7位的二進(jìn)制電平信號就可以顯示出想要的結(jié)果。例如,點亮二極管b、c,數(shù)碼管將會顯示數(shù)字1,點亮a、b、c、d、e、f、g,數(shù)碼管將會顯示數(shù)字0。所以,數(shù)碼管的顯示需要有7根連線。每個數(shù)字對應(yīng)的二進(jìn)制碼如下表11所示。表11 顯示數(shù)字對應(yīng)的二進(jìn)制電平信號顯示a bc d e f g0 1 1111 1 01 0 1100 0 02 1 1011 0 13 1 1110 0 14 0 1100 1 15 1 0110 1 16 0 01

21、11 1 17 1 1100 0 08 1 1111 1 19 0 0011 0 1然而,在實際的電路設(shè)計中,由處理器完成譯碼功能再輸出一個7位的二進(jìn)制信號是非常浪費(fèi)空間和影響效率的。因此,電子工程師一般采取用7段數(shù)碼管與譯碼器相結(jié)合的方法來解決這個問題。2.5 數(shù)碼管與單片機(jī)的接口電路圖15 數(shù)碼管與單片機(jī)的接口電路3.3系統(tǒng)功能與設(shè)計3.1 溫度采集與控制系統(tǒng)功能介紹在我們?nèi)粘I钪袦囟炔杉c控制系統(tǒng)已被越來越多的家用設(shè)備,工廠車間,倉庫所運(yùn)用,它可以對周圍的溫度進(jìn)行實時采集,并且可以對周圍溫度進(jìn)行控制,是溫度一直保持在某一范圍之內(nèi)。本系統(tǒng)通過溫度傳感器ds18b20對周圍溫度采集,然后由

22、自身所集成的溫度轉(zhuǎn)換芯片把采集到的溫度信號轉(zhuǎn)換為數(shù)字信號,再通過ds18b20 數(shù)據(jù)線將轉(zhuǎn)換后的數(shù)字信號傳送到單片機(jī)中,在單片機(jī)中經(jīng)過并行處理之后從p2口輸出到數(shù)碼管顯示。 以上功能實現(xiàn)了對周圍溫度的采集與顯示,再通過單片機(jī)的po口進(jìn)行溫度控制,當(dāng)po.0口所接的開關(guān)按鈕k1接通時開始對ds18b20芯片進(jìn)行溫度范圍的設(shè)定,再由p0.1,p0.2口所接的開關(guān)按鈕t1,t0對所設(shè)定的溫度范圍進(jìn)行加,減操作。按鈕t1可以增加溫度范圍的上限,按鈕t0可以減小溫度范圍的下限。當(dāng)所有設(shè)定都完成之后,通過按鈕k0來啟動所設(shè)定的數(shù)據(jù)。在整個系統(tǒng)正常運(yùn)行的時候,如果采集到的實時溫度高于所設(shè)定的溫度范圍的上限時

23、,單片機(jī)產(chǎn)生相應(yīng)的輸出信號給外圍設(shè)備,外圍設(shè)備就會啟動風(fēng)扇裝置進(jìn)行適當(dāng)?shù)慕禍?,?dāng)采集到的實時溫度低于所設(shè)定的溫度范圍的下限時,單片機(jī)也會產(chǎn)生相應(yīng)的輸出信號給外圍設(shè)備,外圍設(shè)備就會啟動加熱裝置進(jìn)行適當(dāng)?shù)募訜?,從而使所測的實時溫度一直保持在固定的范圍之內(nèi)。在單片機(jī)向外圍設(shè)備發(fā)送信號的同時自身也會自動報警,來提醒操作人員進(jìn)行相應(yīng)的操作。 溫度采集與控制系統(tǒng)是以單片機(jī)為控制核心,運(yùn)用ds18b20芯片和led數(shù)碼管共同組成的,該系統(tǒng)具有操作簡單,造價低廉,功能強(qiáng)大等優(yōu)點,在社會生產(chǎn)與家庭生活中運(yùn)用廣泛。給人民的生產(chǎn)生活提供很大方便。3.2 溫度采集與控制系統(tǒng)硬件設(shè)計系統(tǒng)目標(biāo)是用單片機(jī)對溫度進(jìn)行采集,以

24、解決工業(yè)及日常生活中對溫度的檢測及及時自動控制問題;用十進(jìn)制數(shù)碼顯示實際溫度值,方便人工監(jiān)視。本設(shè)計采用8051單片機(jī)應(yīng)用系統(tǒng)來實現(xiàn)設(shè)計要求,因8051在片內(nèi)含4kb的eeprom,不需外擴(kuò)展存儲器,可使系統(tǒng)整體結(jié)構(gòu)簡單。利用8051串行口輸出工作方式,使8051的利用率大大提高,外部電路得以簡化。溫度采集系統(tǒng)工作原理是采用8051作為核心器件實現(xiàn)對系統(tǒng)的自動控制,采用單片機(jī)串行處理結(jié)構(gòu)。外界溫度經(jīng)溫度傳感器采集,溫度變化轉(zhuǎn)換為數(shù)字信號送入單片機(jī)。單片機(jī)將采集到溫度值進(jìn)行處理后在led數(shù)碼管上顯示出來。其中p0口所接的是對溫度范圍進(jìn)行控制的按鈕k0,t1,t0,k0。單片機(jī)的p2口與數(shù)碼管的7

25、段相接來顯示所采集到的實時溫度。溫度傳感器ds18b20芯片與單片機(jī)的p1.0連接,轉(zhuǎn)換后的信號通過p1.0送入單片機(jī),單片機(jī)的p1.1口與蜂鳴器相接,當(dāng)溫度過高或者過低時自動報警。單片機(jī)的p3.0,p3.1,p3.2,p3.3口用來驅(qū)動數(shù)碼管顯示。 3.3 采集與顯示軟件設(shè)計 單片機(jī)溫度采集與顯示系統(tǒng)由硬件和軟件組成,硬件原理圖搭建完成上電之后,我們還不能實現(xiàn)對溫度的采集,需要給單片機(jī)編寫程序,下面給出了溫度采集與顯示系統(tǒng)的編程方法4: ;-; temperl equ31h ;用于保存讀出溫度的低字節(jié)temperh equ30h ;用于保存讀出溫度的高字節(jié)t_df equ 33ht_inte

26、ger equ32hflagbit20h ;標(biāo)志位dat bitp1.0 ;ds18b20數(shù)據(jù)線org 0000hajmpmainorg 0030hmain:clr ea ;使用ds18b20 一定要禁止中斷movsp,#60hmovt_df,#00hmovt_integer,#20hmov 21h,28h aa:lcallget_temper ;調(diào)用讀溫度子程序lcallt_format ;將讀出的2字節(jié)溫度格式化,并轉(zhuǎn)換為壓縮bcd碼lcalldisplay ;顯示溫度 jb p0.0,$ call delay1 jnb p0.0,tmp ajmp aatmp: ljmp startget

27、_temper:lcallset_18b20mov a,#0cch ;跳過rom匹配lcallwrite_1820mov a,#44h ;發(fā)出溫度轉(zhuǎn)化命令lcallwrite_1820 lcalldisplaylcallset_18b20 ;準(zhǔn)備讀溫度前先初始化mov a,#0cch lcallwrite_1820 mov a,#0beh ;發(fā)出度溫度命令lcallwrite_1820lcallread_1820ret;-set_18b20:setbdatnopclrdatmov r2,#250 ;主機(jī)發(fā)出延時500us的撫慰低脈沖djnzr2,$setbdat ;然后拉高數(shù)據(jù)線mov r2,

28、#30djnzr2,$ ;延時60us等待ds18b20回應(yīng)jnb dat,init1jmp set_18b20 ;超時而沒有響應(yīng)。重新初始化init1:mov r2,#120djnzr2,$ ;延時240usjb dat,init2 ;數(shù)據(jù)變高,初始化成功jmp set_18b20init2:mov r2,#240ret;-write_1820:mov r2,#8 ;一共8位數(shù)據(jù)wr0:clr datmov r3,#6djnzr3,$rrc amov dat,cmov r3,#20djnzr3,$setbdatnopnopdjnzr2,wr0setbdatret;-read_1820:mov

29、 r4,#2 ;將溫度高位和低位從ds18b20中讀出mov r1,#temperl ;低位存入31h(temperh)re0:mov r2,#8re1:setbdatnopnopclr datnopnopsetbdatmov r3,#4djnzr3,$mov c,datrrc amov r3,#30djnzr3,re1mov r1,adec r1 ;高位存入30h(temperh)djnzr4,re0ret;-t_format:mov a,#0fhanl a,temperlmov t_df,a ;獲得小數(shù)部分(4位)mov a,temperlswapamov r0,amov a,temper

30、hswapaxchda,r0mov t_integer,a ;獲得整數(shù)部分(1字節(jié))to_bcd:mov a,t_integermov b,#10div abswapaadd a,bmov t_integer,a ;整數(shù)部分壓縮bcd碼送t_integermov a,t_dfmov b,#16div abmov r2,a ;暫存r2mov a,bmov b,#10mul abmov b,#16div abmov b,amov a,r2swapaadd a,bmov t_df,a ;小數(shù)部分壓縮bcd碼送t_dfret;-display:movr1,#250disp1:mov a,t_integ

31、er ;顯示整數(shù)部分mov r3,#0fehmov r4,#0fdhsetbflagdisp2:cpl flagmov b,#10hdiv abmov r2,a ;高位送r2暫存mov p3,r3 ;送字位mov a,r2 ;蛔中蚏2送amov dptr,#tab ;表首地址送dptrmovca,a+dptr ;查表 mov p2,a ;送字型calld1ms ;延時mov p2,#0ffh ;關(guān)閉字型顯示mov r2,b ;低位送r2暫存mov p3,r4 ;送字位mov a,r2 ;字型r2送amov dptr,#tab ;槐硎椎刂匪虳ptrmovc a,a+dptr ;查表 jnb fl

32、ag,d11 jmp d12d11:anl a,#7fhd12:mov p2,a ;送字型calld1ms ;延時 movp2,#0ffh ;關(guān)閉字型顯示 mova,t_df ;顯示小數(shù)部分 movr3,#0fbh movr4,#0f7h jnb flag, disp2 djnz r1,disp1 ret ;-d1ms:mov r7,#250loop0:nop nop djnz r7,loop0rettab: db0c0h, 0f9h, 0a4h,0b0h,99h,92h,82h,0f8h ;段碼表 ; 0 1 2 3 4 56 7 對應(yīng)內(nèi)容 db 80h, 90h, 88h,83h,0c6h

33、,0a1h,86h,8eh ; 8 9 a b c d e fend 3.4 溫度控制軟件設(shè)計 運(yùn)用單片機(jī)的p0口進(jìn)行溫度控制,通過p0.0到p0.3分別接的按鈕k1,ti,to,k0對ds18b20的溫度范圍設(shè)定,當(dāng)所采集到的溫度超出所設(shè)定的范圍是系統(tǒng)就會自動報警。- start:anl p2,#00h ;顯示00 jb p0.2 ,$ ;籘0=0?有鍵按下? call delay1 ;消除抖動 jnb p0.2 ,$ ;t0=1?放下? mov r0,#00 ;計溫指針初值 l1: mov a,r0 ;計溫指針載入acc mov p2,a ;輸出至p1顯示 mov r5 , #10 ;延時

34、1秒 a1: mov r6 ,#200 d1: mov r7 , #248 ;0.5毫秒 jnb p0.2 ,l2 ;第2次按下t0? djnz r7,$ djnz r6,d1 djnz r5,a1 inc a da a mov r0 , a jmp l1 l2: call delay1 ;第2次按消除抖動 jb p0.2 ,l3 ;放開了沒?是則;跳至l3停止 jmp l2 l3: mov a ,r0 call change mov 35h , a ;下限溫度存入31h jb p0.1 ,$ ;t1=0?有鍵按下? call delay1 ;消除抖動 jnb p0.1 ,$ ;t1=1?放開

35、? mov r0 ,#00 ;計溫指針初值 l4: mov a,r0 ;計溫指針載入acc mov p1,a ;顯示00 mov r5 ,#10 ;延時1秒 a2: mov r6 ,#200 d2: mov r7 ,#248 ;0.5毫秒 jnb p0.1 ,l5 ;第二次按下t1? djnz r7 ,$ djnz r6 ,d2 djnz r5 , a2 add a , #01h da a mov r0 , a jmp l4 l5: call delay1 ;第2次按消除抖動 jb p0.1 ,l6 ;放開了?是則跳至l6 jmp l5 l6: mov a,r0 call change mov

36、 34h ,a ;上限溫度存入30h mov 36h ,#0ffh ;32h舊溫度寄存;器初值 aaa: movx r0 , a ;使bus為高阻抗 ; 并令adc0804開始轉(zhuǎn)換 wait: jb p0.3 ,adc ;檢測轉(zhuǎn)換完成否 jmp wait adc:movx a ,r0 ;將轉(zhuǎn)換好的值送入;累加器 mov 37h ,a ;將現(xiàn)在溫度值存入33h clr c ;c=0 subb a ,36h jc tdown ;c=0取入值較大,表示;溫度上升,c=1表示下降 tup:mov a, 37h ;將現(xiàn)在溫度值存入a clr c subb a ,34h ;與上限溫度作比較 jc loop ;c=1時表示比上限小,須加熱,;c=0表示比上限大,停止加熱 setb p2.1 jmp loop tdown:mov a ,37h ;將現(xiàn)在溫度值存入a clr c subb a ,35h ;與下限溫度作比較 jnc loop ;c=1時表示比下限小,須加熱,;c=0表示比下限大 clr p1.1 ;令p1.1動作 loop:mov 36h ,37h cl

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論