基于單片機(jī)的數(shù)字電壓表的畢業(yè)設(shè)計_第1頁
已閱讀1頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  基于單片機(jī)的數(shù)字電壓表的設(shè)計</p><p>  摘要 本文介紹了一種基于單片機(jī)的簡易數(shù)字電壓表的設(shè)計。該設(shè)計主要由三個模塊組成:A/D轉(zhuǎn)換模塊,數(shù)據(jù)處理模塊及顯示模塊。A/D轉(zhuǎn)換主要由芯片ADC0808來完成,它負(fù)責(zé)把采集到的模擬量轉(zhuǎn)換為相應(yīng)的數(shù)字量在傳送到數(shù)據(jù)處理模塊。數(shù)據(jù)處理則由芯片AT89C51來完成,其負(fù)責(zé)把ADC0808傳送來的數(shù)字量經(jīng)過一定的數(shù)據(jù)處理,產(chǎn)生相應(yīng)的顯示碼送到顯示

2、模塊進(jìn)行顯示;此外,它還控制著ADC0808芯片工作。</p><p>  該系統(tǒng)的數(shù)字電壓表電路簡單,所用的元件較少,成本低,且測量精度和可靠性較高。此數(shù)字電壓表可以測量0-5V的1路模擬直流輸入電壓值,并通過一個四位一體的7段數(shù)碼管顯示出來。 </p><p>  關(guān)鍵詞 單片

3、機(jī);數(shù)字電壓表;A/D轉(zhuǎn)換;AT89C51;ADC0808</p><p>  Design of Simple Digital Voltmeter Based on Single-chip Microcontroller </p><p>  Tian Mingming</p><p>  Abstract This paper which introduce

4、s a kind of simple digital voltmeter is based on single-chip microcontroller design. The circuit of the voltage meter is mainly consisted of three mould pieces: A/D converting mould piece, A/D converting is mainly comple

5、ted by the ADC0808, it converts the collected analog data into the digital data and transmits the outcome to the manifestation controlling mould piece. Data processing is mainly completed by the AT89C51 chip, it processe

6、s the data produced by t</p><p>  The voltmeter features in simple electrical circuit, lower use of elements, low cost, moreover, its measuring precision and reliability. The voltmeter is capable of measurin

7、g voltage inputs from 1 route ranging from 0 to 5 volt, and displaying the measurements though a digital code tube of 7 pieces of LED.</p><p>  Keywords Single-chip microcontroller; Digital voltmeter; A/D c

8、onverter; AT89C51; ADC0808

9、 </p><p><b>  目 錄</b></p><p><b>  1 引言1</b><

10、/p><p>  2 設(shè)計總體方案2</p><p><b>  2.1設(shè)計要求2</b></p><p>  2.2 設(shè)計思路2</p><p>  2.3 設(shè)計方案2</p><p>  3 硬件電路設(shè)計3</p><p>  3.1 A/D轉(zhuǎn)換模塊3<

11、/p><p>  3.2 單片機(jī)系統(tǒng)7</p><p>  3.3 復(fù)位電路和時鐘電路9</p><p>  3.4 LED顯示系統(tǒng)設(shè)計11</p><p>  3.5 總體電路設(shè)計13</p><p><b>  4 程序設(shè)計15</b></p><p> 

12、 4.1 程序設(shè)計總方案15</p><p>  4.2 系統(tǒng)子程序設(shè)計15</p><p><b>  5 仿真17</b></p><p>  5.1 軟件調(diào)試17</p><p>  5.2 顯示結(jié)果及誤差分析17</p><p><b>  結(jié) 論20<

13、;/b></p><p><b>  參考文獻(xiàn)21</b></p><p>  附錄 程序代碼22</p><p><b>  致謝25</b></p><p><b>  1 引言</b></p><p>  在電量的測量中,電壓、電流和頻

14、率是最基本的三個被測量,其中電壓量的測量最為經(jīng)常。而且隨著電子技術(shù)的發(fā)展,更是經(jīng)常需要測量高精度的電壓,所以數(shù)字電壓表就成為一種必不可少的測量儀器。數(shù)字電壓表簡稱DVM,它是采用數(shù)字化測量技術(shù),把連續(xù)的模擬量轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。由于數(shù)字式儀器具有讀數(shù)準(zhǔn)確方便、精度高、誤差小、測量速度快等特而得到廣泛應(yīng)用[1]。 </p><p>  傳統(tǒng)的指針式刻度電壓表功能單一,進(jìn)度低,容易引起視差和

15、視覺疲勞,因而不能滿足數(shù)字化時代的需要。采用單片機(jī)的數(shù)字電壓表,將連續(xù)的模擬量如直流電壓轉(zhuǎn)換成不連續(xù)的離散的數(shù)字形式并加以顯示,從而精度高、抗干擾能力強(qiáng),可擴(kuò)展性強(qiáng)、集成方便,還可與PC實(shí)時通信。數(shù)字電壓表是諸多數(shù)字化儀表的核心與基礎(chǔ)[2]。以數(shù)字電壓表為核心,可以擴(kuò)展成各種通用數(shù)字儀表、專用數(shù)字儀表及各種非電量的數(shù)字化儀表。目前,由各種單片機(jī)和A/D轉(zhuǎn)換器構(gòu)成的數(shù)字電壓表作全面深入的了解是很有必要的。</p><p

