2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p><b>  摘要</b></p><p><b>  引言</b></p><p>  一 課程設(shè)計題目及任務(wù)要求</p><p>  1.1課程設(shè)計主要任務(wù)</p><p>  1.2課程設(shè)

2、計的要求</p><p>  二 電路設(shè)計方案及原理說明</p><p>  2.0課程設(shè)計的方案 </p><p>  2.1 ADC0809模數(shù)轉(zhuǎn)換芯片</p><p>  2.2 AT89C51單片機</p><p>  2.3 4個共陽7段數(shù)碼管顯示器</p><p>  2.4 系

3、統(tǒng)整體工作原理</p><p><b>  2.4.1硬件原理</b></p><p>  2.4.2軟件原理分析</p><p><b>  三 設(shè)計總體框圖</b></p><p><b>  3.1硬件總體框圖</b></p><p><b

4、>  3.2主程序流程圖</b></p><p>  3.3待測信號源單元電路</p><p>  3.4 AT89C51單片機</p><p>  3.5單片機控制單元</p><p>  3.5.1外部時鐘電路</p><p><b>  3.5.2復(fù)位電路</b></

5、p><p>  3.5.3數(shù)碼管顯示模塊</p><p><b>  四 實驗仿真</b></p><p>  五 總結(jié)及設(shè)計心得</p><p><b>  六 致謝</b></p><p><b>  七 參考文獻</b></p>

6、<p>  摘要:本設(shè)計待測的輸入電壓為8路,電壓范圍為0~5V,使用目前廣泛使用的AT89C51來做控制系統(tǒng),用ADC0809來進行模擬電壓的采集及模數(shù)轉(zhuǎn)換,實現(xiàn)采集8路數(shù)據(jù),并將結(jié)果在四位一體數(shù)碼管上進行顯示。該系統(tǒng)主要包括幾大模塊:數(shù)據(jù)采集模塊、A/D轉(zhuǎn)換模塊、控制模塊、顯示模塊。顯示部分由LED數(shù)碼顯示器構(gòu)成。該數(shù)字電壓表具有電路簡單,成本低等優(yōu)點,可以方便地進8路A/D轉(zhuǎn)換量的測量。</p><p

7、>  關(guān)鍵詞:電壓采集、ADC0809、A/D轉(zhuǎn)換、單片機89C51、數(shù)碼管顯示</p><p><b>  引言</b></p><p>  隨著計算機技術(shù)的飛速發(fā)展和普及,數(shù)據(jù)采集系統(tǒng)在多個領(lǐng)域有著廣泛的應(yīng)用。數(shù)據(jù)采集是工、農(nóng)業(yè)控制系統(tǒng)中至關(guān)重要的一環(huán),在醫(yī)藥、化工、食品、等領(lǐng)域的生產(chǎn)過程中,往往需要隨時檢測各生產(chǎn)環(huán)節(jié)的溫度、濕度、流量及電壓等參數(shù)。同時,還

8、要對某一檢測點任意參數(shù)能夠進行隨機查尋,將其在某一時間段內(nèi)檢測得到的數(shù)據(jù)經(jīng)過轉(zhuǎn)換提取出來,以便進行比較,做出決策,調(diào)整控制方案,提高產(chǎn)品的合格率,產(chǎn)生良好的經(jīng)濟效益。 隨著工、農(nóng)業(yè)的發(fā)展,多路數(shù)據(jù)采集勢必將得到越來越多的應(yīng)用,為適應(yīng)這一趨勢,作這方面的研究就顯得十分重要。在科學(xué)研究中,運用數(shù)據(jù)采集系統(tǒng)可獲得大量的動態(tài)信息,也是獲取科學(xué)數(shù)據(jù)和生成知識的重要手段之一??傊?,不論在哪個應(yīng)用領(lǐng)域中,數(shù)據(jù)采集與處理將直接影響工作效率和所取

9、得的經(jīng)濟效益。 </p><p>  采集系統(tǒng),從嚴格的意義上來說,應(yīng)該是用計算機控制的多路數(shù)據(jù)自動檢測或巡回檢測,并且能夠?qū)?shù)據(jù)實行存儲、處理、分析計算以及從檢測的數(shù)據(jù)中提取可用的信息,供顯示、記錄、打印或描繪的系統(tǒng)。</p><p>  電壓測量成為廣大電子領(lǐng)域中必須掌握的過程,并且對測量的精度和采集功能的要求也越來越高,而電壓的測量與顯示系統(tǒng)甚為重要。在課程設(shè)計中對一路電壓采集系統(tǒng)與

