小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

LED數(shù)碼管和DS18B 20溫度顯示器設(shè)計

 昵稱66084147 2019-09-11

課程設(shè)計說明書

專業(yè)

電氣工程及其自動化

學(xué)生姓名

奉達(dá)師

班級

B電氣162

學(xué)號

1610601202

指導(dǎo)教師

鹽城工學(xué)院

完成日期

2019621


LED數(shù)碼管和DS18B 20溫度顯示器設(shè)計

 

本文設(shè)計的是一個溫度溫度檢測顯示系統(tǒng),主要設(shè)計分為硬件和軟件的設(shè)計,硬件模塊主要由STC89C52單片機主控模塊、DS18B20溫度采集器、4LED共陰極數(shù)碼管以及控制電路組成。軟件的設(shè)計主要從控制思路、軟件系統(tǒng)框圖出發(fā),先介紹整體思路,再主義分析各模塊程序算法的實現(xiàn),最終編寫出滿足任務(wù)要求的程序。

     本設(shè)計中的單片機主控模塊主要由晶振電路、復(fù)位電路、供電模塊和程序下載接口組成。本文設(shè)計所需要的器件比較簡單,主要通過數(shù)字式溫度傳感器DS18B20作為感溫元件對周圍的溫度進行采集,然后以數(shù)字量的方式傳遞給STC89C52單片機進行處理,最后通過4LED共陰極數(shù)碼顯示出來。

該設(shè)計通過對程序設(shè)計、仿真圖設(shè)計、軟件與硬件的聯(lián)調(diào)、電路原理圖繪制、電路圖的焊接幾個步驟最后得出焊接好的實物。

關(guān)鍵詞:

ST89C51單片機、DS18B20溫度傳感器、4LED共陰極數(shù)碼管   控制電路


   

1.    .......................................................................................................................... 1

1.1 課題研究背景與意義........................................................................................... 1

1.2 課題設(shè)計內(nèi)容....................................................................................................... 1

2 系統(tǒng)設(shè)計......................................................................................................................... 2

2.1 設(shè)計方案及論證................................................................................................... 2

2.2 系統(tǒng)硬件設(shè)計....................................................................................................... 3

2.2.1 主控模塊............................................................................................................ 4

2.2.2 LED數(shù)碼管顯示模塊........................................................................................ 7

2.2.3 DS18B20溫度檢測模塊.................................................................................... 8

2.3 軟件設(shè)計............................................................................................................. 10

2.3.1 主程序模塊...................................................................................................... 10

2.3.2 溫度采集與數(shù)碼管顯示子程序設(shè)計.............................................................. 11

3. 系統(tǒng)調(diào)試...................................................................................................................... 12

3.1 硬件調(diào)試............................................................................................................. 12

3.1.1 靜態(tài)檢查.......................................................................................................... 12

3.1.2 通電檢查.......................................................................................................... 12

3.2軟件調(diào)試及軟硬件聯(lián)調(diào)...................................................................................... 12

3.2.1仿真調(diào)試........................................................................................................... 12

3.2.2實物調(diào)試........................................................................................................... 13

3.2.3 實驗結(jié)果.......................................................................................................... 13

4. 結(jié)束語.......................................................................................................................... 14

5. 參考文獻...................................................................................................................... 15

附錄1LED數(shù)碼管和DS18B20溫度顯示器設(shè)計原理圖紙..................................... 16

附錄2LED數(shù)碼管和DS18B20溫度顯示器設(shè)計元器件目錄表............................. 17

附錄3LED數(shù)碼管和DS18B20溫度顯示器設(shè)計程序清單..................................... 18


LED數(shù)碼管和DS18B 20溫度顯示器設(shè)計

1.   

1.1 課題研究背景與意義

測量控制的作用是從生產(chǎn)現(xiàn)場中獲取各種參數(shù),運用科學(xué)計算的方法,綜合各種先進技術(shù),使每個生產(chǎn)環(huán)節(jié)都能夠得到有效的控制,不但保證了生產(chǎn)的規(guī)范化、提高產(chǎn)品質(zhì)量、降低成本,還確保了生產(chǎn)安全。所以,測量控制技術(shù)已經(jīng)被廣泛應(yīng)用于煉油、化工、冶金、電力、電子、輕工和紡織等行業(yè)。