16、>  最近的幾十年來,隨著半導(dǎo)體技術(shù)、集成電路(IC)和微處理器技術(shù)的發(fā)展,數(shù)字電路和數(shù)字化測量技術(shù)也有了巨大的進(jìn)步,從而促使了數(shù)字電壓表的快速發(fā)展,并不斷出現(xiàn)新的類型[4]。數(shù)字電壓表從1952年問世以來,經(jīng)歷了不斷改進(jìn)的過程,從最早采用繼電器、電子管和形式發(fā)展到了現(xiàn)在的全固態(tài)化、集成化(IC化),另一方面,精度也從0.01%-0.005%。</p><p>  目前,數(shù)字電壓表的內(nèi)部核心部件是A/D轉(zhuǎn)換

17、器,轉(zhuǎn)換的精度很大程度上影響著數(shù)字電壓表的準(zhǔn)確度,因而,以后數(shù)字電壓表的發(fā)展就著眼在高精度和低成本這兩個方面[3]。</p><p>  本文是以簡易數(shù)字直流電壓表的設(shè)計為研究內(nèi)容,本系統(tǒng)主要包括三大模塊:轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊及顯示模塊。其中,A/D轉(zhuǎn)換采用ADC0808對輸入的模擬信號進(jìn)行轉(zhuǎn)換,控制核心AT89C51再對轉(zhuǎn)換的結(jié)果進(jìn)行運(yùn)算處理,最后驅(qū)動輸出裝置LED顯示數(shù)字電壓信號[11]。</p>

18、;<p><b>  2 設(shè)計總體方案</b></p><p><b>  2.1設(shè)計要求 </b></p><p> ?、乓訫CS-51系列單片機(jī)為核心器件,組成一個簡單的直流數(shù)字電壓表。</p><p> ?、撇捎?路模擬量輸入,能夠測量0-5V之間的直流電壓值。</p><p>

19、; ?、请妷猴@示用4位一體的LED數(shù)碼管顯示,至少能夠顯示兩位小數(shù)。 </p><p> ?、缺M量使用較少的元器件。 </p><p><b>  2.2 設(shè)計思路</b></p><p> ?、鸥鶕?jù)設(shè)計要求,選擇AT89C51單片機(jī)為核心控制器件。</p><p> ?、艫/D轉(zhuǎn)換采用ADC0808實(shí)現(xiàn),與單片機(jī)的接

20、口為P1口和P2口的高四位引腳。</p><p> ?、请妷猴@示采用4位一體的LED數(shù)碼管。</p><p> ?、萀ED數(shù)碼的段碼輸入,由并行端口P0產(chǎn)生:位碼輸入,用并行端口P2低四位產(chǎn)生。</p><p><b>  2.3 設(shè)計方案</b></p><p>  硬件電路設(shè)計由6個部分組成; A/D轉(zhuǎn)換電路,AT8

21、9C51單片機(jī)系統(tǒng),LED顯示系統(tǒng)、時鐘電路、復(fù)位電路以及測量電壓輸入電路。硬件電路設(shè)計框圖如圖1所示。 </p><p>  圖1 數(shù)字電壓表系統(tǒng)硬件設(shè)計框圖</p><p><b>  3 硬件電路設(shè)計</b></p><p>  3.1 A/D轉(zhuǎn)換模塊</p><p>  現(xiàn)實(shí)世界的物理量都是模擬量,能把模擬量轉(zhuǎn)

22、化成數(shù)字量的器件稱為模/數(shù)轉(zhuǎn)換器(A/D轉(zhuǎn)換器),A/D轉(zhuǎn)換器是單片機(jī)數(shù)據(jù)采集系統(tǒng)的關(guān)鍵接口電路,按照各種A/D芯片的轉(zhuǎn)化原理可分為逐次逼近型,雙重積分型等等。雙積分式A/D轉(zhuǎn)換器具有抗干擾能力強(qiáng)、轉(zhuǎn)換精度高、價格便宜等優(yōu)點(diǎn)。與雙積分相比,逐次逼近式A/D轉(zhuǎn)換的轉(zhuǎn)換速度更快,而且精度更高,比如ADC0809、ADC0808等,它們通常具有8路模擬選通開關(guān)及地址譯碼、鎖存電路等,它們可以與單片機(jī)系統(tǒng)連接,將數(shù)字量送到單片機(jī)進(jìn)行分析和顯示。

23、一個n位的逐次逼近型A/D轉(zhuǎn)換器只需要比較n次,轉(zhuǎn)換時間只取決于位數(shù)和時鐘周期,逐次逼近型A/D轉(zhuǎn)換器轉(zhuǎn)換速度快,因而在實(shí)際中廣泛使用[1]。</p><p>  3.1.1 逐次逼近型A/D轉(zhuǎn)換器原理</p><p>  逐次逼近型A/D轉(zhuǎn)換器是由一個比較器、A/D轉(zhuǎn)換器、存儲器及控制電路組成。它利用內(nèi)部的寄存器從高位到低位一次開始逐位試探比較。</p><p>

24、<b>  轉(zhuǎn)換過程如下:</b></p><p>  開始時,寄存器各位清零,轉(zhuǎn)換時,先將最高位置1,把數(shù)據(jù)送入A/D轉(zhuǎn)換器轉(zhuǎn)換,轉(zhuǎn)換結(jié)果與輸入的模擬量比較,如果轉(zhuǎn)換的模擬量比輸入的模擬量小,則1保留,如果轉(zhuǎn)換的模擬量比輸入的模擬量大,則1不保留,然后從第二位依次重復(fù)上述過程直至最低位,最后寄存器中的內(nèi)容就是輸入模擬量對應(yīng)的二進(jìn)制數(shù)字量[5]。其原理框圖如圖2所示:</p>

25、<p>  圖2 逐次逼近式A/D轉(zhuǎn)換器原理圖</p><p>  3.1.2 ADC0808 主要特性</p><p>  ADC0808是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,帶有使能控制端,與微機(jī)直接接口,片內(nèi)帶有鎖存功能的8路模擬多路開關(guān),可以對8路0-5V輸入模擬電壓信號分時進(jìn)行轉(zhuǎn)換,由于ADC0808設(shè)計時考慮到若干種模/數(shù)變換技術(shù)的長處,所以該芯片非常適應(yīng)于過程控

