基于STC89C52單片機(jī)的溫度控制電路設(shè)計_第1頁
基于STC89C52單片機(jī)的溫度控制電路設(shè)計_第2頁
基于STC89C52單片機(jī)的溫度控制電路設(shè)計_第3頁
基于STC89C52單片機(jī)的溫度控制電路設(shè)計_第4頁
基于STC89C52單片機(jī)的溫度控制電路設(shè)計_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 德州學(xué)院 物理與電子信息學(xué)院 2011級電子信息科學(xué)與技術(shù) 電子系統(tǒng)設(shè)計考查報告基于溫度傳感器的單片機(jī)溫控電路設(shè)計 一、 設(shè)計分析在各行業(yè)中廣泛應(yīng)用的溫度控制器及儀器儀表主要具有如下的特點:一是在復(fù)雜的溫度控制系統(tǒng)中能夠適應(yīng)于大慣性、大滯后的控制;二是在受控系統(tǒng)數(shù)學(xué)模型難以建立的情況下,得到控制;三是在受控系統(tǒng)中,能夠被控制過程很復(fù)雜且參數(shù)時變的溫度控制系統(tǒng)控制;五是溫度控制系統(tǒng)普遍具有參數(shù)自檢功能,借助計算機(jī)技術(shù),能控制對象和參數(shù),并且具有特性進(jìn)行自動調(diào)整的功能等特點1。本次電子工藝實訓(xùn)旨在練習(xí)實用單片機(jī)系統(tǒng)的設(shè)計與安裝,掌握典型51系列單片機(jī)最小系統(tǒng)及外圍電路設(shè)計、常用電子元器件的識別、

2、萬用板焊接電路的方法、鞏固常用電子儀表測量與調(diào)試電路參數(shù)的方法,培養(yǎng)創(chuàng)新實踐動手能力,為下學(xué)期單片機(jī)、電子系統(tǒng)設(shè)計等課程奠定理論和實踐基礎(chǔ)。具體要求如下:1. 自行設(shè)計以STC89C52RC40單片機(jī)為控制核心的實用單片機(jī)控制系統(tǒng)的硬件電路,實現(xiàn)至少一個環(huán)境參量信息采集、數(shù)值顯示、報警功能。2. 根據(jù)設(shè)計,利用萬用板焊接硬件電路,并做簡單調(diào)試。3. 要求模塊化設(shè)計,單片機(jī)最小系統(tǒng)模塊、顯示模塊、信息采集報警模塊、鍵盤模塊,主要貴重器件用排座插接,電阻、電容、按鍵等元器件要求布局合理、排列整齊,無虛焊。二、 設(shè)計方案本文設(shè)計是以單片機(jī)為核心,實現(xiàn)溫度實時測控和顯示。確定電路中的一些主要參數(shù),了解

3、溫度控制電路的結(jié)構(gòu),工作原理,對該控制電路性能進(jìn)行測試。具體設(shè)計方案: (1)本設(shè)計是用來測控溫度的,可以利用熱敏電阻的感溫效應(yīng),將被測溫度變化的模擬信號,電壓或電流的采集過來,首先進(jìn)行放大和濾波后,再通過A/D轉(zhuǎn)換,將得到的數(shù)字量送往單片機(jī)中去處理,用數(shù)碼管將被測得的溫度值顯示出來。但是這種電路的設(shè)計需要用到放大濾波電路,A/D轉(zhuǎn)換電路,感溫電路等一系列模擬電路,設(shè)計起來較麻煩2。(2)本設(shè)計采用單片機(jī)做處理器,可以考慮使用溫度傳感器,采用由達(dá)拉斯公司研制的DS18B20型溫度傳感器,此傳感器可以將被測的溫度直接讀取出來,并進(jìn)行轉(zhuǎn)換,這樣就很容易滿足設(shè)計要求。從上面的兩種方案,可以很容易看出

4、來,雖然方案(2)軟件部分設(shè)計復(fù)雜點,但是電路比較簡單且精度高,故采用方案(2)。 單片機(jī)最小系統(tǒng)顯示模塊設(shè)置模塊采集模塊圖1. 總體方框圖三、 系統(tǒng)硬件設(shè)計據(jù)設(shè)計的需求,分析單片機(jī)的工作原理,可以大體得出來溫度控制電路設(shè)計的總體方框圖,主處理器采用單片機(jī)STC89C52RC40,溫度采集部分采用溫度傳感器,用4位LED顯示數(shù)碼管作為顯示部分,用來將溫度顯示出來。系統(tǒng)硬件電路部分由四大模塊組成:溫度采集模塊、溫度顯示模塊、報警模塊、鍵盤模塊和單片機(jī)最小系統(tǒng)模塊3。(一)單片機(jī)最小系統(tǒng)模塊在課題設(shè)計的溫度控制系統(tǒng)設(shè)計中,控制核心是STC89C52單片機(jī),該單片機(jī)為51系列增強型8位單片機(jī),它有3

