通信技術(shù)畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)的數(shù)字電壓表設(shè)計(jì)_第1頁
通信技術(shù)畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)的數(shù)字電壓表設(shè)計(jì)_第2頁
通信技術(shù)畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)的數(shù)字電壓表設(shè)計(jì)_第3頁
通信技術(shù)畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)的數(shù)字電壓表設(shè)計(jì)_第4頁
通信技術(shù)畢業(yè)設(shè)計(jì)(論文)基于51單片機(jī)的數(shù)字電壓表設(shè)計(jì)_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、2010屆畢業(yè)論文揚(yáng) 州 市 職 業(yè) 大 學(xué)畢 業(yè) 設(shè) 計(jì)(論 文)設(shè)計(jì)(論文)題目: 基于51單片機(jī)的數(shù)字電壓表設(shè)計(jì)系 別: 電子系 1專 業(yè): 通信技術(shù) 1班 級(jí):07通信3班 1姓 名: 1學(xué) 號(hào): 1指導(dǎo)教師: 完成時(shí)間: 10年5月 基于51單片機(jī)的數(shù)字電壓表設(shè)計(jì)摘要:數(shù)字電壓表簡(jiǎn)稱dvm,它是采用數(shù)字化測(cè)量技術(shù),把連續(xù)的模擬量(直流輸入電壓)轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。數(shù)字電壓表自從一九五二年問世以來,隨著電子技術(shù)的飛躍發(fā)展,特別是目前,作為測(cè)量?jī)x表、模擬指示儀表的數(shù)字化以及自動(dòng)測(cè)量的系統(tǒng),而得到了很大的發(fā)展。數(shù)字電壓表是從電位差計(jì)的自動(dòng)化這種想法研制出來的,因此

2、即便是最初的數(shù)字電壓表,其精度也要比模擬式儀表高,而其成本比電位差計(jì)也高。以后,dvm的發(fā)展就著眼在高精度和低成本兩個(gè)方面。單片機(jī)可單獨(dú)地完成現(xiàn)代工業(yè)控制所要求的智能化控制功能,這是單片機(jī)最大的特征。本電路主要采用at89s51芯片和adc0809芯片來完成一個(gè)簡(jiǎn)易的數(shù)字電壓表,能夠?qū)斎氲?5 v的模擬直流電壓進(jìn)行測(cè)量,并通過一個(gè)4位一體的7段led數(shù)碼管進(jìn)行顯示。該電壓表的測(cè)量電路主要由三個(gè)模塊組成:a/d轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊及顯示控制模塊。a/d轉(zhuǎn)換主要由芯片adc0809來完成,它負(fù)責(zé)把采集到的模擬量轉(zhuǎn)換為相應(yīng)的數(shù)字量再傳送到數(shù)據(jù)處理模塊。數(shù)據(jù)處理則由芯片at89s51來完成,其負(fù)責(zé)

3、把a(bǔ)dc0809傳送來的數(shù)字量經(jīng)一定的數(shù)據(jù)處理,產(chǎn)生相應(yīng)的顯示碼送到顯示模塊進(jìn)行顯示;另外它還控制著adc0809芯片的工作。關(guān)鍵詞: 單片機(jī) 數(shù)字電壓表 at89s51 a/d轉(zhuǎn)換 adc0809目錄第1章產(chǎn)品要求及方案選擇.41.1設(shè)計(jì)的目的.41.2產(chǎn)品的要求.41.3各模塊方案選擇及論證.4第2章主要原件介紹.62.1模數(shù)轉(zhuǎn)換芯片adc0809.62.2控制芯片at89s51.72.3鎖存芯片sn74ls373.92.4 seg-mpxe數(shù)碼管.10第3章電壓表原理系統(tǒng)硬件電路設(shè)計(jì)與實(shí)現(xiàn).113.1電壓表的原理.113.2 電源部分.113.3 a/d轉(zhuǎn)換電路.113.4 單片機(jī)最小系

4、統(tǒng)電路部分.133.4.1時(shí)鐘電路部分.133.4.2復(fù)位電路部分.143.5 顯示電路部分.143.7量程標(biāo)定電路.15第4章 系統(tǒng)軟件設(shè)計(jì).174.1 主程序設(shè)計(jì).174.2 各子程序設(shè)計(jì).174.3源程序代碼.20第5章 調(diào)試.24參考文獻(xiàn).24附錄.25附錄a 原理圖.25附錄b 總結(jié)與感謝.27附錄c 元件清單.29第1章 產(chǎn)品要求及方案選擇1.1 設(shè)計(jì)的目的通過制作簡(jiǎn)易數(shù)字電壓表,加深對(duì)所學(xué)專業(yè)知識(shí)的認(rèn)識(shí),提高分析、解決工程實(shí)際問題的能力,提高對(duì)單片機(jī)的應(yīng)用能力,提高收集文獻(xiàn)、資料的能力,從而達(dá)到綜合運(yùn)用所學(xué)的專業(yè)知識(shí)進(jìn)行電子產(chǎn)品設(shè)計(jì)、制作與調(diào)試的能力。1.2 產(chǎn)品的要求基本功能:

