電子專業(yè)課設(shè)報(bào)告 八路數(shù)據(jù)采集循環(huán)顯示_第1頁
電子專業(yè)課設(shè)報(bào)告 八路數(shù)據(jù)采集循環(huán)顯示_第2頁
電子專業(yè)課設(shè)報(bào)告 八路數(shù)據(jù)采集循環(huán)顯示_第3頁
電子專業(yè)課設(shè)報(bào)告 八路數(shù)據(jù)采集循環(huán)顯示_第4頁
電子專業(yè)課設(shè)報(bào)告 八路數(shù)據(jù)采集循環(huán)顯示_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 課程設(shè)計(jì)說明書課程設(shè)計(jì)名稱: 專業(yè)課程設(shè)計(jì) 課程設(shè)計(jì)題目: 八路數(shù)據(jù)循環(huán)采集顯示 學(xué) 院 名 稱: 信息工程學(xué)院 專業(yè): 電子信息工程 班級: 100414班 學(xué)號: 10041402 姓名: 高飛紅 評分: 教師: 徐琦 王忠 20 13 年 7 月 3 日 摘 要 數(shù)據(jù)采集是指將位移、流量、溫度、壓力等模擬量采集、轉(zhuǎn)換成數(shù)字量后,再由計(jì)算機(jī)進(jìn)行存儲、處理、顯示或打印。數(shù)據(jù)采集技術(shù)是信息科學(xué)的一個(gè)重要組成部分,信號處理技術(shù)、計(jì)算機(jī)技術(shù),傳感器技術(shù)是現(xiàn)代檢測技術(shù)的基礎(chǔ)。數(shù)據(jù)采集技術(shù)則正是這些技術(shù)的先導(dǎo),也是信息進(jìn)行可靠傳輸,正確處理的基礎(chǔ)。在工業(yè)生產(chǎn)中,對生產(chǎn)現(xiàn)場的工藝參數(shù)進(jìn)行采集、監(jiān)視和記

2、錄,這樣能提高產(chǎn)品的質(zhì)量、降低成本。在科學(xué)實(shí)驗(yàn)中,對應(yīng)用數(shù)據(jù)進(jìn)行實(shí)時(shí)采集,這樣獲得大量的動態(tài)信息,是研究物理過程動態(tài)變化的有效手段,也是獲取科學(xué)奧秘的重要手段之一。數(shù)據(jù)采集系統(tǒng)性能的好壞,取決于它的精度和速度,在精度保證的條件下提高采樣速度,滿足實(shí)時(shí)采集、實(shí)時(shí)處理和實(shí)時(shí)控制的要求。 本設(shè)計(jì)待測的輸入電壓為8路,電壓范圍為05V,使用目前廣泛使用的AT89C51來做控制系統(tǒng),用ADC0809來進(jìn)行模擬電壓的采集及模數(shù)轉(zhuǎn)換,實(shí)現(xiàn)采集8路數(shù)據(jù),并將結(jié)果在四位一體數(shù)碼管上進(jìn)行顯示。該系統(tǒng)主要包括幾大模塊:數(shù)據(jù)采集模塊、AD轉(zhuǎn)換模塊、控制模塊、顯示模塊。顯示部分由數(shù)碼管顯示構(gòu)成。該數(shù)字電壓表具有電路簡單

3、,成本低等優(yōu)點(diǎn),可以方便地進(jìn)8路AD轉(zhuǎn)換量的測量。關(guān)鍵詞:電壓采集、ADC0809、A/D轉(zhuǎn)換、單片機(jī)89C51、數(shù)碼管顯示 目 錄 第一章 設(shè)計(jì)內(nèi)容及要求 11.1 設(shè)計(jì)要求 11.2 提高要求1第二章 系統(tǒng)框圖與工作原理22.1 硬件組成框圖22.2 軟件系統(tǒng)框圖32.3 工作原理分析 4第三章 器件說明5 3.1 ADC0809模數(shù)轉(zhuǎn)換芯片 5 3.2 AT89C51單片機(jī) 6 3.3 4個(gè)共陰7段數(shù)碼管顯示器7第4章 硬件各模塊設(shè)計(jì)說明9 4.1 模擬數(shù)據(jù)輸入電路9 4.2 AD轉(zhuǎn)換電路 9 4.3 數(shù)碼管顯示電路10 4.4 方式控制電路11 第五章 軟件子程序設(shè)計(jì)說明 13 5.1

4、 ADC模數(shù)轉(zhuǎn)換程序 13 5.2 數(shù)據(jù)處理子程序14 5.3 數(shù)碼管顯示程序16第六章 系統(tǒng)調(diào)試及結(jié)果分析 196.1 硬件調(diào)試及分析 196.2 軟件調(diào)試及分析206.3 調(diào)試結(jié)果20結(jié)論22參考文獻(xiàn) 23附錄1 八路數(shù)據(jù)采集的原理總圖 24附錄2 程序清單及注釋25第一章 設(shè)計(jì)內(nèi)容及要求1.1 設(shè)計(jì)要求(1) 對8路模擬電壓信號進(jìn)行采集并循環(huán)顯示(2) 模擬電壓變換范圍為:0 5V(3) 測量精度小于±2%(4) 測量溫度用3位LED顯示器顯示,1位顯示循環(huán)通道8路模擬量變換器單片機(jī)顯示器1.2提高要求(1)通過按鍵模塊的操作可以選擇8路循環(huán)顯示,也可以選擇某條單路顯示。(2)