5、2個I/O口,片內(nèi)含4K FLASH工藝的程序存儲器,便于用電的方式瞬間擦除和改寫,而且價格便宜,其外部晶振為12MHz,一個指令周期為1S。使用該單片機(jī)完全可以完成設(shè)計任務(wù),其最小系統(tǒng)主要包括:復(fù)位電路、震蕩電路以及存儲器選擇模式(EA腳的高低電平選擇),電路如下圖3.1所示:圖2.最小系統(tǒng)本課題設(shè)計的溫度控制系統(tǒng)主控制芯片選型為STC89C52單片機(jī),其特點如下:STC89C52單片機(jī)的40個引腳中有2個專用于主電源引腳,2個外接晶振的引腳,4個控制或與其它電源復(fù)用的引腳,以及32條輸入輸出I/O引腳。下面按引腳功能分為4個部分?jǐn)⑹鰝€引腳的功能。(1)電源引腳Vcc和Vss Vcc(40腳

6、):接+5V電源正端 Vss(20腳):接+5V電源正端。(2)外接晶振引腳XTAL1和XTAL2XTAL1(19腳):接外部石英晶體的一端。在單片機(jī)內(nèi)部,它是一個反相放大器的輸入端,這個放大器構(gòu)成采用外部時鐘時,對于HMOS單片機(jī),該引腳接地;對于CHOMS單片機(jī),該引腳作為外部振蕩信號的輸入端。XTAL2(18腳):接外部晶體的另一端。在單片機(jī)內(nèi)部,接至片內(nèi)振蕩器的反相放大器的輸出端。當(dāng)采用外部時鐘時,對于HMOS單片機(jī),該引腳作為外部振蕩信號的輸入端。對于CHMOS芯片,該引腳懸空不接。(3)控制信號或與其它電源復(fù)用引腳 控制信號或與其它電源復(fù)用引腳有RST/VPD、ALE/P、PSEN

7、和EA/VPP等4種形式。(A)RST/VPD(9腳):RST即為RESET,VPD為備用電源,所以該引腳為單片機(jī)的上電復(fù)位或掉電保護(hù)端。當(dāng)單片機(jī)振蕩器工作時,該引腳上出現(xiàn)持續(xù)兩個機(jī)器周期的高電平,就可實現(xiàn)復(fù)位操作,使單片機(jī)復(fù)位到初始狀態(tài)。當(dāng)VCC發(fā)生故障,降低到低電平規(guī)定值或掉電時,該引腳可接上備用電源VPD(+5V)為內(nèi)部RAM供電,以保證RAM中的數(shù)據(jù)不丟失。(B)ALE/ P (30腳):當(dāng)訪問外部存儲器時,ALE(允許地址鎖存信號)以每機(jī)器周期兩次的信號輸出,用于鎖存出現(xiàn)在P0口的低(C)PSEN(29腳):片外程序存儲器讀選通輸出端,低電平有效。當(dāng)從外部程序存儲器讀取指令或常數(shù)期間

8、,每個機(jī)器周期PESN兩次有效,以通過數(shù)據(jù)總線口讀回指令或常數(shù)。當(dāng)訪問外部數(shù)據(jù)存儲器期間,PESN信號將不出現(xiàn)。(D)EA/Vpp(31腳):EA為訪問外部程序儲器控制信號,低電平有效。當(dāng)EA端保持高電平時,單片機(jī)訪問片內(nèi)程序存儲器4KB(MS52子系列為8KB)。若超出該范圍時,自動轉(zhuǎn)去執(zhí)行外部程序存儲器的程序。當(dāng)EA端保持低電平時,無論片內(nèi)有無程序存儲器,均只訪問外部程序存儲器。對于片內(nèi)含有EPROM的單片機(jī),在EPROM編程期間,該引腳用于接21V的編程電源Vpp。 (4)輸入/輸出(I/O)引腳P0口、P1口、P2口及P3口(A).P0口(39腳22腳):P0.0P0.7統(tǒng)稱為P0口。