5、1) 能用數(shù)碼管顯示電壓值2) 測(cè)量精度達(dá)0.5v3) 自制直流穩(wěn)壓電源4) 系統(tǒng)具備復(fù)位功能1.3 各模塊方案選擇與論證根據(jù)設(shè)計(jì)要求,系統(tǒng)可分為電壓采集模塊、a/d轉(zhuǎn)換模塊 、主控模塊、顯示模塊。a/d轉(zhuǎn)換模塊:方案一: a/d轉(zhuǎn)換器采用icl7107型三位半顯示的芯片,輸入信號(hào),流經(jīng)取樣電路取樣后送到icl7107型三位半a/d轉(zhuǎn)換器,只需要很少的簡(jiǎn)單外圍元件,就可組成數(shù)字電流表模塊,直接驅(qū)動(dòng)三位半led顯示器顯示,最后輸入電流在顯示部分顯示。由于本人對(duì)此電路不熟悉,而且icl7107做的led數(shù)字表,最大的缺點(diǎn)就是數(shù)字亂跳不穩(wěn)定,特別最后一位。所以不采用此方案。方案二: 采用adc080

6、9轉(zhuǎn)換芯片,其中a/d轉(zhuǎn)換器用于實(shí)現(xiàn)模擬量向數(shù)字量的轉(zhuǎn)換,單電源供電。它是具有8路模擬量輸入、8位數(shù)字量輸出功能的a/d轉(zhuǎn)換器,轉(zhuǎn)換時(shí)間為100s,模擬輸入電壓范圍為0v+5v,不需零點(diǎn)和滿刻度校準(zhǔn),功耗低,約15mw。由于模擬轉(zhuǎn)換電路的種類很多,通過對(duì)轉(zhuǎn)換速度,精度和價(jià)格方面考慮,所以選擇方案二采用adc0809為本次設(shè)計(jì)的轉(zhuǎn)換芯片。接口模塊:方案一:使用數(shù)字電路實(shí)現(xiàn),采用譯碼芯片cd4543作為接口芯片,這種方案能實(shí)現(xiàn)功能,但穩(wěn)定性不高,結(jié)構(gòu)復(fù)雜。方案二:采用at89s51單片機(jī)作為系統(tǒng)的控制單元,通過a/d轉(zhuǎn)換將被測(cè)值轉(zhuǎn)換為數(shù)字量送入單片機(jī)中,再由單片機(jī)來送顯。此方案各類功能易于實(shí)現(xiàn),成

7、本低、功耗低,顯示穩(wěn)定。通過比較,我選擇方案二。系統(tǒng)原理框圖如1.1所示:圖1.1 數(shù)字電壓表設(shè)計(jì)框圖第2章 主要元件介紹2.1 模數(shù)轉(zhuǎn)換芯片adc0809adc0809是典型的8位8通道逐次逼近式a/d轉(zhuǎn)換器,它可以和微型計(jì)算機(jī)直接接口。adc0809轉(zhuǎn)換器的系列芯片是adc0808,可以相互替換。2.1.1 adc0809內(nèi)部邏輯結(jié)構(gòu)圖2-1 adc0809的內(nèi)部邏輯結(jié)構(gòu)及引腳圖adc0809的內(nèi)部邏輯結(jié)構(gòu)如圖2-1所示。圖中多路模擬開關(guān)可選通8路模擬通道,允許8路模擬量分時(shí)輸入,并共用一個(gè)a/d轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。地址鎖存與譯碼電路完成對(duì)a、b、c三個(gè)地址位進(jìn)行鎖存與譯碼,如表2-1所示。表

8、2-1 adc0809通道選擇表 c(addc)b(addb)a(adda)選擇的通道000in0001in1010in2011in3100in4101in5110in6111in72.1.2 adc0809的引腳adc0809芯片為28引腳雙列直插式封裝,其引腳排列如圖2-1所示。(1)in0in7:8路模擬量輸入通道。(2)a、b、c:模擬通道地址線。這3根地址線用于對(duì)8路模擬通道的選擇,其譯碼關(guān)系如表1-1所示。其中,a為低地址,c為高地址,引腳圖中為adda,addb和addc。(3)ale:地址鎖存允許信號(hào)。對(duì)應(yīng)ale上跳沿,a、b、c地址狀態(tài)送入地址鎖存器中。(4)start:轉(zhuǎn)換

9、啟動(dòng)信號(hào)。start上升沿時(shí),復(fù)位adc0809;start下降沿時(shí)啟動(dòng)芯片,開始進(jìn)行a/d轉(zhuǎn)換;在a/d轉(zhuǎn)換期間,start應(yīng)保持低電平。本信號(hào)有時(shí)簡(jiǎn)寫為st。(5)d7d0:數(shù)據(jù)輸出線。為三態(tài)緩沖輸出形式,可以和單片機(jī)的數(shù)據(jù)線直接相連。d0為最低位,d7為最高。 (6)oe:輸出允許信號(hào)。用于控制三態(tài)輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到的數(shù)據(jù)。oe=0,輸出數(shù)據(jù)線呈高阻;oe=1,輸出轉(zhuǎn)換得到的數(shù)據(jù)。(7)clk:時(shí)鐘信號(hào)。adc0809的內(nèi)部沒有時(shí)鐘電路,所需時(shí)鐘信號(hào)由外界提供,因此有時(shí)鐘信號(hào)引腳。通常使用頻率為500khz的時(shí)鐘信號(hào)。(8)eoc:轉(zhuǎn)換結(jié)束信號(hào)。eoc=0,正在進(jìn)行轉(zhuǎn)換;eo