溫度采集控制系統(tǒng)是在嵌入式系統(tǒng)設(shè)計的基礎(chǔ)上發(fā)展起來的。嵌入式系統(tǒng)雖然起源于微型計算機時代,但是微型計算機的體積、價位、可靠性,都無法滿足廣大對象對嵌入式系統(tǒng)的要求,因此,嵌入式系統(tǒng)必須走獨立發(fā)展道路。這條道路就是芯片化道路。將計算機做在一個芯片上,從而開創(chuàng)了嵌入式系統(tǒng)獨立發(fā)展的單片機時代。

溫度顯示器在人們生活中是顯而易見的,它可以運用于多個領(lǐng)域,例如養(yǎng)殖場溫度的檢測,工廠溫度的檢測,還有各種交通工具溫度的實時檢測以及各種機器的溫度監(jiān)測。

溫度檢測控制系統(tǒng)在工業(yè)生產(chǎn)、科學(xué)研究和人們的生活領(lǐng)域中,得到了廣泛應(yīng)用。在工業(yè)生產(chǎn)過程中,很多時候都需要對溫度進行嚴(yán)格的監(jiān)控,以使得生產(chǎn)能夠順利的進行,產(chǎn)品的質(zhì)量才能夠得到充分的保證。使用自動溫度控制系統(tǒng)可以對生產(chǎn)環(huán)境的溫度進行自動控制,保證生產(chǎn)的自動化、智能化能夠順利、安全進行,從而提高企業(yè)的生產(chǎn)效率。溫度檢測系統(tǒng)應(yīng)用十分廣闊。

1.2 課題設(shè)計內(nèi)容

本課題內(nèi)容是設(shè)計并制作一個溫度顯示器屏控制系統(tǒng),主要控制原理是利用DS18B20溫度檢測芯片對周圍環(huán)境溫度進行采集,然后通過單片機的轉(zhuǎn)換傳輸給LED數(shù)碼管,并在數(shù)碼管上顯示出來,顯示溫度為-55攝氏度+125攝氏度,精確到小數(shù)點后一位。

設(shè)計LED數(shù)碼管顯示的DS18B20溫度顯示器控制系統(tǒng)主要分為兩大部分,硬件電路與軟件控制程序,對硬件電路與軟件程序分別進行調(diào)試,并進行軟硬件聯(lián)調(diào),要求獲得調(diào)試成功的實物。

2 系統(tǒng)設(shè)計

2.1 設(shè)計方案及論證

根據(jù)設(shè)計內(nèi)容,提出了如下兩種方案:

方案一:采用普通電阻式溫度傳感器,放大器,A/D轉(zhuǎn)換器作為測量溫度的電路。采用兩種不同材質(zhì)的導(dǎo)體,如在某點互相連接在一起,對這個連接點加熱,在它們不加熱的部位就會出現(xiàn)電位差。這個電位差的數(shù)值與不加熱部位測量點的溫度有關(guān),和這兩種導(dǎo)體的材質(zhì)有關(guān)。這種現(xiàn)象可以在很寬的溫度范圍內(nèi)出現(xiàn),如果精確測量這個電位差,再測出不加熱部位的環(huán)境溫度,就可以準(zhǔn)確知道加熱點的溫度。由于它必須有兩種不同材質(zhì)的導(dǎo)體,所以稱之為“熱電偶”。不同材質(zhì)做出的熱電偶使用于不同的溫度范圍,它們的靈敏度也各不相同。熱電偶的靈敏度是指加熱點溫度變化1℃時,輸出電位差的變化量。對于大多數(shù)金屬材料支撐的熱電偶而言,這個數(shù)值大約在5~40微伏/℃之間。

熱電偶傳感器有自己的優(yōu)點和缺陷,它靈敏度比較低,容易受到環(huán)境干擾信號的影響,也容易受到前置放大器溫度漂移的影響,因此不適合測量微小的溫度變化。由于熱電偶溫度傳感器的靈敏度與材料的粗細(xì)無關(guān),用非常細(xì)的材料也能夠做成溫度傳感器。也由于制作熱電偶的金屬材料具有很好的延展性,這種細(xì)微的測溫元件有極高的響應(yīng)速度,可以測量快速變化的過程。