9、當(dāng)不接外部存儲器與不擴(kuò)展I/O接口時,它可作為準(zhǔn)雙向8位輸入/輸出接口。當(dāng)接有外部程序存儲器或擴(kuò)展I/O口時,P0口為地址/數(shù)據(jù)分時復(fù)用口。它分時提供8位雙向數(shù)據(jù)總線。對于片內(nèi)含有EPROM的單片機(jī),當(dāng)EPROM編程時,從P0口輸入指令字節(jié),而當(dāng)檢驗程序時,則輸出指令字節(jié)。(B).P1口(1腳8腳):P1.0P1.7統(tǒng)稱為P1口,可作為準(zhǔn)雙向I/O接口使用。對于MCS52子系列單片機(jī),P1.0和P1.1還有第2功能:P1.0口用作定時器/計數(shù)器2的計數(shù)脈沖輸入端T2;P1.1用作定時器/計數(shù)器2的外部控制端T2EX。對于EPROM編程和進(jìn)行程序校驗時,P0口接收輸入的低8位地址。(C).P2口

10、(21腳28腳):P2.0P2.7統(tǒng)稱為P2口,一般可作為準(zhǔn)雙向I/O接口。當(dāng)接有外部程序存儲器或擴(kuò)展I/O接口且尋址范圍超過256個字節(jié)時,P2口用于高8位地址總線送出高8位地址。對于EPROM編程和進(jìn)行程序校驗時,P2口接收輸入的8位地址。(D).P3口(10腳17腳):P3.0P3.7統(tǒng)稱為P3口。它為雙功能口,可以作為一般的準(zhǔn)雙向I/O接口,也可以將每1位用于第2功能,而且P3口的每一條引腳均可獨立定義為第1功能的輸入輸出或第2功能。P3口的第2功能見下表:引腳第2功能P3.0RXD(串行口輸入端0)P3.1TXD(串行口輸出端)P3.2INT0(部中斷0請求輸入端,低電平有效)P3.

11、3INT1(中斷1請求輸入端,低電平有效)P3.4T0(時器/計數(shù)器0計數(shù)脈沖端)P3.5T1(時器/計數(shù)器1數(shù)脈沖端)P3.6WR(部數(shù)據(jù)存儲器寫選通信號輸出端,低電平有效)P3.7RD(部數(shù)據(jù)存儲器讀選通信號輸出端,低電平有效)表1 單片機(jī)P3.0管腳含義(二) 溫度采集模塊DS18B20溫度傳感器是美國達(dá)拉斯(DALLAS)半導(dǎo)體公司推出的應(yīng)用單總線技術(shù)的數(shù)字溫度傳感器。該器件將半導(dǎo)體溫敏器件、A/D轉(zhuǎn)換器、存儲器等做在一個很小的集成電路芯片上。本設(shè)計中溫度傳感器之所以選擇單線數(shù)字器件DS18B20,是在經(jīng)過多方面比較和考慮后決定的,主要有以下幾方面的原因:(1)系統(tǒng)的特性:測溫范圍為-

12、55+125 ,測溫精度為士0.5;溫度轉(zhuǎn)換精度912位可變,能夠直接將溫度轉(zhuǎn)換值以16位二進(jìn)制數(shù)碼的方式串行輸出;12位精度轉(zhuǎn)換的最大時間為750ms;可以通過數(shù)據(jù)線供電,具有超低功耗工作方式。(2)系統(tǒng)成本:由于計算機(jī)技術(shù)和微電子技術(shù)的發(fā)展,新型大規(guī)模集成電路功能越來越強大,體積越來越小,而價格也越來越低。(3)系統(tǒng)復(fù)雜度:由于DS18B20是單總線器件,微處理器與其接口時僅需占用1個I/O端口且一條總線上可以掛接幾十個DS18B20,測溫時無需任何外部元件,因此,與模擬傳感器相比,可以大大減少接線的數(shù)量,降低系統(tǒng)的復(fù)雜度,減少工程的施工量。(4)系統(tǒng)的調(diào)試和維護(hù):由于引線的減少,使得系統(tǒng)

13、接口大為簡化,給系統(tǒng)的調(diào)試帶來方便。同時因為DS18B20是全數(shù)字元器件,故障率很低,抗干擾性強,因此,減少了系統(tǒng)的日常維護(hù)工作。DS18B20溫度傳感器只有三根外引線:單線數(shù)據(jù)傳輸總線端口DQ ,外供電源線VDD,共用地線GND。DS18B20有兩種供電方式:一種為數(shù)據(jù)線供電方式,此時VDD接地,它是通過內(nèi)部電容在空閑時從數(shù)據(jù)線獲取能量,來完成溫度轉(zhuǎn)換,相應(yīng)的完成溫度轉(zhuǎn)換的時間較長。這種情況下,用單片機(jī)的一個I/O口來完成對DS18B20總線的上拉。另一種是外部供電方式(VDD接+5V),相應(yīng)的完成溫度測量的時間較短。(三) 報警模塊 設(shè)計中的報警裝置電路用到了發(fā)光二級管、三極管、10K的電

