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

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)系統(tǒng)開(kāi)發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告選題名稱: 基于at89s52單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì) 系(院): 計(jì)算機(jī)工程學(xué)院 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)(嵌入式軟件設(shè)計(jì)方向)班 級(jí): 姓 名: 學(xué) 號(hào): 指導(dǎo)教師: 學(xué)年學(xué)期: 2009 2010 學(xué)年 第 2 學(xué)期2010年 5 月 30 日摘要:隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研,各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù), 溫度作為一種最基本的環(huán)境條件參數(shù), 溫度的測(cè)量在實(shí)際的生產(chǎn)、生活中具有十分重要的意義。本設(shè)計(jì)所介紹的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測(cè)溫范圍廣,測(cè)溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對(duì)測(cè)溫比較

2、準(zhǔn)確的場(chǎng)所,或科研實(shí)驗(yàn)室使用,該設(shè)計(jì)控制器使用單片機(jī)at89s52,測(cè)溫傳感器使用ds18b20,用4位共陰極led數(shù)碼管以串口傳送數(shù)據(jù),實(shí)現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到要求。ds18b20是一線制智能數(shù)字溫度傳感器,它可將溫度信號(hào)直接轉(zhuǎn)換成串行數(shù)字信號(hào)送給微處理器,電路簡(jiǎn)單,成本低,使用方便。其測(cè)溫范圍為-55125,最高分辨率可達(dá)0.0625完全符合要求。關(guān)鍵詞:?jiǎn)纹瑱C(jī) ; 溫度計(jì) ; at89s52 ; ds18b20 ; led數(shù)碼管目錄1項(xiàng)目設(shè)計(jì)綜述21.1項(xiàng)目設(shè)計(jì)概述21.2項(xiàng)目設(shè)計(jì)要求21.3項(xiàng)目設(shè)計(jì)方案22 系統(tǒng)設(shè)計(jì)32.1 框圖設(shè)計(jì)32.2 ds18b20簡(jiǎn)介32.3 單片機(jī)at89

3、s52簡(jiǎn)介53 硬件設(shè)計(jì)63.1電路原理圖63.2ds18b20與單片機(jī)接口的設(shè)計(jì)63.3 顯示電路接口73.4 其他外圍電路84 軟件設(shè)計(jì)104.1 程序設(shè)計(jì)流程圖104.2 程序清單115 系統(tǒng)仿真及調(diào)試155.1硬件調(diào)試155.2 軟件調(diào)試15總 結(jié)16參考文獻(xiàn)171項(xiàng)目設(shè)計(jì)綜述1.1項(xiàng)目設(shè)計(jì)概述 在生活和生產(chǎn)中,經(jīng)常要用到一些測(cè)溫設(shè)備,但是傳統(tǒng)的測(cè)溫設(shè)備具有制作成本高、硬件電路和軟件設(shè)計(jì)復(fù)雜等缺點(diǎn)。基于at89s52單片機(jī)的數(shù)字溫度計(jì)具有制作簡(jiǎn)單、成本低、讀數(shù)方便、測(cè)溫范圍廣和測(cè)溫準(zhǔn)確等優(yōu)點(diǎn),應(yīng)用前景廣闊。1.2項(xiàng)目設(shè)計(jì)要求基于at89s52單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)要求如下:(1) 溫度

4、值用4位led數(shù)碼管顯示(2) 測(cè)溫范圍為-30100,且測(cè)量誤差不得大于0.5(3) 成品的體積、質(zhì)量要盡可能小。1.3項(xiàng)目設(shè)計(jì)方案大多單片機(jī)接口輸入的信號(hào)是數(shù)字信號(hào),或有帶a/d轉(zhuǎn)換的高端單片機(jī)也可以輸入模擬信號(hào)。由單片機(jī)獲取非電信號(hào)的溫度信息,必須通過(guò)溫度傳感器。傳統(tǒng)的溫度測(cè)量多以熱敏電阻作為溫度傳感器。但是,熱敏電阻的可靠性較差、測(cè)量溫度精度低,而且還需經(jīng)a/d轉(zhuǎn)換成數(shù)字信號(hào)后才能由單片機(jī)進(jìn)行處理。因此,使用數(shù)字溫度傳感器ds18b20可簡(jiǎn)化硬件設(shè)計(jì)、方便單片機(jī)讀取數(shù)據(jù)、節(jié)約成本。 2 系統(tǒng)設(shè)計(jì) 2.1 框圖設(shè)計(jì) 根據(jù)設(shè)計(jì)要求分析,基于at89s52單片機(jī)的數(shù)字溫度計(jì)由at89s52單