10、c=1,轉(zhuǎn)換結(jié)束。使用中該狀態(tài)信號(hào)即可作為查詢的狀態(tài)標(biāo)志,又可作為中斷請(qǐng)求信號(hào)使用。(9)vcc: +5v電源,gnd:地。 (10)vref:參考電壓。參考電壓用來與輸入的模擬信號(hào)進(jìn)行比較,作為逐次逼近的基準(zhǔn)。其典型值為+5v(vref(+)=+5v, vref(-)=0v)。2.1.3 adc0809的工作原理:首先輸入3位地址,并使ale=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。start上升沿將逐次逼近寄存器復(fù)位。下降沿啟動(dòng) a/d轉(zhuǎn)換,之后eoc輸出信號(hào)變低,指示轉(zhuǎn)換正在進(jìn)行。直到a/d轉(zhuǎn)換完成,eoc變?yōu)楦唠娖?,指示a/d轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器

11、,這個(gè)信號(hào)可用作中斷申請(qǐng)。當(dāng)oe輸入高電平時(shí),輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。2.2 控制芯片at89s51at89s51是美國(guó)atmel公司生產(chǎn)的低功耗、高性能cmos 8位單片機(jī)。at89s51片內(nèi)含有4k字節(jié)flash閃速存儲(chǔ)器,128字節(jié)內(nèi)部 ram,32個(gè)i/o 口線,看門狗(wdt),兩個(gè)數(shù)據(jù)指針,兩個(gè)16 位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),s51可降至0hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止cpu的工作,但允許 ram,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 r

12、am中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。由于將多功能8位cpu和閃爍存儲(chǔ)器組合在單個(gè)芯片中,atmel的at89s51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。(圖2-2為其內(nèi)部結(jié)構(gòu)圖,圖2-3為其引腳圖。)2.2.1 主要性能參數(shù)與mcs-51產(chǎn)品指令系列完全兼容;4k字節(jié)在系統(tǒng)編程(isp)flash閃速存儲(chǔ)器;1000次擦寫周期;4.05.5 v工作電壓范圍;全靜態(tài)工作模式:0hz33mhz;三級(jí)程序加密鎖;128字節(jié)內(nèi)部ram;32個(gè)可編程i/o口線;2個(gè)16位的定時(shí)/計(jì)數(shù)器;6個(gè)中斷源;圖2-2 at89s51芯片內(nèi)部總體

13、結(jié)構(gòu)圖全雙工串行uart通道;低工耗空閑和掉電模式;中斷可從空閑模式喚醒系統(tǒng);看門狗(wdt)及雙數(shù)據(jù)指針;掉電標(biāo)識(shí)和快速編程特性;靈活的在系統(tǒng)編程(isp-字節(jié)或頁寫模式)。2.2.2 at89s51的引腳:at89s51芯片為40引腳雙列直插式封裝,其引腳排列如圖1-7所示。圖2-3 at89s51的引腳圖2.3 鎖存芯片sn74ls37374ls373是八d鎖存器(3s,鎖存允許輸入有回環(huán)特性) ,常應(yīng)用在地址鎖存及輸出口的擴(kuò)展中。sn74ls373 常用的8d鎖存器,常用作地址鎖存和i/o輸出. 可以用74hc373代換. 74ls373是低功耗肖特基ttl8d鎖存器,74hc373是

14、高速cmos器件,功能與74ls373相同,兩者可以互換。74ls373內(nèi)有8個(gè)相同的d型(三態(tài)同相)鎖存器,由兩個(gè)控制端(11腳g或en;1腳out、cont、oe)控制。當(dāng)oe接地時(shí),若g為高電平,74ls373接收由ppu輸出的地址信號(hào);如果g為低電平,則將地址信號(hào)鎖存。74ls373的輸出端o0o7可直接與總線相連。當(dāng)三態(tài)允許控制端oe為低電平時(shí),o0o7為正常邏輯狀態(tài),可用來驅(qū)動(dòng)負(fù)載或總線。當(dāng)oe為高電平時(shí),o0o7呈高阻態(tài),即不驅(qū)動(dòng)總線,也不為總線的負(fù)載,但鎖存器內(nèi)部的邏輯操作不受影響。 當(dāng)鎖存允許端le為高電平時(shí),o隨數(shù)據(jù)d而變。當(dāng)le為低電平時(shí),o被鎖存在已建立的數(shù)據(jù)電平。(其

15、引腳圖如圖2-4所示。) 圖2-4 sn74ls373引腳圖2.4 seg-mpx4數(shù)碼管本實(shí)驗(yàn)的顯示模塊主要由一個(gè)4位一體的7段led數(shù)碼管構(gòu)成,用于顯示測(cè)量到的電壓值。它是一個(gè)共陽極的數(shù)碼管。每一位數(shù)碼管的a,b,c,d,e,f,g和dp端都各自連接在一起,用于接收at89s51的p1口產(chǎn)生的顯示段碼。1,2,3,4引腳端為其位選端,用于接收at89s51的p3口產(chǎn)生的位選碼。第3章 電壓表原理系統(tǒng)硬件電路設(shè)計(jì)與實(shí)現(xiàn)3.1 電壓表的原理本設(shè)計(jì)采用at89s51單片機(jī)芯片配合adc0809模/數(shù)轉(zhuǎn)換芯片構(gòu)成一個(gè)簡(jiǎn)易的數(shù)字電壓表,原理電路如下圖所示。該電路通過adc0809芯片采樣輸入口in0