方案二:采用數(shù)字可編程溫度傳感器作為溫度檢測元件。數(shù)字可編程溫度傳感器可以直接讀出被測溫度值。不需要將溫度傳感器的輸出信號接到A/D轉(zhuǎn)換器上,減少了系統(tǒng)的硬件電路的成本和整個系統(tǒng)的體積

美國Dallas半導(dǎo)體公司的數(shù)字化溫度傳感器DS1820是世界上第一片支持 “一線總線”接口的溫度傳感器,在其內(nèi)部使用了在板(ON-B0ARD)專利技術(shù)。全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)?!耙痪€總線”獨特而且經(jīng)濟的特點,使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念。現(xiàn)在,新一代的DS18B20體積更小、更經(jīng)濟、更靈活。使你可以充分發(fā)揮“一線總線”的優(yōu)點。 同DS1820一樣,DS18B20也支持“一線總線”接口,測量溫度范圍為-55°C~+125°C,在-10~+85°C范圍內(nèi),精度為±0.5°C。現(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場溫度測量,如:環(huán)境控制、設(shè)備或過程控制、測溫類消費電子產(chǎn)品等。與前一代產(chǎn)品不同,新的產(chǎn)品支持3V~5.5V的電壓范圍,使系統(tǒng)設(shè)計更靈活、方便。而且新一代產(chǎn)品更便宜,體積更小

它還有很多特性:適應(yīng)電壓范圍更寬,電壓范圍:3.0~5.5V,寄生電源方式下可由數(shù)據(jù)線供;獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊;DS18B20支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)組網(wǎng)多點測溫;DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi);溫范圍-55℃~+125℃,在-10~+85℃時精度為±0.5℃;可編程的分辨率為9~12位,對應(yīng)的可分辨溫度分別為0.5℃、0.25℃、0.125℃和0.0625℃,可實現(xiàn)高精度測溫;在9位分辨率時最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快;測量結(jié)果直接輸出數(shù)字溫度信號,以“一線總線”串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力;負(fù)壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀,但不能正常工作。

方案論證:

方案一硬件電路復(fù)雜,需要設(shè)計A/D轉(zhuǎn)換電路,以及與其相關(guān)的編程,總體設(shè)計起來較困難,軟件、硬件調(diào)試復(fù)雜,硬件成本較高。而且器傳感器有以下缺點:它靈敏度比較低,容易受到環(huán)境干擾信號的影響,也容易受到前置放大器溫度漂移的影響。所以總體來說,方案一在硬件、軟件上的成本都比較高,而且易受外部環(huán)境的影響,系統(tǒng)工作不穩(wěn)定。

方案二由于采用的是具有一總線特點的溫度傳感器,所以電路連接簡單;而且該傳感器擁有強大的通信協(xié)議,同過幾個簡單的操作就可以實現(xiàn)傳感器與單片機的交互,包括復(fù)位傳感器、對傳感器讀寫數(shù)據(jù)、對傳感器寫命令。軟件、硬件易于調(diào)試,制作成本較低。也使得系統(tǒng)所測結(jié)果精度大大提高。

經(jīng)過對這兩種方案的比較,本設(shè)計決定采用方案二。

2.2 系統(tǒng)硬件設(shè)計

基于單片機的LED顯示DS18B20溫度顯示器系統(tǒng)的系統(tǒng)框圖如2-1所示。系統(tǒng)由單片機主控模塊、LED顯示模塊、DS18B20測溫模塊三部分組成。

LED數(shù)碼管顯示電路

 



流程圖: 過程:    
   STC89C51單片機

程序下載模塊和供電模塊

 

晶振電路

 

DS18B20溫度檢測模塊

 

復(fù)位電路

 2-1  基于單片機的溫度顯示器屏控制系統(tǒng)設(shè)計框圖

2.2.1 主控模塊

單片機主控模塊由復(fù)位電路、晶振電路、供電系統(tǒng)、程序下載端口組成;如圖2-2

55

2-2單片機最小系統(tǒng)原理圖

A. 時鐘電路

STC89C52內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL1XTAL2分別是此放大器的輸入端和輸出端。時鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。

