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

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)字電壓表簡(jiǎn)稱DVM,數(shù)字電壓表基本原理是將輸入的模擬電壓信號(hào)轉(zhuǎn)化為數(shù)字信號(hào),再進(jìn)行輸出顯示。而A/D轉(zhuǎn)換器的作用是將連續(xù)變化的模擬信號(hào)量轉(zhuǎn)化為離散的數(shù)字信號(hào),器基本結(jié)構(gòu)是由采樣保持,量化,編碼等幾部分組成。因此AD轉(zhuǎn)換是此次設(shè)計(jì)的核心元件。輸入的模擬量經(jīng)過AD轉(zhuǎn)換器轉(zhuǎn)換,再由驅(qū)動(dòng)器驅(qū)動(dòng)顯示器輸出,便得到測(cè)量的數(shù)字電壓。本次自己的設(shè)計(jì)作品從各個(gè)角度分析了AD轉(zhuǎn)換器組成的數(shù)字電壓表的設(shè)計(jì)過程及各部分電路的組成及原理,并且分析了數(shù)模轉(zhuǎn)換進(jìn)而使系統(tǒng)運(yùn)行起來的原理及方法。通過自己的實(shí)踐提高了動(dòng)手能力,也只有親歷親為才能收獲掌握到液晶學(xué)過的知識(shí)。其實(shí)也為建立節(jié)約成本的意識(shí)有些幫助。本次設(shè)計(jì)同時(shí)也牽涉到了

2、幾個(gè)問題:精度、位數(shù)、速度、還有功耗等不足之處,這些都是要慎重考慮的,這些也是在本次設(shè)計(jì)中的收獲。1.3本次設(shè)計(jì)要求本次設(shè)計(jì)的作品要求制作數(shù)字電壓表的量程為0到10v,由于用到的模數(shù)轉(zhuǎn)換芯片是ADC0809,設(shè)計(jì)系統(tǒng)給的供電電壓為+5v,所以能夠測(cè)量白電壓范圍為-0.25v到5.25v之間,但是一般測(cè)量的直流電壓范圍都在這之上,所以采用電阻分壓網(wǎng)絡(luò),設(shè)計(jì)的電壓測(cè)量范圍是0到25v之間,滿足設(shè)計(jì)要求的最大量程5v的要求。同時(shí)設(shè)計(jì)的精度為小數(shù)點(diǎn)后三位,滿足要求的兩位小數(shù)的精度,在不考慮AD芯片的量化誤差的前提下,此次設(shè)計(jì)的精度能夠滿足一般測(cè)量的要求。2單片機(jī)和AD相關(guān)知識(shí)2.151單片機(jī)相關(guān)知識(shí)5

3、1單片機(jī)是對(duì)目前所有兼容intel8031指令系統(tǒng)的單片機(jī)的統(tǒng)稱。該系列單片機(jī)的始祖是intel的8031單片機(jī),后來隨著技術(shù)的發(fā)展,成為目前廣泛應(yīng)用的8為單片機(jī)之一。單片機(jī)是在一塊芯片內(nèi)集成了CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器和多功能I/O口等電腦所需要的基本功能部件的大規(guī)模集成電路,又稱為MCU。51系列單片機(jī)內(nèi)包含以下幾個(gè)部件:一個(gè)8位CPU;一個(gè)片內(nèi)振蕩器及時(shí)鐘電路;4KB的ROM程序存儲(chǔ)器;一個(gè)128B的RAM數(shù)據(jù)存儲(chǔ)器;尋址64KB外部數(shù)據(jù)存儲(chǔ)器和64KB外部程序存儲(chǔ)空間的控制電路;32條可編程的I/O口線;兩個(gè)16位定時(shí)/計(jì)數(shù)器;一個(gè)可編程全雙工用行口;5個(gè)中斷源、兩個(gè)優(yōu)先級(jí)