5、做出的八路采集器,應(yīng)該在精度和采集信號的穩(wěn)定程度方面加以強(qiáng)化。(3)做出的產(chǎn)品在實(shí)際中能夠經(jīng)久耐用。 第二章 系統(tǒng)框圖與工作原理 數(shù)據(jù)采集系統(tǒng)包括模擬信號的輸入、轉(zhuǎn)換及處理。模擬信號變成數(shù)字形式后順序存儲、傳輸、處理和顯示。數(shù)據(jù)收集的基本手段是模數(shù)轉(zhuǎn)換,它是將來自各式各樣傳感器的模擬量實(shí)時(shí)地、準(zhǔn)確地測量或匯集起來,送入計(jì)算機(jī)實(shí)時(shí)處理,并輸出相應(yīng)的控制信號以實(shí)現(xiàn)對物理系統(tǒng)的控制或記錄。 2.1硬件組成框圖MCS-51單片機(jī)0809中進(jìn)行AD轉(zhuǎn)換 滑動變阻器0模擬電壓采集 數(shù)碼管顯示 滑動變阻器7 圖2.1硬件系統(tǒng)框圖 如圖2.1所示,該系統(tǒng)主要包括幾大模塊:數(shù)據(jù)采集模塊、AD轉(zhuǎn)換模塊、控制模塊、

6、顯示模塊。采用AT89C51作為控制模塊,ADC0809作為AD轉(zhuǎn)換模塊的核心,ADC0809本身具有8路模擬量輸入端口,通過C、B、A,3位地址輸入端,能從8路中選擇一路進(jìn)行轉(zhuǎn)換。如每隔一段時(shí)間依次輪流改變3位地址輸入端的地址,就能依次對8路輸入電壓進(jìn)行測量。數(shù)碼管的顯示采用軟件譯碼動態(tài)顯示,通過按鍵模塊的操作可以選擇8路循環(huán)顯示,也可以選擇某條單路顯示。2.2軟件程序框圖 圖2.2程序流程框圖編程思想:首先在啟動A/D轉(zhuǎn)換,因轉(zhuǎn)換需要一定的時(shí)間,所以需延時(shí)等待;然后讀取數(shù)據(jù),利用軟件編程,將二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),送到數(shù)碼管顯示;從左到右輪流點(diǎn)亮顯示器各位,對于顯示器的每一位來說,每隔一段

7、時(shí)間點(diǎn)亮一次,利用人的視覺暫留功能可以看到整個(gè)顯示,但必須保證掃描速度足夠快,字符才不閃爍,數(shù)碼管的第四位顯示通道數(shù),前三位顯示0255的采集數(shù)據(jù)。2.3 工作原理分析 依據(jù)綜合課程設(shè)計(jì)的要求,利用ADC0809設(shè)計(jì)一個(gè)單通道模擬電壓采集顯示電路,要求對所接通道變化的模擬電壓值進(jìn)行采集,采集來的數(shù)字量送至數(shù)碼管指示出來,通過相關(guān)轉(zhuǎn)換在數(shù)碼管上精確顯示出來。 數(shù)據(jù)采集電路是系統(tǒng)的主要組成部分,ADC0809具有8路模擬量輸入通道IN0IN7,通過3位地址輸入端C、B、A(引腳2325)進(jìn)行選擇。引腳22為地址鎖存控制端ALE,當(dāng)輸入為高電平時(shí),C、B、A引腳輸入的地址鎖存于ADC0809內(nèi)部鎖存

8、器中,經(jīng)內(nèi)部譯碼電路譯碼選中相應(yīng)的模擬通道。引腳6為啟動轉(zhuǎn)換控制端START,當(dāng)輸入一個(gè)2 US寬的高電平脈沖時(shí),就啟動ADC0809開始對輸入通道的模擬量進(jìn)行轉(zhuǎn)換。引腳7為AD轉(zhuǎn)換器,當(dāng)開始轉(zhuǎn)換時(shí),EOC信號為低電平,經(jīng)過一段時(shí)間,換結(jié)束,轉(zhuǎn)換結(jié)束信號EOC輸出高電平,轉(zhuǎn)換結(jié)果存放干ADC0809內(nèi)部的輸出數(shù)據(jù)寄存器中。引腳9腳為AD轉(zhuǎn)換數(shù)據(jù)輸出允許控制端OE,當(dāng)0E為高電平時(shí),存放于輸出數(shù)據(jù)鎖存器中的數(shù)據(jù)通過ADC0809的數(shù)據(jù)線DOD7輸出。引腳10為ADC0809的時(shí)鐘信號輸人端CLOCK。顯示數(shù)碼管分別用兩個(gè)鎖存器來控制它的位選和段選,利用軟件編程啟動AD轉(zhuǎn)換之后,采用延時(shí)的方式等待