26、制,微控制器輸入通道的接口電路,智能儀器和機(jī)床控制等領(lǐng)域[5]。</p><p>  ADC0808主要特性:8路8位A/D轉(zhuǎn)換器,即分辨率8位;具有鎖存控制的8路模擬開關(guān);易與各種微控制器接口;可鎖存三態(tài)輸出,輸出與TTL兼容;轉(zhuǎn)換時間:128μs;轉(zhuǎn)換精度:0.2%;單個+5V電源供電;模擬輸入電壓范圍0- +5V,無需外部零點(diǎn)和滿度調(diào)整;低功耗,約15mW[6]。</p><p> 

27、 ADC0808的外部引腳特征 </p><p>  ADC0808芯片有28條引腳,采用雙列直插式封裝,其引腳圖如圖3所示。</p><p>  圖3 ADC0808引腳圖</p><p>  下面說明各個引腳功能:</p><p>  IN0-IN7(8條):8路模擬量輸入線,用于輸入和控制被轉(zhuǎn)換的模擬電壓。</p>&l

28、t;p>  地址輸入控制(4條):</p><p>  ALE:地址鎖存允許輸入線,高電平有效,當(dāng)ALE為高電平時,為地址輸入線,用于選擇IN0-IN7上那一條模擬電壓送給比較器進(jìn)行A/D轉(zhuǎn)換。</p><p>  ADDA,ADDB,ADDC:3位地址輸入線,用于選擇8路模擬輸入中的一路,其對應(yīng)關(guān)系如表1所示:</p><p>  表1 ADC0808通道選

29、擇表</p><p>  START:START為“啟動脈沖”輸入法,該線上正脈沖由CPU送來,寬度應(yīng)大于100ns,上升沿清零SAR,下降沿啟動ADC工作。</p><p>  EOC: EOC為轉(zhuǎn)換結(jié)束輸出線,該線上高電平表示A/D轉(zhuǎn)換已結(jié)束,數(shù)字量已鎖入三態(tài)輸出鎖存器。</p><p>  D1-D8:數(shù)字量輸出端,D1為高位。</p><

30、p>  OE:OE為輸出允許端,高電平能使D1-D8引腳上輸出轉(zhuǎn)換后的數(shù)字量。</p><p>  REF+、REF-:參考電壓輸入量,給電阻階梯網(wǎng)絡(luò)供給標(biāo)準(zhǔn)電壓。</p><p>  Vcc、GND: Vcc為主電源輸入端,GND為接地端,一般REF+與Vcc連接在一起,REF-與GND連接在一起.</p><p>  CLK:時鐘輸入端。</p>

31、;<p>  3.1.4 ADC0808的內(nèi)部結(jié)構(gòu)及工作流程</p><p>  ADC0808由8路模擬通道選擇開關(guān),地址鎖存與譯碼器,比較器,8位開關(guān)樹型A/D轉(zhuǎn)換器,逐次逼近型寄存器,定時和控制電路和三態(tài)輸出鎖存器等組成,其內(nèi)部結(jié)構(gòu)如圖4所示。</p><p>  圖4 ADC0808的內(nèi)部結(jié)構(gòu)</p><p><b>  其中:&

32、lt;/b></p><p> ?。?)8路模擬通道選擇開關(guān)實(shí)現(xiàn)從8路輸入模擬量中選擇一路送給后面的比較器進(jìn)行比較。</p><p> ?。?)地址鎖存與譯碼器用于當(dāng)ALE信號有效時,鎖存從ADDA、ADDB、ADDC 3根地址線上送來的3位地址,譯碼后產(chǎn)生通道選擇信號,從8路模擬通道中選擇當(dāng)前模擬通道。</p><p> ?。?)比較器,8位開關(guān)樹型A/D轉(zhuǎn)

33、換器,逐次逼近型寄存器,定時和控制電路組成8位A/D轉(zhuǎn)換器,當(dāng)START信號有效時,就開始對當(dāng)前通道的模擬信號進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換完成后,把轉(zhuǎn)換得到的數(shù)字量送到8位三態(tài)鎖存器,同時通過引腳送出轉(zhuǎn)換結(jié)束信號。</p><p> ?。?)三態(tài)輸出鎖存器保存當(dāng)前模擬通道轉(zhuǎn)換得到的數(shù)字量,當(dāng)OE信號有效時,把轉(zhuǎn)換的結(jié)果送出。</p><p>  ADC0808的工作流程為:</p><

34、;p> ?。?)輸入3位地址,并使ALE=1,將地址存入地址鎖存器中,經(jīng)地址譯碼器從8路模擬通道中選通1路模擬量送給比較器。</p><p> ?。?)送START一高脈沖,START的上升沿使逐次寄存器復(fù)位,下降沿啟動A/D轉(zhuǎn)換,并使EOC信號為低電平。</p><p> ?。?)當(dāng)轉(zhuǎn)換結(jié)束時,轉(zhuǎn)換的結(jié)果送入到輸出三態(tài)鎖存器中,并使EOC信號回到高電平,通知CPU已轉(zhuǎn)換結(jié)束。<

35、;/p><p> ?。?)當(dāng)CPU執(zhí)行一讀數(shù)據(jù)指令時,使OE為高電平,則從輸出端D0-D7讀出數(shù)據(jù)。</p><p>  3.2 單片機(jī)系統(tǒng)</p><p>  3.2.1 AT89C51性能</p><p>  AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含有4KB的可反復(fù)擦寫的只讀程序存儲器和128字節(jié)的