10、顯示系統(tǒng)作了基本的研究。電壓采集與通信控制采用了模塊化的設(shè)計,并用單片機8051來實現(xiàn),硬件部分是以單片機為核心,還包括模-數(shù)轉(zhuǎn)換模塊,顯示模塊,和串行接口部分,還有一些簡單的外圍電路。1路被測電壓通過通用ADC0809模-數(shù)轉(zhuǎn)換,實現(xiàn)對采集到的電壓進行模擬量到數(shù)字量的轉(zhuǎn)換,由單片機對數(shù)據(jù)進行處理,用數(shù)碼管顯示模塊來顯示所采集的結(jié)果,由相關(guān)控制器完成數(shù)據(jù)接收和顯示,匯編程序編寫了更加明了化數(shù)據(jù)顯示界面。本系統(tǒng)主要包括四大模塊:數(shù)據(jù)采集模

11、塊、控制模塊、顯示模塊、A/D轉(zhuǎn)換模塊。繪制電路原理圖與工作流程圖,并進行調(diào)試,最終設(shè)計完成了該系統(tǒng)的硬件電路。在軟件編程上,采用了匯編語言進行編程,開發(fā)環(huán)境使用相關(guān)集成開發(fā)環(huán)境。開發(fā)了顯示模塊程序、A/D轉(zhuǎn)換程序。</p><p><b>  設(shè)計任務(wù)與要求</b></p><p>  1.1課程設(shè)計主要任務(wù)</p><p>  A、通過設(shè)計

12、是學(xué)生掌握利用ADC0809及其適當?shù)耐鈬娐穼崿F(xiàn)直流電壓的采集以及利用LED顯示功能的方法。</p><p>  B、進一步掌握ADC0809的功能特點、工作原理和正確使用方法。</p><p>  C、進一步了解外圍器件接口的基本原理與使用技術(shù)。</p><p>  1.2課程設(shè)計的要求</p><p>  A、利用ADC0809及其適當

13、的外圍電路實現(xiàn)直流電壓的采集。</p><p>  B、采集結(jié)果在LED數(shù)碼管上顯示出來,數(shù)據(jù)范圍為:0~5v</p><p>  C、繪制硬件連接圖,編寫相應(yīng)的控制程序。</p><p>  D、撰寫設(shè)計報告、調(diào)試報告、設(shè)計心得。</p><p>  二 、電路設(shè)計方案及原理說明</p><p>  依據(jù)綜合課程設(shè)計

14、的要求,利用ADC0809設(shè)計一個單通道模擬電壓采集顯示電路,要求對所接通道變化的模擬電壓值進行采集,采集來的數(shù)字量送至數(shù)碼管指示出來,通過相關(guān)轉(zhuǎn)換在數(shù)碼管上精確顯示出來。本課程設(shè)計相當于測直流電壓的大小,通過對電壓值的采集與處理,而由所學(xué)微控制器的知識可知,可以利用單片機的模數(shù)轉(zhuǎn)換來實現(xiàn)這一設(shè)計,進一步把相應(yīng)的電壓值精確顯示出來。</p><p>  模數(shù)轉(zhuǎn)換就是利用單片機控制模數(shù)轉(zhuǎn)換芯片(A/D),讓它對外部

15、的一個模擬信號進行采樣、量化、編碼然后轉(zhuǎn)化為一個離散的數(shù)字量,提供給控制器作進一步處理。對于常用的A/D轉(zhuǎn)換芯片有ADC0809、ADC0808等。它們都是8位的模數(shù)轉(zhuǎn)換芯片,就是把模擬量轉(zhuǎn)換為一個8位的二進制數(shù)。利用單片機AT89C51與ADC0809設(shè)計一個電壓采集系統(tǒng),將模擬信號(實際設(shè)計時采用0~5 V)之間的直流電壓值轉(zhuǎn)換成數(shù)字量信號0~FF,以數(shù)碼管顯示。Proteus軟件啟動仿真,當前輸入電壓為2.5 0V,轉(zhuǎn)換成數(shù)字值為

16、7FH,用鼠標指針調(diào)節(jié)電位器尺,可改變輸入模/數(shù)轉(zhuǎn)換器ADC0809的電壓,并通過虛擬電壓表觀察ADC0809模擬量輸入信號的電壓值,LED數(shù)碼管實時顯示相應(yīng)的數(shù)值量。</p><p>  此次電壓表總體的方案就是用單片機的I/O口輸出信號來控制A/D啟動轉(zhuǎn)換,將送入的模擬量轉(zhuǎn)換為一個8位數(shù)字量,然后再通過I/O口送回單片機內(nèi)部進行處理,單片機進行一系列的運算和校準后,通過數(shù)碼管將電壓值顯示出來。而在方案的實現(xiàn)上

17、由兩部分組成:硬件部分和軟件部分。硬件即電子元器件的選擇且將它們連接成一個可行的硬件系統(tǒng),軟件是硬件系統(tǒng)功能化的重要組成部分。硬件的設(shè)計可以在Proteus上進行,軟件可以用Proteus自帶的匯編工具,然后在Proteus將硬軟件相結(jié)合,進行仿真,再根據(jù)結(jié)果不斷對硬件進行改進,對軟件進行調(diào)試,實現(xiàn)電壓的采集與顯示功能。</p><p>  2.1 ADC0809模數(shù)轉(zhuǎn)換芯片</p><p&g