16、輸入的05 v的模擬量電壓,經(jīng)過模/數(shù)轉(zhuǎn)換后,產(chǎn)生相應(yīng)的數(shù)字量經(jīng)過其輸出通道d0d7傳送給at89s51芯片的p0口。at89s51負(fù)責(zé)把接收到的數(shù)字量經(jīng)過數(shù)據(jù)處理,產(chǎn)生正確的7段數(shù)碼管的顯示段碼,并通過其p1口經(jīng)驅(qū)動(dòng)芯片sn74ls373驅(qū)動(dòng),再傳送給數(shù)碼管。同時(shí)它還通過其三位i/o口p3.0、p3.1、p3.2產(chǎn)生位選信號(hào),控制數(shù)碼管的亮滅。另外,at89s51還控制著adc0809的工作。其ale管腳為adc0809提供了1mhz工作的時(shí)鐘脈沖;p2.3控制adc0809的地址鎖存端(ale);p2.4控制adc0809的啟動(dòng)端(start);p2.5控制adc0809的輸出允許端(oe

17、);p3.7控制adc0809的轉(zhuǎn)換結(jié)束信號(hào)(eoc)。3.2 電源部分電源部分電路主要是要求能提供穩(wěn)定可靠的電壓,使整個(gè)系統(tǒng)能正常的工作。采用220v的工頻交流電壓,而單片機(jī)的工作電壓是直流+5v,為此,先通過一個(gè)普通的變壓器降低電壓,再通過橋式整流,然后再通過7805芯片的進(jìn)一步穩(wěn)壓,確保+5v電源的穩(wěn)定、可靠。而且7805集成穩(wěn)壓器是常用的固定輸出+5v電壓的集成穩(wěn)壓器。它的內(nèi)部含有限流保護(hù)、過熱保護(hù)和過壓保護(hù)電路,采用了噪聲低、溫度漂移小的基準(zhǔn)電壓源,工作穩(wěn)定可靠。1腳為輸入端,2腳為接地端,3腳為輸出端,使用十分方便,可以在任何有交流電壓的地方使用,不需另帶電池。通過整流濾波以后輸出

18、直流電壓,為了確保整個(gè)電路能正常工作,考慮到不接負(fù)載或電源電壓有波動(dòng)時(shí)電容能承受的耐壓,必須加電容。發(fā)光二極管d2點(diǎn)亮表示電源電路正常工作,其電源電路如圖3-1所示:圖 3-1 電源電路3.3 a/d轉(zhuǎn)換電路a/d轉(zhuǎn)換器是模擬量輸入通道中的一個(gè)環(huán)節(jié),單片機(jī)通過a/d轉(zhuǎn)換器把輸入模擬量變成數(shù)字量再處理。隨著大規(guī)模集成電路的發(fā)展,目前不同廠家已經(jīng)生產(chǎn)出了多種型號(hào)的a/d轉(zhuǎn)換器,以滿足不同應(yīng)用場(chǎng)合的需要。如果按照工作原理劃分,adc主要有4種類型,即雙積分式a/d轉(zhuǎn)換器、逐次逼近式a/d轉(zhuǎn)換器和并行式a/d轉(zhuǎn)換器和計(jì)數(shù)比較式a/d轉(zhuǎn)換器。目前最常用的是雙積分和逐次逼近式。 圖3-2 a/d轉(zhuǎn)換電路圖

19、3.4 單片機(jī)最小系統(tǒng)電路部分單片機(jī)內(nèi)部每個(gè)部件要想?yún)f(xié)調(diào)一致地工作,必須在統(tǒng)一口令時(shí)鐘信號(hào)的控制下工作。單片機(jī)工作所需要的時(shí)鐘信號(hào)有兩種產(chǎn)生方式,即內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。圖3.5是內(nèi)部時(shí)鐘方式:?jiǎn)纹瑱C(jī)內(nèi)部有一個(gè)構(gòu)成振蕩器的增益反相放大器,引腳xtal1和xtal2分別是此放大器的輸入端和輸入端,這個(gè)放大器與作為反饋元件的片外晶振一起構(gòu)成自激振蕩器。在該圖中,電容c1和c2取20pf,晶體的振蕩頻率取12mhz,晶體振蕩頻率高,則系統(tǒng)的時(shí)鐘頻率也高,單片機(jī)運(yùn)行速度也就快。圖3-3 單片機(jī)最小系統(tǒng)電路圖3.4.1復(fù)位電路部分at89s51的復(fù)位電路如圖3.5所示。當(dāng)單片機(jī)一上電,立即復(fù)位。電