36、隨機(jī)存儲器。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容,由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,它為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p>  AT89C51功能性能:與MCS-51成品指令系統(tǒng)完全兼容;4KB可編程閃速存儲器;壽命:1000次寫/擦循環(huán);數(shù)據(jù)保留時間:10

37、年;全靜態(tài)工作:0-24MHz;三級程序存儲器鎖定;128*8B內(nèi)部RAM;32個可編程I/O口線;2個16位定時/計數(shù)器;5個中斷源;可編程串行UART通道;片內(nèi)震蕩器和掉電模式[6]。 </p><p>  3.2.2 AT89C51各引腳功能</p><p>  AT89C51提供以下標(biāo)準(zhǔn)功能:4KB的Flash閃速存儲器,128B內(nèi)部RAM,32個I/O口線,兩個16位定時/計數(shù)

38、器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)震蕩器及時鐘電路,同時,AT89C51可降至0Hz靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作,掉電方式保存RAM中的內(nèi)容,但震蕩器停止工作并禁止其他所有工作直到下一個硬件復(fù)位。AT89C51采用PDIP封裝形式,引腳配置如圖5所示[7]。</p><p>  圖5 AT89

39、C51的引腳圖</p><p>  AT89C51芯片的各引腳功能為:</p><p>  P0口:這組引腳共有8條,P0.0為最低位。這8個引腳有兩種不同的功能,分別適用于不同的情況,第一種情況是89C51不帶外存儲器,P0口可以為通用I/O口使用,P0.0-P0.7用于傳送CPU的輸入/輸出數(shù)據(jù),這時輸出數(shù)據(jù)可以得到鎖存,不需要外接專用鎖存器,輸入數(shù)據(jù)可以得到緩沖,增加了數(shù)據(jù)輸入的可靠

40、性;第二種情況是89C51帶片外存儲器,P0.0-P0.7在CPU訪問片外存儲器時先傳送片外存儲器的低8位地址,然后傳送CPU對片外存儲器的讀/寫數(shù)據(jù)。P0口為開漏輸出,在作為通用I/O使用時,需要在外部用電阻上拉。</p><p>  P1口:這8個引腳和P0口的8個引腳類似,P1.7為最高位,P1.0為最低位,當(dāng)P1口作為通用I/O口使用時,P1.0-P1.7的功能和P0口的第一功能相同,也用于傳送用戶的輸入

41、和輸出數(shù)據(jù)。</p><p>  P2口:這組引腳的第一功能與上述兩組引腳的第一功能相同即它可以作為通用I/O口使用,它的第一功能和P0口引腳的第二功能相配合,用于輸出片外存儲器的高8位地址,共同選中片外存儲器單元,但并不是像P0口那樣傳送存儲器的讀/寫數(shù)據(jù)。</p><p>  P3口:這組引腳的第一功能和其余三個端口的第一功能相同,第二功能為控制功能,每個引腳并不完全相同,如下表2所示

42、:</p><p>  表2 P3口各位的第二功能</p><p>  Vcc為+5V電源線,Vss接地。</p><p>  ALE:地址鎖存允許線,配合P0口的第二功能使用,在訪問外部存儲器時,89C51的CPU在P0.0-P0.7引腳線去傳送隨后而來的片外存儲器讀/寫數(shù)據(jù)。在不訪問片外存儲器時,89C51自動在ALE線上輸出頻率為1/6震蕩器頻率的脈沖序列。該

43、脈沖序列可以作為外部時鐘源或定時脈沖使用。</p><p>  /EA:片外存儲器訪問選擇線,可以控制89C51使用片內(nèi)ROM或使用片外ROM,</p><p>  若/EA=1,則允許使用片內(nèi)ROM, 若/EA=0,則只使用片外ROM。</p><p>  /PSEN:片外ROM的選通線,在訪問片外ROM時,89C51自動在/PSEN線上產(chǎn)生一個負(fù)脈沖,作為片外R

44、OM芯片的讀選通信號。</p><p>  RST:復(fù)位線,可以使89C51處于復(fù)位(即初始化)工作狀態(tài)。通常89C51復(fù)位有自動上電復(fù)位和人工按鍵復(fù)位兩種。</p><p>  XTAL1和XTAL2:片內(nèi)震蕩電路輸入線,這兩個端子用來外接石英晶體和微調(diào)電容,即用來連接89C51片內(nèi)OSC(震蕩器)的定時反饋回路。</p><p>  3.3 復(fù)位電路和時鐘電路

45、</p><p>  3.3.1 復(fù)位電路設(shè)計</p><p>  單片機(jī)在啟動運(yùn)行時都需要復(fù)位,使CPU和系統(tǒng)中的其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。MCS-51單片機(jī)有一個復(fù)位引腳RST,采用施密特觸發(fā)輸入。當(dāng)震蕩器起振后,只要該引腳上出現(xiàn)2個機(jī)器周期以上的高電平即可確保時器件復(fù)位[1]。復(fù)位完成后,如果RST端繼續(xù)保持高電平,MCS-51就一直處于復(fù)位狀態(tài),只要

46、RST恢復(fù)低電平后,單片機(jī)才能進(jìn)入其他工作狀態(tài)。單片機(jī)的復(fù)位方式有上電自動復(fù)位和手動復(fù)位兩種,圖6是51系列單片機(jī)統(tǒng)常用的上電復(fù)位和手動復(fù)位組合電路,只要Vcc上升時間不超過1ms,它們都能很好的工作[1]。</p><p><b>  圖6 復(fù)位電路</b></p><p>  3.3.2 時鐘電路設(shè)計</p><p>  單片機(jī)中CPU