18、t;  1.ADC0809是帶有8位A/D轉(zhuǎn)換器、8路多路開關(guān)以及微處理機兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉(zhuǎn)換器,可以和單片機直接接口。 </p><p> ?。?)ADC0809的內(nèi)部邏輯結(jié)構(gòu) </p><p>  由下圖可知,ADC0809由一個8路模擬開關(guān)、一個地址鎖存與譯碼器、一個A/D轉(zhuǎn)換器和一個三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個模擬通道,允許8路模擬量分時

19、輸入,共用A/D轉(zhuǎn)換器進行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存A/D轉(zhuǎn)換完的數(shù)字量,當OE端為高電平時,才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。</p><p>  (2).ADC0809引腳結(jié)構(gòu) </p><p>  ADC0809各腳功能如下:D7-D0:8位數(shù)字量輸出引腳。IN0-IN7:8位模擬量輸入引腳。VCC:+5V工作電壓。GND:地。REF(+):參考電壓正端。REF(-

20、):參考電壓負端。START:A/D轉(zhuǎn)換啟動信號輸入端。ALE:地址鎖存允許信號輸入端。(以上兩種信號用于啟動A/D轉(zhuǎn)換).EOC:轉(zhuǎn)換結(jié)束信號輸出引腳,開始轉(zhuǎn)換時為低電平,當轉(zhuǎn)換結(jié)束時為高電平。OE:輸出允許控制端,用以打開三態(tài)數(shù)據(jù)輸出鎖存器。CLK:時鐘信號輸入端(一般為500KHz)。A、B、C:地址輸入線。</p><p>  ADC0809對輸入模擬量要求:信號單極性,電壓范圍是0-5V

21、,若信號太小,必須進行放大;輸入的模擬量在轉(zhuǎn)換過程中應(yīng)該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。 </p><p>  地址輸入和控制線:4條 </p><p>  ALE為地址鎖存允許輸入線,高電平有效。當ALE線為高電平時,地址鎖存與譯碼器將A,B,C三條地址線的地址信號進行鎖存,經(jīng)譯碼后被選中的通道的模擬量進入轉(zhuǎn)換器進行轉(zhuǎn)換。A,B和C為地址輸入線,用于選通IN0

22、-IN7上的一路模擬量輸入。通道選擇表如下表所示。</p><p>  數(shù)字量輸出及控制線:11條 </p><p>  ST為轉(zhuǎn)換啟動信號。當ST上跳沿時,所有內(nèi)部寄存器清零;下跳沿時,開始進行A/D轉(zhuǎn)換;在轉(zhuǎn)換期間,ST應(yīng)保持低電平。EOC為轉(zhuǎn)換結(jié)束信號。當EOC為高電平時,表明轉(zhuǎn)換結(jié)束;否則,表明正在進行A/D轉(zhuǎn)換。OE為輸出允許信號,用于控制三條輸出鎖存器向單片機輸出轉(zhuǎn)換得到的數(shù)據(jù)

23、。OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù);OE=0,輸出數(shù)據(jù)線呈高阻狀態(tài)。D7-D0為數(shù)字量輸出線。 </p><p>  CLK為時鐘輸入信號線。因ADC0809的內(nèi)部沒有時鐘電路,所需時鐘信號必須由外界提供,通常使用頻率為500KHZ, </p><p>  VREF(+),VREF(-)為參考電壓輸入。</p><p>  2. ADC0809應(yīng)用說明 </p&g

24、t;<p> ?。?). ADC0809內(nèi)部帶有輸出鎖存器,可以與AT89S51單片機直接相連。 </p><p>  (2). 初始化時,使ST和OE信號全為低電平。 </p><p>  (3). 送要轉(zhuǎn)換的哪一通道的地址到A,B,C端口上。 </p><p> ?。?). 在ST端給出一個至少有100ns寬的正脈沖信號。 </p>

25、<p>  (5). 是否轉(zhuǎn)換完畢,我們根據(jù)EOC信號來判斷。 </p><p> ?。?). 當EOC變?yōu)楦唠娖綍r,這時給OE為高電平,轉(zhuǎn)換的數(shù)據(jù)就輸出給單片機了。</p><p>  2.2 AT89C51單片機</p><p>  ADC0809與8051單片機的硬件接口有3種形式,分別是查詢方式、中斷方式和延時等待方式,本題中選用中斷接口方式。&l

26、t;/p><p>  由于ADC0809無片內(nèi)時鐘,時鐘信號可由單片機的ALE信號經(jīng)D觸發(fā)器二分頻后獲得。該題目中單片機時鐘頻率采用12MHz,則ALE輸出的頻率是2MHz,四分頻后為500KHz,符合ADC0809對頻率的要求。</p><p>  由于ADC0809內(nèi)部設(shè)有地址鎖存器,所以通道地址由P0口的低3位直接與ADC0809的A、B、C相連。通道基本地址為0000H~0007H。其