5、片機(jī)控制器、電源、顯示電路、溫度傳感器、復(fù)位電路和時(shí)鐘電路組成,系統(tǒng)框圖如圖2-1所示。電源給整個(gè)電路供電,顯示電路顯示溫度值,時(shí)鐘電路為at89s52提供時(shí)鐘頻率。傳感器采用美國(guó)dallas半導(dǎo)體公司生產(chǎn)的一種智能溫度傳感器ds18b20,其測(cè)溫范圍為-55125,最高分辨率可達(dá)0.0625,完全符合設(shè)計(jì)要求。圖2-1基于at89s52單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)框圖2.2 ds18b20簡(jiǎn)介 ds18b20采用dallas公司的單總線數(shù)據(jù)通信方式專有技術(shù),單根信號(hào)線既傳輸時(shí),又可雙向傳輸數(shù)據(jù),占用i/o口資源少,結(jié)構(gòu)簡(jiǎn)單,成本低廉,便于總線擴(kuò)展和維護(hù)。ds18b20采用3引腳to-92,小體積封

6、裝形式,內(nèi)部使用在板(on2board)專利技術(shù),全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)。3個(gè)管腳中,gnd是地信號(hào);dq是數(shù)據(jù)輸入/輸出引腳,開(kāi)漏單總線接口引腳,當(dāng)被用在寄生電源下,也可以向器件提供電源;vdd是可選擇的vdd引腳,當(dāng)工作于寄生電源時(shí),此引腳必須接地。ds18b20的測(cè)量溫度范圍為-55+125,在-10+85范圍內(nèi),精度為0.5,可將程序設(shè)定912位的分辨率。ds18b20的內(nèi)部存儲(chǔ)器包括1個(gè)高速暫存ram和1個(gè)非易失性的、可電擦除的e2ram,后者存放高溫度和低溫度觸發(fā)器th、tl以及結(jié)構(gòu)寄存器。根據(jù)ds18b20的通訊協(xié)議, mcu控制ds18b20完成

7、溫度轉(zhuǎn)換要經(jīng)過(guò)3個(gè)步驟:每一次讀寫(xiě)之前都要對(duì)ds18b20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條rom指令,最后發(fā)送ram指令,對(duì)ds18b20進(jìn)行預(yù)定的操作。復(fù)位要求mcu將數(shù)據(jù)線下拉500s,然后放,ds18b20收到信號(hào)后等待1660s,發(fā)出60240s的存在低脈沖,主cpu收到此信號(hào)表示復(fù)位成功。由于ds18b20與微處理器間采用串行數(shù)據(jù)傳送,因此,在對(duì)ds18b20進(jìn)行讀寫(xiě)編程時(shí),必須嚴(yán)格地保證讀寫(xiě)時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。ds18b20的通訊協(xié)議定義了初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序的時(shí)序。所有時(shí)序都是將mcu作為主設(shè)備,ds18b20作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從mcu主動(dòng)啟動(dòng)寫(xiě)

8、時(shí)序開(kāi)始,如果要求ds18b20回送數(shù)據(jù),在進(jìn)行寫(xiě)命令后,mcu需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。對(duì)ds18b20的讀時(shí)序分為讀0時(shí)序和讀1時(shí)序2個(gè)過(guò)程。對(duì)于ds18b20的讀時(shí)序是從主機(jī)把單總線拉低之后,在15 s之內(nèi)釋放單總線,以ds18b20把數(shù)據(jù)傳輸?shù)絾慰偩€上。ds18b20完成1個(gè)讀時(shí)序過(guò)程至少需要60s。ds18b20的寫(xiě)時(shí)序分為寫(xiě)0時(shí)序和寫(xiě)1時(shí)序。ds18b20對(duì)于寫(xiě)0時(shí)序和寫(xiě)1時(shí)序的要求不同,當(dāng)寫(xiě)0時(shí)序時(shí),單總線要被拉低至少60s,保證ds18b20能夠在1545s之間正確地采樣i/o總線上的“0”電平,當(dāng)要寫(xiě)1時(shí)序時(shí),單總線被拉低之后,在15s之內(nèi)釋放單