20、容c和電阻r1實(shí)現(xiàn)上電自動(dòng)復(fù)位。復(fù)位也是使單片機(jī)退出低功耗工作方式而進(jìn)入正常狀態(tài)的一種操作。圖3-4 復(fù)位電路部分電路圖3.4.2時(shí)鐘電路部分單片機(jī)內(nèi)部每個(gè)部件要想?yún)f(xié)調(diào)一致地工作,必須在統(tǒng)一口令時(shí)鐘信號(hào)的控制下工作。單片機(jī)工作所需要的時(shí)鐘信號(hào)有兩種產(chǎn)生方式,即內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。圖3.5是內(nèi)部時(shí)鐘方式:?jiǎn)纹瑱C(jī)內(nèi)部有一個(gè)構(gòu)成振蕩器的增益反相放大器,引腳xtal1和xtal2分別是此放大器的輸入端和輸入端,這個(gè)放大器與作為反饋元件的片外晶振一起構(gòu)成自激振蕩器。在該圖中,電容c1和c2取20pf,晶體的振蕩頻率取12mhz,晶體振蕩頻率高,則系統(tǒng)的時(shí)鐘頻率也高,單片機(jī)運(yùn)行速度也就快。實(shí)際連接

21、如圖3-5所示:圖3-5時(shí)鐘電路部分3.5 顯示電路部分本電路的顯示模塊主要由一個(gè)4位一體的7段led數(shù)碼管構(gòu)成,用于顯示測(cè)量到的電壓值。它是一個(gè)共陽極的數(shù)碼管,每一位數(shù)碼管的a,b,c,d,e,f,g和dp端都各自連接在一起,用于接收at89s51的p1口產(chǎn)生的顯示段碼。1,2,3,4引腳端為其位選端,用于接收at89s51的p3口產(chǎn)生的位選碼。本系統(tǒng)采用動(dòng)態(tài)掃描方式。掃描方法是用其接口電路把所有數(shù)碼管的8個(gè)比劃段ag和dp同名端連在一起,而每一個(gè)數(shù)碼管的公共極com各自獨(dú)立地受i/o線控制。cup從字段輸出口送出字型碼時(shí),所有數(shù)碼管接收到相同的字型碼,但究竟是哪個(gè)數(shù)碼管亮,則取決于com端

22、。com端與單片機(jī)的i/o接口相連接,由單片機(jī)輸出位位選碼到io接口,控制何時(shí)哪一位數(shù)碼管被點(diǎn)亮。在輪流點(diǎn)亮數(shù)碼管的位掃描過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間極為短暫。但由于人的視覺暫留現(xiàn)象,給人的印象就是一組穩(wěn)定顯示的數(shù)碼。動(dòng)態(tài)方式的優(yōu)點(diǎn)是十分明顯的,即耗電省,在動(dòng)態(tài)掃描過程中,任何時(shí)刻只有一個(gè)數(shù)碼管是處于工作狀態(tài)的。具體原理圖如圖3-6所示圖3-6 顯示電路圖3.7量程標(biāo)定電路輸入電路的核心是由輸入衰減器和放大器組成的量程標(biāo)定電路,如下圖所示。 繼電器s控制1001衰減器是否接入。vt5vt10是模擬開關(guān),控制放大器不同的增益。它們?cè)诳刂菩盘?hào)的作用下,形成不同的通、斷組態(tài),構(gòu)成0.1v, 1v,1

23、0v,100v,1000v五個(gè)量程狀態(tài)及自測(cè)試狀態(tài)。各組分析如下:圖3-8 量程標(biāo)定電路圖(1)0.1量程: vt8,vt6導(dǎo)通,放大電路被接成電壓負(fù)反饋放大器,則 放大倍數(shù) af (21.6+9+1) 1 31.6 最大輸出電壓 uomax 0.131.6 3.16(2) 1v量程 : vt8,vt10 導(dǎo)通,此時(shí)放大電路被接成串聯(lián)負(fù)反饋放大器,af (21.6+9+1)( 9+1 ) 3.16uomax 13.163.1(3) 10v量程: vt7,vt9導(dǎo)通,放大電路被接成跟隨器,放大倍數(shù)為1, 然后輸出又經(jīng)分壓,此時(shí) uomax 10(9+1)(21.6+9+1 ) 3.16v(4)