27、對應(yīng)關(guān)系上面已做介紹。</p><p>  控制信號:將P2.7作為片選信號,在啟動A/D轉(zhuǎn)換時,由單片機的寫信號和P2.7控制ADC的地址鎖存和啟動轉(zhuǎn)換。由于ALE和START連在一起,因此ADC0809在鎖存通道地址的同時也啟動轉(zhuǎn)換。</p><p>  在讀取轉(zhuǎn)換結(jié)果時,用單片機的P3.0產(chǎn)生正脈沖作為OE信號,用來打開三態(tài)輸出鎖存器。</p><p>  其

28、接口電路如圖2-2所示。</p><p>  當8051通過對0000H~0007H(基本地址)中的某個口地址進行一次寫操作,即可啟動相應(yīng)通道的A/D轉(zhuǎn)換;當轉(zhuǎn)換結(jié)束后,ADC0809的EOC端向8051發(fā)出中斷申請信號;8051通過對0000H~0007H中的某個口地址進行一次讀操作,即可得到轉(zhuǎn)換結(jié)果。</p><p>  2.3 4個共陽7段數(shù)碼管顯示器</p><

29、p>  共陽極7段LED數(shù)碼管和共陰極LED數(shù)碼管結(jié)構(gòu)類似,其引腳配置,如圖所示。從圖中可以看出7段LED數(shù)碼管同樣由8個發(fā)光二極管組成,其中7個發(fā)光二極管構(gòu)成字形“8”,另一個發(fā)光二極管構(gòu)成小數(shù)點。</p><p>  共陽極7段LED數(shù)碼管的內(nèi)部結(jié)構(gòu),如圖所示。其中所有發(fā)光二極管的陽極為公共端,接+5v電壓。如果發(fā)光二極管的陰極為低電平的時候,發(fā)光二極管導(dǎo)通,該字段發(fā)光;反之,如果發(fā)光二極管的陰極為高電

30、平的時候,發(fā)光二極管截止,該字段不發(fā)光。</p><p>  共陽極7段LED引腳配置 共陽極7段LED結(jié)構(gòu)圖</p><p>  2.4 系統(tǒng)整體工作原理</p><p><b>  1 硬件設(shè)計</b></p><p><b> ?。?)系統(tǒng)構(gòu)成</b></p>

31、<p>  該系統(tǒng)主要包括幾大模塊:數(shù)據(jù)采集模塊、A/D轉(zhuǎn)換模塊、控制模塊、顯示模塊、按鍵模塊等。采用AT89C51作為控制模塊,ADC0809作為A/D轉(zhuǎn)換模塊的核心,ADC0809本身具有8路模擬量輸入端口,通過C、B、A,3位地址輸入端,能從8路中選擇一路進行轉(zhuǎn)換。如每隔一段時間依次輪流改變3位地址輸入端的地址,就能依次對8路輸入電壓進行測量。LED數(shù)碼管的顯示采用軟件譯碼動態(tài)顯示,通過按鍵模塊的操作可以選擇8路循環(huán)顯

32、示,也可以選擇某條單路顯示。</p><p><b> ?。?)數(shù)據(jù)采集電路</b></p><p>  數(shù)據(jù)采集電路是系統(tǒng)的主要組成部分,ADC0809具有8路模擬量輸入通道IN0~IN7,通過3位地址輸入端C、B、A(引腳23~25)進行選擇。引腳22為地址鎖存控制端ALE,當輸入為高電平時,C、B、A引腳輸入的地址鎖存于ADC0809內(nèi)部鎖存器中,經(jīng)內(nèi)部譯碼電路

33、譯碼選中相應(yīng)的模擬通道。引腳6為啟動轉(zhuǎn)換控制端START,當輸入一個2 US寬的高電平脈沖時,就啟動ADC0809開始對輸入通道的模擬量進行轉(zhuǎn)換。引腳7為A/D轉(zhuǎn)換器,當開始轉(zhuǎn)換時,EOC信號為低電平,經(jīng)過一段時間,換結(jié)束,轉(zhuǎn)換結(jié)束信號EOC輸出高電平,轉(zhuǎn)換結(jié)果存放干ADC0809內(nèi)部的輸出數(shù)據(jù)寄存器中。引腳9腳為A/D轉(zhuǎn)換數(shù)據(jù)輸出允許控制端OE,當0E為高電平時,存放于輸出數(shù)據(jù)鎖存器中的數(shù)據(jù)通過ADC0809的數(shù)據(jù)線DO~D7輸出。引

34、腳10為ADC0809的時鐘信號輸人端CLOCK。在連接時,ADC0809的數(shù)據(jù)線D0~D7與AT89C51的P1口相連接,ADC0809的地址引腳、地址鎖存端ALE、啟動信號START、數(shù)據(jù)輸出允許控制端OE分別與AT89C51的P3口相連接,轉(zhuǎn)換結(jié)束信號EOC與AT89C52的P3.1相連接</p><p><b>  2 軟件設(shè)計</b></p><p><