9、總線。 圖 2-2 ds18b20 3腳pr-35封裝和8腳soic封裝外部形狀及管腳圖 2.3 單片機(jī)at89s52簡(jiǎn)介 at89s52具有如下特點(diǎn):40個(gè)引腳,8k bytes flash片內(nèi)程序存儲(chǔ)器,256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(ram),32個(gè)外部雙向輸入/輸出(i/o)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè) 全雙工串行通信口,看門(mén)狗(wdt)電路,片內(nèi)時(shí)鐘振蕩器。此外,at89s52設(shè)計(jì)和配置了振蕩頻率可為0hz并可通過(guò)軟件設(shè)置省電模式。空閑模式下,cpu暫停工作,而ram定時(shí)計(jì)數(shù)器,串行口,外中斷 系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存r

10、am的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有pdip、tqfp和plcc等三 種封裝形式,以適應(yīng)不同產(chǎn)品的需求。 主要功能特性: 兼容mcs-51指令系統(tǒng) 8k可反復(fù)擦寫(xiě)(1000次)isp flash rom 32個(gè)雙向i/o口 4.5-5.5v工作電壓 3個(gè)16位可編程定時(shí)/計(jì)數(shù)器 時(shí)鐘頻率0-33mhz 全雙工uart串行中斷口線 256x8bit內(nèi)部ram 2個(gè)外部中斷源 低功耗空閑和省電模式 中斷喚醒省電模式 3級(jí)加密位 看門(mén)狗(wdt)電路 軟件設(shè)置空閑和省電功能 靈活的isp字節(jié)和分頁(yè)編程 雙數(shù)據(jù)寄存器指針圖2-3 at89s52引腳圖3 硬件設(shè)計(jì)3.1

11、電路原理圖 控制器使用單片機(jī)at89s52,測(cè)溫傳感器使用ds18b20,用4位共陰極led數(shù)碼管以動(dòng)態(tài)掃描法實(shí)現(xiàn)溫度顯示,電路圖如3-1所示.圖3-1基于at89s52單片機(jī)的數(shù)字溫度計(jì)電路圖3.2ds18b20與單片機(jī)接口的設(shè)計(jì)ds18b20 最大的特點(diǎn)是單總線數(shù)據(jù)傳輸方式,ds18b20 的數(shù)據(jù)i/o 均由同一條線來(lái)完成。ds18b20 的電源供電方式有2 種: 外部供電方式和寄生電源方式。工作于寄生電源方式時(shí), vdd 和gnd 均接地, 他在需要遠(yuǎn)程溫度探測(cè)和空間受限的場(chǎng)合特別有用, 原理是當(dāng)1 w ire 總線的信號(hào)線dq 為高電平時(shí), 竊取信號(hào)能量給ds18b20 供電, 同時(shí)一

12、部分能量給內(nèi)部電容充電, 當(dāng)dq為低電平時(shí)釋放能量為ds18b20 供電。但寄生電源方式需要強(qiáng)上拉電路, 軟件控制變得復(fù)雜(特別是在完成溫度轉(zhuǎn)換和拷貝數(shù)據(jù)到e2prom 時(shí)) , 同時(shí)芯片的性能也有所降低。外部電源供電方式是ds18b20最佳的工作方式,工作穩(wěn)定可靠,抗干擾能力強(qiáng),而且電路也比較簡(jiǎn)單,可以開(kāi)發(fā)出穩(wěn)定可靠的多點(diǎn)溫度監(jiān)控系統(tǒng)。因此本設(shè)計(jì)采用外部供電方式。如下圖所示:at89s51單片機(jī) p3.7ds18b204.7k+5v+5v圖3-2 ds18b20接口圖3.3 顯示電路接口本設(shè)計(jì)顯示電路采用4位共陰極led數(shù)碼管來(lái)顯示測(cè)量得到的溫度值。led數(shù)碼管能在低電壓下工作,而且體積小、