9、數(shù)據(jù)送至P2口進(jìn)行數(shù)據(jù)的處理,即將十六進(jìn)制轉(zhuǎn)換為BCD格式,處理之后送至P0口進(jìn)行數(shù)據(jù)的顯示,P1.5和P1.6分別控制數(shù)碼管的段選的位選信號。 第三章 器件說明 3.1 ADC0809模數(shù)轉(zhuǎn)換芯片 1)ADC0809內(nèi)部邏輯結(jié)構(gòu) ADC0809是帶有8位A/D轉(zhuǎn)換器、8路多路開關(guān)以及微處理機(jī)兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉(zhuǎn)換器,可以和單片機(jī)直接接口。 圖3.1.1ADC0809內(nèi)部邏輯結(jié)構(gòu)    由上圖可知,ADC0809由一個(gè)8路模擬開關(guān)、一個(gè)A/D轉(zhuǎn)換器和一個(gè)三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個(gè)模擬通道,允許8路模擬量分時(shí)輸入,共用A/

10、D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存A/D轉(zhuǎn)換完的數(shù)字量,當(dāng)OE端為高電平時(shí),才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。2)ADC引腳結(jié)構(gòu)ADC0809各腳功能如下:D7-D0:8位數(shù)字量輸出引腳。IN0-IN7:8位模擬量輸入引腳。VCC:+5V工作電壓。GND:地。REF(+):參考電壓正端。REF(-):參考電壓負(fù)端。START:A/D轉(zhuǎn)換啟動信號輸入端。ALE:地址鎖存允許信號輸入端。(以上兩種信號用于啟動A/D轉(zhuǎn)換).EOC:轉(zhuǎn)換結(jié)束信號輸出引腳,開始轉(zhuǎn)換時(shí)為低電平,當(dāng)轉(zhuǎn)換結(jié)束時(shí)為高電平。OE:輸出允許控制端,用以打開三態(tài)數(shù)據(jù)輸出鎖存器。CLK:時(shí)鐘信號輸入端(一般為500KHz)。

11、A、B、C:地址輸入線。 圖3.1.2ADC0809芯片引腳3.2 AT89C51單片機(jī) AT89C52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。其引腳圖,如圖3.2所示圖3.2 80C52單片機(jī)引腳 它一共有40個(gè)引腳,引腳又分為四類。其中有四個(gè)電源引腳,用來接入單片

12、機(jī)的工作電源。工作電源又分主電源、備用電源和編程電源。還有兩個(gè)時(shí)鐘引腳XTAL1、XTAL2。還有由P0口、P1口、P2口、P3口的所有引腳構(gòu)成的單片機(jī)的輸入/輸出(IO)引腳。最后一種是控制引腳,控制引腳有四條,部分引腳具有復(fù)位功能。 綜上所述,單片機(jī)的引腳特點(diǎn)是: 1.單片機(jī)多功能,少引腳,使得引腳復(fù)用現(xiàn)象較多。 2.單片機(jī)具有四種總線形式:P0和P2組成的16位地址地址總線;P0分時(shí)復(fù)用為8位數(shù)據(jù)總線;ALE、PSEN、RST、EA和P3口的INT0、INT1、T0、T1、WR、RD以及P1口的T2、T2EX組成控制總線;而P3的RXD、TXD組成串行通信總線。3.3 4個(gè)共陰7段數(shù)碼管

13、顯示器實(shí)驗(yàn)中我們采用的是四位共陰數(shù)碼管,其管腳圖如下: 圖3.3四位共陰數(shù)碼管靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動也稱直流驅(qū)動。靜態(tài)驅(qū)動是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)行驅(qū)動,或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)行驅(qū)動。靜態(tài)驅(qū)動的優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動5個(gè)數(shù)碼管靜態(tài)顯示則需要5×840根I/O端口來驅(qū)動,要知道一個(gè)89S51單片機(jī)可用的I/O端口才32個(gè)呢:),實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動器進(jìn)行驅(qū)動,增加了硬件電路的復(fù)雜性。第四章 硬件各模塊設(shè)計(jì)說明 4.1 模擬數(shù)據(jù)輸入電路為了使電路更加的直觀,增加系統(tǒng)的可讀性,將電位器的輸出電壓作為數(shù)