35、;b> ?。?)主程序</b></p><p>  主程序包含初始化部分,調(diào)用A/D轉(zhuǎn)換子程序和調(diào)用顯示子程序。</p><p> ?。?)數(shù)據(jù)處理子程序</p><p>  ADC0809轉(zhuǎn)換之后輸出的結(jié)果是8位二進制數(shù)。由公式(1)可知,當ADC0809輸出</p><p>  為(1l1l11111)時,輸入電壓值V

36、=5.00V{當ADC0809輸出為(00000000)時,輸入電壓值為0.0O0V;當ADC0809輸出為(10000000)時,輸入電壓值V =2.50V。由于單片機進行數(shù)學(xué)運算時結(jié)果只取整數(shù)部分,因此當輸出為(10000000)時計算出的電壓值V =2.OOV,很不準確。為了提高精確度,必須把小數(shù)部分保留,具體運算方式如公式(2)。個位:Dout*196/10000 十分位:(Dout*196/1000)%10 百分位:(Dou

37、t*196/100)%10 千分位:(Dout*196/10)%10 由此得到較為精確的數(shù)值。對上面的硬件部分,按照軟件流程框圖進行軟件設(shè)計。用C語言進行程序的編寫。</p><p>  (下面的是C語言程序,最后面幾頁還有匯編程序及其算法說明,可自己選擇)</p><p>  #include<reg51.h></p><p>  #include

38、<intrins.h></p><p>  #define uchar unsigned char</p><p>  sbit P2_0=P2^0;</p><p>  sbit P2_1=P2^1; //定義數(shù)碼管位碼端口</p><p>  sbit P2_2=P2^2;</p><

39、p>  sbit P2_3=P2^3;</p><p>  sbit OE=P3^0; //定義ADC0808端口</p><p>  sbit EOC=P3^1;</p><p>  sbit ST=P3^2;</p><p>  sbit P3_4=P3^4;</p><p>  s

40、bit P3_5=P3^5;</p><p>  sbit P3_6=P3^6;</p><p>  uchar code table1[]={0x40,0x79,0x24,0x30,0x19,0x12};//帶小數(shù)點的0~5六個</p><p>  uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf

41、8,0x80,0x90};//共陽極0~9十個段碼/段碼</p><p>  uchar volt_data;</p><p>  void init();</p><p>  uchar i;</p><p>  //*********************************</p><p&g

42、t;<b>  //延時子程序</b></p><p>  //*********************************</p><p>  void delay(uchar z)</p><p><b>  {</b></p><p>  uchar x,y;</p>&l

43、t;p>  for(x=z;x>0;x--)</p><p>  for(y=110;y>0;y--);</p><p><b>  }</b></p><p>  //*********************************</p><p>  //將AD轉(zhuǎn)換輸出的數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的</

44、p><p>  //電壓值并且顯示出來</p><p>  //*********************************</p><p>  void convert(uchar volt_data)</p><p><b>  {</b></p><p>  P0=table1[volt_

45、data*196/10000]; //AD轉(zhuǎn)換的個位的電壓值</p><p><b>  P2_0=1;</b></p><p><b>  delay(2);</b></p><p><b>  P2_0=0;</b></p><p>  P0=tab[volt_da

46、ta*196/1000%10];</p><p>  P2_1=1; //顯示小數(shù)點的后的第一位</p><p><b>  delay(2);</b></p><p><b>  P2_1=0;</b></p><p>  P0=tab[volt_data*196/100%10];

47、 </p><p>  P2_2=1; //顯示小數(shù)點的后的第二位</p><p><b>  delay(2);</b></p><p><b>  P2_2=0;</b></p><p>  P0=tab[volt_data*196/10%10];</p><p&

48、gt;  P2_3=1; //顯示小數(shù)點的后的第二位</p><p><b>  delay(2);</b></p><p><b>  P2_3=0;</b></p><p><b>  }</b></p><p>  void main()</p>&l