24、100v量程 : vt8,vt10導(dǎo)通,放大電路仍為串聯(lián)負(fù)反饋放大器。同時(shí)繼電器開關(guān)s吸合,使1001衰減器接入,此時(shí) uomax 100 1 100 21.6+9+1 9+1 3.16v(5)1 000v量程 : 繼電器s吸合,1001衰減器接入;vt,vt9導(dǎo)通,放大電路被接成跟隨器,并使輸出再經(jīng)分壓,此時(shí)uomax 1000 1 100 (9+1) (21.6+9+1) 3.16 v 由上述計(jì)算可見,送入a/d轉(zhuǎn)換器的輸入規(guī)范電壓為0v3.16v。 由于電路被接成串聯(lián)負(fù)反饋形式并且采用自舉電源, 0.1v,1v,10v三擋量程的輸入電阻高達(dá)10000m, 10v和1000v擋量程由于接入

25、衰減器,輸入阻抗降為10m。 當(dāng)vt5,vt6,vt8導(dǎo)通,s吸合時(shí), 電路組態(tài)為自測(cè)試狀態(tài)。此時(shí)放大器的輸出應(yīng)為 3.12v。儀器在自診斷時(shí)測(cè)量該電壓, 并與存儲(chǔ)的數(shù)值相比較;若兩者之差在 6內(nèi), 即認(rèn)為放大器工作正常。第4章 系統(tǒng)軟件設(shè)計(jì)4.1 主程序設(shè)計(jì)初始化中主要對(duì)at89s51,adc0809的管腳和數(shù)碼管的位選及所用到的內(nèi)存單元70h,78h,79h,7ah 進(jìn)行初始化設(shè)置。準(zhǔn)備工作做好后便啟動(dòng)adc0809對(duì)in0腳輸入進(jìn)的05v電壓模擬信號(hào)進(jìn)行數(shù)據(jù)采集并轉(zhuǎn)換成相對(duì)應(yīng)的0255十進(jìn)制數(shù)字量。在數(shù)據(jù)處理子程序中,運(yùn)用標(biāo)度變換知識(shí),編寫算法將0255十進(jìn)制數(shù)字量轉(zhuǎn)換成0.005.00

26、v的數(shù)據(jù),輸出到顯示子程序進(jìn)行顯示。整個(gè)主程序就是在a/d轉(zhuǎn)換,數(shù)據(jù)處理及顯示程序循環(huán)執(zhí)行。整個(gè)程序流程框圖如下圖所示。 4-1主程序流程圖4.2 各子程序設(shè)計(jì)4.2.1a/d轉(zhuǎn)換子程序啟動(dòng)adc0809對(duì)模擬量輸入信號(hào)進(jìn)行轉(zhuǎn)換,通過判斷eoc(p3.1引腳)來確定轉(zhuǎn)換是否完成,若eoc為0,則繼續(xù)等待;若eoc為1,則把oe置位,將轉(zhuǎn)換完成的數(shù)據(jù)存儲(chǔ)到70h中。程序流程圖如下圖所示。 4-2a/d轉(zhuǎn)換程序流程圖4.2.2數(shù)據(jù)處理子程序程序流程圖如下圖所示4-3 數(shù)據(jù)處理子程序流程圖4.2.3顯示子程序顯示子程序采用動(dòng)態(tài)掃描法實(shí)現(xiàn)三位數(shù)碼管的數(shù)值顯示。測(cè)量所得的a/d轉(zhuǎn)換數(shù)據(jù)放在70h內(nèi)存單元

27、中,測(cè)量數(shù)據(jù)在顯示時(shí)需轉(zhuǎn)換成10進(jìn)制bcd碼放在78h7ah單元中。寄存器r1用作顯示數(shù)據(jù)地址指針。程序流程圖如下圖所示。4-4顯示子程序流程圖4.3源程序代碼org 0000hljmp startorg 0003hretiorg 000bhretiorg 0013hretiorg 001bhretiorg 0023hretiorg 002bhretiorg 0030h;初始化參數(shù)start: clr a setb p3.7 ;初始化eoc clr p3.0 ;初始化led位選,全不選中。 clr p3.1 clr p3.2 mov p2 , a ;初始化p2口,清除對(duì)adc0809的控制信號(hào)

28、。 mov 70h , a ;初始化數(shù)據(jù)采樣后存儲(chǔ)空間。 mov 78h , a ;初始化數(shù)據(jù)處理后3位有效數(shù)字的存儲(chǔ)空間(78h最高位,7ah最低位)。 mov 79h , a mov 7ah , a mov a , #0ffh ;初始化p0,p1口,寫入高電平。 mov p0 , a mov p1 , a;主程序main: lcall ad_sub ;調(diào)用a/d轉(zhuǎn)換子程序,開始采樣并轉(zhuǎn)換。 lcall turn_sub ;調(diào)用數(shù)碼轉(zhuǎn)換子程序,將采樣轉(zhuǎn)換來的0-255轉(zhuǎn)換成一一對(duì)應(yīng)的;0.00-5.00lcall disp_sub ;調(diào)用顯示子程序。ljmp main;= ;a/d轉(zhuǎn)換子程序