14、阻。將發(fā)光二級管的一端接地,另一端接三極管的發(fā)射極,三極管的基極通過電阻接在三極管上,三極管的集電極電源。圖5.報警器(四) 鍵盤模塊 鍵盤實際是就是很多案件的一種組合,按鍵的按下與否形成一個高低電平,主控芯片CPU通過高低電平來識別所需信號,進(jìn)而使程序進(jìn)行下一步的操作。鍵盤操作的軟硬件的設(shè)計有以下幾個方面的問題: 對于此設(shè)計來說我們要準(zhǔn)確的顯示我們所要對應(yīng)的信息,每按一次按鍵要顯示所要顯示的信息。這按鍵是主要用來控制溫度而設(shè)計的。這樣比鍵盤操作方便,也比較實惠。按鍵電路采用中斷模式。圖6.鍵盤輸入(五) 顯示、指示模塊 本模塊用的是0.56英寸 2位數(shù)碼管紅色共陽數(shù)碼管5261BS,一般正向

15、壓降的都是1.52V,額定電流為10mA,通過最大的電流為40mA。根據(jù)各種不同管接線的方式,可將數(shù)碼管分成共陰極型和共陽極型。圖7.數(shù)碼管 (六)系統(tǒng)總電路圖系統(tǒng)整體硬件電路包括,傳感器數(shù)據(jù)采集電路,溫度顯示電路,單片機(jī)主控電路等,通過Altium Designer可畫出如圖所示的電路圖456圖8. 系統(tǒng)總電路圖4、 系統(tǒng)硬件制作(一)硬件電路制作方法 1.按照電路圖插接面包板,連接線路。 2.電路焊接,將各元件焊接到面包板上。(2) 硬件電路制作過程.準(zhǔn)備好各類器件以及工具。.按電路圖插接好面包板,先焊接小器件及簡單電路.用電線連接距離較遠(yuǎn)的器件,進(jìn)行焊接.焊接完成后用萬用表進(jìn)行電路測試,

16、確保沒有短路。 五、系統(tǒng)軟件設(shè)計(1) 軟件設(shè)計思路及流程圖主控制程序的主要是用來實時控制當(dāng)前所要測控的環(huán)境溫度,并讀出由DS18B20測量的經(jīng)過處理的當(dāng)前環(huán)境的溫度值,同時檢查溫度是否在限度之內(nèi),否則報警,同時調(diào)整溫度值。其主控制程序流程圖如9所示。 開始STC89C52初始化DS18B20初始化溫度是否到達(dá)設(shè)定限度溫度顯示結(jié)束紅燈亮溫度在顯示范圍內(nèi)YNYNY發(fā)溫度轉(zhuǎn)換命令發(fā)DS18B20復(fù)位命令發(fā)跳過讀序列號命令讀取操作,CRC校驗9字節(jié)完?CRC校驗正?確?移入溫度暫存器結(jié)束NNY圖9 主程序流程圖 圖10 讀溫度流程圖1.讀溫度子程序讀溫度子程序的功能主要是用來將隨機(jī)存儲器中的9個字節(jié)

17、讀出,在讀出字節(jié)時侯,需要進(jìn)行冗余碼校驗。在校驗到有錯誤的時侯,所測得的溫度數(shù)據(jù)就會不進(jìn)行改寫。其讀溫度子程序流程圖如10所示。2.溫度轉(zhuǎn)換子程序溫度轉(zhuǎn)換命令子程序的功能主要是用來發(fā)送溫度開始轉(zhuǎn)換命令,讓溫度轉(zhuǎn)換自動進(jìn)行,其溫度轉(zhuǎn)換命令子程序流程圖如11所示。發(fā)DS18B20復(fù)位命令發(fā)跳過讀序列號命令發(fā)溫度轉(zhuǎn)換開始命令結(jié)束 圖11 溫度轉(zhuǎn)換流程圖3.計算溫度子程序計算溫度子程序的功能主要將隨機(jī)存儲器中的溫度數(shù)值讀取出來,將取得的溫度數(shù)值的每一位經(jīng)過計算分別取出來,放入指定的字節(jié)中,并進(jìn)行溫度值數(shù)正負(fù)的判定。計算溫度子程序流程圖如12所示。開始溫度零下?溫度值取補碼置“”標(biāo)志取出小數(shù)位的溫度值取