49、t;p><b>  {</b></p><p>  uchar volt_data;</p><p>  init();//初始化子程序</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>

50、<b>  if(i==5)</b></p><p><b>  {</b></p><p><b>  i=0;</b></p><p><b>  ST=0;</b></p><p><b>  _nop_();</b></

51、p><p><b>  ST=1;</b></p><p><b>  _nop_();</b></p><p>  ST=0; //啟動AD轉(zhuǎn)換</p><p>  if(EOC==0) //等待轉(zhuǎn)換結(jié)束</p><p><b>  d

52、elay(2);</b></p><p>  while(EOC==0);</p><p>  OE=1;//允許輸出</p><p>  volt_data=P1;</p><p>  convert(volt_data); //調(diào)用數(shù)據(jù)處理子程序</p><p>  delay

53、(2);//暫存轉(zhuǎn)換結(jié)果</p><p>  OE=0;//關(guān)閉輸出</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void time

54、0_int(void) interrupt 1</p><p><b>  {</b></p><p>  TH0=(65536-1000)/256; </p><p>  TL0=(65536-1000)%256;</p><p><b>  i++;</b></p><p&

55、gt;<b>  }</b></p><p>  void init()</p><p><b>  {</b></p><p>  P3_4=1;//選擇通道3</p><p><b>  P3_5=1;</b></p><p>&l

56、t;b>  P3_6=0;</b></p><p>  TMOD=0x01;</p><p>  TH0=(65536-1000)/256; </p><p>  TL0=(65536-1000)%256;</p><p>  EA=1;ET0=1;</p><p><b>  i=0;&

57、lt;/b></p><p><b>  TR0=1;</b></p><p><b>  }</b></p><p><b>  設(shè)計框圖</b></p><p><b>  3.1硬件總體框圖</b></p><p>  

58、該系統(tǒng)硬件總體框圖由四個模塊組成,如下圖3所示。在芯片的選擇中,一般的A/D芯片具有多路轉(zhuǎn)換通道,本課程設(shè)計中我們只做一路通道,該通道采集電壓,對采集的電壓值進行采集、處理并顯示,我們還可以通過改變A/D芯片的參考電壓來改變其量程,達到對電壓值的多樣化顯示。A/D芯片將輸入的模擬電壓值轉(zhuǎn)換為一個8位的二進制數(shù)字,再輸送到單片機控制單元,經(jīng)過處理顯示出相應(yīng)電壓值。</p><p><b>  3.2主程序

59、流程圖</b></p><p>  設(shè)計程序部分時,主要應(yīng)包括主函數(shù)和和幾個功能子函數(shù)。主程序流程圖如下圖所示。</p><p>  3.3待測信號源單元電路</p><p>  待測信號源就是直流電壓采集時,所須測電壓值的信號源,其電路圖如圖3-3-1所示。</p><p>  該部分實際上是一個滑動變阻器均接在電源和地兩端,中

60、間的滑線端提供兩路待測信號,該部分提供給模數(shù)轉(zhuǎn)換的通道3。</p><p>  3.4 AT89C51單片機(如下圖所示)</p><p>  3.5單片機控制單元</p><p>  單片機控制單元是整個系統(tǒng)的核心中樞,對外圍進行控制,對數(shù)據(jù)進行運算處理,是連接各部分的紐帶。它主要包括51單片機芯片和其工作所必須的外圍電路,如時鐘振蕩電路和復(fù)位電路等。</p

61、><p>  3.5.1外部時鐘電路</p><p>  主要是通過一個12MHZ的時鐘晶振產(chǎn)生時鐘信號,以作為單片機工作的外部時鐘,其XTAL1和XTAL2分別接入到單片機上相對應(yīng)的引腳。電路圖如圖3-5-1。</p><p>  圖3-5-1 外部時鐘電路(圖中晶振標錯了,應(yīng)為12M,上圖中我就不改了)</p><p>  外部時鐘的晶振頻率

62、為12MHZ,則通過該電路提供給單片機的時鐘也為12MHZ. </p><p><b>  3.5.2復(fù)位電路</b></p><p>  當對單片機的的reset引腳加超過兩個機器周期以上的高電平時,可使單片機復(fù)位,即程序從頭開始執(zhí)行。設(shè)計的復(fù)位電路如圖3-5-2所示:</p><p>  圖3-5-2 復(fù)位電路</p>&l

63、t;p>  3.5.3數(shù)碼管顯示模塊</p><p>  選用了一片集成的共陰極數(shù)碼管,每片是由4塊8段數(shù)碼管組成(包括小數(shù)點位)。這4塊8斷數(shù)碼管共用相同的數(shù)據(jù)輸入線,每塊有一根片選線,只有選中了該數(shù)碼管,它才會點亮并顯示。而通過動態(tài)掃描原理可以使接在同一數(shù)據(jù)線的幾塊數(shù)碼管顯示不同的數(shù)。輸入BCD碼值,就可以在數(shù)碼管上顯示十進制數(shù)字。其中有電壓表起校準對比作用。</p><p>&

64、lt;b>  實驗仿真</b></p><p>  在Proteus仿真軟件平臺上搭建硬件電路,在keil uv2上編寫軟件并經(jīng)編譯連接生產(chǎn)可執(zhí)行的.hex文件,把該文件添加到在Proteus平臺上搭建好的電路的單片機里。運行進行仿真調(diào)試。</p><p>  仿真時,數(shù)碼管有示數(shù),與標準電壓表的示數(shù)差不多,說明各模塊均在正常工作。</p><p>

65、;  例如,在5V量程下,標準電壓表的顯示值2.50V,而數(shù)碼管顯示2.406;標準電壓表顯示4.44V,數(shù)碼管示值為4.420。數(shù)碼管顯示結(jié)果有誤差是由于ADC0809輸出的二進制碼數(shù)轉(zhuǎn)換為BCD碼數(shù)的換算方法有一定誤差導(dǎo)致。仿真結(jié)果如圖4-1</p><p><b>  實驗總結(jié)</b></p><p>  本設(shè)計是基于ADC0809設(shè)計的電壓檢測裝置。采用AT8

66、9C51單片機進行數(shù)據(jù)控制、處理,結(jié)構(gòu)簡單,元件較少,成本較低,軟件采用c語言實現(xiàn),程序簡單可讀寫性強,效率高。能夠?qū)崿F(xiàn)八路待測電壓測量,還能夠自由選擇要測量的通道,與傳統(tǒng)的電路相比,具有方便操作、處理速度快、穩(wěn)定性高、性價比高的優(yōu)點,具有一定的使用價值。</p><p>  通過本次課程設(shè)計,我對模數(shù)轉(zhuǎn)換芯片ADC0809有進一步了解,故我將此次設(shè)計的重點放在了功能的擴展部分模塊的實現(xiàn)方法及顯示的改變上。大三學(xué)

67、期教學(xué)實驗中,通過網(wǎng)上資料及課本信息,我會會了簡單的編程和設(shè)計最重要的是排版效果,在這些過程中我獲益匪淺:加深了對模數(shù)轉(zhuǎn)換的了解,能對其功能進行多元化的應(yīng)用;數(shù)碼管的顯示技術(shù)上,我在以前所存靜態(tài)顯示的基礎(chǔ)上,又掌握了動態(tài)掃描方法;另一個收獲是在課程設(shè)計的過程中,我邊學(xué)邊用C語言,對簡單的C語言編程能夠獨立輕松的完成,C語言在單片機的編程中靈活,功能強大,效率高,簡單明了,具有很多優(yōu)勢,學(xué)會它是此次課程設(shè)計的最大收獲。</p>

68、<p>  本次課程設(shè)計,培養(yǎng)了我運用互聯(lián)網(wǎng)查找資料和綜合應(yīng)用課本理論知識解決實際問題的能力。啟發(fā)了我,在今后的學(xué)習過程中不能懶懶散散,學(xué)的要懂不懂,要把課本上的知識學(xué)精通,同時也要多學(xué)習課外知識來擴張自己的知識面;在計算和動手方面要更加的耐心加細心,才能把事情做得更好;在生活和學(xué)習中,要和身邊的人團結(jié)互助,能幫的就要盡力幫。</p><p>  由于能力有限,我的課程設(shè)計難免有一些誤差和錯誤,還望

69、老師批評和指正!</p><p><b>  致謝</b></p><p>  本課程設(shè)計是在我的導(dǎo)師張斌張老師的親切關(guān)懷和悉心指導(dǎo)下完成的。他嚴肅的科學(xué)態(tài)度,嚴謹?shù)闹螌W(xué)精神,精益求精的工作作風,深深地感染和激勵著我。從課題的選擇到項目的最終完成,張老師都始終給予我細心的指導(dǎo)和不懈的支持。雖然只有短短的一星期,張老師去教會我們很多。在此謹向鄭老師致以誠摯的謝意和崇高的