29、 ad_sub: clr amov p2 , a ;初始化p2口,清除對(duì)adc0809的控制信號(hào)。mov r0 , #70h lcall ad_st ;調(diào)用采樣轉(zhuǎn)換子程序wait: jb p3.7 , datasave ;判斷采樣轉(zhuǎn)換是否完畢,完畢則跳轉(zhuǎn)到datasave進(jìn)行存儲(chǔ)。 ajmp wait ;否則繼續(xù)等待。;啟動(dòng)采樣,送脈沖時(shí)序ad_st: setb p2.3 ;ale 脈沖時(shí)序nopnopclr p2.3setb p2.4 ;start 脈沖時(shí)序(上跳清零,下跳開始轉(zhuǎn)換)nopnopclr p2.4nopnopret;采樣轉(zhuǎn)換的數(shù)據(jù)存儲(chǔ)datasave: setb p2.5 ;置

30、位oe端,允許adc0809輸出數(shù)據(jù)mov a , p0 ;將轉(zhuǎn)換的數(shù)據(jù)存儲(chǔ)到70h中mov r0 , aclr p2.5 clr a ;初始化p0,p1,p2口(p0,p1高電平,p2低電平)mov p2 , amov a , #0ffhmov p0 , amov p1 , aret;將0255轉(zhuǎn)換為0.005.00turn_sub: mov a , r0 mov b , #51div ab mov 78h , a ;以上這一段是整數(shù)部分(個(gè)位)放入78h mov a , b ;余數(shù)部分放入aclr f0subb a , #1ah ;余數(shù)和51的一半即1ah比較,以便四舍五入mov f0 ,

31、 cmov a , #10mul ab ;余數(shù)乘以10,以便再除以51 mov b , #51div abjb f0 , loop1 ;判斷四舍五入,跳到loop1是“四舍”add a , #5 ;這是“五入”loop1: mov 79h , a ;十分位mov a , bclr f0subb a , #1ahmov f0,cmov a , #10mul abmov b , #51div abjb f0 , loop2add a , #5loop2: mov 7ah , a ;百分位ret;= ;顯示子程序 disp_sub: mov r1 , #78h ;r1輔助寄存器,用于存放要顯示的數(shù)據(jù)

32、的地址(初始為最高位78h)clr amov p1 , #0ffh ;初始化p1,p2口(p1高電平,p2低電平)anl p2 , a lcall play ;調(diào)用顯示位碼子程序clr p1.7 ;顯示最高位(個(gè)位)后的小數(shù)點(diǎn)setb p3.0 ;選中最高位led數(shù)碼管lcall delay ;調(diào)用延遲子程序clr p3.0 ;取消最高位位選inc r1 ;提取第二位有效數(shù)字(十分位)的數(shù)據(jù)地址(79h)lcall play ;調(diào)用顯示位碼子程序setb p3.1 ;選中第二位led數(shù)碼管lcall delay ;調(diào)用延遲子程序clr p3.1 ;取消第二位位選inc r1 ;提取最低位(百分

33、位)的數(shù)據(jù)地址(7ah)lcall play ;調(diào)用顯示位碼子程序setb p3.2 ;選中最低位led數(shù)碼管lcall delay ;調(diào)用延遲子程序clr p3.2 ;取消最低位位選ret;位碼顯示 play: mov a , r1 ;送偏移量mov dptr , #tab ;送表首地址movc a , a+dptr ;查表得出相應(yīng)led段碼 mov p1 , a ;輸出顯示ret ;= ;延時(shí)程序delay: mov r6 , #10hdl1: mov r7 , #10hdl2: djnz r7 , dl2djnz r6 , dl1ret;= ;09段碼 tab: db 0c0h , 0f

34、9h , 0a4h , 0b0h , 99h , 92h , 82h , 0f8h , 80h , 90h end第5章 調(diào)試在系統(tǒng)上電開始測(cè)量前,要用萬用表的電壓檔對(duì)被測(cè)電壓進(jìn)行估測(cè),然后以此選擇適當(dāng)?shù)牧砍蹋乐惯^大電壓燒壞a/d轉(zhuǎn)換器。首先用萬用表按照原理圖逐步檢查印刷板中各器件的電源及各引腳的連接是否正確,有否斷路、短路或者虛焊,尤其是給電路供電的電源部分要重點(diǎn)檢查,用數(shù)字萬用表測(cè)量7805輸出端的電壓是否為+5v,是否穩(wěn)定,能夠輸出+5v,且穩(wěn)定即可說明電源電路的設(shè)計(jì)基本達(dá)到要求。如果電壓沒有達(dá)到要求,要及時(shí)排查給予解決,以免燒壞芯片和其他元器件。軟件調(diào)試時(shí)先進(jìn)行單元測(cè)試,分別對(duì)各個(gè)代