47、每執(zhí)行一條指令,都必須在統(tǒng)一的時鐘脈沖的控制下嚴(yán)格按時間節(jié)拍進(jìn)行,而這個時鐘脈沖是單片機(jī)控制中的時序電路發(fā)出的。CPU執(zhí)行一條指令的各個微操作所對應(yīng)時間順序稱為單片機(jī)的時序。MCS-51單片機(jī)芯片內(nèi)部有一個高增益反相放大器,用于構(gòu)成震蕩器,XTAL1為該放大器的輸入端,XTAL2為該放大器輸出端,但形成時鐘電路還需附加其他電路[1]。</p><p>  本設(shè)計系統(tǒng)采用內(nèi)部時鐘方式,利用單片機(jī)內(nèi)部的高增益反相放大

48、器,外部電路簡,只需要一個晶振和 2個電容即可,如圖7所示。</p><p><b>  圖7 時鐘電路</b></p><p>  電路中的器件選擇可以通過計算和實(shí)驗確定,也可以參考一些典型電路的參數(shù),電路中,電容器C1和C2對震蕩頻率有微調(diào)作用,通常的取值范圍是30±10pF,在這個系統(tǒng)中選擇了33pF;石英晶振選擇范圍最高可選24MHz,它決定了單片

49、機(jī)電路產(chǎn)生的時鐘信號震蕩頻率,在本系統(tǒng)中選擇的是12MHz,因而時鐘信號的震蕩頻率為12MHz。</p><p>  3.4 LED顯示系統(tǒng)設(shè)計</p><p>  3.4.1 LED基本結(jié)構(gòu)</p><p>  LED是發(fā)光二極管顯示器的縮寫。LED由于結(jié)構(gòu)簡單、價格便宜、與單片機(jī)接口方便等優(yōu)點(diǎn)而得到廣泛應(yīng)用。LED顯示器是由若干個發(fā)光二極管組成顯示字段的顯示

50、器件[6]。在單片機(jī)中使用最多的是七段數(shù)碼顯示器。LED七段數(shù)碼顯示器由8個發(fā)光二極管組成顯示字段,其中7個長條形的發(fā)光二極管排列成“日”字形,另一個圓點(diǎn)形的發(fā)光二極管在顯示器的右下角作為顯示小數(shù)點(diǎn)用,其通過不同的組合可用來顯示各種數(shù)字。LED引腳排列如下圖8所示:</p><p>  圖8 LED引腳排列</p><p>  3.4.2 LED顯示器的選擇</p><

51、;p>  在應(yīng)用系統(tǒng)中,設(shè)計要求不同,使用的LED顯示器的位數(shù)也不同,因此就生產(chǎn)了位數(shù),尺寸,型號不同的LED顯示器供選擇,在本設(shè)計中,選擇4位一體的數(shù)碼型LED顯示器,簡稱“4-LED”。本系統(tǒng)中前一位顯示電壓的整數(shù)位,即個位,后兩位顯示電壓的小數(shù)位。</p><p>  4-LED顯示器引腳如圖9所示,是一個共陰極接法的4位LED數(shù)碼顯示管,其中a,b,c,e,f,g為4位LED各段的公共輸出端,1、2

52、、3、4分別是每一位的位數(shù)選端,dp是小數(shù)點(diǎn)引出端,4位一體LED數(shù)碼顯示管的內(nèi)部結(jié)構(gòu)是由4個單獨(dú)的LED組成,每個LED的段輸出引腳在內(nèi)部都并聯(lián)后,引出到器件的外部。</p><p>  圖9 4位LED引腳</p><p>  對于這種結(jié)構(gòu)的LED顯示器,它的體積和結(jié)構(gòu)都符合設(shè)計要求,由于4位LED陰極的各段已經(jīng)在內(nèi)部連接在一起,所以必須使用動態(tài)掃描方式(將所有數(shù)碼管的段選線并聯(lián)在

53、一起,用一個I/O接口控制)顯示。</p><p>  3.4.3 LED譯碼方式</p><p>  譯碼方式是指由顯示字符轉(zhuǎn)換得到對應(yīng)的字段碼的方式,對于LED數(shù)碼管顯示器,通常的譯碼方式有硬件譯碼和軟件譯碼方式兩種。</p><p>  硬件譯碼是指利用專門的硬件電路來實(shí)現(xiàn)顯示字符碼的轉(zhuǎn)換。</p><p>  軟件譯碼就是編寫軟件譯

54、碼程序,通過譯碼程序來得到要顯示的字符的字段碼,譯碼程序通常為查表程序[3]。</p><p>  本設(shè)計系統(tǒng)中為了簡化硬件線路設(shè)計,LED譯碼采用軟件編程來實(shí)現(xiàn)。由于本設(shè)計采用的是共陰極LED,其對應(yīng)的字符和字段碼如下表3.3所示。</p><p>  表3.3 共陰極字段碼表</p><p>  3.4.4 LED顯示器與單片機(jī)接口設(shè)計</p>

55、<p>  由于單片機(jī)的并行口不能直接驅(qū)動LED顯示器,所以,在一般情況下,必須采用專用的驅(qū)動電路芯片,使之產(chǎn)生足夠大的電流,顯示器才能正常工作[7]。如果驅(qū)動電路能力差,即負(fù)載能力不夠時,顯示器亮度就低,而且驅(qū)動電路長期在超負(fù)荷下運(yùn)行容易損壞,因此,LED顯示器的驅(qū)動電路設(shè)計是一個非常重要的問題。</p><p>  為了簡化數(shù)字式直流電壓表的電路設(shè)計,在LED驅(qū)動電路的設(shè)計上,可以利用單片機(jī)P0口上