70、敬意。 另外,我還要感謝在一起愉快的度過這次課程設(shè)計的伙伴,正是由于你們的幫助和支持,我才能克服一個一個的困難和疑惑,直至本文的順利完成。特別感謝我的隊友,他對本課題做了不少工作,給予我不少的幫助。</p><p><b>  參考文獻</b></p><p>  [1].戴梅萼 史嘉權(quán) 微型計算機技術(shù)及應(yīng)用 北京:清華大學(xué)出版社,2003</p>

71、<p>  [2].仇玉章 32位微型計算機原理與接口技術(shù) 北京:清華大學(xué)出版社,2001</p><p>  [3].鄭學(xué)堅 周斌 微型計算機原理及應(yīng)用 北京:清華大學(xué)出版社,1998</p><p>  [4].李伯成 候伯亭 微型計算機及應(yīng)用 西安:電子科技大學(xué)出版社,1998</p><p>  [5].鄧元慶 賈鵬 數(shù)字電路與系統(tǒng)設(shè)計 西

72、安:電子科技大學(xué)出版社,2003</p><p>  下面是匯編程序,其中的BCD的轉(zhuǎn)換算法不同,不過后有解釋</p><p>  LED_0 EQU 30H;存放三個數(shù)碼管的段碼</p><p>  LED_1 EQU 31H</p><p>  LED_2EQU 32H</p><

73、p>  ADC EQU 35H;存放AD轉(zhuǎn)換后的數(shù)據(jù)</p><p>  ST BIT P3.2</p><p>  OE BIT P3.0</p><p>  EOC BIT P3.1</p><p>  ORG 0000H</p><p><b>  