4、嵌套中斷結(jié)構(gòu)。51系列單片機(jī)如下列圖:圖151單片機(jī)引腳圖2.2AD轉(zhuǎn)換器相關(guān)知識(shí)ADC0809是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的CMOS工藝8通道,8位逐次逼近式AD轉(zhuǎn)換器。其內(nèi)部有一個(gè)8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號(hào),只選通8路模擬輸入信號(hào)中的一個(gè)進(jìn)行A/D轉(zhuǎn)換。1主要特性:18路輸入通道,8位A/D轉(zhuǎn)換器,即分辨率為8位。2具有轉(zhuǎn)換起??刂贫恕?轉(zhuǎn)換時(shí)間為100卜s時(shí)鐘為640kHz時(shí)),130小時(shí)鐘為500kHz時(shí)4單個(gè)+5V電源供電5模擬輸入電壓范圍0+5V,不需零點(diǎn)和滿刻度校準(zhǔn)。6工作溫度范圍為-40+85攝氏度7低功耗,約15mW02內(nèi)部結(jié)構(gòu)ADC0809是CMOS單片型

5、逐次逼近式A/D轉(zhuǎn)換器,內(nèi)部結(jié)構(gòu)如圖13.22所示,它由8路模擬開關(guān)、地址鎖存與譯碼器、比較器、8位開關(guān)樹型A/D轉(zhuǎn)換器、逐次逼近寄存器、邏輯控制和定時(shí)電路組成。圖2ADC0909引腳學(xué)習(xí)文檔僅供參考3數(shù)字電壓表系統(tǒng)設(shè)計(jì)此次設(shè)計(jì)的是數(shù)字電壓表,要求的電壓范圍是05v,而設(shè)計(jì)擴(kuò)展的量程為025v。系統(tǒng)設(shè)計(jì)主要包括四個(gè)部分:分別是電源模塊、AD模數(shù)轉(zhuǎn)換部分、51單片機(jī)最小系統(tǒng)部分、1602液晶顯示部分。首先由單片機(jī)初始化ADC0809模數(shù)轉(zhuǎn)換芯片和1602液晶顯示,當(dāng)外接被測(cè)電壓后,ADC0809將模擬電壓信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)輸入到單片機(jī)的I/O口,通過單片機(jī)處理后將電壓的大小顯示在1602液晶上面

6、。如下是本次設(shè)計(jì)作品的框圖:圖3系統(tǒng)框圖3.2單片機(jī)電路單片機(jī)最小系統(tǒng)如下列圖所示,各個(gè)引腳都已經(jīng)標(biāo)出,而且四個(gè)I/O口都已經(jīng)用排陣引出,方便外接I/O擴(kuò)展用。圖4單片機(jī)最小系統(tǒng)學(xué)習(xí)文檔僅供參考由于ADC0809是帶地址鎖存的模數(shù)轉(zhuǎn)換器件,ADDA、ADDB、ADDC為模擬通道選擇,編碼為000111分別選中IN0IN70ALE為地址鎖存信號(hào),其上升沿鎖存ADDA、ADDB、ADDC的信號(hào),譯碼后控制模擬開關(guān),接通八路模擬輸入中相應(yīng)的一路。CLK為輸入時(shí)鐘,為AD轉(zhuǎn)換器提供轉(zhuǎn)換的時(shí)鐘信號(hào),典型工作頻率為640KHz。START為AD轉(zhuǎn)換啟動(dòng)信號(hào),正脈沖啟動(dòng)ADDAADDC選中的一路模擬彳S號(hào)開

7、始轉(zhuǎn)換。OE為輸出允許信號(hào),高電平時(shí)候打開三態(tài)輸出緩存器,是轉(zhuǎn)換后的數(shù)字量從D0D7輸出。EOC為轉(zhuǎn)換結(jié)束信號(hào),啟動(dòng)轉(zhuǎn)換后EOC變?yōu)榈碗娖?,轉(zhuǎn)換完成后EOC編程高電平。圖5ADC模數(shù)轉(zhuǎn)換以下是1602液晶引腳的接線圖,中間沒有接線的為數(shù)據(jù)控制端口。1602字符型通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣:由于此次系統(tǒng)的芯片工作電壓為+5v,所以用常用的三端穩(wěn)壓器LM317和LM337構(gòu)成的電源系統(tǒng)供電,其中ADC0809要提供一個(gè)準(zhǔn)確的參考電源才能正常的工作,而LM317正好能夠到達(dá)要求圖7系統(tǒng)

