2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩20頁(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、<p><b>  目錄</b></p><p><b>  摘要</b></p><p><b>  引言</b></p><p>  一 課程設(shè)計(jì)題目及任務(wù)要求</p><p>  1.1課程設(shè)計(jì)主要任務(wù)</p><p>  1.2課程設(shè)

2、計(jì)的要求</p><p>  二 電路設(shè)計(jì)方案及原理說(shuō)明</p><p>  2.0課程設(shè)計(jì)的方案 </p><p>  2.1 ADC0809模數(shù)轉(zhuǎn)換芯片</p><p>  2.2 AT89C51單片機(jī)</p><p>  2.3 4個(gè)共陽(yáng)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è)計(jì)總體框圖</b></p><p><b>  3.1硬件總體框圖</b></p><p><b

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

30、平的時(shí)候,發(fā)光二極管截止,該字段不發(fā)光。</p><p>  共陽(yáng)極7段LED引腳配置 共陽(yáng)極7段LED結(jié)構(gòu)圖</p><p>  2.4 系統(tǒng)整體工作原理</p><p><b>  1 硬件設(shè)計(jì)</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路模擬量輸入端口,通過(guò)C、B、A,3位地址輸入端,能從8路中選擇一路進(jìn)行轉(zhuǎn)換。如每隔一段時(shí)間依次輪流改變3位地址輸入端的地址,就能依次對(duì)8路輸入電壓進(jìn)行測(cè)量。LED數(shù)碼管的顯示采用軟件譯碼動(dòng)態(tài)顯示,通過(guò)按鍵模塊的操作可以選擇8路循環(huán)顯

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

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

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

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

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

37、t*196/100)%10 千分位:(Dout*196/10)%10 由此得到較為精確的數(shù)值。對(duì)上面的硬件部分,按照軟件流程框圖進(jìn)行軟件設(shè)計(jì)。用C語(yǔ)言進(jìn)行程序的編寫(xiě)。</p><p>  (下面的是C語(yǔ)言程序,最后面幾頁(yè)還有匯編程序及其算法說(shuō)明,可自己選擇)</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ù)點(diǎn)的0~5六個(gè)</p><p>  uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf

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

42、t;<b>  //延時(shí)子程序</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>  //電壓值并且顯示出來(lái)</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)換的個(gè)位的電壓值</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ù)點(diǎn)的后的第一位</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ù)點(diǎn)的后的第二位</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ù)點(diǎn)的后的第二位</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; //啟動(dòng)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è)計(jì)框圖</b></p><p><b>  3.1硬件總體框圖</b></p><p>  

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

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

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

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

62、為12MHZ,則通過(guò)該電路提供給單片機(jī)的時(shí)鐘也為12MHZ. </p><p><b>  3.5.2復(fù)位電路</b></p><p>  當(dāng)對(duì)單片機(jī)的的reset引腳加超過(guò)兩個(gè)機(jī)器周期以上的高電平時(shí),可使單片機(jī)復(fù)位,即程序從頭開(kāi)始執(zhí)行。設(shè)計(jì)的復(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ù)點(diǎn)位)。這4塊8斷數(shù)碼管共用相同的數(shù)據(jù)輸入線,每塊有一根片選線,只有選中了該數(shù)碼管,它才會(huì)點(diǎn)亮并顯示。而通過(guò)動(dòng)態(tài)掃描原理可以使接在同一數(shù)據(jù)線的幾塊數(shù)碼管顯示不同的數(shù)。輸入BCD碼值,就可以在數(shù)碼管上顯示十進(jìn)制數(shù)字。其中有電壓表起校準(zhǔn)對(duì)比作用。</p><p>&

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

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

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

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

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

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

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

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

72、安:電子科技大學(xué)出版社,2003</p><p>  下面是匯編程序,其中的BCD的轉(zhuǎn)換算法不同,不過(guò)后有解釋</p><p>  LED_0 EQU 30H;存放三個(gè)數(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;啟動(dòng)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;個(gè)位數(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ù)碼管為共陽(yáng)極形</p><p>  MOV P0,A;將位段碼送給P0口</p><p>  LCALL DELAY;調(diào)用延時(shí)程序</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ù)碼管為共陽(yáng)極形</p><p&g

87、t;  MOV P0,A;將位段碼送給P0口</p><p>  LCALL DELAY;調(diào)用延時(shí)程序</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;允許個(gè)位輸出,該數(shù)碼管為共陽(yáng)極形</p><p>  MOV P0,A;將位段碼送給P0口</p><p>  LCALL DELAY ;調(diào)用延時(shí)程序</p><p>  CLR P2.1

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

90、t;/p><p>  DELAY:MOV R6,#2;延時(shí)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;共陽(yáng)極0~9十個(gè)段碼</p><p>  TABLE2:DB 40H,79H,24H,30H,19H,12H;帶小數(shù)點(diǎn)的0~5六個(gè)段碼</p><p><b> 

溫馨提示

  • 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ù)僅提供信息存儲(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)論