74、LJMPMAIN</b></p><p><b>  ORG0030H</b></p><p>  MAIN:MOVLED_0,#00H ;給顯示賦初值0</p><p>  MOV LED_1,#00H</p><p>  MOV LED_2,#00H </p>

75、;<p>  SETB P3.4</p><p>  SETB P3.5</p><p>  CLR P3.6;選擇通道3</p><p>  WAIT: CLR ST</p><p><b>  SETB ST</b></p><p>  CLR

76、 ST;啟動AD轉(zhuǎn)換</p><p>  JNB EOC,$;等待轉(zhuǎn)換結(jié)束</p><p>  SETB OE;允許輸出</p><p>  MOV ADC ,P1;暫存轉(zhuǎn)換結(jié)果</p><p>  CLR OE;關(guān)閉輸出</p><p>  LCALL

77、BCD;調(diào)用數(shù)據(jù)處理子程序</p><p>  LCALL LED;調(diào)用顯示程序,顯示轉(zhuǎn)換的值</p><p>  SJMP WAIT</p><p>  ;*******************************************</p><p>  ;將AD轉(zhuǎn)換輸出的數(shù)據(jù)轉(zhuǎn)換成相應(yīng)的電壓值</p&

78、gt;<p>  ;*******************************************</p><p>  BCD:MOVA,ADC;將AD轉(zhuǎn)換結(jié)果轉(zhuǎn)換成BCD碼</p><p>  MOV B,#51 ;255/51=5.00V</p><p><b>  DIV AB</b>

79、</p><p>  MOV LED_2,A;個位數(shù)字存入LED_2中</p><p>  MOV A,B;余數(shù)大于19H,F(xiàn)0為1乘法溢出,結(jié)果加5</p><p><b>  CLR F0</b></p><p>  SUBB A,#1AH</p><p>

80、;  MOV F0,C</p><p>  MOV A, #10</p><p><b>  MUL AB</b></p><p>  MOV B,#51</p><p><b>  DIV AB</b></p><p>  JB F0,LOOP2&

81、lt;/p><p>  ADD A,#5</p><p>  LOOP2:MOV LED_1,A;小數(shù)后的第一位存入LED_1中</p><p><b>  MOV A,B</b></p><p><b>  CLR F0</b></p><p>  

82、SUBB A,#1AH</p><p>  MOV F0,C</p><p>  MOV A,#10</p><p><b>  MUL AB</b></p><p>  MOV B,#51</p><p><b>  DIV AB</b><

83、/p><p>  JB F0,LOOP3</p><p>  ADD A,#5</p><p>  LOOP3:MOV LED_0,A;小數(shù)后的第二位存入LED_0中</p><p><b>  RET</b></p><p>  ;***********************

84、******************</p><p>  ; 顯示程序</p><p>  ;*****************************************</p><p>  LED:MOVA,LED_0;數(shù)碼顯示子程序</p><p>  MOV DPTR,#TABLE ;送段

85、碼表首地址</p><p>  MOVC A,@A+DPTR</p><p>  SETB P2.3;允許百位輸出,該數(shù)碼管為共陽極形</p><p>  MOV P0,A;將位段碼送給P0口</p><p>  LCALL DELAY;調(diào)用延時程序</p><p>  CLR

86、P2.3;關(guān)閉百位顯示</p><p>  MOV A,LED_1</p><p>  MOV DPTR,#TABLE ;送段碼表首地址</p><p>  MOVC A,@A+DPTR</p><p>  SETB P2.2;允許十位輸出,該數(shù)碼管為共陽極形</p><p&g

87、t;  MOV P0,A;將位段碼送給P0口</p><p>  LCALL DELAY;調(diào)用延時程序</p><p>  CLR P2.2;關(guān)閉十位顯示</p><p>  MOV A,LED_2</p><p>  MOV DPTR,#TABLE2 ;送段碼表首地址</p>

88、;<p>  MOVC A,@A+DPTR</p><p>  SETB P2.1;允許個位輸出,該數(shù)碼管為共陽極形</p><p>  MOV P0,A;將位段碼送給P0口</p><p>  LCALL DELAY ;調(diào)用延時程序</p><p>  CLR P2.1

89、;關(guān)閉個位顯示</p><p><b>  RET</b></p><p>  ;**************************************</p><p>  ; 延時程序</p><p>  ;**************************************&l

90、t;/p><p>  DELAY:MOV R6,#2;延時1MS子程序</p><p>  D1: MOV R7,#250</p><p>  DJNZ R7,$</p><p>  DJNZ R6,D1</p><p><b>  RET</b></p>

91、;<p>  TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H</p><p>  DB 92H, 82H,0F8H, 80H,90H;共陽極0~9十個段碼</p><p>  TABLE2:DB 40H,79H,24H,30H,19H,12H;帶小數(shù)點的0~5六個段碼</p><p><b> 

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論