13、重量輕、使用壽命長(zhǎng),因次本設(shè)計(jì)選用此數(shù)碼管作為顯示器件。一個(gè)led數(shù)碼管只能顯示一位的字符,如果字符位數(shù)不止一位,可以用幾個(gè)數(shù)碼管組成,但要控制多位的顯示電路需要有字段控制和字位控制,字段控制是指控制所要顯示的字符是什么,控制電路應(yīng)將字符的七段碼通過(guò)輸出口連接到led的ag引腳,是某些段點(diǎn)亮,某些段處于熄滅狀態(tài)。字位控制是指控制在多位顯示器中,哪幾位發(fā)光或那幾位不發(fā)光,字位控制則需要通過(guò)字位碼作用于led數(shù)碼管的公共引腳,是某一位或某幾位的數(shù)碼管可以發(fā)光。數(shù)碼管顯示電路分為動(dòng)態(tài)顯示和靜態(tài)顯示。 靜態(tài)顯示方式是指每一個(gè)數(shù)碼管的字段控制是獨(dú)立的,每一個(gè)數(shù)碼管都需要配置一個(gè)8位輸出口來(lái)輸出該字位的七

14、段碼。因此需要顯示多位時(shí)需要多個(gè)輸出口,通常片內(nèi)并口不夠用,需要在片外擴(kuò)展。動(dòng)態(tài)顯示又稱為掃描顯示方式,也就是在某一時(shí)刻只能讓一個(gè)字位處于選通狀態(tài),其他字位一律斷開(kāi),同時(shí)在字段線上發(fā)出該位要顯示的字段碼,這樣在某一時(shí)刻某一位數(shù)碼管就會(huì)被點(diǎn)亮,并顯示出相應(yīng)的字符。下一時(shí)刻改變所顯示的字位和字段碼,點(diǎn)亮另一個(gè)數(shù)碼管,顯示另一個(gè)字符。繞后一次掃描輪流點(diǎn)亮其他數(shù)碼管,只要掃描速度快,利用人眼的視覺(jué)殘留效應(yīng),會(huì)使人感覺(jué)到幾位數(shù)碼管都在穩(wěn)定的顯示。本次實(shí)驗(yàn)用74ls04非門(mén)作驅(qū)動(dòng)。如圖所示圖 3-3 顯示電路接口圖 3.4 其他外圍電路 復(fù)位電路:在單片機(jī)的rst引腳引入高電平并保持2個(gè)機(jī)器周期時(shí),單片機(jī)

15、內(nèi)部就執(zhí)行復(fù)位操作。實(shí)際應(yīng)用中,復(fù)位操作有兩種形式:一種是上電復(fù)位,另一種是上電與按鍵均有效的復(fù)位。上電復(fù)位要求接通電源后,單片機(jī)自動(dòng)實(shí)現(xiàn)復(fù)位操作。上電瞬間rst引腳獲得高電平,隨著電容的充電,rst引腳的高電平逐漸下降。只要rst引腳保持兩個(gè)機(jī)器周期的高電平單片機(jī)就可以進(jìn)行復(fù)位操作。本設(shè)計(jì)用的上電與按鍵均有效的復(fù)位。電路圖如下圖 3-4 復(fù)位電路時(shí)鐘電路:?jiǎn)纹瑱C(jī)的時(shí)鐘信號(hào)通常有兩種方式產(chǎn)生:一是內(nèi)部時(shí)鐘方式,二是外部時(shí)鐘方式。本設(shè)計(jì)采用內(nèi)部時(shí)鐘方式,在單片機(jī)內(nèi)部有一震蕩電路,只要在單片機(jī)的xtal1和xtal2腳外接石英晶體(簡(jiǎn)稱晶振),就構(gòu)成了自己震蕩器并在單片機(jī)內(nèi)部產(chǎn)生時(shí)鐘脈沖信號(hào)。 c