8、供電部分3.6數(shù)字電壓表系統(tǒng)電路原理圖如下是此次數(shù)字電壓表系統(tǒng)的總原理圖,其中的連線用網(wǎng)絡(luò)標(biāo)號(hào)表示出來,省去了連線的麻煩,而且是總圖的可讀性增強(qiáng)。圖8數(shù)字電壓表總原理圖學(xué)習(xí)文檔僅供參考4軟件設(shè)計(jì)4.1 系統(tǒng)總流程圖此次設(shè)計(jì)的數(shù)字電壓表系統(tǒng)比較簡(jiǎn)單,就設(shè)置了一個(gè)量程為025v,所以沒有用到按鍵控制,也沒有其他的功能,因此程序比較簡(jiǎn)單,在輸入模擬信號(hào)時(shí)采用電阻分壓,最終的采樣輸入電壓只有實(shí)際輸入電壓的十分之一,所以在編寫程序中要編寫一段數(shù)據(jù)調(diào)整程序,如下為系統(tǒng)總流程圖:4.2 程序代碼/*電壓表*/#include<reg52.h>#include<intrins.h>庫(kù)函

9、數(shù)頭文件,代碼中引用了_nop_()函數(shù)/*ADC初始定義*/sbitstart=P3A0;/限換開始控制sbitoe=P3A2;/輸出允許控制sbiteoc=P3A1;/轉(zhuǎn)換結(jié)束信號(hào)sbitclock=P3A3;轉(zhuǎn)換時(shí)鐘sbitP0_2=P0A2;蜂鳴器sbitP0_5=P0A5;sbitP0_6=P0A6;sbitP0_7=P0A7;/*1602液晶初始定義*/sbitRS=P0A0;/讀控制sbitRW=P0A3;/寫控制sbitE=P0A1;/使能端unsignedcharda0,da1,da2,da3,da4;unsignedinttemp;unsignedintd1,d2,d3;u

10、nsignedchardat;/數(shù)字電壓量/unsignedcharlcdd="0123456789"voidlcd_w_cmd(unsignedcharcom);/寫命令函數(shù)voidlcd_w_dat(unsignedchardat);/寫數(shù)據(jù)函數(shù)/voiddisplay(unsignedchardat);/顯示函數(shù)unsignedcharlcd_r_start();/讀狀態(tài)函數(shù)voidint1();/LCD初始化函數(shù)voiddelay(unsignedchart);/可控延時(shí)函數(shù)voiddelay1();/軟件實(shí)現(xiàn)延時(shí)函數(shù),5個(gè)機(jī)器周期/*顯示函數(shù)部分*/voiddis

11、play(unsignedchardat)temp=5*dat;/量程擴(kuò)大五倍da0=temp/51/10;/十位da1=temp/51%10;/個(gè)位d1=temp%51;d1=d1*10;da2=d1/51;/十分位d2=d1%51;d2=d2*10;da3=d2/51;/百分位d3=d2%51;d3=d3*10;da4=d3/51;/千分位lcd_w_cmd(0x0c);/設(shè)置光標(biāo)不顯示、不閃爍delay(20);lcd_w_cmd(0xc0);/第二行起始顯示地址0x80delay(20);delay(2);lcd_w_dat('V');/顯示字符串volatageisl

12、cd_w_dat('o');lcd_w_dat('l');lcd_w_dat('a');lcd_w_dat('t');lcd_w_dat('a');lcd_w_dat('g');lcd_w_dat('e');lcd_w_dat('');/顯示電壓的大小lcd_w_dat(lcddda0);/十位lcd_w_dat(lcddda1);/個(gè)位lcd_w_dat('.');/小數(shù)點(diǎn)lcd_w_dat(lcddda2);/十分位lcd_w_dat(lcddda

13、3);/百分位lcd_w_dat(lcddda4);/千分位lcd_w_dat('V');/單位/*主函數(shù)*/voidmain()P0_2=1;/關(guān)蜂鳴器P0_5=P0_6=P0_7=0;/選擇000第一通道int1();/LCD初始化while(1)start=0;start=1;/獲得上升沿復(fù)位start=0;/獲得下降沿啟動(dòng)轉(zhuǎn)換,同時(shí)ALE開鎖存doclock=clock;/時(shí)鐘信號(hào)while(eoc=0);/等待轉(zhuǎn)換結(jié)束,eoc=1結(jié)束oe=1;/三態(tài)鎖存緩沖器打開dat=P1;/數(shù)字電壓信號(hào)輸出oe=0;/三態(tài)鎖存緩沖器關(guān)閉display(dat);/*延時(shí)函數(shù)*/v