內(nèi)部方式的時鐘電路在XTAL1XTAL2引腳上外接定時元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩。定時元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在1.212MHz之間選擇,電容值在530pF之間選擇,電容值的大小可對頻率起微調(diào)的作用。

外部方式的時鐘電路如圖2-4b)所示,XTAL2接地,XTAL1接外部振蕩器。對外部振蕩信號無特殊要求,只要求保證脈沖寬度,一般采用頻率低于12MHz的方波信號。

2    

                   外部方式時鐘電路

2-3 時鐘電路

B. 復(fù)位電路

RST引腳是復(fù)位信號的輸入端。復(fù)位信號是高電平有效,其有效時間應(yīng)持續(xù)24個振蕩周期(即二個機器周期)以上。若使用頗率為6MHz的晶振,則復(fù)位信號持續(xù)時間應(yīng)超過4us才能完成復(fù)位操作。

產(chǎn)生復(fù)位信號的電路邏輯如圖2-5所示。整個復(fù)位電路包括芯片內(nèi)、外兩部分。外部電路產(chǎn)生的復(fù)位信號(RST)送至施密特觸發(fā)器,再由片內(nèi)復(fù)位電路在每個機器周期的S5P2時刻對施密特觸發(fā)器的輸出進行采樣,然后才得到內(nèi)部復(fù)位操作所需要的信號。

3

2-4復(fù)位信號的電路邏輯圖

復(fù)位操作有上電自動復(fù)位相按鍵手動復(fù)位兩種方式。

上電自動復(fù)位是通過外部復(fù)位電路的電容充電來實現(xiàn)的。這樣,只要電源Vcc的上升時間不超過1ms,就可以實現(xiàn)自動上電復(fù)位,即接通電源就成了系統(tǒng)的復(fù)位初始化。

按鍵手動復(fù)位有電平方式和脈沖方式兩種。其中,按鍵電平復(fù)位是通過使復(fù)位端經(jīng)電阻與Vcc電源接通而實現(xiàn)的;而按鍵脈沖復(fù)位則是利用RC微分電路產(chǎn)生的正脈沖來實現(xiàn)的。

C.程序下載端口與供電模塊

供電模塊主要實現(xiàn)對單片機的供電,單片機的VCC端口接電源極,GND端口接電源負(fù)極。程序下載端口利用單片機的P3.0RXD)串口輸入和P3.1TXD)串口輸出端口進行串口傳輸方式對單片機進行程序代碼的寫入。設(shè)計圖如圖2-5所示。

4

2-5 程序下載端口與供電模塊

2.2.2   LED數(shù)碼管顯示模塊

 本設(shè)計采用4LED共陰極八段數(shù)碼管來顯是溫度的大小,顯示數(shù)據(jù)范圍從-55.0125.0,LED數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其基本單元是發(fā)光二極管,通過對其不同的管腳輸入相對的電流,會使其發(fā)亮,從而顯示出數(shù)字??梢燥@示:時間、日期、溫度等可以用數(shù)字代替的參數(shù),數(shù)碼管連接圖如圖2-6所示。

數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個發(fā)光二極管單元(多一個小數(shù)點顯示);按能顯示多少個“8”可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽極數(shù)碼管和共陰極數(shù)碼管。共陽極數(shù)碼管是指將所有發(fā)光二極管的陽極接到一起形成公共陽極(COM)的數(shù)碼管。共陽極數(shù)碼管在應(yīng)用時應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時,相應(yīng)字段就點亮。當(dāng)某一字段的陰極為高電平時,相應(yīng)字段就不亮。

動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,通過由各自獨立的I/O線控制,當(dāng)單片機的P0口輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對P2.0-P2.3位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的COM端,就使各個數(shù)碼管輪流受控顯示。

LED數(shù)碼

2-6  4LED共陰極八段輸出顯示連接模塊

2.2.3 DS18B20溫度檢測模塊

設(shè)計所采用的溫度傳感器為Dallas半導(dǎo)體公司的數(shù)字化溫度傳感器DS18B20,它是世界上第一片支持“一線總線”接口的溫度傳感器?!耙痪€器件”體積更小、適用電壓更寬、更經(jīng)濟。全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。DS18B20可以程序設(shè)定9-12位的分辨率,精度為±0.5℃。可選更小的封裝方式,更寬的電壓適用范圍。分辨率設(shè)定,及用戶設(shè)定的報警溫度存儲在EEPROM中,掉電后依然保存。

