單片機數(shù)字電壓表_第1頁
單片機數(shù)字電壓表_第2頁
單片機數(shù)字電壓表_第3頁
單片機數(shù)字電壓表_第4頁
單片機數(shù)字電壓表_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)字電壓表姓 名 潘剛 所在學院 電子信息工程學院 專業(yè)班級 通信1105班 學 號 11214048 指導(dǎo)教師 付文秀 日 期 2013 年 12月 15日 一、實驗?zāi)康?:通過利用單片機設(shè)計簡易數(shù)字電壓表,使學生學會使用A/D轉(zhuǎn)換器進行電壓信號采集,了解A/D芯片TLC0832轉(zhuǎn)換性能及基本原理,掌握A/D轉(zhuǎn)換器與單片機的接口電路及編程技術(shù)。思考如何利用單片機和A/D實現(xiàn)多路電壓監(jiān)測系統(tǒng),各路電壓值通過數(shù)碼管輪流顯示問題二、實驗內(nèi)容和要求:利用實驗平臺上的串行模/數(shù)轉(zhuǎn)換芯片及4位數(shù)碼管,設(shè)計完成一個數(shù)字電壓表。要求: 數(shù)字電壓表可測量05V輸入電壓,電壓值通過數(shù)碼管顯示。三、方案設(shè)計:使用

2、ADC0832模擬/數(shù)字轉(zhuǎn)換器芯片設(shè)計數(shù)字電壓表電路。該設(shè)計方案以單片機AT89S52為主控芯片,以ADC0832模擬/數(shù)字轉(zhuǎn)換器芯片為核心轉(zhuǎn)換模擬/數(shù)字量的芯片,組成數(shù)字電壓表電路。該電路能準確地測出所被測有效電壓值、附加四位顯示功能,可精確到有效電壓值為0.01V。四、設(shè)計流程圖 4.1總體設(shè)計流程圖4.2AD轉(zhuǎn)換關(guān)系設(shè)計流程圖五、軟硬件設(shè)計5.1 硬件電路設(shè)該設(shè)計的硬件電路由主控部分(單片機AT89S51)、采集模擬量部分(A/D轉(zhuǎn)換一路ADC0832)、顯示部分(四位八段數(shù)碼管)、電源部分由電腦USB(5V)供電4個部分組成。各部分之間相互協(xié)作,構(gòu)成一個統(tǒng)一的有機整體,實現(xiàn)數(shù)字電壓表的

3、功能。各部分的硬件電路設(shè)計如下。設(shè)計總電路圖見附錄一。5.2 單片機AT89S52外圍電路設(shè)計5.2.1復(fù)位電路設(shè)計MCS-51的復(fù)位輸入引腳RST為MCS-51提供了初始化的手段,可以使程序從指定處開始執(zhí)行,在MCS-51的時鐘電路工作后,只要RST引腳上出現(xiàn)超過兩個機器周期以上的高電平時,即可產(chǎn)生復(fù)位的操作,只要RST保持高電平,則MCS-51循環(huán)復(fù)位,只有單RET由高電平變成低電平以后,MCS-51才從0000H地址開始執(zhí)行程序,本系統(tǒng)采用按鍵復(fù)位方式的復(fù)位電路。5.2.2外部晶振時鐘電路設(shè)計MCS-51的時鐘可以由兩種方式產(chǎn)生,一種是內(nèi)部方式,利用芯片內(nèi)部的振蕩電路;另外一種為外部方式

4、,本論文根據(jù)實際需要和簡便,采用內(nèi)部振蕩方式,MCS-51內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端,這個放大器與作為反饋元件的片外晶體或陶瓷諧振器一起構(gòu)成了一個自激振蕩器。MCS-51雖然有內(nèi)部振蕩電路,但要形成時鐘,必須外接元件,所以實際構(gòu)成的振蕩時鐘電路,外接晶振以及電容C1和C2構(gòu)成了并聯(lián)諧振電路接在放大器的反饋回路中,對接電容的值雖然沒有嚴格的要求,但電容的大小會影響振蕩頻率的高低,振蕩器的穩(wěn)定性,起振的快速性和溫度的穩(wěn)定性。晶振的頻率可在1.2MHZ12MHZ之間任選,電容C1和C2的典型值在20pf100pf之間選擇,由于

5、本系統(tǒng)用到定時器,為了方便計算,采用了12MHZ的晶振,采用電容選擇30pf。AT89S52具有在系統(tǒng)可編程功能,可以很方便的改寫單片機存儲器內(nèi)的程序不需要把芯片中從工作環(huán)境中剝離,把AT89S ISP下載口接入電路,可使電路實現(xiàn)該功能。AT89S52需要接入一個普通12MHz晶振,為其提供穩(wěn)定的時鐘脈沖。該設(shè)計中有4個八段數(shù)碼顯示管LED,所以,在單片機AT89S52外圍需要接入4個三極管來驅(qū)動數(shù)碼顯示管。單片機外圍電路的設(shè)計圖如圖: 5.3:ADC0832部分電路圖5. 4顯示設(shè)計八段數(shù)碼顯示管有兩種,一種是共陽數(shù)碼管,其內(nèi)部是由八個陽極相連接的發(fā)光二極管組成;另一種是共陰數(shù)碼管,其內(nèi)部是