14、據(jù)采集模塊的輸入,模塊圖如下圖所示。圖4.1 模擬數(shù)據(jù)輸入圖在此模塊圖中,使用了八個(gè)滑動變阻器,通過改變電位器是的電阻值,從而是INi端電壓值發(fā)生改變,進(jìn)而達(dá)到改變采集模塊輸入數(shù)據(jù)的目的。4.2 AD轉(zhuǎn)換電路 多路數(shù)據(jù)采集系統(tǒng),通過多路模擬開關(guān)控制多路之間的切換,實(shí)現(xiàn)單片AD芯片對多路數(shù)據(jù)信號的逐個(gè)采集。模數(shù)轉(zhuǎn)換的核心是模數(shù)轉(zhuǎn)換器(ADC),即AD芯片。它將輸入的模擬信號進(jìn)行量化,即把連續(xù)的模擬信號轉(zhuǎn)換為計(jì)算機(jī)能處理的離散數(shù)字信號。模塊圖如下圖所示。圖4.2 ADC0809轉(zhuǎn)換模塊圖上圖所示原理圖工作過程為:ALE的上升沿將A、B、C端選擇的通道地址鎖存到8位A/D轉(zhuǎn)換器的輸入端。START的

15、下降驗(yàn)啟動8位A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。A/D轉(zhuǎn)換開始使EOC端輸出低電平。A/D轉(zhuǎn)換結(jié)束,EOC輸出高電平。該信號通??勺鳛橹袛嗌暾埿盘枴E為讀出數(shù)據(jù)允許信號。OE端為高電平時(shí),可以讀出轉(zhuǎn)換的數(shù)字量。4.3 數(shù)碼管顯示電路 顯示部分由4個(gè)八段共陰數(shù)碼管和兩片74LS373組成,數(shù)碼管為動態(tài)掃描顯示,動態(tài)顯示的特點(diǎn)是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時(shí)都在顯示。模塊圖如下圖所示。圖4.3.1數(shù)碼管顯示電路此圖為顯示部分

16、,其中第四個(gè)數(shù)碼管實(shí)現(xiàn)所采集的通道號,前面三個(gè)數(shù)碼管顯示此通道的電壓值,上電后系統(tǒng)正常工作,顯示去最先顯示通道0以及通道0的電壓值,一秒后切換到通道1,這樣依次遞增,當(dāng)通道7顯示完以后,又回到通道0,實(shí)現(xiàn)循環(huán)顯示。圖4.3.2數(shù)碼管顯示電路 此模塊為數(shù)碼管的驅(qū)動電路,兩片74LS373實(shí)現(xiàn)數(shù)碼管的動態(tài)掃描顯示,U4作為數(shù)碼管的段選驅(qū)動,U5為位選驅(qū)動。4.4 方式控制電路鍵盤模塊實(shí)現(xiàn)的功能只顯示某一通道的通道號和鈣通道電壓值。如下如所示。 圖4.4方式控制電路 此圖中,按鍵采用的連接方式為矩陣式,這種方式的優(yōu)點(diǎn)是,能充分利用資源,增加系統(tǒng)的可靠性。此鍵盤實(shí)現(xiàn)的功能是當(dāng)按下第一個(gè)鍵是,數(shù)碼管就只

17、顯0通道號和0通道的電壓值,當(dāng)釋放按鍵,系統(tǒng)繼續(xù)循環(huán)顯示。加入此模塊后,能夠更加直觀地觀察和檢測每一個(gè)通道的電壓值。矩陣鍵盤是單片機(jī)外部設(shè)備中所使用的排布類似于矩陣的鍵盤組,在鍵盤中按鍵數(shù)量較多時(shí),為了減少I/O口的占用,通常將按鍵排列成矩陣形式,如圖1所示。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個(gè)按鍵加以連接。這樣,一個(gè)端口就可以構(gòu)成4*4=16個(gè)按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,比如再多加一條線就可以構(gòu)成20鍵的鍵盤,而直接用端口線則只能多出一鍵(9鍵)。由此可見,在需要的鍵數(shù)比較多時(shí),采用矩陣法來做鍵盤是合理的。矩陣式結(jié)構(gòu)的鍵盤

18、顯然比直接法要復(fù)雜一些,識別也要復(fù)雜一些,上圖中,列線通過電阻接正電源,并將行線所接的單片機(jī)的I/O口作為輸出端,而列線所接的I/O口則作為輸入。這樣,當(dāng)按鍵沒有按下時(shí),所有的輸入端都是高電平,代表無鍵按下。行線輸出是低電平,一旦有鍵按下,則輸入線就會被拉低,這樣,通過讀入輸入線的狀態(tài)就可得知是否有鍵按下了。 第五章 軟件設(shè)計(jì)與說明5.1 ADC模數(shù)轉(zhuǎn)換程序模數(shù)轉(zhuǎn)換測量子程序是用來控制對0809 八路模擬輸入電壓的AD轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)值存于P2口中,其流程圖如5.1.2。 圖5.1模數(shù)轉(zhuǎn)換流程圖START: CLR P3.6 ;START置位低 NOP NOP NOP NOP;延時(shí)us SET