DS18B20

圖2-7DS18B20與STC89C52單片機接口電路的設(shè)計

DSl8B20數(shù)字溫度計提供9位(二進制)溫度讀數(shù),指示器件的溫度信息經(jīng)過單線接口送入DSl8B20或從DSl8B20送出,因此從主機CPU到DSl8B20僅需一條線,當(dāng)DS18B20接收到溫度轉(zhuǎn)換命令后,開始啟動轉(zhuǎn)換。轉(zhuǎn)換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1、2字節(jié)。單片機可以通過單線接口讀出該數(shù)據(jù),讀數(shù)據(jù)時低位在先,高位在后,數(shù)據(jù)格式以0.0625℃/LSB形式表示。

當(dāng)符號位S=0時,表示測得的溫度值為正值,可以直接將二進制位轉(zhuǎn)換為十進制;當(dāng)符號位S=1時,表示測得的溫度值為負(fù)值,要先將補碼變成原碼,再計算十進制數(shù)值。表2是一部分溫度值對應(yīng)的二進制溫度數(shù)據(jù)[6]

國內(nèi)精度為±0.5°C?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場溫度測量,如:環(huán)境控制、設(shè)備或過程控制、測溫類消費電子產(chǎn)品等。

1.DS18B20產(chǎn)品的特點

 ?。?)只要求一個端口即可實現(xiàn)通信。

 ?。?)在DS18B20中的每個器件上都有獨一無二的序列號。

 ?。?)實際應(yīng)用中不需要外部任何元器件即可實現(xiàn)測溫。

  (4)測量溫度范圍在-55°C- +125°C之間。

 ?。?)數(shù)字溫度計的分辨率用戶可以從9位到12位選擇。

 ?。?)內(nèi)部有溫度上、下限設(shè)置。

2.DS18B20的引腳介紹

TO-92封裝的DS18B20引腳功能描述見表2-1。

序號

名稱

引腳功能描述

1

GND

地信號

2

DQ

數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當(dāng)被用著在寄生電源下,也可以向器件提供電源。

3

VDD

可選擇的VDD引腳。當(dāng)工作于寄生電源時,此引腳必須接地。

2.3軟件設(shè)計

2.3.1 主程序模塊

系統(tǒng)主程序主要用于變量及其他部件的初始化,比如該設(shè)計對DS18B20溫度報警器的初始化,還用于對溫度的讀取,以及數(shù)碼管的顯示,從而實現(xiàn)設(shè)計所需要的功能。主程序的流程圖2-8所示。




 

讀取溫度值

 
2-8主程序流程圖



 

本設(shè)計中主程序的書寫主要分為變量的定義、延時子函數(shù)的編寫、DS18B20的初始化程序、溫度采集子程序的書寫、數(shù)碼管顯示子程序的書寫和主函數(shù)的編寫。

2.3.2溫度采集與數(shù)碼管顯示子程序設(shè)計

A.溫度采集子函數(shù)主要是用來對溫度進行采集和轉(zhuǎn)換,最終將數(shù)據(jù)傳送給單片機,由單片機來控制數(shù)碼管的顯示。溫度采集子函數(shù)書寫的流程圖如圖2-9。




 

溫度轉(zhuǎn)換命令

 2-9溫度采集子函數(shù)流程圖



 

B.對于數(shù)碼管顯示子程序,它主要是用來對DS18B20溫度采集器所采集到的溫度進行顯示,在本設(shè)計中我們采用的是4位一體LED共陰極數(shù)碼管,在設(shè)計的時候采用傳統(tǒng)的直接與單片機相連的方式,減少了譯碼器,使編程和硬件設(shè)計更加簡單,設(shè)計流程圖如圖2-10所示。




 

送段選到P0

 2-10數(shù)碼管顯示子

程序流程圖




 

3. 系統(tǒng)調(diào)試

根據(jù)前述第2大節(jié)中硬件和軟件設(shè)計,制作了基于單片機的電梯顯示屏控制系統(tǒng)樣機實物。對樣機的硬件和軟件分別進行了調(diào)試,最后進行了軟件、硬件聯(lián)調(diào)。