56、外接的上拉電阻來實(shí)現(xiàn),即將LED的A-G段顯示引腳和DP小數(shù)點(diǎn)顯示引腳并聯(lián)到P0口與上拉電阻之間,這樣,就可以加大P0口作為輸出口德驅(qū)動能力,使得LED能按照正常的亮度顯示出數(shù)字,如圖10所示。</p><p>  圖10 LED與單片機(jī)接口間的設(shè)計</p><p>  3.5 總體電路設(shè)計</p><p>  經(jīng)過以上的設(shè)計過程,可設(shè)計出基于單片機(jī)的簡易數(shù)字直流

57、電壓表硬件電路原理圖如圖11所示。</p><p>  圖11 簡易數(shù)字電壓表電路圖</p><p>  此電路的工作原理是:+5V模擬電壓信號通過變阻器VR1分壓后由ADC08008的IN0通道進(jìn)入(由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低電平),經(jīng)過模/數(shù)轉(zhuǎn)換后,產(chǎn)生相應(yīng)的數(shù)字量經(jīng)過其輸出通道D0-D7傳送給AT89C51芯片的P1口,AT89C51負(fù)責(zé)把接收到的數(shù)

58、字量經(jīng)過數(shù)據(jù)處理,產(chǎn)生正確的7段數(shù)碼管的顯示段碼傳送給四位LED,同時它還通過其四位I/O口P2.0、P2.1、P2.2、P2.3產(chǎn)生位選信號控制數(shù)碼管的亮滅。此外,AT89C51還控制ADC0808的工作。其中,單片機(jī)AT89C51通過定時器中斷從P2.4輸出方波,接到ADC0808的CLOCK,P2.6發(fā)正脈沖啟動A/D轉(zhuǎn)換,P2.5檢測A/D轉(zhuǎn)換是否完成,轉(zhuǎn)換完成后,P2.7置高從P1口讀取轉(zhuǎn)換結(jié)果送給LED顯示出來[3]。<

59、;/p><p>  簡易數(shù)字直流電壓表的硬件電路已經(jīng)設(shè)計完成,就可以選取相應(yīng)的芯片和元器件,利用Proteus軟件繪制出硬件的原理,并仔細(xì)地檢查修改,直至形成完善的硬件原理圖。但要真正實(shí)現(xiàn)電路對電壓的測量和顯示的功能,還需要有相應(yīng)的軟件配合,才能達(dá)到設(shè)計要求。</p><p><b>  4 程序設(shè)計</b></p><p>  4.1 程序設(shè)計

60、總方案</p><p>  根據(jù)模塊的劃分原則,將該程序劃分初始化模塊,A/D轉(zhuǎn)換子程序和顯示子程序,這三個程序模塊構(gòu)成了整個系統(tǒng)軟件的主程序,如圖12所示。</p><p>  圖12 數(shù)字式直流電壓表主程序框圖</p><p>  4.2 系統(tǒng)子程序設(shè)計</p><p>  4.2.1 初始化程序</p><p&g

61、t;  所謂初始化,是對將要用到的MCS_51系列單片機(jī)內(nèi)部部件或擴(kuò)展芯片進(jìn)行初始工作狀態(tài)設(shè)定,初始化子程序的主要工作是設(shè)置定時器的工作模式,初值預(yù)置,開中斷和打開定時器等[9]。</p><p>  4.2.2 A/D轉(zhuǎn)換子程序</p><p>  A/D轉(zhuǎn)換子程序用來控制對輸入的模塊電壓信號的采集測量,并將對應(yīng)的數(shù)值存入相應(yīng)的內(nèi)存單元,其轉(zhuǎn)換流程圖如圖13所示。</p>

62、<p>  圖13 A/D轉(zhuǎn)換流程圖</p><p>  4.2.3 顯示子程序</p><p>  顯示子程序采用動態(tài)掃描實(shí)現(xiàn)四位數(shù)碼管的數(shù)值顯示,在采用動態(tài)掃描顯示方式時,要使得LED顯示的比較均勻,又有足夠的亮度,需要設(shè)置適當(dāng)?shù)膾呙桀l率,當(dāng)掃描頻率在70HZ左右時,能夠產(chǎn)生比較好的顯示效果,一般可以采用間隔10ms對LED進(jìn)行動態(tài)掃描一次,每一位LED的顯示時間為1ms

63、[10]。</p><p>  在本設(shè)計中,為了簡化硬件設(shè)計,主要采用軟件定時的方式,即用定時器0溢出中斷功能實(shí)現(xiàn)11μs定時,通過軟件延時程序來實(shí)現(xiàn)5ms的延時。</p><p><b>  5 仿真</b></p><p><b>  5.1 軟件調(diào)試</b></p><p>  軟件調(diào)試的主

64、要任務(wù)是排查錯誤,錯誤主要包括邏輯和功能錯誤,這些錯誤有些是顯性的,而有些是隱形的,可以通過仿真開發(fā)系統(tǒng)發(fā)現(xiàn)逐步改正。Proteus軟件可以對基于微控制器的設(shè)計連同所有的周圍電子器件一起仿真,用戶甚至可以實(shí)時采用諸如LED/LCD、鍵盤、RS232終端等動態(tài)外設(shè)模型來對設(shè)計進(jìn)行交互仿真。Proteus支持的微處理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。Proteus可以完成單片機(jī)系統(tǒng)原理圖電路繪制、PCB

65、設(shè)計,更為顯著點(diǎn)的特點(diǎn)是可以與u Visions3 IDE工具軟件結(jié)合進(jìn)行編程仿真調(diào)試[8]。</p><p>  本系統(tǒng)的調(diào)試主要以軟件為主,其中,系統(tǒng)電路圖的繪制和仿真我采用的是Proteus軟件,而程序方面,采用的是匯編語言,用Keil軟件將程序?qū)懭雴纹瑱C(jī)。</p><p><b>  顯示結(jié)果及誤差分析</b></p><p>  5.