6、由八個陰極相連接的發(fā)光二極管組成。二者原理不同但功能相同。本設(shè)計的時間顯示選用4個共陽八段數(shù)碼管LED,其外形和內(nèi)部結(jié)構(gòu)如圖4.3所示: 5.5 總體電路圖六、實驗程序#include#include#define uchar unsigned char#define uint unsigned intuchar code table= 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90, ;/共陽數(shù)碼管段碼表沒有小數(shù)點 09uchar code table1=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x

7、00,0x10;/帶小數(shù)點的編碼 09sbit ADCCLK=P10;/ADC0832時鐘端sbit DI=P11;/ADC0832數(shù)據(jù)輸入sbit DO=P11;/ADC0832數(shù)據(jù)輸出sbit ADCCS=P12;/ADC0832片選端uchar dat=0;/AD值uchar count=0;/定時器計數(shù)uchar CH=0;/通道變量uint num,ge,xiao1,xiao2,shi,shi1,ge1,xiao3,xiao4,dy;/*/*初始化函數(shù)*/void init()TMOD=0x01;/定時器0工作方式1TH0=0;/賦初值TL0=0;EA=1;/開總中斷TR0=1;/啟

8、動定時器0ET0=1;/開定時器0中斷/*延時函數(shù)*/void delay(uint x)uint a,b;for(a=x;a0;a-) for(b=110;b0;b-);/*AD轉(zhuǎn)換函數(shù)*/uint ADC0832()uint i,test,adval;adval=0;test=0;ADCCS=0; /選通ADC0832_nop_(); /延時ADCCLK=1;/第一個脈沖的上升沿_nop_(); /延時DI=1; /第一個脈沖下降沿之前ADC0832轉(zhuǎn)換啟動信號ADCCLK=0;/第一個脈沖的下降沿_nop_(); /延時ADCCLK=1;/第二個脈沖的上升沿_nop_(); /延時 if

9、(CH=0)/選通CH0通道 DI=1;/第二個脈沖下降之前送人通道選擇第二位 ADCCLK=0;/第二個下降沿 _nop_(); ADCCLK=1;/第三個脈沖上升沿 _nop_(); DI=0; /第三個脈沖下降沿之前送入通道選擇第3位 ADCCLK=0;/第三個脈沖的下降沿 _nop_(); ADCCLK=1;/開始第四個脈沖 _nop_(); else /選通CH1通道 DI=1; /第二個脈沖下降沿之前送通道選擇的第一位 ADCCLK=0; /第二個下降沿 _nop_(); ADCCLK=1; /第三個脈沖的上升沿 _nop_(); DI=1;/第三個脈沖的下降沿之前送通道通道選擇的

10、第二位 ADCCLK=0;/第三個脈沖的下降沿 _nop_(); ADCCLK=1;/開始第四個脈沖 _nop_(); ADCCLK=0;/第四個脈沖的下降沿 DO=1; for(i=0;i8;i+)/讀取前八位 _nop_(); ADCCLK=1; _nop_(); ADCCLK=0; if(DO) adval|=0x01; else adval|=0x00; for(i=0;i=1; if(DO) test|=0x80; else test|=0x08; _nop_(); ADCCLK=1; _nop_(); ADCCLK=0; if(adval=test)/比較前8位與后8位的數(shù)值,如果

11、不相同,舍去 dat=test; _nop_(); ADCCS=1;/釋放ADC0832 DO=1; ADCCLK=1; return dat;/*數(shù)據(jù)轉(zhuǎn)換函數(shù)*/void convdata(uint i)/數(shù)據(jù)轉(zhuǎn)換函數(shù)shi=i/51;/十位ge=(i%51)*10/51;/小數(shù)點后一位xiao1=(i%51)*10%51)*10/51;/小數(shù)點后兩位dy=(shi*100+ge*10+xiao1)*2;shi1=dy/1000;ge1=dy%1000/100;xiao2=dy%100/10;xiao3=dy%10;/*顯示函數(shù)*/ void display()P2=0xfe;if(shi1

12、=0)P0=0xff;elseP0=tableshi1;delay(5);P2=0xfd;P0=table1ge1;delay(5);P2=0xfb;P0=tablexiao2;delay(5);P2=0xf7;P0=tablexiao3;delay(5);P2=0xff;/*主函數(shù)*/void main()init();while(1) convdata(dat); display(); /*中斷服務(wù)函數(shù)*/void T0_time() interrupt 1TH0=0x00;/賦初值TL0=0x00;num+;if(num=10) num=0; dat=ADC0832(); 七、總結(jié)本次實驗讓我對單片機有了更加深刻的理解,實驗中遇到了種種問題,從中我明白了從中我明白了不管做什么事,計劃是很重要的。沒有一個完好的計劃,做事情就會沒有一個好的順序,做事情會比較亂,很難成功。而有一個好的計劃,不管做什么事都會事半功倍,做事心中有數(shù),明確重點和緩急,不會有疏漏。這樣才

溫馨提示

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

評論

0/150

提交評論