16、1 c22圖3-5 時(shí)鐘電路圖中電容器的作用是穩(wěn)定頻率和快速起振,電容值在530pf,典型值為30pf。晶振cys的震蕩頻率范圍在1.212mhz間選擇,典型值為12mhz和6mhz。本設(shè)計(jì)采用12mhz晶振,電容值為30 pf。在電路總體設(shè)計(jì)中,eavpp腳用于是從外部程序存儲(chǔ)器取指還是從內(nèi)部程序存儲(chǔ)器取指的選擇信號(hào)。當(dāng)eavpp接高電平時(shí),先從片內(nèi)程序存儲(chǔ)器讀取指令,讀完4kb后,自動(dòng)改為片外取指。若eavpp接低電平,則所有指令均從片外程序存儲(chǔ)器讀取。ale腳用于輸出允許地址所存信號(hào)。psen腳用于外部程序存儲(chǔ)器選通信號(hào),在對(duì)外部程序存儲(chǔ)器取指操作時(shí)此引腳置低電平有效。在執(zhí)行片內(nèi)程序存儲(chǔ)

17、器取指時(shí)pesn腳無(wú)效。本設(shè)計(jì)無(wú)片外程序存儲(chǔ)器擴(kuò)展,所以將eav pp腳接高電平,ale及psen腳懸空。 4 軟件設(shè)計(jì)4.1 程序設(shè)計(jì)流程圖主程序的主要功能是負(fù)責(zé)溫度的實(shí)時(shí)顯示。讀出并處理ds18b20測(cè)量的當(dāng)前溫度值,溫度測(cè)量值每1s進(jìn)行一次。這樣可以在1s之內(nèi)測(cè)量一次被測(cè)溫度,其程序流程圖如圖4-1所示圖 4-2 讀溫度流程圖圖4-1 主程序流程圖讀出溫度子程序的主要功能是讀出ram中的9字節(jié),在讀出時(shí)需進(jìn)行crc校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě),其流程圖如圖4-2所示。溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開(kāi)始命令,當(dāng)采用12位分辨率時(shí)轉(zhuǎn)換時(shí)間約為750ms,在本程序設(shè)計(jì)中采用1s顯示

18、程序延時(shí)法等待轉(zhuǎn)換的完成。計(jì)算溫度子程序?qū)am中讀取值進(jìn)行bcd碼的轉(zhuǎn)換運(yùn)算,并進(jìn)行溫度值正負(fù)的判定,顯示數(shù)據(jù)刷新子程序主要是對(duì)顯示緩沖器中的顯示數(shù)據(jù)進(jìn)行刷新操作,當(dāng)最高顯示位為0時(shí)將符號(hào)顯示位移入下一位。4.2 程序清單基于at89s52單片機(jī)的數(shù)字溫度計(jì)程序清單如下:#include reg51.h#include intrins.h /延時(shí)函數(shù)用#define disdata p1 /段碼輸出口#define discan p3 /掃描口#define uchar unsigned char#define uint unsigned intsbit dq=p37; /溫度輸入口sbit

19、 din=p17; /led小數(shù)點(diǎn)控制uint h;uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;/溫度小數(shù)部分用查表法uchar code dis_712=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40;/* 共陰led段碼表 0 1 2 3 4 5 6 7 8 9 不亮 - */ uchar code scan_con4=0x81,0x82,0x88,0xa0; / 列

20、掃描控制字uchar data temp_data2=0x00,0x00; / 讀出溫度暫放uchar data display5=0x00,0x00,0x00,0x00,0x00;/顯示單元數(shù)據(jù),共4個(gè)數(shù)據(jù),一個(gè)運(yùn)算暫存用void delay(uint t)/11微秒延時(shí)函數(shù)for(;t0;t-);scan()/顯示掃描函數(shù)char k; for(k=0;k0; i-) /dq=1;_nop_();_nop_(); dq = 0;_nop_();_nop_();_nop_();_nop_();_nop_();/5usdq = val&0x01; /最低位移出delay(6); /66usva

21、l=val/2; /右移一位dq = 1;delay(1); uchar read_byte(void)/從總線上讀取一個(gè)字節(jié)uchar i;uchar value = 0;for (i=8;i0;i-)dq=1;_nop_();_nop_();value=1;dq = 0; /_nop_();_nop_();_nop_();_nop_(); /4usdq = 1;_nop_();_nop_();_nop_();_nop_(); /4us if(dq)value|=0x80;delay(6); /66usdq=1;return(value);read_temp()/讀出溫度函數(shù)ow_reset