35、碼模塊進(jìn)行測(cè)試,看其是否實(shí)現(xiàn)了規(guī)定功能,再把已經(jīng)測(cè)試過的模塊組合起來進(jìn)行測(cè)試,一旦不能正確運(yùn)行,要找出程序中的錯(cuò)誤,確定大致的出錯(cuò)位置,研究有關(guān)部分的錯(cuò)誤程序,找出錯(cuò)誤原因,修改設(shè)計(jì)和代碼,以排除錯(cuò)誤。我們?cè)诔绦蚓帉懲瓿珊螅涂梢岳梅抡嫫鬟M(jìn)行初步調(diào)試,觀察在計(jì)算機(jī)里能否通過編譯與運(yùn)行并達(dá)到設(shè)計(jì)的基本要求。在基本符合的情況下,利用仿真器與工作正常的硬件連接進(jìn)行仿真調(diào)試;或用編程器把程序燒寫到芯片中,直接觀察能否正常運(yùn)行。如果達(dá)不到設(shè)計(jì)要求或者不能正常運(yùn)行,可以直接在程序中進(jìn)行修改。系統(tǒng)調(diào)試中遇到的問題及解決的方法:1)在應(yīng)用濾波電容的過程中,一開始是把電容串聯(lián)在電路中,導(dǎo)致電路無法導(dǎo)通,而后我

36、們短路電容,解決了問題。2)電源指示燈上,一開始發(fā)現(xiàn)接上電源,指示燈不亮,經(jīng)過儀器測(cè)量發(fā)現(xiàn)正負(fù)極接反,后重新焊接,問題解決。3)由于源程序的多處錯(cuò)誤,使得仿真無法通過,后經(jīng)過單步調(diào)試,把存在的錯(cuò)誤一一排除,通過了軟件仿真。4)在燒錄芯片的過程中,由于選擇燒錄文件的錯(cuò)誤及芯片自身問題(因多次燒錄,無法再次燒錄)使得燒錄失敗,后經(jīng)過老師指導(dǎo)并更換了at89c51芯片,解決了問題。參考文獻(xiàn)1 作者:魏立峰,單片機(jī)原理及應(yīng)用技術(shù),北京大學(xué)出版社2006年。2 作者:陳光絨,單片機(jī)技術(shù)應(yīng)用教程,北京大學(xué)出版社2005年。3 作者:李廣弟,單片機(jī)基礎(chǔ),北京航空航天大學(xué)出版社2007年。.4 作者:劉樹林,

37、低頻電子線路,電子工業(yè)出版社2003年。5 作者:何宏,單片機(jī)原理與接口技術(shù),國(guó)防工業(yè)出版社2006年6 作者:張志良,單片機(jī)原理與控制技術(shù),機(jī)械工業(yè)出版社2001年。7 作者:郭強(qiáng),液晶顯示器件應(yīng)用技術(shù),北京郵電學(xué)院出版社1993年。8 作者: 王辛之,at89系列單片機(jī)原理與接口技術(shù),北京航空航天大學(xué)出版社2004年。附錄附錄a 原理圖附錄b 總結(jié)與感謝本次設(shè)計(jì)由于使用的是高效單片機(jī)作為核心的測(cè)量系統(tǒng),以及靈敏度和精度較高的a/d轉(zhuǎn)換器,使本電壓表具有精度高、靈敏度強(qiáng)、性能可靠、電路簡(jiǎn)單成本低的特點(diǎn),使其有很高的智能化水平。通過本次設(shè)計(jì),我對(duì)單片機(jī)這門課程有了更進(jìn)一步的了解。無論是在其硬件

38、連接方面還是在軟件編程方面,都取得了新的收獲。本次實(shí)驗(yàn)采用了at89s51單片機(jī)芯片,與以往我們所熟悉的c51芯片有許多不同之處,通過本次設(shè)計(jì)及查閱相關(guān)資料,我對(duì)其之間的區(qū)別有了一定的認(rèn)識(shí),在本設(shè)計(jì)報(bào)告的硬件介紹部分也對(duì)其作了詳細(xì)的論述。s51在c51的基礎(chǔ)上增加了許多新的功能,使其功能更為完善,應(yīng)用領(lǐng)域也更為廣泛。另外,在畢業(yè)設(shè)計(jì)的整個(gè)過程中我發(fā)現(xiàn)了自己對(duì)單片機(jī)認(rèn)知的一些不足之處。在對(duì)單片機(jī)編程方面,我又掌握了一些新的編程思想,使得程序更為簡(jiǎn)練、易懂,而且更為嚴(yán)謹(jǐn),程序執(zhí)行的穩(wěn)定性得到了提高。在基于單片機(jī)的數(shù)字電壓表的設(shè)計(jì)過程中也找到了一些關(guān)于單片機(jī)開發(fā)的規(guī)律:先了解所有元件的具體內(nèi)容,從而畫出其電路圖,使數(shù)字電壓表從簡(jiǎn)易變?yōu)槎喙δ艿姆绞?,雖然沒有做多功能的電壓表,確切了解了一些方法。單片機(jī)的畢業(yè)設(shè)計(jì)是一門很實(shí)用、很難得課程,這個(gè)設(shè)計(jì)運(yùn)用到了單片機(jī)、基礎(chǔ)電路、模電、數(shù)電等方面的知識(shí),通過這次設(shè)計(jì),使我對(duì)單片機(jī)及其附屬電力有了更進(jìn)一步的認(rèn)知,進(jìn)一步掌握。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論