14、oiddelay(unsignedchart)unsignedcharj,i;for(i=0;i<t;i+)for(j=0;j<20;j+);/*延時(shí)函數(shù)1*/voiddelay1()_nop_();_nop_();_nop_();/*LCD初始化函數(shù)*/voidint1()lcd_w_cmd(0x3c);/設(shè)置工作方式lcd_w_cmd(0x0c);/設(shè)置光標(biāo)lcd_w_cmd(0x01);/清屏lcd_w_cmd(0x06);/設(shè)置輸入方式lcd_w_cmd(0x80);/設(shè)置初始顯示位置/*LCD讀狀態(tài)函數(shù)*/返回值:返回狀態(tài)字,最高位D7=0,LCD控制器空閑;D7=1,L

15、CD控制器忙unsignedcharlcd_r_start()unsignedchars;RW=1;/RW=1,RS=0,讀LCD狀態(tài)delay1();RS=0;delay1();E=1;/E端時(shí)序delay1();s=P2;/從LCD的數(shù)據(jù)口讀狀態(tài)delay1();E=0;delay1();RW=0;delay1();return(s);/返回讀取的LCD狀態(tài)字/*LCD寫命令函數(shù)*/voidlcd_w_cmd(unsignedcharcom)unsignedchari;do/查L(zhǎng)CD忙操作i=lcd_r_start();/調(diào)用讀狀態(tài)字函數(shù)i=i&0x80;/與操作屏蔽掉低7位del

16、ay(2);while(i!=0);/LCD忙,繼續(xù)查詢,否則退出循環(huán)RW=0;delay1();RS=0;/RW=0,RS=0,寫LCD命令字delay1();E=1;/E端時(shí)序delay1();P2=com;/將com中的命令字寫入LCD數(shù)據(jù)口delay1();E=0;delay1();RW=1;delay(255);/*LCD寫數(shù)據(jù)函數(shù)*/voidlcd_w_dat(unsignedchardat)unsignedchari;do/查忙操作i=lcd_r_start();/調(diào)用讀狀態(tài)字函數(shù)i=i&0x80;/與操作屏蔽掉低7位delay(2);while(i!=0);/LCD忙,

17、繼續(xù)查詢,否則退出循環(huán)RW=0;delay1();RS=1;/RW=1,RS=0,寫LCD數(shù)據(jù)delay1();E=1;/E端時(shí)序delay1();P2=dat;/將dat中的顯示數(shù)據(jù)寫入LCD數(shù)據(jù)口delay1();E=0;delay1();RW=1;delay(255);學(xué)習(xí)文檔 僅供參考5數(shù)字電壓表電路仿真5.1 仿真總圖為了驗(yàn)證此次設(shè)計(jì)原理圖的正確性,在制作實(shí)物之前用專業(yè)軟件做了仿真,在Proteus軟件中設(shè)置AT89C51單片機(jī)的晶振頻率為12MHz。本電路EA接高電平,沒有擴(kuò)展片外ROM。如下列圖是此次系統(tǒng)仿真的總原理圖部分:I.HR2 ;Uo0 J.000Uasas3&E

18、BDJ*PJ "目I 圖8仿真總圖oun DUW UH DUM Oil” DUH OMI1*ItriEHtWT仁LIE匚花叩 門, T) f 小 二g 叩一¥3 叩+NM "L 以5 加川 電,卻我 i .DD ”工制dt!”詞而-力,-uU _聞/MH .工片德 F3 AA1I rj MiW "|>JHJ! 皿C ABNti Au jia學(xué)習(xí)文檔 僅供參考通過用protues軟件的仿真發(fā)現(xiàn)此次設(shè)計(jì)的系統(tǒng)原理圖能夠?qū)崿F(xiàn)電壓的正確測(cè)量,而且電壓的誤差較小,1602液晶屏能夠正確顯示出測(cè)量出來的結(jié)果。5.2 仿真結(jié)果顯示如下列圖為此次仿真的測(cè)量電壓的結(jié)