19、B P3.6;將START引腳點(diǎn)平拉高 NOP NOP NOP NOP ;延時(shí)us CLR P3.6 ;又將START拉低RE: JB P3.7,RE ;檢測AD轉(zhuǎn)換是否完成 ACALL D10ms1 ;調(diào)用延時(shí)子程序 ACALL AD ;調(diào)用AD轉(zhuǎn)換程序 ACALL DISP ;調(diào)用顯示子程序 RET5.2數(shù)據(jù)處理子程序 ADC0809轉(zhuǎn)換之后輸出的結(jié)果是8位二進(jìn)制數(shù)。由公式(1)可知,當(dāng)ADC0809輸出為(1l1l11111)時(shí),輸入電壓值V =500V當(dāng)ADC0809輸出為(00000000)時(shí),輸入電壓值為0.0O0V;當(dāng)ADC0809輸出為(10000000)時(shí),輸入電壓值V =2

20、50V。由于單片機(jī)進(jìn)行數(shù)學(xué)運(yùn)算時(shí)結(jié)果只取整數(shù)部分,因此當(dāng)輸出為(10000000)時(shí)計(jì)算出的電壓值V =2OOV,很不準(zhǔn)確。為了提高精確度,必須把小數(shù)部分保留,具體運(yùn)算方式如公式(2)。個(gè)位:Dout*196/10000 十分位:(Dout*196/1000)%10 百分位:(Dout*196/100)%10 千分位:(Dout*196/10)%10 由此得到較為精確的數(shù)值。 圖5.2 十六進(jìn)制轉(zhuǎn)換為三位BCD碼AD: MOV R0,P2 ;將才采集好的值存于R0中 MOV A,R0 ;將值存于寄存器A中 MOV B,#51 ;給B賦值 DIV AB ;A/B MOV 30H,A ;將最高位存

21、于H中 MOV A,B ;將余數(shù)存于A中 CLR F0 ;清F0 SUBB A,#1AH ;將A與相減 MOV F0,C ;借位存于F0 MOV A,#10 ;給A賦值為 MUL AB MOV B,#51 DIV AB JB F0,LOOP1 ADD A,#5 ;此段為最高位轉(zhuǎn)化LOOP1: MOV 31H,A MOV A,B CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP2 ADD A,#5;此段為次高位的轉(zhuǎn)化LOOP2: MOV 32H,A ;最低位存于H中 RET 5.3數(shù)碼管顯示程序DIS

22、P: MOV R4,#00H SETB P1.5 SETB P1.6;顯示最高位LOOP3: MOV DPTR,#TAB MOV A,30H ;將最高位存入A中 MOVC A,A+DPTR ;查表 ADD A,#80H ;顯示小數(shù)點(diǎn) SETB WELA2 ;位選選通 MOV P0,#0FEH NOP ;延時(shí)us CLR WELA2 ;清位選 SETB WELA1 ;置位選 MOV P0,A ;將顯示值送P0口顯示 NOP CLR WELA1 ACALL D10ms1;次高位顯示 MOV DPTR,#TAB MOV A,31H ;將最次位存入A中 MOVC A,A+DPTR ;查表 SETB W

23、ELA2 MOV P0,#0FDH NOP CLR WELA2 SETB WELA1 MOV P0,A NOP CLR WELA1 ACALL D10ms1;最低位顯示 MOV DPTR,#TAB MOV A,32H MOVC A,A+DPTR SETB WELA2 MOV P0,#0FBH NOP CLR WELA2 SETB WELA1 MOV P0,A NOP CLR WELA1 ACALL D10ms1;通道號顯示 MOV DPTR,#TAB MOV A,33H MOVC A,A+DPTR SETB WELA2 MOV P0,#0F7H NOP CLR WELA2 SETB WELA1

24、 MOV P0,A NOP CLR WELA1 ACALL D10ms1 DJNZ R4,LOOP3RE第6章 系統(tǒng)調(diào)試及結(jié)果分析6.1 硬件調(diào)試及分析第一步 目測。檢查外部的各種元件或者是電路是否有斷點(diǎn)。第二步 用萬用表測試。先用萬用表復(fù)核目測中有疑問的連接點(diǎn),再檢測 各種電源線與地線之間是否有短路現(xiàn)象。第三步 加電檢測。給板加電,檢測所有插座或是器件的電源端是否符合要求值 第四步 聯(lián)機(jī)檢查。因?yàn)橹挥杏脝纹瑱C(jī)開發(fā)系統(tǒng)才能完成對用戶系統(tǒng)的調(diào)試。 動態(tài)調(diào)試是在用戶系統(tǒng)工作的情況下發(fā)現(xiàn)和排除用戶系統(tǒng)硬件中存在的器件內(nèi)部故障、器件連接邏輯錯(cuò)誤的一種硬件檢查。動態(tài)調(diào)試的一般方法是由近及遠(yuǎn)、由分到合。由

