版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、(畢業(yè)論文)基于單片機(jī)的數(shù)字電壓表的設(shè)計(jì) 基于單片機(jī)的數(shù)字電壓表的設(shè)計(jì)【摘要】本設(shè)計(jì)主要用于測(cè)量0-5v的直流電壓,把連續(xù)的模擬量(直流輸入電壓)轉(zhuǎn)換成離散的數(shù)字形式,并利用數(shù)碼管進(jìn)行顯示。整個(gè)系統(tǒng)主要由控制電路、基準(zhǔn)電源、a/d轉(zhuǎn)換電路、測(cè)試電路和顯示電路等幾部分組成。通過at89c52單片機(jī)實(shí)現(xiàn)系統(tǒng)控制功能,利用單片機(jī)的p1口、p3.0-p3.3口控制4位led數(shù)碼管實(shí)現(xiàn)動(dòng)態(tài)顯示,p3.5端口用作控制單路/循環(huán)顯示轉(zhuǎn)換按鈕,p3.6端口用作單路顯示時(shí)的通道選擇,p0端口用作a/d轉(zhuǎn)換數(shù)據(jù)讀入,p2端口用作adc0809的a/d轉(zhuǎn)換控制,a/d轉(zhuǎn)換電路主要由adc0809模/數(shù)轉(zhuǎn)器件片完成。
2、此外,設(shè)計(jì)的數(shù)字電壓表在實(shí)現(xiàn)單路測(cè)量的基本功能之外,還可以方便進(jìn)行多路電壓的同時(shí)測(cè)量,通過按鍵選擇實(shí)現(xiàn)單一或多路循環(huán)顯示?!娟P(guān)鍵詞】:at89c52、adc0809、a/d轉(zhuǎn)換、數(shù)據(jù)處理、控制顯示 abstract the design is mainly used for measuring 0-5v dc voltage, the continuous analog dc input voltage into a discrete digital form, and the use of digital control to display. the entire circuit is m
3、ainly by the control circuit, reference power, a / d converter circuit, the test circuit and display circuit composed of several parts.at89c52 mcu through the system control functions, the use of the microcontroller port p1, p3.0-p3.3 port 4-bit led digital control of dynamic display, p3.5 port as a
4、 single display / cycle through the convert button, p3.6 displayed as a single port channel selection, p0 port for a / d converter data read, p2 port for the adc0809 a / d conversion control; a / d converter circuit mainly by the adc0809 analog / digital switch device to complete piece. in addition,
5、 the design of the digital voltmeter single measurement in the realization of the basic functions, it can also facilitate the simultaneous measurement of multiple voltage by selection for a single or multiple buttons to cycle.【key word】: at89c52, adc0809, a / d conversion, data processing, control a
6、nd display目錄引言1一、方案論證1(一)控制芯片1(二)顯示部分2二、總體設(shè)計(jì)思想2三、硬件電路的設(shè)計(jì)2(一)硬件設(shè)計(jì)原理2(二)at89c52單片機(jī)的概述31.at89c52單片機(jī)組成32.at89c52單片機(jī)引腳結(jié)構(gòu)43.at89c52單片機(jī)的最小系統(tǒng)5(1)時(shí)鐘電路5(2)復(fù)位電路6(三)a/d轉(zhuǎn)換電路61.a/d轉(zhuǎn)換器工作過程62.a/d轉(zhuǎn)換電路8(四)數(shù)碼顯示電路9四、系統(tǒng)的程序設(shè)計(jì)10(一)軟件設(shè)計(jì)思想框圖10(二)子程序原理和框圖111.顯示子程序112.a/d轉(zhuǎn)換子程序12五、調(diào)試及性能分析14(一)測(cè)量與調(diào)試14(二)性能分析14六、總結(jié)16附錄一數(shù)字電壓表總原理圖
7、17附錄二源程序18附錄三pcb圖23附錄四實(shí)物圖24參考文獻(xiàn)25致謝26 引言數(shù)字電壓表(digital voltmeter)簡稱dvm,它是采用數(shù)字化測(cè)量技術(shù),把連續(xù)的模擬量(直流輸入電壓)轉(zhuǎn)換成離散的數(shù)字形式并加以顯示的儀表。傳統(tǒng)的指針式電壓表功能單一、精度較低,不能滿足數(shù)字化時(shí)代的需求。采用以單片機(jī)為平臺(tái)開發(fā)的數(shù)字電壓表,具有精度高、抗干擾能力強(qiáng),可擴(kuò)展性強(qiáng)、集成方便,可與pc進(jìn)行實(shí)時(shí)通信等方面的優(yōu)點(diǎn),能夠在很大程度上優(yōu)化測(cè)量結(jié)果,提高使用者的工作效率。數(shù)字化電壓表的廣泛應(yīng)用,符合和滿足了現(xiàn)代化測(cè)量技術(shù)的需要。目前,由各種單片機(jī)和a/d轉(zhuǎn)換器構(gòu)成的數(shù)字電壓表,已被廣泛用于電子及電工測(cè)量
8、、工業(yè)自動(dòng)化儀表、自動(dòng)測(cè)試系統(tǒng)等多智能化測(cè)量領(lǐng)域,并且顯示出強(qiáng)大的作用和生命力。與此同時(shí),由dvm擴(kuò)展而成的各種通用及專用數(shù)字儀器儀表,也把電子測(cè)量以及相關(guān)聯(lián)的非電子測(cè)量技術(shù)提高到了一個(gè)嶄新的水平。新型數(shù)字電壓表以及由電壓表擴(kuò)展而成的各種通用及專用儀表以其高準(zhǔn)確度、高可靠性、高性能分析、高分辨率、高性價(jià)比等優(yōu)良特性,給使用者帶來了輕松便捷的操作和高效良好的性能分析能力,贏得了廣大使用者的青睞。在新興科學(xué)技術(shù)不斷涌現(xiàn)的今天和未來,隨著數(shù)字化時(shí)代的進(jìn)程,隨著測(cè)試需求的多樣化和復(fù)雜化,電子測(cè)試測(cè)量的儀器系統(tǒng)也朝著以軟件為核心的模塊化方向發(fā)展,并且必將得到廣泛的應(yīng)用。 本設(shè)計(jì)的硬件是通過51系列單片機(jī)
9、控制adc0809 a/d轉(zhuǎn)換器進(jìn)行信號(hào)接收和轉(zhuǎn)換,并將轉(zhuǎn)換后的信號(hào)輸送至單片機(jī),通過單片機(jī)進(jìn)行處理,并控制數(shù)碼管顯示,是關(guān)于單片機(jī)內(nèi)部定時(shí)器、并行i/o口、中斷系統(tǒng)等相關(guān)功能,以及l(fā)ed顯示、a/d轉(zhuǎn)換器、譯碼器、驅(qū)動(dòng)器、基準(zhǔn)電源等的綜合性研究。軟件設(shè)計(jì)包括顯示掃描子程序、1ms延時(shí)子程序、通道選擇子程序、adc0809轉(zhuǎn)換子程序。經(jīng)過測(cè)量設(shè)計(jì)原理和顯示方式的深度變革,使測(cè)量結(jié)果通過數(shù)碼形式的直觀顯示,有效避免了因使用傳統(tǒng)測(cè)量儀表時(shí)的視差和視覺疲勞等一些不良因素造成的測(cè)量誤差,在極大的程度上提高了使用者的工作效率和作業(yè)的精確性,進(jìn)而對(duì)提高工程項(xiàng)目的質(zhì)量有非常大的幫助。一、方案論證(一)控制芯
10、片方案一:選用專用電壓轉(zhuǎn)換芯片inc7107實(shí)現(xiàn)電壓的測(cè)量和顯示。缺點(diǎn)是測(cè)量的精度比較低,信號(hào)的轉(zhuǎn)換在芯片內(nèi)部完成,不可控制,靈活性差。優(yōu)點(diǎn)是價(jià)格低廉。方案二:選用單片機(jī)at89c52和a/d轉(zhuǎn)換芯片adc0809實(shí)現(xiàn)電壓的轉(zhuǎn)換和控制,用4位數(shù)碼管顯示出最后的轉(zhuǎn)換結(jié)果。測(cè)量轉(zhuǎn)換的精度高,通過控制轉(zhuǎn)換和顯示電路,實(shí)現(xiàn)單路或多路電壓同時(shí)測(cè)量。基于設(shè)計(jì)功能方面考慮,方案二為較佳選擇。(二)顯示部分方案一:選用4位8段led共陽數(shù)碼管,與單片機(jī)口的i/o連接進(jìn)行控制,動(dòng)態(tài)顯示測(cè)量結(jié)果。優(yōu)點(diǎn)是價(jià)格比較便宜,并且可以滿足測(cè)量精度的要求。方案二:通過lcd1602顯示測(cè)量結(jié)果。雖然1602可以顯示數(shù)字和字符
11、的內(nèi)容豐富,但是器件引腳較多,并且價(jià)格比較昂貴。基于綜合考慮,選擇方案一。經(jīng)過控制芯片和顯示器件的綜合類比分析,設(shè)計(jì)的數(shù)字電壓表認(rèn)定通過atc89c52單片機(jī)控制adc0809模/數(shù)轉(zhuǎn)換器件,利用4位數(shù)碼管顯示測(cè)量結(jié)果的方案為最佳方案。二、總體設(shè)計(jì)思想設(shè)計(jì)的數(shù)字電壓表由模擬電路和數(shù)字電路兩部分組成,數(shù)字電路部分主要包括系統(tǒng)控制和運(yùn)算顯示模塊,模擬電路部分主要由基礎(chǔ)電源、信號(hào)采集和測(cè)量等部分構(gòu)成。總體設(shè)計(jì)思想為:at89c52單片機(jī)是數(shù)字電壓表系統(tǒng)的控制核心。將需要測(cè)量的模擬信號(hào)(直流電壓)直接輸送到a/d轉(zhuǎn)換電路進(jìn)行a/d轉(zhuǎn)換,由單片機(jī)對(duì)轉(zhuǎn)換后的信號(hào)進(jìn)行數(shù)據(jù)處理,最終將處理后的數(shù)字信號(hào)經(jīng)過顯示
12、驅(qū)動(dòng)電路和數(shù)碼管顯示進(jìn)行測(cè)量結(jié)果的直觀顯示。設(shè)計(jì)的數(shù)字電壓表除了可以同時(shí)進(jìn)行多路模擬信號(hào)的測(cè)量外,也可以通過通道選擇電路對(duì)單片機(jī)進(jìn)行控制,用來實(shí)現(xiàn)信號(hào)的單路測(cè)量和多路測(cè)量的切換。數(shù)字電壓表的系統(tǒng)框圖如圖2.1所示。圖2.1 系統(tǒng)框圖三、硬件電路的設(shè)計(jì)(一)硬件設(shè)計(jì)原理設(shè)計(jì)的數(shù)字電壓表主要用于測(cè)量0-5v的直流電壓,通過單片機(jī)控制a/d轉(zhuǎn)換器將連續(xù)的模擬信號(hào)轉(zhuǎn)換成離散的數(shù)字信號(hào),并對(duì)轉(zhuǎn)換后的信號(hào)進(jìn)行運(yùn)算比較,最終通過數(shù)碼管顯示測(cè)量結(jié)果。整個(gè)電路主要由控制電路、a/d轉(zhuǎn)換電路、數(shù)碼顯示電路、復(fù)位電路、選擇電路、基準(zhǔn)電源、測(cè)試電路等幾部分組成。設(shè)計(jì)的數(shù)字電壓表是基于at89c52單片機(jī)和a/d轉(zhuǎn)換器
13、件的應(yīng)用基礎(chǔ)之上,at89c52單片機(jī)和a/d轉(zhuǎn)換模塊是本次設(shè)計(jì)的核心,通過單片機(jī)控制a/d轉(zhuǎn)換器,實(shí)現(xiàn)對(duì)模擬信號(hào)的接收和轉(zhuǎn)換:p0口連接a/d轉(zhuǎn)換器的數(shù)字端口,作a/d轉(zhuǎn)換器數(shù)據(jù)讀入端,接收轉(zhuǎn)化后的數(shù)字信號(hào)并進(jìn)行處理;單片機(jī)的p1口、p3.0-p3.3口作為4位7段led數(shù)碼管顯示控制端,p3.5端口用作單路/循環(huán)顯示轉(zhuǎn)換控制按鈕,p3.6端口用作單路顯示時(shí)選擇顯示的通道。數(shù)字電壓表硬件設(shè)計(jì)方案框圖如3.1所示。圖3.1 數(shù)字電壓表硬件邏輯框圖單片機(jī)是制作在一塊集成電路芯片上的計(jì)算機(jī),它包括中央處理器(cpu)、用ram構(gòu)成的數(shù)據(jù)存儲(chǔ)器、用rom構(gòu)成的程序存儲(chǔ)器、定時(shí)器/計(jì)數(shù)器、各種i/o接
14、口、時(shí)鐘電路和中斷系統(tǒng)等,它們通過地址總線(ab)、數(shù)據(jù)總線(db)和控制總線(cb)連接起來,通過i/o口線與外部設(shè)備及外圍芯片連接,以及單片機(jī)系統(tǒng)中的系統(tǒng)操作軟件和用戶應(yīng)用軟件,實(shí)現(xiàn)對(duì)整個(gè)電路系統(tǒng)的控制作用。(二)at89c52單片機(jī)概述1.at89c52單片機(jī)組成圖3.2 at89c52單片機(jī)組成結(jié)構(gòu)圖設(shè)計(jì)采用的at89c52單片機(jī)是mcs-51系列單片機(jī)的一個(gè)型號(hào),它是由atmel公司生產(chǎn)的。 at89c52單片機(jī)內(nèi)包含有1個(gè)8位的cpu、1個(gè)片內(nèi)振蕩器及時(shí)鐘電路、8kb的rom程序存儲(chǔ)器、256b的ram數(shù)據(jù)存儲(chǔ)器、3個(gè)16位的定時(shí)器/計(jì)數(shù)器、可尋址64kb外部數(shù)據(jù)存儲(chǔ)器和64kb外
15、部程序存儲(chǔ)空間的控制電路、4個(gè)8位并行i/o端口、2個(gè)可編程全雙工串行口、6個(gè)中斷源、兩個(gè)優(yōu)先級(jí)嵌套中斷結(jié)構(gòu)。at89c52單片機(jī)組成結(jié)構(gòu)如圖3.2所示。2.at89c52單片機(jī)引腳結(jié)構(gòu)(1)電源引腳vcc(40腳):接+5v電源。vss(20腳):接地。(2)時(shí)鐘引腳xtal1(19腳):內(nèi)部振蕩電路反向放大電路的輸入端,外接晶體的一個(gè)引腳。當(dāng)采用外部振蕩器時(shí),此引腳接地。 xtal2(18腳):內(nèi)部振蕩電路反向放大電路的輸出端,外接晶體的另一端。當(dāng)采用外部振蕩器時(shí),此引腳接外部電源。 (3)i/o口引腳p0口(p0.0-p0.7):p0.7是最高位,p0.0是最低位,有兩種功能如下。通用i
16、/o口:無片外存儲(chǔ)器時(shí),p0口可以做為通用i/o口使用;地址/數(shù)據(jù)口:在訪問外部存儲(chǔ)器時(shí),用作地址總線的低8位和數(shù)據(jù)總線。p1口(p1.0-p1.7):p1.7是最高位,p1.0是最低位,僅用作i/o口。p2口(p2.0-p2.7):p2.7是最高位,p2.0是最低位,有兩種功能如下。通用i/o口:無片外存儲(chǔ)器時(shí),p2口可以做為通用i/o口使用;地址口:在訪問外部存儲(chǔ)器時(shí),用作地址總線的高8位。p3口(p3.0-p3.7):p3.7是最高位,p3.0是最低位,有兩種功能如下。通用i/o口:用于串行口、中斷源輸入、計(jì)數(shù)器、片外ram選通。(4)控制引腳引腳圖如圖3.3所示。圖3.3 at89c5
17、2的引腳圖 rst/vpd(9腳)rst為reset,vpd為備用電源。該引腳為單片機(jī)的上電復(fù)位或掉電保護(hù)端。當(dāng)振蕩器工作時(shí),rst引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平,將使單片機(jī)復(fù)位。當(dāng)vcc發(fā)生故障,該引腳可接上備用電源為內(nèi)部ram供電,以保證ram中的數(shù)據(jù)不丟失。ale/prog(30腳)地址鎖存有效信號(hào)輸出端。ale在每個(gè)機(jī)器周期內(nèi)輸出兩個(gè)脈沖。在訪問片外程序存儲(chǔ)器期間,下降沿由于控制p0輸出的低8位地址;在不訪問片外程序存儲(chǔ)器期間,可作為對(duì)外輸出的時(shí)鐘脈沖或用于定時(shí)目的。psen(29腳)片外程序存儲(chǔ)器選通信號(hào)輸入端,低電平有效。當(dāng)從外部程序存儲(chǔ)器讀取指令或常數(shù)期間,該信號(hào)在每個(gè)機(jī)器周期兩
18、次有效,以通過數(shù)據(jù)總線p0口讀回指令或常數(shù)。在訪問片外程序存儲(chǔ)器期間,psen信號(hào)將不再出現(xiàn)。ea/vpp(31腳) 外部程序存儲(chǔ)器地址允許輸入端/編程電壓輸入端。當(dāng)ea接高電平時(shí),cpu執(zhí)行片內(nèi)rom指令,但當(dāng)pc值超過0fffh時(shí),將自動(dòng)轉(zhuǎn)去執(zhí)行片外rom指令;當(dāng)ea接低電平時(shí),cpu只執(zhí)行片外rom指令。3. at89c52單片機(jī)的最小系統(tǒng)圖3.4 at89c52最小系統(tǒng)(1)時(shí)鐘電路單片機(jī)的時(shí)鐘信號(hào)用來提供單片機(jī)內(nèi)部各種操作的時(shí)間基準(zhǔn),時(shí)鐘電路用來產(chǎn)生單片機(jī)工作所需要的時(shí)鐘信號(hào)。單片機(jī)內(nèi)部有一個(gè)高增益的反相放大器,其輸入端xtal1和xtal2用于外接晶體和電容,以構(gòu)成自激振蕩器,其發(fā)
19、出的脈沖直接送入內(nèi)部的時(shí)鐘電路,內(nèi)接電路如圖3.5所示。外部時(shí)鐘方式是把外部已有的時(shí)鐘信號(hào)引入到單片機(jī)內(nèi),如圖3.6所示。本設(shè)計(jì)的數(shù)字電壓表采用的是內(nèi)部時(shí)鐘電路。圖3.5 內(nèi)部方式時(shí)鐘電路 圖3.6 外部方式時(shí)鐘電路(2)復(fù)位電路單片機(jī)復(fù)位時(shí),使cpu和系統(tǒng)中的其他功能部件恢復(fù)為初始狀態(tài),就像計(jì)算機(jī)的重啟,并從這個(gè)狀態(tài)開始工作。要實(shí)現(xiàn)復(fù)位操作,必須是res引腳至少保持兩個(gè)機(jī)器周期(24個(gè)振蕩器周期)的高電平。cpu在第二個(gè)機(jī)器周期內(nèi)執(zhí)行內(nèi)部復(fù)位操作,以后每一個(gè)機(jī)器周期重復(fù)一次,直至res端電平變低。復(fù)位期間不產(chǎn)生ale及psen非信號(hào),即ale1和psen(非)1。這表明單片機(jī)復(fù)位期間不會(huì)有任
20、何取指操作。當(dāng)res引腳返回低電平后,cpu從0000h地址開始執(zhí)行程序。圖3.7 上電復(fù)位 圖3.8 按鍵復(fù)位單片機(jī)常見的復(fù)位電路主要有上電復(fù)位電路和按鍵復(fù)位電路。上電復(fù)位電路如圖3.7所示,由rc構(gòu)成微分電路,在上電瞬間,產(chǎn)生一個(gè)微分脈沖,其寬度若大于兩個(gè)機(jī)器周期,單片機(jī)將復(fù)位。為了保證微分脈沖寬度足夠大,rc時(shí)間常數(shù)應(yīng)大于兩個(gè)機(jī)器周期,一般取22uf電容、1k電阻。按鍵復(fù)位電路如圖3.8所示,該電路除具有上電復(fù)位功能外,若要復(fù)位,必須按下圖中的rest鍵,r1、c2仍構(gòu)成微分電路,使rst端產(chǎn)生一個(gè)微分脈沖復(fù)位,復(fù)位完畢c2經(jīng)r2放電,等待下一次按下復(fù)位按鈕。本設(shè)計(jì)的數(shù)字電壓表采用的是按
21、鍵復(fù)位方式。(三)a/d轉(zhuǎn)換電路1.a/d轉(zhuǎn)換器工作過程a/d轉(zhuǎn)換器實(shí)際上是將模擬信號(hào)轉(zhuǎn)換成數(shù)字量的裝置,其轉(zhuǎn)換過程主要包括采樣、量化、編碼三個(gè)步驟。(1)采樣、量化部分采樣就是周期性地測(cè)量一種連續(xù)信號(hào)或連續(xù)過程信號(hào),測(cè)量的周期稱為采樣周期ts,采樣周期的倒數(shù)稱為采樣頻率 3-1在對(duì)模擬信號(hào)進(jìn)行模數(shù)轉(zhuǎn)換時(shí),a/d轉(zhuǎn)換器從啟動(dòng)變換到轉(zhuǎn)換完成需要一定的轉(zhuǎn)換。當(dāng)輸入信號(hào)頻率較高時(shí),由于轉(zhuǎn)換時(shí)間的存在,會(huì)造成較大的轉(zhuǎn)換誤差。為了防止這種現(xiàn)象的產(chǎn)生,必須在a/d 轉(zhuǎn)換開始時(shí)將信號(hào)電平保持住。a/d轉(zhuǎn)換器輸出數(shù)字量的大小只能是某個(gè)規(guī)定的最小單位的整數(shù)倍,即必須把采樣電壓轉(zhuǎn)化為這個(gè)最小數(shù)值單位的整數(shù)倍,這個(gè)
22、轉(zhuǎn)化過程叫做量化,所取的最小數(shù)量單位叫做量化單位,其大小等于輸出的數(shù)字信號(hào)最低有效位1所代表的數(shù)量大小。把量化的結(jié)果用代碼表示出來稱為編碼。采樣保持電路能將采樣后的模擬信號(hào)暫時(shí)存儲(chǔ)起來,保持一個(gè)采樣周期。2量化、編碼部分量化編碼部分是a/d轉(zhuǎn)換器的核心組成部分。所謂量化,就是采用一組數(shù)碼來逼近離散模擬信號(hào)的幅值,將其轉(zhuǎn)換為數(shù)字信號(hào)。將采樣信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)的過程稱為量化過程。執(zhí)行量化動(dòng)作的裝置為a/d 轉(zhuǎn)換器。在實(shí)際應(yīng)用中,串行a/d轉(zhuǎn)換芯片具有占用單片機(jī)的引腳資源少,可以簡化單片機(jī)系統(tǒng),降低成本的優(yōu)點(diǎn),所以串行工作方式的a/d轉(zhuǎn)換器在單片機(jī)系統(tǒng)中有著廣泛的應(yīng)用。其內(nèi)部有一個(gè)8通道多路開關(guān),它
23、可以根據(jù)地址碼鎖存譯碼后的信號(hào),只選通8個(gè)單斷模擬輸入信號(hào)中的一個(gè)進(jìn)行a/d轉(zhuǎn)換。adc0809是最常用的8位a/d轉(zhuǎn)換器,屬于逐次逼近型。adc0809由單一+5v電源供電,片內(nèi)帶有鎖存功能的8路模擬電子開關(guān),可對(duì)0+5v 八路的輸入電壓信號(hào)分時(shí)進(jìn)行轉(zhuǎn)換,輸出具有ttl三態(tài)鎖存緩沖器,直接與mcs-51系列單片機(jī)數(shù)據(jù)總線相連,通過適當(dāng)?shù)耐饨与娐?,還可對(duì)0+5v 的雙極性模擬信號(hào)進(jìn)行a/d轉(zhuǎn)換。adc0809片內(nèi)集成了8路模擬多路開關(guān)、地址鎖存與譯碼、8位a/d轉(zhuǎn)換器以及8位三臺(tái)輸出鎖存器四部分組成。adc0809內(nèi)部組成結(jié)構(gòu)框圖如圖3.9所示。圖3.9 adc0809內(nèi)部組成結(jié)構(gòu)框圖2.a/
24、d轉(zhuǎn)換電路adc0809雙列直插式封裝的引腳配置如圖3.10所示。圖3.10 adc0809引腳圖adc0809具有8路模擬量輸入通道in0-in7,通過3位地址輸入端c、b、a進(jìn)行選擇,用于選通8路模擬輸入中的一路。地址鎖存控制端ale,當(dāng)輸入為高電平時(shí),c、b、a引腳輸入的地址鎖存于adc0809內(nèi)部的鎖存器中,經(jīng)內(nèi)部譯碼電路譯碼選中相應(yīng)的模擬通道。啟動(dòng)轉(zhuǎn)換控制端start,其上升沿用于清除adc內(nèi)部寄存器,下降沿用于啟動(dòng)控制內(nèi)部邏輯,使adc0809開始對(duì)輸入通道的模擬量進(jìn)行轉(zhuǎn)換。a/d轉(zhuǎn)換器,當(dāng)開始轉(zhuǎn)換時(shí),eoc信號(hào)為低電平,經(jīng)過一段時(shí)間,轉(zhuǎn)換結(jié)束,轉(zhuǎn)換結(jié)束信號(hào)eoc輸出高電平,轉(zhuǎn)換結(jié)
25、果存放于adc0809內(nèi)部的輸出數(shù)據(jù)寄存器中。 oe為a/d轉(zhuǎn)換數(shù)據(jù)輸出允許控制端,當(dāng)oe為高電平時(shí),才能打開輸出三態(tài)門,將存放于輸出數(shù)據(jù)鎖存器中的數(shù)據(jù)通過adc0809的數(shù)據(jù)線d0-d7輸出。adc0809的時(shí)鐘信號(hào)輸入端clock,它的頻率決定了a/d轉(zhuǎn)換器的轉(zhuǎn)換速度。在此,它的頻率不能高于640khz,對(duì)應(yīng)的轉(zhuǎn)換速度為100us。 圖3.11 a/d轉(zhuǎn)換電路ref(+)和ref(-)是d/a轉(zhuǎn)換器的參考電壓輸入線,要求ref(-)不得為負(fù)值,ref(+)不得高于vcc,并且1/2ref(+)+ ref(-)與1/2vcc之差不得大于0.1v。vcc為+5v電源,gnd為接地端。在連接時(shí),
26、adc0809的數(shù)據(jù)線d0-d7端與at89c52單片機(jī)的p0口相連接,adc0809的地址引腳、地址鎖存端ale、啟動(dòng)信號(hào)start、數(shù)據(jù)輸出允許控制端oe與at89c52的p2口相連接,轉(zhuǎn)換結(jié)束信號(hào)eoc與at89c52的p3.7口相連接。時(shí)鐘信號(hào)輸入端clock信號(hào),由單片機(jī)的地址鎖存信號(hào)ale得到,通過軟件實(shí)現(xiàn)。通過sw1和sw2輕觸按鈕開關(guān)給單片機(jī)提供選擇信號(hào),由單片機(jī)控制adc0809地址輸入端,選中相應(yīng)的模擬通道進(jìn)行測(cè)量。adc0809與單片機(jī)的連接電路如圖3.11所示。(四)數(shù)碼顯示電路數(shù)碼管顯示分為動(dòng)態(tài)顯示和靜態(tài)顯示兩種方式。所謂靜態(tài)顯示,就是當(dāng)數(shù)碼管顯示某一個(gè)字符時(shí),相應(yīng)的
27、發(fā)光二極管恒定的導(dǎo)通或截止。這種顯示方式,優(yōu)點(diǎn)是編程簡單,顯示亮度高,缺點(diǎn)是每一位都需要有一個(gè)8位輸出口控制,所以占用的硬件較多,所以一般用于數(shù)碼管比較少的場合。數(shù)碼管動(dòng)態(tài)顯示是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示段“a,b,c,d,e,f,g,dp”的相同端連接在一起,另外為每個(gè)數(shù)碼管的公共極com增加位選通控制電路,位選通由各自獨(dú)立的i/o線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是哪個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通com端電路的控制,所以只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮
28、。通過分時(shí)輪流控制各個(gè)led數(shù)碼管的com端,就使各個(gè)數(shù)碼管輪流受控顯示。在輪流顯示過程中,每位元數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極體的余輝效應(yīng),雖然實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,達(dá)到和靜態(tài)顯示同樣的顯示效果。動(dòng)態(tài)顯示能夠節(jié)省大量的i/o口,而且功耗更低。設(shè)計(jì)的數(shù)字電壓表要求可以同時(shí)測(cè)量8路0-5v的直流電壓,測(cè)量最大分辨率為0.0196v,并要求最高位用于顯示測(cè)量電壓的地址范圍,所以要求數(shù)碼管至少采用4位顯示的數(shù)碼管。圖3.12 4位共陽數(shù)碼管內(nèi)部引腳分布圖為了方便和減少設(shè)計(jì)的復(fù)雜度,設(shè)計(jì)采用的是
29、4位共陽數(shù)碼管來進(jìn)行測(cè)量結(jié)果的顯示,數(shù)碼管的內(nèi)部結(jié)構(gòu)及引腳分布如圖3.12所示。數(shù)碼管每位的8個(gè)led陽極連接到一個(gè)公共端口com,分別為com1,com2,com3,com4,把每位相同位置led段的陰極連接到一個(gè)公共端口,分別為a,b,c,d,e,f,g,dp口。如果采用靜態(tài)顯示方式,則需要4832個(gè)i/o口,應(yīng)用時(shí)必須增加擴(kuò)展芯片和較多驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),這將很大程度上增加了硬體電路設(shè)計(jì)的復(fù)雜性。若采用靜態(tài)顯示的方式,只需要12個(gè)i/o,其中8個(gè)i/o用于連接每位數(shù)碼管的8位顯示段,作為數(shù)據(jù)端口;另外4個(gè)i/o口用于連接每位數(shù)碼管顯示段的公共端,作為掃描端口,控制數(shù)字顯示。數(shù)碼顯示電路如圖3
30、.13所示。圖3.13 數(shù)碼管動(dòng)態(tài)顯示電路四、系統(tǒng)的程序設(shè)計(jì)(一)軟件設(shè)計(jì)思想框圖系統(tǒng)上電時(shí),初始化程序主要用來執(zhí)行70h-77h內(nèi)存單元清0和p2口置0等準(zhǔn)備工作。初始化后,單片機(jī)片選a/d轉(zhuǎn)換器,然后發(fā)出信號(hào)啟動(dòng)a/d轉(zhuǎn)換,此時(shí)單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器也開始工作,不斷掃描a/d轉(zhuǎn)換器結(jié)束端口有無結(jié)束信號(hào)。如果存在,則啟動(dòng)信號(hào)采集,對(duì)a/d轉(zhuǎn)換器數(shù)據(jù)輸出口輸出的數(shù)值進(jìn)行存儲(chǔ),定時(shí)器/計(jì)數(shù)器重新置零,準(zhǔn)備下一次的采集,如果沒有,則繼續(xù)掃描等待。掃描結(jié)束后,進(jìn)行數(shù)據(jù)處理,同時(shí)進(jìn)行下一次掃描。數(shù)據(jù)處理完之后,利用查表法將電壓數(shù)值送到數(shù)碼管顯示器進(jìn)行顯示。在剛上電時(shí),系統(tǒng)默認(rèn)為循環(huán)顯示8個(gè)通道的電壓
31、值狀態(tài)。當(dāng)進(jìn)行一次測(cè)量后,將顯示每一通道的a/d轉(zhuǎn)換值,每個(gè)通道的數(shù)據(jù)顯示時(shí)間在1s左右。主程序在調(diào)用顯示子程序與測(cè)量子程序之間循環(huán)。程序的流程框圖如圖4.1所示。 圖4.1 主程序框圖(二)子程序原理和框圖1.顯示子程序顯示子程序采用動(dòng)態(tài)掃描法實(shí)現(xiàn)4位7段數(shù)碼管的數(shù)值顯示。測(cè)量所得的a/d轉(zhuǎn)換數(shù)據(jù)放在70h-77h內(nèi)存單元中,測(cè)量數(shù)據(jù)在顯示時(shí)須經(jīng)過轉(zhuǎn)換成為十進(jìn)制bcd碼放在78h-7bh單元中,其中7bh存放通道標(biāo)志數(shù)。寄存器r3用作8路循環(huán)控制,r0用作顯示數(shù)據(jù)地址指針。顯示子程序流程圖如圖4.2所示。圖4.2 顯示子程序流程圖顯示掃描子程序分析如下void scanuchar k,n;i
32、nt h;dis30x01; /通道初值為1forn0;n8;n+ /每次顯示8個(gè)數(shù)據(jù)dis2ad_datan/51; /測(cè)得值轉(zhuǎn)換為3位bcd碼,最大為5.00vdis4ad_datan%51; /余數(shù)暫存dis4dis4*10; /計(jì)算小數(shù)第一位dis1dis4/51;dis4dis4%51;dis4dis4*10; /計(jì)算小數(shù)第二位dis0dis4/51;ifdis24&dis16&dis00a1;elsea0;forh0;h500;h+ /每個(gè)通道顯示時(shí)間控制約為一秒fork0;k4;k+ /4位led掃描控制disdatadis_7disk;ifk2disx0;p3scan_conk
33、; /p3.o-p3.3控制數(shù)碼管輸出電平的高低delaylms1;p30xff;dis3+; /通道值加12. a/d轉(zhuǎn)換測(cè)量子程序a/d轉(zhuǎn)換測(cè)量子程序用來控制對(duì)adc0809的8路模擬輸入電壓的a/d轉(zhuǎn)換,并將對(duì)應(yīng)的數(shù)值移入單片機(jī)70h-77h內(nèi)存單元。a/d轉(zhuǎn)換測(cè)量子程序流程圖如圖4.3所示。圖4.3 a/d轉(zhuǎn)換測(cè)量子程序流程圖a/d轉(zhuǎn)換子程序分析如下:void testuchar m;uchar s0x00;ad_cons;form0;m8;m+ale1;_nop_;_nop_;ale0; /轉(zhuǎn)換通道地址鎖存start1;_nop_;_nop_;start0; /開始轉(zhuǎn)換命令_nop_
34、;_nop_;_nop_;_nop_; /延時(shí)4uswhileeoc0; /等待轉(zhuǎn)換結(jié)束oe1;ad_datamaddata;oe0;s+;ad_cons; /取a/d值,地址加1ad_con0x00; /控制復(fù)位五、調(diào)試及性能分析(一)測(cè)量與調(diào)試采用keil和proteus軟件進(jìn)行程序編譯及電路仿真調(diào)試,利用protel軟件進(jìn)行硬件電路板的制作設(shè)計(jì),通過stc_isp軟件將keil程序編譯時(shí)生成的hex文件燒錄到單片機(jī)內(nèi),組裝好電路后進(jìn)行硬件和軟件的綜合調(diào)試。調(diào)試無誤后,進(jìn)行測(cè)量,將測(cè)量電壓與標(biāo)準(zhǔn)電壓表的測(cè)量結(jié)果進(jìn)行對(duì)比分析。測(cè)量對(duì)比分析的結(jié)果如表5-1所示。表5-1 數(shù)字電壓表與“標(biāo)準(zhǔn)”數(shù)
35、字電壓表測(cè)量對(duì)比標(biāo)準(zhǔn)電壓值/v數(shù)字電壓表測(cè)得值/v絕對(duì)誤差/v0.000.000.000.500.51+0.010.800.81+0.011.001.01+0.011.581.58 0.002.002.01+0.012.502.51+0.013.003.32+0.024.504.52+0.02注:表中標(biāo)準(zhǔn)電壓值采用ut30b數(shù)字萬用表測(cè)得。(二)性能分析由于單片機(jī)為8位處理器,當(dāng)輸入電壓為5.00v時(shí),adc0809輸出數(shù)據(jù)值為255(ffh),因此單片機(jī)最高的數(shù)值分辨率為0.0196v(5/255)。這就決定了該電壓表的最高分辨率(精度)只能達(dá)到0.0196 v,測(cè)試時(shí)電壓一般以0.02v的
36、幅度變化。如果要獲得更高精度的測(cè)量要求,則應(yīng)采用更高位的a/d轉(zhuǎn)換器件。從表5-1中可以看出,設(shè)計(jì)的數(shù)字電壓表與ut30b數(shù)字萬用表測(cè)得的絕對(duì)誤差均在0.02v以內(nèi),這與采用8位a/d轉(zhuǎn)換器所能到達(dá)的理論誤差精度相一致,在一般的應(yīng)用場合可以滿足使用要求。另外,設(shè)計(jì)的數(shù)字電壓表測(cè)得的值基本上比用ut30b數(shù)字萬用表測(cè)得的標(biāo)準(zhǔn)電壓值偏大0.01-0.02 v。這可以通過校正adc0809的基準(zhǔn)電壓來解決。因?yàn)樵撾妷罕碓O(shè)計(jì)時(shí)的直接供電電源也同時(shí)作為adc0809的基準(zhǔn)電壓,所以電壓有可能有偏差。另外,還可以根據(jù)測(cè)量誤差,用軟件編程方式校正測(cè)量值。當(dāng)要測(cè)量大于5v的直流電壓時(shí),可在測(cè)量信號(hào)的輸入口使用
37、分壓電阻,通過計(jì)算間接得到測(cè)量結(jié)果。也可以在程序中將計(jì)算程序的除數(shù)進(jìn)行調(diào)整。但是隨著量程增大,測(cè)量的精度會(huì)降低??偨Y(jié)通過本次畢業(yè)設(shè)計(jì),使我從實(shí)踐中學(xué)到了更多的專業(yè)知識(shí)和加強(qiáng)了自身的能力培養(yǎng),鞏固了我所學(xué)習(xí)的理論知識(shí),使得我對(duì)單片機(jī)知識(shí)及應(yīng)用有了更為深層的了解。此外,更重要的是,鍛煉了實(shí)踐工作的能力,提高工程素養(yǎng),學(xué)會(huì)將理論與實(shí)踐相結(jié)合,用理論指導(dǎo)實(shí)踐,通過實(shí)踐來驗(yàn)證和加深對(duì)理論的理解,使得自己在理論和實(shí)踐上有新的認(rèn)識(shí)和提高,使綜合應(yīng)用能力和分析解決問題的能力得到提高。這些都是自己努力贏得的寶貴財(cái)富,將會(huì)為以后的學(xué)習(xí)和工作打下了更加堅(jiān)實(shí)的基礎(chǔ)。附錄一 數(shù)字電壓表原理圖附錄二 程序清單#inclu
38、de #include /延時(shí)函數(shù)用#define ad_con p2 /a/d控制口#define addata p0 /a/d數(shù)據(jù)記入讀入口#define disdata p1 /顯示數(shù)據(jù)段碼輸出口#define uchar unsigned char#define uint unsigned intsbit alep23; /鎖存地址控制位sbit startp24; /啟動(dòng)一次轉(zhuǎn)換位sbit oep25; /0809輸出數(shù)據(jù) 控制位sbit eocp37; /轉(zhuǎn)換結(jié)束標(biāo)志位sbit disxdisdata7; /led小數(shù)點(diǎn)sbit ap27;sbit bop35;sbit cop36
39、;uchar codedis_7110xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff; /共陽7段led段碼表0.1.2.3.4.5.6.7.8.9.不亮uchar code scan_con40xfe,0xfd,0xfb,0xf7; /4位列掃描控制字 /11111110/11111101/11111011/11110111uchar data ad_data80x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00; /定義8個(gè)數(shù)據(jù)內(nèi)存單元uint data dis50x00,0x00,0x00,0x00,0x00; /定義4個(gè)顯示數(shù)據(jù)單元和1個(gè)數(shù)據(jù)存儲(chǔ)單元/*1ms延時(shí)子函數(shù)*/void delaylmsuint t /t1uin
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Purpurin-Standard-生命科學(xué)試劑-MCE
- 高級(jí)服裝店銷售代表聘用協(xié)議樣本
- 幼兒園新學(xué)期老師國旗發(fā)言稿
- 公司3.12植樹節(jié)活動(dòng)方案(32篇)
- 年度考核個(gè)人總結(jié)
- 網(wǎng)絡(luò)直播平臺(tái)版權(quán)保護(hù)合同
- 網(wǎng)絡(luò)直播平臺(tái)內(nèi)容策劃與制作合同
- 2024年平面設(shè)計(jì)服務(wù)協(xié)議模板
- 網(wǎng)絡(luò)游戲策劃及開發(fā)合作合約
- 網(wǎng)絡(luò)游戲開發(fā)及運(yùn)營整體解決方案設(shè)計(jì)思路分享
- 斷裂力學(xué)與斷裂韌性
- 焊接方法代號(hào)(數(shù)字+字母)
- 淺談從閱讀、生活、作文中積累語言
- 簡潔卡通生日快樂賀卡模板
- 電磁輻射計(jì)算
- 藥事管理委員會(huì)會(huì)議紀(jì)要
- 不銹鋼方管尺寸及理論重量重量表
- 【公開課課件】高中英語讀后續(xù)寫(整合)
- 網(wǎng)球教練求職簡歷模板免費(fèi)下載
- 個(gè)人喜好調(diào)查問卷
- 引發(fā)劑I分解(課堂PPT)
評(píng)論
0/150
提交評(píng)論