3.1 硬件調(diào)試

3.1.1 靜態(tài)檢查

根據(jù)硬件電路圖核對了元器件的型號、極性,安裝是否正確,檢查硬件電路連線是否與電路原理圖一致,檢查電路元器件是否都已經(jīng)連接好,用萬用表一一測試。

3.1.2 通電檢查

先調(diào)試電源部分,整個電路只需要+5V的電壓,用USB線從電腦USB口取電。

再用示波器檢測單片機的復(fù)位和晶振電路是否有復(fù)位信號和振蕩信號。

3.2軟件調(diào)試及軟硬件聯(lián)調(diào)

對軟件先用仿真器進行了調(diào)試。用仿真器運行正常后,再用燒寫器將程序燒到STC89C52單片機中,進行了脫機調(diào)試。

3.2.1仿真調(diào)試

A. Proteus仿真電路

基于單片機的LED數(shù)碼管和DS18B20溫度顯示控制系統(tǒng)Proteus仿真電路及仿真結(jié)果圖如圖3-1所示。

新工程1_00

3-1 基于單片機的溫度顯示控制系統(tǒng)Proteus仿真電路及仿真結(jié)果圖

3.2.2實物調(diào)試

Proteus仿真成功后,制作了基于單片機的DS18B20溫度顯示系統(tǒng)多孔板實物,將附錄3的程序燒寫到STC89C52中去,通電后發(fā)現(xiàn)LED數(shù)碼管都沒有任何現(xiàn)象,不能工作,只有電源燈輸出正常,經(jīng)過長時間的檢查,把問題鎖定在DS18B20溫度檢測器件上,由于DS18B20DQ端與單片機對接出現(xiàn)了錯誤,導(dǎo)致單片機沒有接收到DS18B20傳送的數(shù)據(jù),所以數(shù)碼管沒有顯示,電路更改之后系統(tǒng)運行一切正常,至此多孔板調(diào)過來的數(shù)據(jù)試工作完成。

3.2.3 實驗結(jié)果

制作了基于單片機的電梯顯示屏控制系統(tǒng)多孔板實物,

8

3-2 多孔板實驗結(jié)果

4. 結(jié)束語

本次設(shè)計的是基于STC89C52單片機的4位一體LED共陰極數(shù)碼管和DS18B20的溫度顯示控制系統(tǒng),它可進周圍溫度的檢測,并在數(shù)碼管上顯示出具體數(shù)值。分別進行了硬件電路設(shè)計、軟件設(shè)計、Proteus仿真以及多孔板板實物調(diào)試。

通過一系列過設(shè)計和調(diào)試,本設(shè)計已經(jīng)完成了一個比較完整的溫度檢測顯示系統(tǒng)。致此本人設(shè)計基本完成了預(yù)期的目標(biāo),系統(tǒng)在溫度采集、溫度處理方面做的比較好,而在數(shù)據(jù)的存儲和數(shù)碼管的顯示方面不夠理想。主要存在以下幾個方面:

(1)  程序的代碼不夠精練,浪費STC89C52內(nèi)的FLASH ROM;

(2)  未對以前的溫度數(shù)值進行存儲,使以后不能利用這些數(shù)據(jù);

(3)  對數(shù)碼管的控制考慮不周,以致出現(xiàn)閃爍現(xiàn)象;


參考文獻

[1] 張?zhí)m紅,鄒華,劉純利,等. 單片機原理及應(yīng)用[M].北京:機械工業(yè)出版社,2017.

[2] 樓然苗,胡佳文,李光飛,等. 單片機實驗與課程設(shè)計指導(dǎo)[M].浙江大學(xué)出版社,2013.

[3] 郭天祥. 新概念51單片機C語言教程 ——入門、提高、開發(fā)、拓展全攻略[M].北京:電子工業(yè)出版社,2010.

[4] 楊欣,張延強,張鎧麟. 實例解讀51單片機完全學(xué)習(xí)與應(yīng)用[M].北京:電子工業(yè)出版社,2012.

[5] 彭偉. 單片機C語言程序設(shè)計實訓(xùn)100——基于8051+Proteus仿真(2)[M].北京:電子工業(yè)出版社,2012.

 

 

