




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 德州學(xué)院 物理與電子信息學(xué)院 2011級(jí)電子信息科學(xué)與技術(shù) 電子系統(tǒng)設(shè)計(jì)考查報(bào)告基于溫度傳感器的單片機(jī)溫控電路設(shè)計(jì) 一、 設(shè)計(jì)分析在各行業(yè)中廣泛應(yīng)用的溫度控制器及儀器儀表主要具有如下的特點(diǎn):一是在復(fù)雜的溫度控制系統(tǒng)中能夠適應(yīng)于大慣性、大滯后的控制;二是在受控系統(tǒng)數(shù)學(xué)模型難以建立的情況下,得到控制;三是在受控系統(tǒng)中,能夠被控制過(guò)程很復(fù)雜且參數(shù)時(shí)變的溫度控制系統(tǒng)控制;五是溫度控制系統(tǒng)普遍具有參數(shù)自檢功能,借助計(jì)算機(jī)技術(shù),能控制對(duì)象和參數(shù),并且具有特性進(jìn)行自動(dòng)調(diào)整的功能等特點(diǎn)1。本次電子工藝實(shí)訓(xùn)旨在練習(xí)實(shí)用單片機(jī)系統(tǒng)的設(shè)計(jì)與安裝,掌握典型51系列單片機(jī)最小系統(tǒng)及外圍電路設(shè)計(jì)、常用電子元器件的識(shí)別、
2、萬(wàn)用板焊接電路的方法、鞏固常用電子儀表測(cè)量與調(diào)試電路參數(shù)的方法,培養(yǎng)創(chuàng)新實(shí)踐動(dòng)手能力,為下學(xué)期單片機(jī)、電子系統(tǒng)設(shè)計(jì)等課程奠定理論和實(shí)踐基礎(chǔ)。具體要求如下:1. 自行設(shè)計(jì)以STC89C52RC40單片機(jī)為控制核心的實(shí)用單片機(jī)控制系統(tǒng)的硬件電路,實(shí)現(xiàn)至少一個(gè)環(huán)境參量信息采集、數(shù)值顯示、報(bào)警功能。2. 根據(jù)設(shè)計(jì),利用萬(wàn)用板焊接硬件電路,并做簡(jiǎn)單調(diào)試。3. 要求模塊化設(shè)計(jì),單片機(jī)最小系統(tǒng)模塊、顯示模塊、信息采集報(bào)警模塊、鍵盤(pán)模塊,主要貴重器件用排座插接,電阻、電容、按鍵等元器件要求布局合理、排列整齊,無(wú)虛焊。二、 設(shè)計(jì)方案本文設(shè)計(jì)是以單片機(jī)為核心,實(shí)現(xiàn)溫度實(shí)時(shí)測(cè)控和顯示。確定電路中的一些主要參數(shù),了解
3、溫度控制電路的結(jié)構(gòu),工作原理,對(duì)該控制電路性能進(jìn)行測(cè)試。具體設(shè)計(jì)方案: (1)本設(shè)計(jì)是用來(lái)測(cè)控溫度的,可以利用熱敏電阻的感溫效應(yīng),將被測(cè)溫度變化的模擬信號(hào),電壓或電流的采集過(guò)來(lái),首先進(jìn)行放大和濾波后,再通過(guò)A/D轉(zhuǎn)換,將得到的數(shù)字量送往單片機(jī)中去處理,用數(shù)碼管將被測(cè)得的溫度值顯示出來(lái)。但是這種電路的設(shè)計(jì)需要用到放大濾波電路,A/D轉(zhuǎn)換電路,感溫電路等一系列模擬電路,設(shè)計(jì)起來(lái)較麻煩2。(2)本設(shè)計(jì)采用單片機(jī)做處理器,可以考慮使用溫度傳感器,采用由達(dá)拉斯公司研制的DS18B20型溫度傳感器,此傳感器可以將被測(cè)的溫度直接讀取出來(lái),并進(jìn)行轉(zhuǎn)換,這樣就很容易滿足設(shè)計(jì)要求。從上面的兩種方案,可以很容易看出
4、來(lái),雖然方案(2)軟件部分設(shè)計(jì)復(fù)雜點(diǎn),但是電路比較簡(jiǎn)單且精度高,故采用方案(2)。 單片機(jī)最小系統(tǒng)顯示模塊設(shè)置模塊采集模塊圖1. 總體方框圖三、 系統(tǒng)硬件設(shè)計(jì)據(jù)設(shè)計(jì)的需求,分析單片機(jī)的工作原理,可以大體得出來(lái)溫度控制電路設(shè)計(jì)的總體方框圖,主處理器采用單片機(jī)STC89C52RC40,溫度采集部分采用溫度傳感器,用4位LED顯示數(shù)碼管作為顯示部分,用來(lái)將溫度顯示出來(lái)。系統(tǒng)硬件電路部分由四大模塊組成:溫度采集模塊、溫度顯示模塊、報(bào)警模塊、鍵盤(pán)模塊和單片機(jī)最小系統(tǒng)模塊3。(一)單片機(jī)最小系統(tǒng)模塊在課題設(shè)計(jì)的溫度控制系統(tǒng)設(shè)計(jì)中,控制核心是STC89C52單片機(jī),該單片機(jī)為51系列增強(qiáng)型8位單片機(jī),它有3
5、2個(gè)I/O口,片內(nèi)含4K FLASH工藝的程序存儲(chǔ)器,便于用電的方式瞬間擦除和改寫(xiě),而且價(jià)格便宜,其外部晶振為12MHz,一個(gè)指令周期為1S。使用該單片機(jī)完全可以完成設(shè)計(jì)任務(wù),其最小系統(tǒng)主要包括:復(fù)位電路、震蕩電路以及存儲(chǔ)器選擇模式(EA腳的高低電平選擇),電路如下圖3.1所示:圖2.最小系統(tǒng)本課題設(shè)計(jì)的溫度控制系統(tǒng)主控制芯片選型為STC89C52單片機(jī),其特點(diǎn)如下:STC89C52單片機(jī)的40個(gè)引腳中有2個(gè)專(zhuān)用于主電源引腳,2個(gè)外接晶振的引腳,4個(gè)控制或與其它電源復(fù)用的引腳,以及32條輸入輸出I/O引腳。下面按引腳功能分為4個(gè)部分?jǐn)⑹鰝€(gè)引腳的功能。(1)電源引腳Vcc和Vss Vcc(40腳
6、):接+5V電源正端 Vss(20腳):接+5V電源正端。(2)外接晶振引腳XTAL1和XTAL2XTAL1(19腳):接外部石英晶體的一端。在單片機(jī)內(nèi)部,它是一個(gè)反相放大器的輸入端,這個(gè)放大器構(gòu)成采用外部時(shí)鐘時(shí),對(duì)于HMOS單片機(jī),該引腳接地;對(duì)于CHOMS單片機(jī),該引腳作為外部振蕩信號(hào)的輸入端。XTAL2(18腳):接外部晶體的另一端。在單片機(jī)內(nèi)部,接至片內(nèi)振蕩器的反相放大器的輸出端。當(dāng)采用外部時(shí)鐘時(shí),對(duì)于HMOS單片機(jī),該引腳作為外部振蕩信號(hào)的輸入端。對(duì)于CHMOS芯片,該引腳懸空不接。(3)控制信號(hào)或與其它電源復(fù)用引腳 控制信號(hào)或與其它電源復(fù)用引腳有RST/VPD、ALE/P、PSEN
7、和EA/VPP等4種形式。(A)RST/VPD(9腳):RST即為RESET,VPD為備用電源,所以該引腳為單片機(jī)的上電復(fù)位或掉電保護(hù)端。當(dāng)單片機(jī)振蕩器工作時(shí),該引腳上出現(xiàn)持續(xù)兩個(gè)機(jī)器周期的高電平,就可實(shí)現(xiàn)復(fù)位操作,使單片機(jī)復(fù)位到初始狀態(tài)。當(dāng)VCC發(fā)生故障,降低到低電平規(guī)定值或掉電時(shí),該引腳可接上備用電源VPD(+5V)為內(nèi)部RAM供電,以保證RAM中的數(shù)據(jù)不丟失。(B)ALE/ P (30腳):當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),ALE(允許地址鎖存信號(hào))以每機(jī)器周期兩次的信號(hào)輸出,用于鎖存出現(xiàn)在P0口的低(C)PSEN(29腳):片外程序存儲(chǔ)器讀選通輸出端,低電平有效。當(dāng)從外部程序存儲(chǔ)器讀取指令或常數(shù)期間
8、,每個(gè)機(jī)器周期PESN兩次有效,以通過(guò)數(shù)據(jù)總線口讀回指令或常數(shù)。當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器期間,PESN信號(hào)將不出現(xiàn)。(D)EA/Vpp(31腳):EA為訪問(wèn)外部程序儲(chǔ)器控制信號(hào),低電平有效。當(dāng)EA端保持高電平時(shí),單片機(jī)訪問(wèn)片內(nèi)程序存儲(chǔ)器4KB(MS52子系列為8KB)。若超出該范圍時(shí),自動(dòng)轉(zhuǎn)去執(zhí)行外部程序存儲(chǔ)器的程序。當(dāng)EA端保持低電平時(shí),無(wú)論片內(nèi)有無(wú)程序存儲(chǔ)器,均只訪問(wèn)外部程序存儲(chǔ)器。對(duì)于片內(nèi)含有EPROM的單片機(jī),在EPROM編程期間,該引腳用于接21V的編程電源Vpp。 (4)輸入/輸出(I/O)引腳P0口、P1口、P2口及P3口(A).P0口(39腳22腳):P0.0P0.7統(tǒng)稱(chēng)為P0口。
9、當(dāng)不接外部存儲(chǔ)器與不擴(kuò)展I/O接口時(shí),它可作為準(zhǔn)雙向8位輸入/輸出接口。當(dāng)接有外部程序存儲(chǔ)器或擴(kuò)展I/O口時(shí),P0口為地址/數(shù)據(jù)分時(shí)復(fù)用口。它分時(shí)提供8位雙向數(shù)據(jù)總線。對(duì)于片內(nèi)含有EPROM的單片機(jī),當(dāng)EPROM編程時(shí),從P0口輸入指令字節(jié),而當(dāng)檢驗(yàn)程序時(shí),則輸出指令字節(jié)。(B).P1口(1腳8腳):P1.0P1.7統(tǒng)稱(chēng)為P1口,可作為準(zhǔn)雙向I/O接口使用。對(duì)于MCS52子系列單片機(jī),P1.0和P1.1還有第2功能:P1.0口用作定時(shí)器/計(jì)數(shù)器2的計(jì)數(shù)脈沖輸入端T2;P1.1用作定時(shí)器/計(jì)數(shù)器2的外部控制端T2EX。對(duì)于EPROM編程和進(jìn)行程序校驗(yàn)時(shí),P0口接收輸入的低8位地址。(C).P2口
10、(21腳28腳):P2.0P2.7統(tǒng)稱(chēng)為P2口,一般可作為準(zhǔn)雙向I/O接口。當(dāng)接有外部程序存儲(chǔ)器或擴(kuò)展I/O接口且尋址范圍超過(guò)256個(gè)字節(jié)時(shí),P2口用于高8位地址總線送出高8位地址。對(duì)于EPROM編程和進(jìn)行程序校驗(yàn)時(shí),P2口接收輸入的8位地址。(D).P3口(10腳17腳):P3.0P3.7統(tǒng)稱(chēng)為P3口。它為雙功能口,可以作為一般的準(zhǔn)雙向I/O接口,也可以將每1位用于第2功能,而且P3口的每一條引腳均可獨(dú)立定義為第1功能的輸入輸出或第2功能。P3口的第2功能見(jiàn)下表:引腳第2功能P3.0RXD(串行口輸入端0)P3.1TXD(串行口輸出端)P3.2INT0(部中斷0請(qǐng)求輸入端,低電平有效)P3.
11、3INT1(中斷1請(qǐng)求輸入端,低電平有效)P3.4T0(時(shí)器/計(jì)數(shù)器0計(jì)數(shù)脈沖端)P3.5T1(時(shí)器/計(jì)數(shù)器1數(shù)脈沖端)P3.6WR(部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通信號(hào)輸出端,低電平有效)P3.7RD(部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)輸出端,低電平有效)表1 單片機(jī)P3.0管腳含義(二) 溫度采集模塊DS18B20溫度傳感器是美國(guó)達(dá)拉斯(DALLAS)半導(dǎo)體公司推出的應(yīng)用單總線技術(shù)的數(shù)字溫度傳感器。該器件將半導(dǎo)體溫敏器件、A/D轉(zhuǎn)換器、存儲(chǔ)器等做在一個(gè)很小的集成電路芯片上。本設(shè)計(jì)中溫度傳感器之所以選擇單線數(shù)字器件DS18B20,是在經(jīng)過(guò)多方面比較和考慮后決定的,主要有以下幾方面的原因:(1)系統(tǒng)的特性:測(cè)溫范圍為-
12、55+125 ,測(cè)溫精度為士0.5;溫度轉(zhuǎn)換精度912位可變,能夠直接將溫度轉(zhuǎn)換值以16位二進(jìn)制數(shù)碼的方式串行輸出;12位精度轉(zhuǎn)換的最大時(shí)間為750ms;可以通過(guò)數(shù)據(jù)線供電,具有超低功耗工作方式。(2)系統(tǒng)成本:由于計(jì)算機(jī)技術(shù)和微電子技術(shù)的發(fā)展,新型大規(guī)模集成電路功能越來(lái)越強(qiáng)大,體積越來(lái)越小,而價(jià)格也越來(lái)越低。(3)系統(tǒng)復(fù)雜度:由于DS18B20是單總線器件,微處理器與其接口時(shí)僅需占用1個(gè)I/O端口且一條總線上可以掛接幾十個(gè)DS18B20,測(cè)溫時(shí)無(wú)需任何外部元件,因此,與模擬傳感器相比,可以大大減少接線的數(shù)量,降低系統(tǒng)的復(fù)雜度,減少工程的施工量。(4)系統(tǒng)的調(diào)試和維護(hù):由于引線的減少,使得系統(tǒng)
13、接口大為簡(jiǎn)化,給系統(tǒng)的調(diào)試帶來(lái)方便。同時(shí)因?yàn)镈S18B20是全數(shù)字元器件,故障率很低,抗干擾性強(qiáng),因此,減少了系統(tǒng)的日常維護(hù)工作。DS18B20溫度傳感器只有三根外引線:?jiǎn)尉€數(shù)據(jù)傳輸總線端口DQ ,外供電源線VDD,共用地線GND。DS18B20有兩種供電方式:一種為數(shù)據(jù)線供電方式,此時(shí)VDD接地,它是通過(guò)內(nèi)部電容在空閑時(shí)從數(shù)據(jù)線獲取能量,來(lái)完成溫度轉(zhuǎn)換,相應(yīng)的完成溫度轉(zhuǎn)換的時(shí)間較長(zhǎng)。這種情況下,用單片機(jī)的一個(gè)I/O口來(lái)完成對(duì)DS18B20總線的上拉。另一種是外部供電方式(VDD接+5V),相應(yīng)的完成溫度測(cè)量的時(shí)間較短。(三) 報(bào)警模塊 設(shè)計(jì)中的報(bào)警裝置電路用到了發(fā)光二級(jí)管、三極管、10K的電
14、阻。將發(fā)光二級(jí)管的一端接地,另一端接三極管的發(fā)射極,三極管的基極通過(guò)電阻接在三極管上,三極管的集電極電源。圖5.報(bào)警器(四) 鍵盤(pán)模塊 鍵盤(pán)實(shí)際是就是很多案件的一種組合,按鍵的按下與否形成一個(gè)高低電平,主控芯片CPU通過(guò)高低電平來(lái)識(shí)別所需信號(hào),進(jìn)而使程序進(jìn)行下一步的操作。鍵盤(pán)操作的軟硬件的設(shè)計(jì)有以下幾個(gè)方面的問(wèn)題: 對(duì)于此設(shè)計(jì)來(lái)說(shuō)我們要準(zhǔn)確的顯示我們所要對(duì)應(yīng)的信息,每按一次按鍵要顯示所要顯示的信息。這按鍵是主要用來(lái)控制溫度而設(shè)計(jì)的。這樣比鍵盤(pán)操作方便,也比較實(shí)惠。按鍵電路采用中斷模式。圖6.鍵盤(pán)輸入(五) 顯示、指示模塊 本模塊用的是0.56英寸 2位數(shù)碼管紅色共陽(yáng)數(shù)碼管5261BS,一般正向
15、壓降的都是1.52V,額定電流為10mA,通過(guò)最大的電流為40mA。根據(jù)各種不同管接線的方式,可將數(shù)碼管分成共陰極型和共陽(yáng)極型。圖7.數(shù)碼管 (六)系統(tǒng)總電路圖系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,單片機(jī)主控電路等,通過(guò)Altium Designer可畫(huà)出如圖所示的電路圖456圖8. 系統(tǒng)總電路圖4、 系統(tǒng)硬件制作(一)硬件電路制作方法 1.按照電路圖插接面包板,連接線路。 2.電路焊接,將各元件焊接到面包板上。(2) 硬件電路制作過(guò)程.準(zhǔn)備好各類(lèi)器件以及工具。.按電路圖插接好面包板,先焊接小器件及簡(jiǎn)單電路.用電線連接距離較遠(yuǎn)的器件,進(jìn)行焊接.焊接完成后用萬(wàn)用表進(jìn)行電路測(cè)試,
16、確保沒(méi)有短路。 五、系統(tǒng)軟件設(shè)計(jì)(1) 軟件設(shè)計(jì)思路及流程圖主控制程序的主要是用來(lái)實(shí)時(shí)控制當(dāng)前所要測(cè)控的環(huán)境溫度,并讀出由DS18B20測(cè)量的經(jīng)過(guò)處理的當(dāng)前環(huán)境的溫度值,同時(shí)檢查溫度是否在限度之內(nèi),否則報(bào)警,同時(shí)調(diào)整溫度值。其主控制程序流程圖如9所示。 開(kāi)始STC89C52初始化DS18B20初始化溫度是否到達(dá)設(shè)定限度溫度顯示結(jié)束紅燈亮溫度在顯示范圍內(nèi)YNYNY發(fā)溫度轉(zhuǎn)換命令發(fā)DS18B20復(fù)位命令發(fā)跳過(guò)讀序列號(hào)命令讀取操作,CRC校驗(yàn)9字節(jié)完?CRC校驗(yàn)正?確?移入溫度暫存器結(jié)束NNY圖9 主程序流程圖 圖10 讀溫度流程圖1.讀溫度子程序讀溫度子程序的功能主要是用來(lái)將隨機(jī)存儲(chǔ)器中的9個(gè)字節(jié)
17、讀出,在讀出字節(jié)時(shí)侯,需要進(jìn)行冗余碼校驗(yàn)。在校驗(yàn)到有錯(cuò)誤的時(shí)侯,所測(cè)得的溫度數(shù)據(jù)就會(huì)不進(jìn)行改寫(xiě)。其讀溫度子程序流程圖如10所示。2.溫度轉(zhuǎn)換子程序溫度轉(zhuǎn)換命令子程序的功能主要是用來(lái)發(fā)送溫度開(kāi)始轉(zhuǎn)換命令,讓溫度轉(zhuǎn)換自動(dòng)進(jìn)行,其溫度轉(zhuǎn)換命令子程序流程圖如11所示。發(fā)DS18B20復(fù)位命令發(fā)跳過(guò)讀序列號(hào)命令發(fā)溫度轉(zhuǎn)換開(kāi)始命令結(jié)束 圖11 溫度轉(zhuǎn)換流程圖3.計(jì)算溫度子程序計(jì)算溫度子程序的功能主要將隨機(jī)存儲(chǔ)器中的溫度數(shù)值讀取出來(lái),將取得的溫度數(shù)值的每一位經(jīng)過(guò)計(jì)算分別取出來(lái),放入指定的字節(jié)中,并進(jìn)行溫度值數(shù)正負(fù)的判定。計(jì)算溫度子程序流程圖如12所示。開(kāi)始溫度零下?溫度值取補(bǔ)碼置“”標(biāo)志取出小數(shù)位的溫度值取
18、出整數(shù)位的溫度值結(jié)束置“+”標(biāo)志NY圖12.計(jì)算溫度流程圖 圖3-4 計(jì)算溫度流程圖4.溫度顯示子程序溫度顯示子程序的功能主要是對(duì)顯示數(shù)據(jù)寄存器中的數(shù)據(jù)反復(fù)進(jìn)行刷新操作。如果最高位顯示是0時(shí)的時(shí)候,就將符號(hào)顯示位立即移入下一位字節(jié)中。溫度顯示子程序流程圖如13所示。溫度數(shù)據(jù)移入顯示寄存器十位數(shù)0?百位數(shù)0?十位數(shù)顯示符號(hào)百位數(shù)不顯示百位數(shù)顯示數(shù)據(jù)(不顯示符號(hào)) 結(jié)束NNYY圖13. 溫度顯示數(shù)據(jù)刷新流程圖(二)程序源代碼#include <reg51.h> #define uint unsigned int#define uchar unsigned char sbit p34=P
19、24;sbit p35=P25;sbit p36=P26;sbit dp=P07;sbit p37=P27;sbit DQ=P22; /定義DS18B20總線I/Osbit SET=P31; /定義選擇報(bào)調(diào)整警溫度上限和下限(1為上限,0為下限)sbit LING=P20; /定義閃爍signed char m; /溫度值全局變量bit sign=0; /外部中斷狀態(tài)標(biāo)志signed char shangxian=38; /上限報(bào)警溫度,默認(rèn)值為38signed char xiaxian=5; /下限報(bào)警溫度,默認(rèn)值為5ucharcode LEDData=0xc0,0xf9,0xa4,0xb0
20、,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf;/*延時(shí)子程序*/void Delay(uint i) while( i- );/*初始化DS18B20*/void Init_DS18B20(void) unsigned char x=0; DQ=1; Delay(8); /稍做延時(shí) DQ=0; /單片機(jī)將DQ拉低 Delay(80); /精確延時(shí),大于480us DQ=1; /拉高總線 Delay(14); x=DQ; /稍做延時(shí)后,如果x=0則初始化成功,x=1則初始化失敗 Delay(20);/*讀一個(gè)字節(jié)*/unsigned char ReadOneC
21、har(void) unsigned char i=0; unsigned char dat=0; for (i=8;i>0;i-) DQ=0; / 給脈沖信號(hào) dat>>=1; DQ=1; / 給脈沖信號(hào) if(DQ) dat|=0x80; Delay(4); return(dat);/*寫(xiě)一個(gè)字節(jié)*/void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i>0; i-) DQ=0; DQ=dat&0x01; Delay(5); DQ=1; dat>>=1; void T
22、mpchange(void) /發(fā)送溫度轉(zhuǎn)換命令 Init_DS18B20(); WriteOneChar(0xCC); /跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0x44); /啟動(dòng)溫度轉(zhuǎn)換/*讀取溫度*/unsigned int ReadTemperature(void) unsigned char a=0; unsigned char b=0; unsigned int t=0; float tt=0; Tmpchange(); Init_DS18B20(); WriteOneChar(0xCC); /跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0xBE); /讀取溫度寄存器
23、 a=ReadOneChar(); /讀低8位 b=ReadOneChar(); /讀高8位 t=b; t<<=8; t=t|a; tt=t*0.0625; t= tt*100+0.5; /放大100倍輸出并四舍五入 return(t);/*顯示開(kāi)機(jī)初始化等待畫(huà)面*/Disp_init() P0 = 0x80; /顯示-p34=1;p35=0;p36=0;p37=0;Delay(200);P0 = 0x80;p34=0;p35=1;p36=0;p37=0; Delay(200); P0 = 0x80; p34=0;p35=0;p36=1;p37=0; Delay(200); P0
24、= 0x80;p34=0;p35=0;p36=0;p37=1; Delay(200); P0 = 0x80;/*顯示溫度子程序*/Disp_Temperature() /顯示溫度 uint a,b,c,d,e; e=ReadTemperature(); /獲取溫度值 a=e/1000; /計(jì)算得到十位數(shù)字 b=e/100-a*10; /計(jì)算得到個(gè)位數(shù)字 d=e%10; /計(jì)算得到小數(shù)點(diǎn)后兩位 c=(e%100)/10; /計(jì)算得到小數(shù)點(diǎn)后一位 m=e/100; if(m>shangxian | m<xiaxian) LING=1; /溫度不在范圍內(nèi)報(bào)警 else LING=0;p3
25、4=0;p35=0;p36=0;p37=0; P0 =LEDDatad; /顯示小數(shù)點(diǎn)后兩位 p34=1;p35=0;p36=0;p37=0; Delay(300);p34=0;p35=0;p36=0;p37=0; P0 =LEDDatac; /顯示小數(shù)點(diǎn)后一位p34=0;p35=1;p36=0;p37=0; Delay(300);p34=0;p35=0;p36=0;p37=0; P0 =LEDDatab; /顯示個(gè)位dp=0;p34=0;p35=0;p36=1;p37=0; Delay(300);p34=0;p35=0;p36=0;p37=0; P0 =LEDDataa; /顯示十位p34=
26、0;p35=0;p36=0;p37=1; Delay(300);p34=0;p35=0;p36=0;p37=0; /關(guān)閉顯示disptiaozheng() uchar f,g,j,k; f=shangxian/10; g=shangxian%10; j=xiaxian/10; k=xiaxian%10;p34=0;p35=0;p36=0;p37=0; P0 =0xc0; /顯示0p34=1;p35=0;p36=0;p37=0; Delay(200);p34=0;p35=0;p36=0;p37=0; P0 =0xc0; /顯示0p34=0;p35=1;p36=0;p37=0; Delay(200
27、);p34=0;p35=0;p36=0;p37=0; if(SET=1) P0 =LEDDatag; dp=0; /顯示上限溫度個(gè)位 else P0 =LEDDatak; dp=0; p34=0;p35=0;p36=1;p37=0; Delay(200);p34=0;p35=0;p36=0;p37=0; if(SET=1) P0 =LEDDataf; /顯示上限溫度十位 else if(f=0) P0=0x00; /不顯示下限溫度十位 else P0 =LEDDataj; /顯示下限溫度十位 p34=0;p35=0;p36=0;p37=1; Delay(200);p34=0;p35=0;p36
28、=0;p37=0; /關(guān)閉顯示 Delay(20); /*外部中斷0服務(wù)程序*/void int0(void) interrupt 0 EX0=0; /關(guān)外部中斷0 sign=1; if(SET=1) shangxian+; else xiaxian+; Delay(500); EX0=1; /*外部中斷1服務(wù)程序*/void int1(void) interrupt 2 EX1=0; /關(guān)外部中斷0 sign=1; if(SET=1) shangxian-; else xiaxian-; Delay(500); EX1=1; /*主函數(shù)*/void main(void) uint z; IT
29、0=1; IT1=1; EX0=1; EX1=1; EA=1; ReadTemperature(); LING=0; for(z=0;z<100;z+) Disp_init(); while(1) Disp_Temperature(); if(sign=1) for(z=0;z<300;z+) disptiaozheng(); sign=0; 六、系統(tǒng)調(diào)試 (一)調(diào)試方法 單片機(jī)應(yīng)用系統(tǒng)樣機(jī)組裝好以后,便可進(jìn)入系統(tǒng)的在線(聯(lián)仿真器)調(diào)試,其主要任務(wù)是排除樣機(jī)硬件故障,并完善其硬件結(jié)構(gòu),試運(yùn)行所設(shè)計(jì)的程序,排除程序錯(cuò)誤,優(yōu)化程序結(jié)構(gòu),使系統(tǒng)達(dá)到期望的功能,進(jìn)而固化軟件,使其產(chǎn)品化。
30、單片機(jī)應(yīng)用系統(tǒng)的硬件和軟件調(diào)試是交叉進(jìn)行的,但通常是先排除樣機(jī)中明顯的硬件故障,尤其是電源故障,才能安全地和仿真器相連,進(jìn)行綜合調(diào)試。本設(shè)計(jì)調(diào)試過(guò)程中所用的調(diào)試方法有:靜態(tài)測(cè)試、聯(lián)仿真器在線調(diào)試等。 軟件調(diào)試所使用的方法有:計(jì)算程序的調(diào)試方法、I/O處理程序的調(diào)試法、綜合調(diào)試法等。(二)調(diào)試過(guò)程及現(xiàn)象 計(jì)算程序的錯(cuò)誤是一種靜態(tài)的固定的錯(cuò)誤,因此主要用單拍或斷點(diǎn)運(yùn)行方式來(lái)調(diào)試。根據(jù)計(jì)算程序的功能,事先準(zhǔn)備好一組測(cè)試數(shù)據(jù)。調(diào)試時(shí),用防真器的寫(xiě)命令,將數(shù)據(jù)寫(xiě)入計(jì)算程序的參數(shù)緩沖單元,然后從計(jì)算程序開(kāi)始運(yùn)行到結(jié)束,運(yùn)行的結(jié)果和正確數(shù)據(jù)比較,如果對(duì)有的測(cè)試數(shù)據(jù)進(jìn)行測(cè)試,都沒(méi)有發(fā)生錯(cuò)誤,則該計(jì)算程序調(diào)試成功;如果發(fā)現(xiàn)結(jié)果不正確,改用單步運(yùn)行方式,即可檢查出錯(cuò)誤所在。計(jì)算程序的修改視錯(cuò)誤性質(zhì)而定。若是算法錯(cuò)誤,那是根本性錯(cuò)誤,應(yīng)重新設(shè)計(jì)該程序;若是局部的指令有錯(cuò),修改即可。如果用于測(cè)試的數(shù)據(jù)沒(méi)有全部覆蓋實(shí)際計(jì)算的原始數(shù)據(jù)的類(lèi)型,調(diào)試沒(méi)有發(fā)現(xiàn)錯(cuò)誤可能在系統(tǒng)運(yùn)行過(guò)程中暴露出來(lái)。 對(duì)于A/D轉(zhuǎn)換一類(lèi)的I/O處理程序是實(shí)時(shí)處理程序,因此一般用全速斷點(diǎn)運(yùn)行方式或連
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 宿州學(xué)院《烏克蘭語(yǔ)語(yǔ)法與寫(xiě)作》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州南方學(xué)院《軍訓(xùn)(含軍事理論教育)》2023-2024學(xué)年第二學(xué)期期末試卷
- 正德職業(yè)技術(shù)學(xué)院《人工智能基礎(chǔ)與應(yīng)用A》2023-2024學(xué)年第二學(xué)期期末試卷
- 青海交通職業(yè)技術(shù)學(xué)院《寫(xiě)作(二)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年陜西省安康市高新中學(xué)高二上學(xué)期12月月考?xì)v史試卷
- 周口職業(yè)技術(shù)學(xué)院《EDA技術(shù)及應(yīng)用A》2023-2024學(xué)年第二學(xué)期期末試卷
- 延邊大學(xué)《生態(tài)毒理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津商務(wù)職業(yè)學(xué)院《物理有機(jī)化學(xué)選論》2023-2024學(xué)年第二學(xué)期期末試卷
- 黃河交通學(xué)院《藥學(xué)分子生物學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年貴州省安全員A證考試題庫(kù)
- 江西省宜春市豐城市第九中學(xué)2024-2025學(xué)年九年級(jí)上學(xué)期第二次段考化學(xué)試卷(日新班)(無(wú)答案)
- 江蘇省2024-2025年跨地區(qū)職業(yè)學(xué)校職教高考一輪聯(lián)考(機(jī)械專(zhuān)業(yè)綜合理論試卷含答案)
- 2024年事業(yè)單位租車(chē)服務(wù)滿意度調(diào)查及改進(jìn)協(xié)議3篇
- 露天礦邊坡穩(wěn)定課件所有章節(jié)整合
- 運(yùn)用PDCA提高吞咽障礙患者護(hù)理措施落實(shí)率
- 《法學(xué)概論》課程教學(xué)大綱
- JGJ-T188-2009施工現(xiàn)場(chǎng)臨時(shí)建筑物技術(shù)規(guī)范
- 教師資格考試高級(jí)中學(xué)美術(shù)學(xué)科知識(shí)與教學(xué)能力試題與參考答案(2024年)
- 以諾書(shū)-中英對(duì)照
- 安徽法院聘用制書(shū)記員招聘真題
- 主題班會(huì):小學(xué)生交通安全教育
評(píng)論
0/150
提交評(píng)論