22、(); /總線復(fù)位write_byte(0xcc); / 發(fā)skip rom命令write_byte(0xbe); / 發(fā)讀命令temp_data0=read_byte(); /溫度低8位temp_data1=read_byte(); /溫度高8位ow_reset();write_byte(0xcc); / skip romwrite_byte(0x44); / 發(fā)轉(zhuǎn)換命令work_temp()/溫度數(shù)據(jù)處理函數(shù)uchar n=0; /if(temp_data1127)temp_data1=(256-temp_data1);temp_data0=(256-temp_data0);n=1;/負(fù)溫

23、度求補(bǔ)碼display4=temp_data0&0x0f;display0=ditabdisplay4;display4=(temp_data0&0xf0)4)|(temp_data1&0x0f)4);/display3=display4/100;display1=display4%100;display2=display1/10;display1=display1%10;if(!display3)display3=0x0a;if(!display2)display2=0x0a; /最高位為0時(shí)都不顯示if(n)display3=0x0b;/負(fù)溫度時(shí)最高位顯示-main()/主函數(shù)disdat

24、a=0xff; /初始化端口discan=0xff;for(h=0;h4;h+)displayh=8;/開(kāi)機(jī)顯示8888ow_reset(); / 開(kāi)機(jī)先轉(zhuǎn)換一次write_byte(0xcc); / skip romwrite_byte(0x44); / 發(fā)轉(zhuǎn)換命令for(h=0;h500;h+) scan(); /開(kāi)機(jī)顯示88882秒while(1) read_temp(); /讀出18b20溫度數(shù)據(jù) work_temp(); /處理溫度數(shù)據(jù) for(h=0;h500;h+) scan(); /顯示溫度值2秒 5 系統(tǒng)仿真及調(diào)試 5.1硬件調(diào)試先排除硬件電路故障,包括設(shè)計(jì)性錯(cuò)誤和工藝性故障

25、,一般原則先靜態(tài)后動(dòng)態(tài)。利用萬(wàn)用表或測(cè)試儀器,檢查電路中的各器件及引腳是否連接正確,是否有短路故障。 先要將單片機(jī)at89s52芯片取下,對(duì)電路板進(jìn)行通電檢查,通過(guò)觀察看是否有異常,然后用萬(wàn)用表測(cè)試個(gè)電源電壓,若這些都沒(méi)問(wèn)題,則接上仿真機(jī)進(jìn)行聯(lián)機(jī)調(diào)試觀察各接線口線路是否正常。5.2 軟件調(diào)試軟件調(diào)試是利用仿真工具進(jìn)行再線仿真調(diào)試,我們用kell軟件調(diào)試,除發(fā)現(xiàn)和解決程序錯(cuò)誤外,還可以發(fā)現(xiàn)硬件上的問(wèn)題。 總 結(jié)經(jīng)過(guò)將近兩周的單片機(jī)課程設(shè)計(jì),終于完成了我的數(shù)字溫度計(jì)的設(shè)計(jì),雖然沒(méi)有完全達(dá)到設(shè)計(jì)要求,但從心底里說(shuō),還是高興的,畢竟這次設(shè)計(jì)把實(shí)物都做了出來(lái),高興之余不得不深思呀!在本次設(shè)計(jì)的過(guò)程中,我發(fā)現(xiàn)很多的問(wèn)題,雖然以前還做過(guò)這樣的設(shè)計(jì)但這次設(shè)計(jì)真的讓我長(zhǎng)進(jìn)了很多,單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要有很巧妙的程序算法,雖然以前寫(xiě)過(guò)幾次程序,但我覺(jué)的寫(xiě)好一個(gè)程序并不是一件簡(jiǎn)單的事,舉個(gè)例子,在列控制位選擇調(diào)試時(shí),我剛開(kāi)始只注意到我用的是74ls04非門(mén)驅(qū)動(dòng),所以就給列控制位都送低電平過(guò)去,后來(lái)調(diào)試時(shí)發(fā)現(xiàn)并不是這樣的 數(shù)碼管并沒(méi)有顯示出我想要的數(shù)字來(lái),后來(lái)在分析硬件是發(fā)現(xiàn)我用的是共陰數(shù)碼管要送高低平過(guò)去才行,還有我的溫度數(shù)據(jù)處理函數(shù)沒(méi)有用直接的加減而是用與上一為bcd碼來(lái)解決,感覺(jué)效果比較好,有好多的東西

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論