66、2.1 顯示結(jié)果</p><p>  當(dāng)IN0口輸入電壓值為0V時,顯示結(jié)果如圖14所示,測量誤差為0V。</p><p>  圖14 輸入電壓為0V時,LED的顯示結(jié)果</p><p>  2.當(dāng)IN0輸入電壓值為1.50V時,顯示結(jié)果如圖15所示。測量誤差為0.01V。</p><p>  圖15 輸入電壓為1.50V時,LED的顯示結(jié)

67、果</p><p>  3. 當(dāng)IN0口輸入電壓值為3.50V時,顯示結(jié)果如圖16。測量誤差為0.01V。</p><p>  圖16 輸入電壓為3.50V時,LED的顯示結(jié)果</p><p>  5.2.2 誤差分析</p><p>  通過以上仿真測量結(jié)果可得到簡易數(shù)字電壓表與“標(biāo)準(zhǔn)”數(shù)字電壓表對比測試表,如下表4所示:</p>

68、;<p>  表4 簡易數(shù)字電壓表與“標(biāo)準(zhǔn)”數(shù)字電壓表對比測試表</p><p>  由于單片機(jī)AT89C51為8位處理器,當(dāng)輸入電壓為5.00V時,ADC0808輸出數(shù)據(jù)值為255(FFH),因此單片機(jī)最高的數(shù)值分辨率為0.0196V(5/255)。這就決定了電壓表的最高分辨率只能到0.0196V,從上表可看到,測試電壓一般以0.01V的幅度變化。</p><p>  從上

69、表可以看出,簡易數(shù)字電壓表測得的值基本上比標(biāo)準(zhǔn)電壓值偏大0-0.01V,這可以通過校正ADC0808的基準(zhǔn)電壓來解決。因為該電壓表設(shè)計時直接用5V的供電電源作為電壓,所以電壓可能有偏差。當(dāng)要測量大于5V的電壓時,可在輸入口使用分壓電阻,而程序中只要將計算程序的除數(shù)進(jìn)行調(diào)整就可以了。</p><p><b>  結(jié) 論</b></p><p>  經(jīng)過一段時間的努力,畢

70、業(yè)論文-基于單片機(jī)的簡易數(shù)字電壓表基本完成。但設(shè)計中的不足之處仍然存在。這次設(shè)計是我第一次設(shè)計電路,并用Proteus實(shí)現(xiàn)了仿真。在這過程中,我對電路設(shè)計,單片機(jī)的使用等都有了新的認(rèn)識。通過這次設(shè)計學(xué)會了Proteus和Keil軟件的使用方法,掌握了從系統(tǒng)的需要、方案的設(shè)計、功能模塊的劃分、原理圖的設(shè)計和電路圖的仿真的設(shè)計流程,積累了不少經(jīng)驗。</p><p>  基于單片機(jī)的數(shù)字電壓表使用性強(qiáng)、結(jié)構(gòu)簡單、成本低

71、、外接元件少。在實(shí)際應(yīng)用工作應(yīng)能好,測量電壓準(zhǔn)確,精度高。系統(tǒng)功能、指標(biāo)達(dá)到了課題的預(yù)期要求、系統(tǒng)在硬件設(shè)計上充分考慮了可擴(kuò)展性,經(jīng)過一定的改造,可以增加功能。本文設(shè)計主要實(shí)現(xiàn)了簡易數(shù)字電壓表測量一路電壓的功能,詳細(xì)說明了從原理圖的設(shè)計、電路圖的仿真再到軟件的調(diào)試。</p><p>  通過本次設(shè)計,我對單片機(jī)這門課有了進(jìn)一步的了解。無論是在硬件連接方面還是在軟件編程方面。本次設(shè)計采用了AT89C51單片機(jī)芯片,

72、與以往的單片機(jī)相比增加了許多新的功能,使其功能更為完善,應(yīng)用領(lǐng)域也更為廣泛。設(shè)計中還用到了模/數(shù)轉(zhuǎn)換芯片ADC0808,以前在學(xué)單片機(jī)課程時只是對其理論知識有了初步的理解。通過這次設(shè)計,對它的工作原理有了更深的理解。在調(diào)試過程中遇到很多問題,硬件上的理論知識學(xué)得不夠扎實(shí),對電路的仿真方面也不夠熟練。</p><p>  總之這次電路的設(shè)計和仿真,基本上達(dá)到了設(shè)計的功能要求。在以后的實(shí)踐中,我將繼續(xù)努力學(xué)習(xí)電路設(shè)計

73、方面的理論知識,并理論聯(lián)系實(shí)際,爭取在電路設(shè)計方面能有所提升。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]胡健.單片機(jī)原理及接口技術(shù).北京:機(jī)械工業(yè)出版社,2004年10月</p><p>  [2]王毓銀.數(shù)字電路邏輯設(shè)計.高等教育出版社,2005年12月</p><p>  [3]于殿泓

74、、王新年.單片機(jī)原理與程序設(shè)計實(shí)驗教程.西安電子科技大學(xué)出版社,2007年5月</p><p>  [4]謝維成、楊加國.單片機(jī)原理與應(yīng)用及C51程序設(shè)計實(shí)例.電子工業(yè)出版社,2006年3月</p><p>  [5]李廣弟.單片機(jī)基礎(chǔ).北京航空航天大學(xué)出版社,2007年5月</p><p>  [6]姜志海,黃玉清等著.單片機(jī)原理及應(yīng)用[M] .北京:電子工業(yè)出版