25、分到合是指首先按邏輯功能將用戶系統(tǒng)硬件電路分為若干塊,當(dāng)調(diào)試電路時(shí),與該元件無關(guān)的器件全部從用戶系統(tǒng)中去掉,這樣可以將故障范圍限定在某個(gè)局部的電路上。當(dāng)各塊電路無故障后,將各電路逐塊加入系統(tǒng)中,在對各塊電路功能及各電路間可能存在的相互聯(lián)系進(jìn)行調(diào)試。由分到合的調(diào)試既告完成。由近及遠(yuǎn)是將信號流經(jīng)的各器件按照距離單片機(jī)的邏輯距離進(jìn)行由近及遠(yuǎn)的分層,然后分層調(diào)試。調(diào)試時(shí),仍采用去掉無關(guān)元件的方法,逐層調(diào)試下去,就會定位故障元件了。在調(diào)試過程中我們發(fā)現(xiàn)在5V量程下,標(biāo)準(zhǔn)電壓表的顯示值2.50V,而數(shù)碼管顯示2.406;標(biāo)準(zhǔn)電壓表顯示4.44V,數(shù)碼管示值為4.420。數(shù)碼管顯示結(jié)果有誤差是由于ADC08

26、09輸出的二進(jìn)制碼數(shù)轉(zhuǎn)換為BCD碼數(shù)的換算方法有一定誤差導(dǎo)致。起初我們開始用的ADC時(shí)鐘電路是單片機(jī)內(nèi)部ALE經(jīng)過D觸發(fā)器分頻得到的,但在實(shí)際電路中卻不起作用,測ALE引腳無法檢測到信號,導(dǎo)致0809無法采集到模擬信號,得到的全為5V電壓,最后我們采用的是直接外接一個(gè)0.5M的外部時(shí)鐘電路給ADC0809芯片。模擬數(shù)據(jù)采集中原本設(shè)想的的是調(diào)節(jié)其中某一電位器,其相對應(yīng)的那一路電壓發(fā)生改變,但在實(shí)際運(yùn)行過程中其相鄰幾路電壓也隨之變化,經(jīng)過分析,可能是模擬地和數(shù)字地不能接在一起,調(diào)整之后,問題得到解決。6.2 軟件調(diào)試及分析 由于程序比較多,整體調(diào)試不容易發(fā)現(xiàn)和改正錯(cuò)誤,故采取子程序調(diào)試的方法,但要

27、明確子程序的具體功能。例如:調(diào)試顯示子程序時(shí),只將顯示子程序進(jìn)行匯編,確認(rèn)無誤后單步執(zhí)行,觀察CPU窗口和DATA窗口以及CODE窗口相應(yīng)單元的變化是否跟預(yù)期的一樣。如果有問題找出問題所在。采取各個(gè)擊破的方法調(diào)試好各個(gè)子程序。 確定各子程序無誤后,再調(diào)試完整的程序,要注意各子程序之間的銜接以及和主程序之間的調(diào)用和返回。運(yùn)行后,觀察有無鍵盤顯示功能。若運(yùn)行結(jié)果不正確,首先應(yīng)根據(jù)程序運(yùn)行的實(shí)際現(xiàn)象分析判斷哪些因素可引起相關(guān)故障,再通過調(diào)試方法逐一認(rèn)證和排除。通過反復(fù)調(diào)試,發(fā)現(xiàn)并排除軟件與硬件存在的各類問題,以滿足系統(tǒng)設(shè)計(jì)的預(yù)期目的。 在試驗(yàn)中,耗時(shí)最多的是終端服務(wù)程序,程序中不但要考慮寄存器的復(fù)用

28、問題,還要考慮在運(yùn)行中斷服務(wù)程序時(shí)將改變一些值。所以在中斷程序開始就將一些需要保存的值推入堆棧,在中斷程序結(jié)束時(shí)彈出堆棧。但在調(diào)試中,在判斷按了某個(gè)鍵后,跳到RETI時(shí)忘了將壓入堆棧的值彈出堆棧,程序沒有報(bào)錯(cuò),但鍵值讀不出來,一直檢查,最后才發(fā)現(xiàn)了問題所在。改變位置后,程序就能夠出來,按下指定鍵后能夠?qū)崿F(xiàn)試驗(yàn)所要求的功能。6.3 調(diào)試結(jié)果 上電之后,程序開始從0通道開始循環(huán)采樣。數(shù)碼管顯示每一路模擬電壓采樣的值并且能夠顯示通道號。為了是功能更加完善,我們多加了一個(gè)矩陣鍵盤。在此基礎(chǔ)上按相應(yīng)鍵號后,從特定的通道開始進(jìn)行循環(huán)采樣并顯示改變輸入信號和通道值。所有功能實(shí)現(xiàn)后,將采樣值和實(shí)測值比較,誤差