19、果的截圖:圖9仿真結(jié)果顯示6系統(tǒng)性能分析通過理論分析和電路仿真,現(xiàn)在對(duì)此次課程設(shè)計(jì)的數(shù)字電壓表系統(tǒng)設(shè)計(jì)結(jié)果進(jìn)行總結(jié)。通過仿真我們可以看到仿真結(jié)果和理論分析是相符合的,也即此次設(shè)計(jì)的系統(tǒng)能夠在一定的條件下到達(dá)課程設(shè)計(jì)目的,實(shí)現(xiàn)對(duì)外接電壓的測(cè)量,電路結(jié)構(gòu)簡(jiǎn)單,但是可以看出在系統(tǒng)的穩(wěn)定性及可靠性方面做得不夠。具體表達(dá)在以下幾個(gè)方面: 1數(shù)字電壓表系統(tǒng)中對(duì)于外界被測(cè)電壓的變化反應(yīng)不夠靈敏,變化比較慢,主要是因?yàn)锳DC模數(shù)轉(zhuǎn)換芯片的轉(zhuǎn)換速率不夠; 2數(shù)字電壓表系統(tǒng)測(cè)量的外界電壓不夠準(zhǔn)確,跟用示波器或者高精度的電壓表測(cè)量的結(jié)果有偏差,主要是因?yàn)锳DC芯片的位數(shù)不夠; 3而且ADC的參考電壓不準(zhǔn)確也會(huì)造成測(cè)

20、量結(jié)果的不準(zhǔn)確; 4另外很重要的影響因素是因?yàn)锳D芯片的測(cè)量輸入電壓最大為5v,而設(shè)計(jì)的是25v,量程擴(kuò)大了五倍,運(yùn)用的是電阻分壓網(wǎng)絡(luò),如果用精密電阻可以做到很高的精度,而設(shè)計(jì)中用的是5%誤差的碳膜電阻,溫度系數(shù)高,而且不穩(wěn)定,這是很重要的一個(gè)影響因素。針對(duì)上述問題,理論上可以用一下方法進(jìn)行改良: 1在換用高精度的ADC芯片能夠改善測(cè)量精度的問題,一般用12位AD既能滿足要求; 2制作高精度電壓參考源,通過提高ADC模數(shù)轉(zhuǎn)換芯片的參考電壓的精度來提高測(cè)量的電壓精度; 3運(yùn)用高精度的金屬膜電阻構(gòu)成分壓網(wǎng)絡(luò),能夠最大限度提高精度; 4通過查閱書籍可以找到ADC0809的誤差系數(shù)和碳膜電阻的溫度系數(shù)

21、,然后在編程的時(shí)候進(jìn)行軟件的補(bǔ)償和參數(shù)校正,能夠最優(yōu)化的用軟件來補(bǔ)償硬件的誤差問題,這個(gè)在編程思想中是很重要的。雖然時(shí)間緊迫,最終按照仿真成功的原理圖焊接實(shí)物,并調(diào)試,調(diào)試成功!而且在老師的指點(diǎn)下,使系統(tǒng)得到了最大優(yōu)化的提高。7心得體會(huì)通過與同學(xué)的討論與認(rèn)真計(jì)算設(shè)計(jì)分析所完成的,課程設(shè)計(jì)的任務(wù)是設(shè)計(jì)、組裝并調(diào)試一個(gè)數(shù)字電壓表測(cè)量系統(tǒng)。需要我們綜合運(yùn)用單片機(jī)等課程的知識(shí),通過查閱資料、方案論證與選定;設(shè)計(jì)和選取電路和元器件;分析指標(biāo)及討論,完成設(shè)計(jì)任務(wù)。在這次課程設(shè)計(jì)中,我學(xué)會(huì)了怎樣去根據(jù)課題的要求去設(shè)計(jì)電路和調(diào)試電路。動(dòng)手能力得到很大的提高。從中我發(fā)現(xiàn)自己并不能很好的熟練去使用我所學(xué)到的高頻電路知識(shí)。在以

溫馨提示

  • 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)論