18、出整數(shù)位的溫度值結(jié)束置“+”標(biāo)志NY圖12.計算溫度流程圖 圖3-4 計算溫度流程圖4.溫度顯示子程序溫度顯示子程序的功能主要是對顯示數(shù)據(jù)寄存器中的數(shù)據(jù)反復(fù)進(jìn)行刷新操作。如果最高位顯示是0時的時候,就將符號顯示位立即移入下一位字節(jié)中。溫度顯示子程序流程圖如13所示。溫度數(shù)據(jù)移入顯示寄存器十位數(shù)0?百位數(shù)0?十位數(shù)顯示符號百位數(shù)不顯示百位數(shù)顯示數(shù)據(jù)(不顯示符號) 結(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; /定義選擇報調(diào)整警溫度上限和下限(1為上限,0為下限)sbit LING=P20; /定義閃爍signed char m; /溫度值全局變量bit sign=0; /外部中斷狀態(tài)標(biāo)志signed char shangxian=38; /上限報警溫度,默認(rèn)值為38signed char xiaxian=5; /下限報警溫度,默認(rèn)值為5ucharcode LEDData=0xc0,0xf9,0xa4,0xb0

20、,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf;/*延時子程序*/void Delay(uint i) while( i- );/*初始化DS18B20*/void Init_DS18B20(void) unsigned char x=0; DQ=1; Delay(8); /稍做延時 DQ=0; /單片機(jī)將DQ拉低 Delay(80); /精確延時,大于480us DQ=1; /拉高總線 Delay(14); x=DQ; /稍做延時后,如果x=0則初始化成功,x=1則初始化失敗 Delay(20);/*讀一個字節(jié)*/unsigned char ReadOneC

21、har(void) unsigned char i=0; unsigned char dat=0; for (i=8;i>0;i-) DQ=0; / 給脈沖信號 dat>>=1; DQ=1; / 給脈沖信號 if(DQ) dat|=0x80; Delay(4); return(dat);/*寫一個字節(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); /跳過讀序號列號的操作 WriteOneChar(0x44); /啟動溫度轉(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); /跳過讀序號列號的操作 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);/*顯示開機(jī)初始化等待畫面*/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; /計算得到十位數(shù)字 b=e/100-a*10; /計算得到個位數(shù)字 d=e%10; /計算得到小數(shù)點后兩位 c=(e%100)/10; /計算得到小數(shù)點后一位 m=e/100; if(m>shangxian | m<xiaxian) LING=1; /溫度不在范圍內(nèi)報警 else LING=0;p3

25、4=0;p35=0;p36=0;p37=0; P0 =LEDDatad; /顯示小數(shù)點后兩位 p34=1;p35=0;p36=0;p37=0; Delay(300);p34=0;p35=0;p36=0;p37=0; P0 =LEDDatac; /顯示小數(shù)點后一位p34=0;p35=1;p36=0;p37=0; Delay(300);p34=0;p35=0;p36=0;p37=0; P0 =LEDDatab; /顯示個位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; /顯示上限溫度個位 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),試運行所設(shè)計的程序,排除程序錯誤,優(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è)計調(diào)試過程中所用的調(diào)試方法有:靜態(tài)測試、聯(lián)仿真器在線調(diào)試等。 軟件調(diào)試所使用的方法有:計算程序的調(diào)試方法、I/O處理程序的調(diào)試法、綜合調(diào)試法等。(二)調(diào)試過程及現(xiàn)象 計算程序的錯誤是一種靜態(tài)的固定的錯誤,因此主要用單拍或斷點運行方式來調(diào)試。根據(jù)計算程序的功能,事先準(zhǔn)備好一組測試數(shù)據(jù)。調(diào)試時,用防真器的寫命令,將數(shù)據(jù)寫入計算程序的參數(shù)緩沖單元,然后從計算程序開始運行到結(jié)束,運行的結(jié)果和正確數(shù)據(jù)比較,如果對有的測試數(shù)據(jù)進(jìn)行測試,都沒有發(fā)生錯誤,則該計算程序調(diào)試成功;如果發(fā)現(xiàn)結(jié)果不正確,改用單步運行方式,即可檢查出錯誤所在。計算程序的修改視錯誤性質(zhì)而定。若是算法錯誤,那是根本性錯誤,應(yīng)重新設(shè)計該程序;若是局部的指令有錯,修改即可。如果用于測試的數(shù)據(jù)沒有全部覆蓋實際計算的原始數(shù)據(jù)的類型,調(diào)試沒有發(fā)現(xiàn)錯誤可能在系統(tǒng)運行過程中暴露出來。 對于A/D轉(zhuǎn)換一類的I/O處理程序是實時處理程序,因此一般用全速斷點運行方式或連

溫馨提示

  • 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

提交評論