29、比較大,且實(shí)測值的小數(shù)位大于5時(shí),第一位的小數(shù)的誤差在5之內(nèi),剛開始懷疑是硬件問題,將八個(gè)通道的值都比較后發(fā)現(xiàn)都存在一樣的問題,開始懷疑是軟件問題。在檢查軟件時(shí)發(fā)現(xiàn)在判斷是否加5的標(biāo)志的建立存在問題。仔細(xì)分析后將問題解決后就能夠?qū)⒄`差控制在百分之二內(nèi)。 表6-1實(shí)驗(yàn)測量數(shù)據(jù)采集通道號012 3 4 5 67實(shí)際值(V) 2.41.43.00.42.41.32.12.4顯示值(V)2.41.32.90.42.51.42.02.4通過實(shí)際顯示值與萬用表測得的數(shù)據(jù)可知,我們的八路采集系統(tǒng)是可靠的,可以很好的采集到格各路的數(shù)據(jù)并且準(zhǔn)確的顯示出來! 總結(jié)經(jīng)過這此單片機(jī)課程設(shè)計(jì),同學(xué)們學(xué)會了很多東西。比如

30、,對匯編語言的理解就已經(jīng)有了一個(gè)更進(jìn)一步的理解,同時(shí)也對那些同學(xué)們已經(jīng)學(xué)過的各種計(jì)算機(jī)語言進(jìn)行了一個(gè)簡單的對比。在經(jīng)過大一的語言課程設(shè)計(jì)和大三的電子電路課程設(shè)計(jì)以及此次單片機(jī)課程設(shè)計(jì)。使同學(xué)們養(yǎng)成了模塊化工程設(shè)計(jì)方法的習(xí)慣,在設(shè)計(jì)功能模塊時(shí)候,得先確定是什么功能模塊,并紿模塊讀取地址或數(shù)據(jù)和存儲地址或傳出變量。只要這樣,在需要時(shí)候進(jìn)行調(diào)用或中斷就可以了。經(jīng)過這次經(jīng)歷,同學(xué)們不僅加深了對單片機(jī)理論的理解,還熟悉和掌握了單片機(jī)的許多基礎(chǔ)設(shè)計(jì)語言和模擬單片機(jī)軟件程序,將理論很好地應(yīng)用到實(shí)際當(dāng)中去,而且同學(xué)們還學(xué)會了如何去培養(yǎng)他們的創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新,是要同學(xué)們學(xué)會將理論很好

31、地聯(lián)系實(shí)際,并不斷地去開動自己的大腦,從為人類造福為意愿出發(fā),做自己力所能及的,別人卻沒想到的事。使之不斷地戰(zhàn)勝自己,超越前人。這個(gè)設(shè)計(jì)過程中,同學(xué)們遇到過許多次失敗的考驗(yàn),就比如,自己對實(shí)際生活中的不了解給整個(gè)設(shè)計(jì)帶來的困擾,真想要就此罷休,然而,就在想要放棄的那一刻,同學(xué)們明白了,原來結(jié)果并不那么重要,更應(yīng)該引起同學(xué)們重視的是創(chuàng)作的這一整個(gè)過程。這次課程設(shè)計(jì)讓同學(xué)們受益匪淺,無論從知識上還是其他的各個(gè)方面。上課的時(shí)候的學(xué)習(xí)從來沒有見過真正的單片機(jī),只是從理論的角度去理解枯燥乏味。但在實(shí)習(xí)中見過甚至使用了單片機(jī)及其系統(tǒng),能夠理論聯(lián)系實(shí)際的學(xué)習(xí),開闊了眼界,提高了單片機(jī)知識的理解和水平。在這次

32、課程設(shè)計(jì)中又讓我體會到了合作與團(tuán)結(jié)的力量,當(dāng)遇到不會或是設(shè)計(jì)不出來的地方,同學(xué)們就會在QQ群里討論或者是同學(xué)之間相互幫助。團(tuán)結(jié)就是力量,無論在現(xiàn)在的學(xué)習(xí)中還是在以后的工作中,團(tuán)結(jié)都是至關(guān)重要的,有了團(tuán)結(jié)會有更多的理念、更多的思維、更多的情感。  單片機(jī)是很重要的一門課程,老師和一些工作的朋友都曾說過,如果學(xué)好一門單片機(jī),就憑這個(gè)技術(shù)這門手藝找一個(gè)好工作也不成問題。盡管同學(xué)們在課堂學(xué)到的內(nèi)容很有限,但在以后的學(xué)習(xí)中單片機(jī)還需要好好的深入研究和學(xué)習(xí),學(xué)好了單片機(jī)也就多了一項(xiàng)生存的本錢。最后感謝老師對學(xué)生的精心指導(dǎo)和幫助,感謝同學(xué)們對我的幫助。參考文獻(xiàn)1孫涵芳MCS-51系列單片機(jī)原理及應(yīng)

33、用M 北京航空航天大學(xué)出版社1996-42夏繼強(qiáng). 單片機(jī)實(shí)驗(yàn)與實(shí)踐教程. 北京:北京航空航天大學(xué)出版社, 20013尹建華、張惠群微型計(jì)算機(jī)原理與接口技術(shù) 第2版M 北京:高等教育出版社,20084 陳黎娟. 單片機(jī)技術(shù)實(shí)踐教程. 南昌:南昌航空大學(xué)出版社, 2009-35張先庭. 單片機(jī)原理、接口與C51應(yīng)用程序設(shè)計(jì). 第1版M 北京:國防工業(yè)出版社,2011-12 附錄一 八路數(shù)據(jù)采集的原理總圖附錄二程序清單及注釋W(xué)ELA1 BIT P1.6;位選信號接P1.6WELA2 BIT P1.7;位選信號接P1.7ORG 0000HAJMP MAINMAIN:MOV R3,#00H ;R3清L

34、K: MOV P3,#00111000B ;給P3口賦值 JB P3.0,AN ;P3.0為高轉(zhuǎn)AN JB P3.1,AN ;P3.1為高轉(zhuǎn)AN JB P3.2,AN ;P3.2為高轉(zhuǎn)AN MOV P1,R3 ;P1口清 ACALL START ;啟動AD轉(zhuǎn)換 MOV 33H,R3 ;將R3值存于H中 ACALL DISP ;調(diào)用顯示子程序 INC R3 CJNE R3,#08H,LK ;通道號顯示,當(dāng)為時(shí)重新回到 AJMP MAIN ;跳到主函數(shù)AN: ACALL D10MS ;延時(shí) JB P3.0,ANA ;P3.0為高轉(zhuǎn)ANA JB P3.1,ANB ;P3.1為高轉(zhuǎn)ANB JB P3.

35、2,ANC ;P3.2為高轉(zhuǎn)ANC AJMP LKANA: MOV P3,#00000001B ;P3口賦值x01 JB P3.5,AN0 ;當(dāng)P3.5為高,則跳到通道顯示通道的數(shù)據(jù) JB P3.4,AN1 ;當(dāng)P3.4為高,則跳到通道顯示通道的數(shù)據(jù) JB P3.3,AN2 ;當(dāng)P3.3為高,則跳到通道顯示通道的數(shù)據(jù) AJMP MAINANB: MOV P3,#00000010B ;P3口賦值x02 JB P3.5,AN3 ;當(dāng)P3.5為高,則跳到通道顯示通道的數(shù)據(jù) JB P3.4,AN4 ;當(dāng)P3.4為高,則跳到通道顯示通道的數(shù)據(jù) JB P3.3,AN5 ;當(dāng)P3.3為高,則跳到通道顯示通道

36、的數(shù)據(jù) AJMP MAINANC: MOV P3,#00000100B ;P3口賦值x04 JB P3.5,AN6;當(dāng)P3.5為高,則跳到通道顯示通道的數(shù)據(jù) JB P3.4,AN7;當(dāng)P3.5為高,則跳到通道顯示通道的數(shù)據(jù) AJMP MAINAN0:CLR P1.0;通道信號采集與顯示 CLR P1.1 CLR P1.2;000為通道地址 MOV 33H,#00HACALL DISP ;通道號顯示為 ACALL START ACALL DISP AJMP LKAN1:SETB P1.0 ;通道信號采集與顯示 CLR P1.1 CLR P1.2 ;001為通道地址 MOV 33H,#01HACA

37、LL DISP ;顯示通道號 ACALL START ACALL DISP AJMP LKAN2:CLR P1.0 ;通道信號采集與顯示 SETB P1.1 CLR P1.2 MOV 33H,#02HACALL DISP ACALL START ACALL DISP AJMP LKAN3:SETB P1.0 ;通道信號采集與顯示 SETB P1.1 CLR P1.2 MOV 33H,#03HACALL DISP ACALL START ACALL DISP AJMP LKAN4:CLR P1.0 ;通道信號采集與顯示 CLR P1.1 SETB P1.2 MOV 33H,#04HACALL D

38、ISP ACALL START ACALL DISP AJMP LKAN5:SETB P1.0;通道信號采集與顯示 CLR P1.1 SETB P1.2 MOV 33H,#05HACALL DISP ACALL START ACALL DISP AJMP LKAN6:CLR P1.0;通道信號采集與顯示 SETB P1.1 SETB P1.2 MOV 33H,#06HACALL DISP ACALL START ;調(diào)用START子程序,開始AD轉(zhuǎn)換 ACALL DISP ;調(diào)用顯示子程序,將所得的值在數(shù)碼管顯示 AJMP LKAN7:SETB P1.0 ;通道信號采集與顯示 SETB P1.1

39、 SETB P1.2 MOV 33H,#07HACALL DISP ACALL START;調(diào)用START子程序,開始AD轉(zhuǎn)換 ACALL DISP;調(diào)用顯示子程序,將所得的值在數(shù)碼管顯示 AJMP LK;AD采集開始子程序 START: CLR P3.6 ;START置位低 NOP NOP NOP NOP;延時(shí)us SETB P3.6;將START引腳點(diǎn)平拉高 NOP NOP NOP NOP ;延時(shí)us CLR P3.6 ;又將START拉低RE: ; JB P3.7,RE ;檢測AD轉(zhuǎn)換是否完成 ACALL D10ms1 ;調(diào)用延時(shí)子程序 ACALL AD ACALL DISP ;調(diào)用顯示子程序 RET;此子程序是將

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論