版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 課 程 設 計 報 告</p><p> 設計題目: 基于單片機的數(shù)字式電壓表設計 </p><p> 名 稱: 單片機原理與應用課程設計 </p><p><b> 目 錄</b></p><p><b> 引 言
2、I</b></p><p> 一、課程設計的性質(zhì)和目的2</p><p> 二、課程設計的要求2</p><p> 三、主要儀器設備及軟件2</p><p> 四、課程設計題目及要求2</p><p> 五、課題分析及設計思路2</p><p> 5.1、課題
3、分析及總體設計2</p><p> 5.2、硬件設計2</p><p> 5.2.1 系統(tǒng)總體設計框圖2</p><p> 5.2.2 單片機系統(tǒng)3</p><p> 5.2.3 AD轉(zhuǎn)換電路6</p><p> 5.3、軟件設計8</p><p> 六、程序主要代碼
4、與分析8</p><p> 七、實驗結果截圖10</p><p><b> 八、心得體會11</b></p><p><b> 參考文獻12</b></p><p><b> 引 言</b></p><p> 電子電壓表主要用于測量各種
5、高、低頻信號電壓,它是電子測量中使用最廣泛的儀器之一。根據(jù)測量結果的顯示方式及測量原理不同,電壓測量儀器可分為兩大類:模擬式電壓表(AVM)和數(shù)字式電壓表(DVM)。模擬式電壓表是指針式的,多用磁電式電流表作為指示器,并在表盤上刻以電壓刻度。數(shù)字式電壓表首先將模擬量經(jīng)模數(shù)(A/D)轉(zhuǎn)換器變成數(shù)字量,然后用電子計數(shù)器計數(shù),并以十進制數(shù)字顯示被測電壓值。</p><p> 眾所周知,模擬電壓表精度較高,曾經(jīng)有很廣闊
6、的市場,現(xiàn)在依然有不少工程師依然在使用模擬電壓表。的確模擬電壓表在顯示測量值方面精度校準,然而卻也存在問題。模擬電壓表采用用指針式,里面是磁電或電磁式結構,所以其響應速度較慢。</p><p> 然而在高速發(fā)展的當今社會,高速信號處理的需求越來越多,由于模擬電壓表響應速度較慢已經(jīng)不適用與高速信號領域,取而代之的將是數(shù)字電壓表。但數(shù)字電壓表由于存在采樣誤差,精度不是很高。不過目前可以通過技術手段來縮小誤差。使其精
7、度達到與模擬電壓表一樣精確甚至更高??梢妼頂?shù)字電壓表必將取代模擬電壓表。現(xiàn)在有越來越多的數(shù)字測量儀器的出現(xiàn)但原理皆與數(shù)字電壓表殊途同歸,因此研究數(shù)字電壓表有著很大現(xiàn)實意義。</p><p> 一、課程設計的性質(zhì)和目的</p><p> 通過課程設計,鞏固在課堂上學到的有關電子技術、單片機、微機原理等課程的基本知識和基本方法,強化知識的綜合運用和技能基本訓練,通過硬件電路的設計和相應軟
8、件的編寫,掌握軟硬結合的控制程序設計,達到能獨立閱讀、編制和調(diào)試一定規(guī)模的電子產(chǎn)品制作或仿真。</p><p><b> 二、課程設計的要求</b></p><p> 1、遵循軟硬件模塊化設計。</p><p> 2、要求程序結構化設計。</p><p> 3、要求程序結構合理,語句使用得當,并附有必要的注釋。&
9、lt;/p><p> 4、適當追求編程技巧和程序運行效率。</p><p> 三、主要儀器設備及軟件</p><p> PC機、Protrus繪圖軟件、Keil C仿真軟件等。</p><p> 四、課程設計題目及要求</p><p> 題目:基于單片機的數(shù)字電壓表設計</p><p>
10、 要求:1..利用單片機設計數(shù)字電壓表,用4段數(shù)碼管顯示;</p><p> 2.能夠較準確的測量0~5V之間的直流電壓值,測量最小分辨率為0.02V。</p><p> 五、課題分析及設計思路</p><p> 5.1、課題分析及總體設計</p><p> 通過滑動變阻器產(chǎn)生可變電壓;用ADC0809采集模擬電壓轉(zhuǎn)換成數(shù)字信號;將此
11、數(shù)字信號用七段數(shù)碼管顯示。</p><p><b> 5.2、硬件設計</b></p><p> 5.2.1 系統(tǒng)總體設計框圖 </p><p> 本系統(tǒng)采樣Atmel89C52單片機作為控制核心,以ADC0809為數(shù)據(jù)采樣系統(tǒng),實現(xiàn)被測電壓的數(shù)據(jù)采樣;使用系列比較器檢測輸入電壓的范圍,用共陰極數(shù)碼管顯示結果。</p>&
12、lt;p><b> 圖1</b></p><p> 5.2.2 單片機系統(tǒng)</p><p> 單片機最小系統(tǒng)包括復位電路,晶振電路,電源電路,仿真時需搭建復位電路和晶振電路。</p><p><b> 晶振電路:</b></p><p><b> 圖2</b>
13、</p><p><b> 復位電路:</b></p><p><b> 圖3</b></p><p> 單片機最小系統(tǒng)如下所示,其中P2口用于驅(qū)動數(shù)碼管,P1口用于數(shù)碼管顯示,P0口用于接收ADC0809轉(zhuǎn)換的數(shù)據(jù),P3接74LS74 D觸發(fā)器電路。</p><p><b>
14、單片機最小系統(tǒng):</b></p><p><b> 圖4</b></p><p> 5.2.3 AD轉(zhuǎn)換電路</p><p> ADC0809的特性:ADC0809是帶有8位A/D轉(zhuǎn)換器、8路多路開關以及微處理機兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉(zhuǎn)換器,可以和單片機直接接口。 (1)ADC0809的內(nèi)部邏輯結
15、構 </p><p> 由下圖可知,ADC0809由一個8路模擬開關、一個地址鎖存與譯碼器、一個A/D轉(zhuǎn)換器和一個三態(tài)輸出鎖存器組成。多路開關可選通8個模擬通道,允許8路模擬量分時輸入,共用A/D轉(zhuǎn)換器進行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存A/D轉(zhuǎn)換完的數(shù)字量,當OE端為高電平時,才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。</p><p> ?。?).ADC0809引腳結構 </p>
16、<p> ADC0809各腳功能如下:D7-D0:8位數(shù)字量輸出引腳。IN0-IN7:8位模擬量輸入引腳。VCC:+5V工作電壓。GND:地。REF(+):參考電壓正端。REF(-):參考電壓負端。START:A/D轉(zhuǎn)換啟動信號輸入端。ALE:地址鎖存允許信號輸入端。(以上兩種信號用于啟動A/D轉(zhuǎn)換).EOC:轉(zhuǎn)換結束信號輸出引腳,開始轉(zhuǎn)換時為低電平,當轉(zhuǎn)換結束時為高電平。OE:輸出允許控制端,用以打
17、開三態(tài)數(shù)據(jù)輸出鎖存器。CLK:時鐘信號輸入端(一般為500KHz)。A、B、C:地址輸入線。 </p><p> ADC0809對輸入模擬量要求:信號單極性,電壓范圍是0-5V,若信號太小,必須進行放大;輸入的模擬量在轉(zhuǎn)換過程中應該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。 </p><p> 地址輸入和控制線:4條 </p><p
18、> ALE為地址鎖存允許輸入線,高電平有效。當ALE線為高電平時,地址鎖存與譯碼器將A,B,C三條地址線的地址信號進行鎖存,經(jīng)譯碼后被選中的通道的模擬量進入轉(zhuǎn)換器進行轉(zhuǎn)換。A,B和C為地址輸入線,用于選通IN0-IN7上的一路模擬量輸入。通道選擇表如下表所示。</p><p> 數(shù)字量輸出及控制線:11條 </p><p> ST為轉(zhuǎn)換啟動信號。當ST上跳沿時,所有內(nèi)部寄存器清
19、零;下跳沿時,開始進行A/D轉(zhuǎn)換;在轉(zhuǎn)換期間,ST應保持低電平。EOC為轉(zhuǎn)換結束信號。當EOC為高電平時,表明轉(zhuǎn)換結束;否則,表明正在進行A/D轉(zhuǎn)換。OE為輸出允許信號,用于控制三條輸出鎖存器向單片機輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù);OE=0,輸出數(shù)據(jù)線呈高阻狀態(tài)。D7-D0為數(shù)字量輸出線。 </p><p> CLK為時鐘輸入信號線。因ADC0809的內(nèi)部沒有時鐘電路,所需時鐘信號必須由外界提
20、供,通常使用頻率為500KHZ, </p><p> VREF(+),VREF(-)為參考電壓輸入。 </p><p> 2. ADC0809應用說明 </p><p> (1)ADC0809內(nèi)部帶有輸出鎖存器,可以與AT89S51單片機直接相連。 </p><p> ?。?)初始化時,使ST和OE信號全為低電平。 </p>
21、<p> ?。?)送要轉(zhuǎn)換的哪一通道的地址到A,B,C端口上。 </p><p> (4)在ST端給出一個至少有100ns寬的正脈沖信號。 </p><p> (5)是否轉(zhuǎn)換完畢,我們根據(jù)EOC信號來判斷。 </p><p> ?。?) 當EOC變?yōu)楦唠娖綍r,這時給OE為高電平,轉(zhuǎn)換的數(shù)據(jù)就輸出給單片機了。 </p><p>
22、;<b> 3. 實驗任務 </b></p><p> 如下圖所示,從ADC0809的通道IN0輸入0-5V之間的模擬量,通過ADC0809轉(zhuǎn)換成數(shù)字量在數(shù)碼管上以十進制形成顯示出來。ADC0809的VREF接+5V電壓。 </p><p> ADC0809與單片機的連接:</p><p><b> 圖6</b>&
23、lt;/p><p> 5.2.3 觸發(fā)電路</p><p> 74ls74中文資料 </p><p> 74LS74內(nèi)含兩個獨立的D上升沿雙d觸發(fā)器,每個觸發(fā)器有數(shù)據(jù)輸入(D)、置位輸入()復位輸入()、時鐘輸入(CP)和數(shù)據(jù)輸出(Q、)。、的低電平使輸出預置或清除,而與其它輸入端的電平無關。當、均無效(高電平式)時,符合建立時間要求的D數(shù)據(jù)在CP上升沿作用下傳送
24、到輸出端。</p><p> 74ls74功能表: </p><p><b> 3. 實驗任務 </b></p><p> 如下圖所示,通過74LS74產(chǎn)生時鐘源,數(shù)據(jù)轉(zhuǎn)換過程需要在外部工作時鐘的控制下進行。</p><p> 5.2.4 數(shù)碼管顯示電路</p><p><b>
25、 四位數(shù)碼管引腳圖:</b></p><p> 四位數(shù)碼管與單片機的連接:</p><p> 5.3、軟件設計(設計思路及軟件流程圖) </p><p> 軟件部分采用模塊化程序設計的方法,由單片機控制主程序、A/D轉(zhuǎn)換子程序、電壓檢測、七段數(shù)碼管顯示組成。系統(tǒng)軟件設計是在KeilC編譯環(huán)境下進行的,由于C語言程序可移植性好,所以提高了編程的效
26、率。</p><p><b> 軟件程序流程圖:</b></p><p> 顯示函數(shù) 主程序</p><p> 六、程序主要代碼與分析(關鍵代碼要有注釋):</p><p> #include <reg52.h> </p><p> U
27、nsigned char code dispbitcode[ ]={0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f}; </p><p> Unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00}; </p><p> unsigned
28、 char dispbuf[8]={10,10,10,10,10,0,0,0}; </p><p> unsigned char dispcount; </p><p> unsigned char getdata; </p><p> unsigned int temp; </p><p> long int i; </p&
29、gt;<p> unsigned int R1; </p><p> sbit ST=P3^0; </p><p> sbit OE=P3^1; </p><p> sbit EOC=P3^2; </p><p> sbit CLK=P3^3; </p><p> void main(void
30、) </p><p><b> { </b></p><p> ST=0; //ST正脈沖信號啟動A/D轉(zhuǎn)換;</p><p> OE=0; //EOC為高電平后,若使OE為高電平,轉(zhuǎn)換結果DATA便可鎖存到D0~D7上,CPU讀取轉(zhuǎn)換數(shù)據(jù)后,再使OE變?yōu)榈碗娖剑淮蜛/D轉(zhuǎn)換過程結束。</p><p> ET0
31、=1;//啟動T0中斷;</p><p> ET1=1;//啟動T1中斷;</p><p> EA=1;//開總中斷;</p><p> TMOD=0x12;//設置T0定時方式2,T1定時方式1</p><p> TH0=216; //計數(shù)初值a=2^16-t.Fosc/12其中t以us為單位,F(xiàn)osc以MHZ為單位;(t=5ms,
32、T=12MHZ) 十進制</p><p><b> TL0=216; </b></p><p> TH1=(65536-5000)/256;//0XEC </p><p> TL1=(65536-5000)%256;//0X78</p><p> TR1=1; //啟動T1</p><p>
33、; TR0=1; //啟動T0</p><p> ST=1; //ST產(chǎn)生正脈沖</p><p><b> ST=0; </b></p><p><b> while(1) </b></p><p><b> { </b></p><p>
34、 if(EOC==1) //EOC為高電平后,若使OE為高電平,轉(zhuǎn)換結果DATA便可鎖存到D0~D7上,CPU讀取轉(zhuǎn)換數(shù)據(jù)后,再使OE變?yōu)榈碗娖?,一次A/D轉(zhuǎn)換過程結束。</p><p><b> { </b></p><p><b> OE=1; </b></p><p> getdata=P0; </p&
35、gt;<p><b> OE=0;</b></p><p> i=getdata*196; //轉(zhuǎn)換為十進制;5V i/o口為八個5\256=196MV</p><p> dispbuf[5]=i/10000; </p><p> i=i%10000; </p><p> dispbuf[6]=i
36、/1000;</p><p> i=i%1000; </p><p> dispbuf[7]=i/100; </p><p><b> ST=1; </b></p><p><b> ST=0; </b></p><p><b> } &
37、lt;/b></p><p><b> } </b></p><p><b> } </b></p><p> void t0(void) interrupt 1 using 0 //定時器0 中斷服務</p><p><b> { </b>
38、</p><p> CLK=~CLK; </p><p><b> } </b></p><p> void t1(void) interrupt 3 using 0 //定時器1 中斷服務</p><p><b> { </b></p><p>
39、 TH1=(65536-6000)/256; </p><p> TL1=(65536-6000)%256; </p><p><b> P2=0xff;</b></p><p> P1=dispcode[dispbuf[dispcount]]; </p><p> P2=dispbitcode[dispcou
40、nt]; </p><p> if(dispcount==5) </p><p><b> { </b></p><p> P1=P1 | 0x80; </p><p><b> } </b></p><p> dispcount++; </p>&l
41、t;p> if(dispcount==8) </p><p><b> { </b></p><p> dispcount=0; </p><p><b> } </b></p><p><b> } </b></p><p><
42、b> 七、實驗結果截圖</b></p><p><b> 實物圖:</b></p><p> 作為模擬電壓的輸入,滑動變阻器的變化不可以過快;要求:調(diào)一次滑動變阻器使得電壓變化0.02V;所以要求2^n>5/0.02=250,因此ADC要選擇8位的,滑動變阻器的精確度為0.02.</p><p><b>
43、 八、心得體會</b></p><p> 本次試驗的難度雖不大,但在此過程中我學到了很多知識,同時也遇到了一些問題。例如:1. 仿真時用的是ADC0808但是實際生活中是用ADC0809,需要通過網(wǎng)上查找資料知道兩者的異同;2. 在網(wǎng)上有許多關于基于單片機的數(shù)字電壓表的設計資料每份的整體思想一樣,但是所用的芯片是不同的,需要自己根據(jù)老師提供的器件做相應的修改;3.作為模擬電壓的輸入,滑動變阻器的變
44、化不可以過快;4.用#define SEG P0不可以加;號;5.無窮循環(huán)while(1)后也不可以加;號;6.在仿真中不必將復位電路和晶振電路連接上,但是實際實驗中卻必須加上;7.各芯片都需要接地和接電源才能工作,仿真時不需要,但是實際中必須加上;8.在焊接時要判斷清楚芯片的引腳接線,合理的排版,才能更高效的連線并節(jié)省連線和焊接的時間。</p><p> 另外,軟硬件一致也是很重要的。若編寫的程序在Kei
45、lc中正確,但載入芯片中所要求的功能本電路卻未能實現(xiàn),原因有以下兩種:1.程序雖無語法錯誤,但是有可能是軟硬件不協(xié)調(diào)或程序邏輯錯誤。2.Proteus中電路連接錯誤。應認真細心檢查。</p><p><b> 參考文獻:</b></p><p> [1] 曾屹.單片機原理與應用.湖南:中南大學出版社,2009</p><p> [2] 林
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設計報告--基于單片機的數(shù)字電壓表
- 單片機課程設計報告--基于單片機的數(shù)字電壓表
- 單片機課程設計報告——數(shù)字電壓表
- 單片機課程設計報告--基于單片機的數(shù)字電壓表.doc
- 單片機課程設計---基于單片機的數(shù)字電壓表設計
- 單片機課程設計報告-- 數(shù)字電壓表設計
- 單片機課程設計-數(shù)字電壓表
- 單片機課程設計---數(shù)字電壓表
- 單片機課程設計-數(shù)字電壓表
- 單片機(數(shù)字電壓表)課程設計
- 基于單片機的數(shù)字電壓表課程設計
- 單片機課程設計----數(shù)字電壓表
- 單片機課程設計-數(shù)字電壓表
- 單片機課程設計--數(shù)字電壓表
- 基于單片機的數(shù)字電壓表課程設計
- 數(shù)字電壓表課程設計--基于單片機的簡易數(shù)字電壓表的設計
- 單片機課程設計--數(shù)字電壓表
- @基于單片機的新型數(shù)字式電壓表設計.pdf
- 數(shù)字電壓表課程設計--基于單片機的簡易數(shù)字電壓表的設計
- 數(shù)字式電壓表課程設計報告
評論
0/150
提交評論