在這一段時間里,我感到自己的收獲是非常大的,這一段時間的工作,使我在專業(yè)技能、動手能力多方面都有了很大的提高。

如何去分析問題、解決問題的方法。使我受益匪淺。從接受課題到現(xiàn)在完成課程設(shè)計,尤其是在課題設(shè)計的前期準(zhǔn)備工作和設(shè)計的過程中,查閱了大量相關(guān)資料,論文結(jié)束最后階段花費了不少時間取進行修改,這使得我能夠順利的完成該課程設(shè)計工作。同時也借助了同組同學(xué)的支持與幫助,使我深刻的體會到了同學(xué)之間給我?guī)淼膸椭?/span>

感謝母校的辛勤培育之恩!使我學(xué)到了許多新的知識,掌握了一定的操作技能,同時這次課程設(shè)計使我受益非淺。

   錄:

附錄1:基于單片機的電LEDDS18B20溫度顯示系統(tǒng)的設(shè)計原理圖圖

總設(shè)計圖_00

附錄2:基于單片機的DS1B20溫度顯示設(shè)計系統(tǒng)元器件目錄表

序號

號(名稱)

數(shù)量

作用

1

STC89C52

1

單片機

2

DS18B20溫度檢測芯片

1

溫度檢測

3

10kΩ排阻

1

上拉電阻

4

4位共陰極LED八段數(shù)碼管

1

顯示數(shù)字

5

按鈕

1

復(fù)位按鈕等

6

30pF瓷片電容

2

晶振電路用

7

10μF電解電容

1

上電復(fù)位

8

12MHz

1

晶振

9

導(dǎo)線

若干

電路連接

10

1kΩ

1

上電復(fù)位

11

10kΩ

1

上電復(fù)位

12

4.7kΩ

1

DS18B20上拉電阻

13

各種焊接儀器

1

電路焊接

14

萬用板

1

擺放器件

附錄3:基于單片機的電梯顯示屏控制系統(tǒng)程序清單

#include "reg51.h"

#include "intrins.h" //_nop_();

#define dm P0//段碼輸出端口

#define uchar unsigned char

#define uint unsigned int

sbit DQ=P3^7; //溫度輸入口

sbit w0=P2^7; //數(shù)碼管1

sbit w1=P2^6; //數(shù)碼管2

sbit w2=P2^5; //數(shù)碼管3

sbit w3=P2^4; //數(shù)碼管4

int temp1=0; //顯示當(dāng)前溫度和設(shè)置溫度的標(biāo)志位位0時顯示當(dāng)前溫度

uint h;

uint temp;

uchar r;

uchar high=35,low=20;

uchar sign;

uchar q=0;

uchar tt=0;

uchar scale;

Uchar code ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};

//小數(shù)段碼

uchar code table_dm[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};

//共陰LED 段碼表"0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "不亮" "-"

uchar table_dm1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; //各位帶小數(shù)點的段碼表

uchar data temp_data[2]={0x00,0x00}; //讀出溫度暫放

uchar data display[5]={0x00,0x00,0x00,0x00,0x00}; //顯示單元數(shù)據(jù),共4 個數(shù)據(jù)和一個運算暫用

/*****************11延時函數(shù)*************************/

void delay(uint t)

{

uint i,j;

for(i=0;i<t;i++)

for (j=0;j<110;j++);

}

void scan()

{

int j;

for(j=0;j<4;j++)

{

switch (j)

{

case 0: dm=table_dm[display[0]];w0=0;delay(50);w0=1;//xiaoshu

case 1: dm=table_dm1[display[1]];w1=0;delay(50);w1=1;//gewei

case 2: dm=table_dm[display[2]];w2=0;delay(50);w2=1;//shiwei

case 3: dm=table_dm[display[3]];w3=0;delay(50);w3=1;//baiwei

// else{dm=table_dm[b3];w3=0;delay(50);w3=1;}

}

}

}

//***************DS18B20 復(fù)位函數(shù)************************/

ow_reset(void)

{

char presence=1;

while(presence)

{

while(presence)

{

DQ=1;_nop_();_nop_();//從高拉到低

DQ=0;

delay(50); //550 us

DQ=1;

delay(6); //66 us

presence=DQ; //presence=0 復(fù)位成功,繼續(xù)下一步

}

delay(45); //??500 us

presence=~DQ;

}

DQ=1; //拉高電平

}