75、社.2005年7月 </p><p>  [7]魏立峰.單片機(jī)原理及應(yīng)用技術(shù).北京大學(xué)出版社,2005年</p><p>  [8]周潤景.Protues在MCS-51&ARM7系統(tǒng)中的應(yīng)用百例.第一版.北京:電子工業(yè)出版社,2006年</p><p>  [9]邊春遠(yuǎn)等著.MCS-51單片機(jī)應(yīng)用開發(fā)實(shí)用子程序[M] .北京:人民郵電出版社.2005年9月.

76、</p><p>  [10]苗紅霞.單片機(jī)實(shí)現(xiàn)數(shù)字電壓表的軟硬件設(shè)計[J] .河海大學(xué)常州分校學(xué)報,2002,(03).</p><p>  [11]宋鳳娟,孫軍,李國忠.基于89C51單片機(jī)的數(shù)字電壓表設(shè)計[J] .工業(yè)控制計算機(jī),2007,(04).</p><p><b>  附 錄</b></p><p>&l

77、t;b>  程序代碼</b></p><p>  LED_0 EQU 30H</p><p>  LED_1 EQU 31H</p><p>  LED_2 EQU 32H </p><p>  ADC EQU 35H </p><p>  CLOCK BIT P2.4

78、 </p><p>  ST BIT P2.5</p><p>  EOC BIT P2.6</p><p>  OE BIT P2.7</p><p>  ORG 00H </p><p>  SJMP START </p><p><b>  ORG 0BH<

79、;/b></p><p>  LJMP INT_T0 </p><p>  START: MOV LED_0, #00H</p><p>  MOV P2, #0FFH</p><p>  MOV LED_1, #00H</p><p>  MOV LED_2, #00H</p><p

80、>  MOV DPTR, #TABLE </p><p>  MOV TMOD, #02H </p><p>  MOV TH0, #245H </p><p>  MOV TL0, #00H</p><p>  MOV IE, #82H</p><p>  SETB TR0

81、</p><p>  WAIT: CLR ST</p><p><b>  SETB STH</b></p><p>  CLR ST </p><p>  JNB EOC, $ </p><p>  SETB OE </p><p>  

82、MOV ADC, P1 </p><p>  CLR OE </p><p>  MOV A, ADC </p><p>  MOV B, #51</p><p>  DIV AB </p><p>  MOV LED_2, A </p><p>&

83、lt;b>  MOV A, B</b></p><p><b>  MOV B, #5</b></p><p>  DIV AB </p><p>  MOV LED_1, A</p><p>  MOV LED_0, B </p><p>  LCALL DISP

84、 </p><p><b>  SJMP WAIT</b></p><p>  INT_T0: CPL, CLOCK </p><p><b>  RETI</b></p><p>  DISP: MOV A, LED_0 </p><p>  MO

85、VC A, @A+DPTR</p><p><b>  CLR P2.3</b></p><p><b>  MOV P0, A</b></p><p>  LCALL DELAY </p><p>  SETB P2.3 </p><p>  MO

86、V A, LED_1 </p><p>  MOVC A,@A+DPTR </p><p><b>  CLR P2.2 </b></p><p>  MOV P0, A </p><p>  LCALL DELAY</p><p><b>  SETB P2

87、.2</b></p><p>  MOV A, LED_2</p><p>  MOVC A, @A+DPTRL</p><p><b>  CLR P2.1</b></p><p>  ORL A, #80H </p><p><b>  MOV P0, A&

88、lt;/b></p><p>  LCALL DELAY</p><p><b>  SETB P2.1</b></p><p><b>  RET</b></p><p>  DELAY: MOV R6, #10 </p><p>  D1: MOV

89、 R7, #250 </p><p>  DJNZ R7, $ </p><p>  DJNZ R6, D1</p><p><b>  RET</b></p><p>  TABLE: DB 3FH, 06H, 5BH, 4FH, 66H </p><p>  

90、DB 6DH, 7DH, 07H, 7FH, 6FH</p><p><b>  END</b></p><p><b>  致謝</b></p><p>  經(jīng)過一段時間的不懈努力,本次畢業(yè)設(shè)計即將接近尾聲,由于是初次嘗試設(shè)計電路,由于知識及經(jīng)驗的匱乏,難免遇到很多困難,如果沒有導(dǎo)師的督促指導(dǎo)以及同學(xué)們的支持,很難順利的

91、完成此次畢業(yè)設(shè)計。從開始選題到論文的順利完成,都離不開老師、同學(xué)、朋友給以的幫助,在這里請接受我的謝意!</p><p>  首選,在本次畢業(yè)設(shè)計過程中,從選題、構(gòu)思、資料收集到最后定稿的各個環(huán)節(jié)給予細(xì)心指引與教導(dǎo),使我對課程的多方面的知識有了深刻的認(rèn)識,使我得以最終完成畢業(yè)設(shè)計,在此表示衷心感謝。</p><p>  其次,感謝一起做畢業(yè)設(shè)計的同學(xué)們,感謝你們給我的幫助和鼓勵,感謝你們在

92、我遇到困難時所給的幫助,正是有了你們的幫助和鼓勵,此次畢業(yè)設(shè)計才得以順利的完成。</p><p>  本次設(shè)計得以順利完成,也與學(xué)院其他老師的幫助分不開的,雖然他們沒有直接參與我的論文指導(dǎo),但在論文的形成過程中也給我提供了不少的意見,提出一些可行的建議,在此向他們表示感謝!同時也要感謝導(dǎo)師組的老師,他們在本文寫作的各個階段給出了許多寶貴意見。導(dǎo)師們的高深精湛的造詣與嚴(yán)謹(jǐn)求實(shí)的治學(xué)精神將永遠(yuǎn)激勵著我。</p&

溫馨提示

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

評論

0/150

提交評論