/****************DS18B20 寫命令函數(shù)************************/

//?1-WIRE總線上寫一個字節(jié)

void write_byte(uchar val)

{

uchar i;

for(i=8;i>0;i--)

{

DQ=1;_nop_();_nop_(); //從高啦到低

DQ=0;_nop_();_nop_();_nop_();_nop_(); //5 us

DQ=val&0x01; //最低位移出

delay(6); //66 us

val=val/2; //右移一位

}

DQ=1;

delay(1);

}

/****************DS18B20 讀一個字節(jié)函數(shù)************************/

//?????1 ???

uchar read_byte(void)

{

uchar i;

uchar value=0;

for(i=8;i>0;i--)

{

DQ=1;_nop_();_nop_();

value>>=1;

DQ=0;_nop_();_nop_();_nop_();_nop_(); //4 us

DQ=1;_nop_();_nop_();_nop_();_nop_(); //4 us

if(DQ)value|=0x80;

delay(6); //66 us

}

DQ=1;

return(value);

}

/*****************讀出溫度************************/

read_temp()

{

ow_reset(); //總線復(fù)位

delay(200);

write_byte(0xcc); //發(fā)命令

write_byte(0x44); //發(fā)轉(zhuǎn)換命令

ow_reset();

delay(1);

write_byte(0xcc); /發(fā)命令

write_byte(0xbe);

temp_data[0]=read_byte(); //讀出溫度值的低字節(jié)

temp_data[1]=read_byte(); //讀出溫度值的高字節(jié)

temp=temp_data[1];

temp<<=8;

temp=temp|temp_data[0]; // 兩個字合成一個變量

return temp; //?????

}

/****************溫度數(shù)據(jù)處理函數(shù)************************/

work_temp(uint tem)

{

uchar n=0;

if(tem>6348) // 溫度值正負(fù)判斷,標(biāo)志位置

{tem=65536-tem;n=1;} //負(fù)溫度求補碼

display[4]=tem&0x0f; // 取小數(shù)部分的值

display[0]=ditab[display[4]]; // 存入小數(shù)部分的值

display[4]=tem>>4; // 取中間八位,即整數(shù)部分的值

display[3]=display[4]/100; // 取百位數(shù)據(jù)暫存

display[1]=display[4]%100; // 取后兩位數(shù)據(jù)暫存

display[2]=display[1]/10; //取十位數(shù)據(jù)暫存

display[1]=display[1]%10; //各位數(shù)據(jù)

r=display[1]+display[2]*10+display[3]*100;

/////符號位顯示判斷/////

if(!display[3])

{

display[3]=0x0a; //最高位位0時不顯示

if(!display[2])

{

display[2]=0x0a; 次高位0時不顯示

}

}

if(n){display[3]=0x0b;}負(fù)溫度時最高位顯示“-}

//*********設(shè)置溫度顯示轉(zhuǎn)換************//

void xianshi(int horl)

{

int n=0;

if(horl>128)

{

horl=256-horl;n=1;

}

display[3]=horl/100;

display[3]=display[3]&0x0f;

display[2]=horl%100/10;

display[1]=horl%10;

display[0]=0;

if(!display[3])

{

display[3]=0x0a; //最高位位0時不顯示

if(!display[2])

{

display[2]=0x0a; //次高位0時不顯示

}

}

if(n)

{

display[3]=0x0b; //負(fù)溫度時最高為顯示"-"

}

}

//*********主函數(shù)**************//

void main()

{

dm=0x00; //初始化端口

w0=0;

w1=0;

w2=0;

w3=0;

for(h=0;h<4;h++) //開機顯示"0000"

{

display[h]=0;

}

ow_reset(); 開機先轉(zhuǎn)換一次

write_byte(0xcc); //Skip ROM

write_byte(0x44); 發(fā)轉(zhuǎn)換命令

for(h=0;h<100;h++) //開機顯示“0000

{

scan();

}

while(1)

{

 if (temp1==0)

 {

  work_temp(read_temp()); 處理溫度數(shù)據(jù)

  scan();

 }

}

}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多