版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 基于AT89C51單片機的數(shù)字電壓表設計</p><p><b> 目 錄</b></p><p><b> 0 引言1</b></p><p> 1 系統(tǒng)整體設計思路及方案1</p><p> 1.1 設計思路1</p><p>
2、; 1.2 設計方案1</p><p> 2 數(shù)字電壓表的硬件設計2</p><p> 2.1 主控制模塊的設計2</p><p> 2.1.1 AT89C51性能簡介2</p><p> 2.1.2 AT89C51各引腳功能2</p><p> 2.1.3 AT89C51的復位電路
3、和時鐘電路4</p><p> 2.2 A/D轉(zhuǎn)換模塊的設計5</p><p> 2.2.1 ADC0808的主要特性 6</p><p> 2.2.2 ADC0808各引腳功能6</p><p> 2.3 顯示電路的設計7</p><p> 2.4 總體電路設計圖9</p&g
4、t;<p> 3 數(shù)字電壓表的軟件設計10</p><p> 3.1 設計流程圖10</p><p> 3.2 各子程序簡介11</p><p><b> 4 仿真11</b></p><p> 4.1 軟件調(diào)試11</p><p> 4.2 誤差分
5、析11</p><p><b> 5 結(jié)論12</b></p><p><b> 參考文獻13</b></p><p><b> 附錄14</b></p><p><b> 致謝16</b></p><p>
6、基于AT89C51單片機的數(shù)字電壓表設計</p><p> 摘要:數(shù)字電壓表是常用的對電子電路進行檢測的較精密儀器之一。本文的設計思想是一種基于單片機的數(shù)字電壓表設計方式。該設計主要由三個模塊組成:A/D轉(zhuǎn)換模塊、數(shù)據(jù)處理主控模塊和顯示模塊。A/D轉(zhuǎn)換模塊主要由芯片ADC0808來完成,它負責將采集到的模擬量轉(zhuǎn)換為相應的數(shù)字量傳送到數(shù)據(jù)處理模塊(單片機)。數(shù)據(jù)處理主控模塊由單片機AT89C51來完成,它負責將A
7、DC0808傳送過來的數(shù)字量經(jīng)過一定的數(shù)據(jù)處理,產(chǎn)生相對應的顯示碼傳送到顯示模塊進行顯示。此外,它還控制芯片ADC0808的工作。經(jīng)過仿真軟件結(jié)果表明本設計中的電壓表電路簡單,所用元件較少,成本低且測量精度高。此電壓表可以測量0—5V的模擬輸入電壓值,并通過一個四位一體的7段數(shù)碼管顯示出來。</p><p> 關鍵詞:數(shù)字電壓表;單片機;A/D轉(zhuǎn)換;AT89C51;ADC0808</p><
8、p> The design of digital voltage meter based on AT89C51 single chip microcomputer</p><p> Abstract: digital voltage meter is one of the more commonly used detection precision instrument for electroni
9、c circuit. The design is a design method based on single chip digital voltage meter. The design consists of three modules: A/D module, data processing, the main control module and display module. The A/D conversion modul
10、e is mainly completed by the ADC0808, which is responsible for converting the collected analog to digital quantity corresponding to a data processing module (MCU). Data pr</p><p> Keywords: digital voltage
11、meter;MCU; A/D;AT89C51;ADC0808</p><p><b> 0 引言</b></p><p> 在電量的測量中,電壓、電流和頻率是最基本的三個被測量,其中電壓量的測量最為經(jīng)常。而且隨著電子技術的發(fā)展,更是經(jīng)常需要測量高精度的電壓,所以數(shù)字電壓表就成為一種必不可少的測量儀器。數(shù)字電壓表(Digital Voltmeter)簡稱DAM,它
12、是采用數(shù)字化測量技術,把連續(xù)的模擬量轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。傳統(tǒng)的指針式電壓表功能單一、精度低,不能滿足數(shù)字化時代的需求,采用單片機的數(shù)字電壓表,有精度高、抗干擾能力強、集成方便,還可與PC進行實時通信等優(yōu)點[1]。</p><p> 目前,由各種單片機和A/D轉(zhuǎn)換器構(gòu)成的數(shù)字電壓表,已被廣泛用于電子及電工測量、工業(yè)自動化儀表、自動測試系統(tǒng)等領域,顯示出了它極強的生命力。與此同時,由DVM
13、擴展而成的各種通用及專用數(shù)字儀表儀器,也把電量及非電量技術提高到嶄新水平[2]。新型數(shù)字電壓表以其高準確度、高可靠性、高分辨率、高性價比等優(yōu)良特性備受人們的青睞。</p><p> 本文是以簡易數(shù)字直流電壓表的設計為研究內(nèi)容,本系統(tǒng)主要包括三大模塊:轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊及顯示模塊。其中,A/D轉(zhuǎn)換采用ADC0808對輸入的模擬信號進行轉(zhuǎn)換,控制核心AT89C51再對轉(zhuǎn)換的結(jié)果進行運算處理,最后驅(qū)動輸出裝置LE
14、D顯示數(shù)字電壓信號[3]。</p><p> 1 系統(tǒng)整體設計思路及方案</p><p><b> 1.1 設計思路</b></p><p> 1)根據(jù)設計要求,選擇AT89C51單片機為核心控制器件。</p><p> 2)A/D轉(zhuǎn)換采用ADC0808實現(xiàn),連接單片機的P0口和P3口的低四位引腳。</p
15、><p> 3)電壓顯示采用4位一體的LED數(shù)碼管。</p><p> 4)LED數(shù)碼管的段碼輸入由端口P1產(chǎn)生;位碼輸入用端口P2高四位產(chǎn)生。</p><p><b> 1.2 設計方案</b></p><p> 本設計選擇AT89C51單片機作為核心控制器件。A/D轉(zhuǎn)換采用ADC0808來實現(xiàn)。電壓顯示采用4位一
16、體的LED數(shù)碼管,LED數(shù)碼管的段碼輸人由端口P1輸出,位碼輸人由端口 P2高四位輸出。</p><p> 硬件電路設計由6個部分組成: A/D轉(zhuǎn)換電路,AT89C51單片機系統(tǒng),LED顯示系統(tǒng)、時鐘電路、復位電路以及測量電壓輸入電路。硬件電路設計如圖1-1所示。 </p><p> 圖1-1 系統(tǒng)設計框圖</p><p> 2 數(shù)字電壓表的硬件設計<
17、/p><p> 2.1 單片機主控制模塊的設計</p><p> 2.1.1 AT89C51性能簡介</p><p> AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機,片內(nèi)含有4KB的可反復擦寫的只讀程序存儲器和128字節(jié)的隨機存儲器。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容,
18、由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,它為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案[4]。</p><p> AT89C51功能性能:與MCS-51成品指令系統(tǒng)完全兼容;4KB可編程閃速存儲器;壽命:1000次寫/擦循環(huán);數(shù)據(jù)保留時間:10年;全靜態(tài)工作:0-24MHz;三級程序存儲器鎖定;128*8B內(nèi)部RAM;32個可編程I/O口線;2個1
19、6位定時/計數(shù)器;5個中斷源;可編程串行UART通道;片內(nèi)震蕩器和掉電模式[5]。</p><p> 2.1.2 AT89C51各引腳功能</p><p> AT89C51提供以下標準功能:4KB的Flash閃速存儲器,128B內(nèi)部RAM,32個I/O口線,兩個16位定時/計數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)震蕩器及時鐘電路,同時,AT89C51可降至0Hz靜態(tài)
20、邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作,掉電方式保存RAM中的內(nèi)容,但震蕩器停止工作并禁止其他所有工作直到下一個硬件復位。AT89C51采用PDIP封裝形式,引腳配置如圖2-1所示[6]。</p><p> 圖2-1 AT89C51引腳圖</p><p> AT89C51芯片的各引腳功能為:&l
21、t;/p><p> P0口:這組引腳共有8條,P0.0為最低位。這8個引腳有兩種不同的功能,分別適用于不同的情況,第一種情況是89C51不帶外存儲器,P0口可以為通用I/O口使用,P0.0-P0.7用于傳送CPU的輸入/輸出數(shù)據(jù),這時輸出數(shù)據(jù)可以得到鎖存,不需要外接專用鎖存器,輸入數(shù)據(jù)可以得到緩沖,增加了數(shù)據(jù)輸入的可靠性;第二種情況是89C51帶片外存儲器,P0.0-P0.7在CPU訪問片外存儲器時先傳送片外存儲器
22、的低8位地址,然后傳送CPU對片外存儲器的讀/寫數(shù)據(jù)。P0口為開漏輸出,在作為通用I/O使用時,需要在外部用電阻上拉。</p><p> P1口:這8個引腳和P0口的8個引腳類似,P1.7為最高位,P1.0為最低位,當P1口作為通用I/O口使用時,P1.0-P1.7的功能和P0口的第一功能相同,也用于傳送用戶的輸入和輸出數(shù)據(jù)。</p><p> P2口:這組引腳的第一功能與上述兩組引腳
23、的第一功能相同即它可以作為通用I/O口使用,它的第一功能和P0口引腳的第二功能相配合,用于輸出片外存儲器的高8位地址,共同選中片外存儲器單元,但不像P0口那樣傳送存儲器的讀/寫數(shù)據(jù)。</p><p> P3口:這組引腳的第一功能和其余三個端口的第一功能相同,第二功能為控制功能,每個引腳并不完全相同,如下表2-1所示:</p><p> 表2-1 P3口各位的第二功能</p>
24、;<p> Vcc為+5V電源線,GND接地。</p><p> ALE:地址鎖存允許線,配合P0口的第二功能使用,在訪問外部存儲器時,89C51的CPU在P0.0-P0.7引腳線去傳送隨后而來的片外存儲器讀/寫數(shù)據(jù)。在不訪問片外存儲器時,89C51自動在ALE線上輸出頻率為1/6震蕩器頻率的脈沖序列。該脈沖序列可以作為外部時鐘源或定時脈沖使用。</p><p> /E
25、A:片外存儲器訪問選擇線,可以控制89C51使用片內(nèi)ROM或使用片外ROM,</p><p> 若/EA=1,則允許使用片內(nèi)ROM, 若/EA=0,則只使用片外ROM。</p><p> /PSEN:片外ROM的選通線,在訪問片外ROM時,89C51自動在/PSEN線上產(chǎn)生一個負脈沖,作為片外ROM芯片的讀選通信號。</p><p> RST:復位線,可以使8
26、9C51處于復位(即初始化)工作狀態(tài)。通常89C51復位有自動上電復位和人工按鍵復位兩種。</p><p> XTAL1和XTAL2:片內(nèi)震蕩電路輸入線,這兩個端子用來外接石英晶體和微調(diào)電容,即用來連接89C51片內(nèi)OSC(震蕩器)的定時反饋回路。</p><p> 2.1.3 AT89C51的復位電路和時鐘電路</p><p> 單片機中CPU每執(zhí)行一條指
27、令,都必須在統(tǒng)一的時鐘脈沖的控制下嚴格按時間節(jié)拍進行,而這個時鐘脈沖是單片機控制中的時序電路發(fā)出的。CPU執(zhí)行一條指令的各個微操作所對應時間順序稱為單片機的時序。MCS-51單片機芯片內(nèi)部有一個高增益反相放大器,用于構(gòu)成震蕩器,XTAL1為該放大器的輸入端,XTAL2為該放大器輸出端,但形成時鐘電路還需附加其他電路[7]。</p><p> 單片機AT89C51的時鐘電路如圖2-2所示,主要由電容C1- C3、
28、電阻R1、晶振X1等組成。AT 89C51的18腳(XTAL2)和19腳(XTAL1)接時鐘電路,其中19腳是AT89C51內(nèi)部振蕩器倒相放大器的輸入端,用于接外部晶振和微調(diào)電容的一端;18腳是AT89C51內(nèi)部振蕩器倒相放大器輸出端,用于接外部晶振和微調(diào)電容的另一端。</p><p> 圖2-2 AT89C51的時鐘電路圖</p><p> 單片機在啟動運行時都需要復位,使CPU和
29、系統(tǒng)中的其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。MCS-51單片機有一個復位引腳RST,采用施密特觸發(fā)輸入。當震蕩器起振后,只要該引腳上出現(xiàn)2個機器周期以上的高電平即可確保時器件復位。復位完成后,如果RST端繼續(xù)保持高電平,MCS-51就一直處于復位狀態(tài),只要RST恢復低電平后,單片機才能進入其他工作狀態(tài)。單片機的復位方式有上電自動復位和手動復位兩種,圖2-2是51系列單片機統(tǒng)常用的上電復位和手動復位組合電路。</
30、p><p> 圖2-3 AT89C51的復位電路</p><p> 2.2 A/D轉(zhuǎn)換電路設計 </p><p> 現(xiàn)實世界的物理量都是模擬量,能把模擬量轉(zhuǎn)化成數(shù)字量的器件稱為模/數(shù)轉(zhuǎn)換器(A/D轉(zhuǎn)換器),A/D轉(zhuǎn)換器是單片機數(shù)據(jù)采集系統(tǒng)的關鍵接口電路,按照各種A/D芯片的轉(zhuǎn)化原理可分為逐次逼近型,雙重積分型等等。雙積分式A/D轉(zhuǎn)換器具有抗干擾能力強、轉(zhuǎn)換
31、精度高、價格便宜等優(yōu)點。與雙積分相比,逐次逼近式A/D轉(zhuǎn)換的轉(zhuǎn)換速度更快,而且精度更高,比如ADC0809、ADC0808等,它們通常具有8路模擬選通開關及地址譯碼、鎖存電路等,它們可以與單片機系統(tǒng)連接,將數(shù)字量送到單片機進行分析和顯示。一個n位的逐次逼近型A/D轉(zhuǎn)換器只需要比較n次,轉(zhuǎn)換時間只取決于位數(shù)和時鐘周期,逐次逼近型A/D轉(zhuǎn)換器轉(zhuǎn)換速度快,因而在實際中廣泛使用[8]。</p><p> 2.2.1
32、ADC0808的主要特性</p><p> ADC0808是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,帶有使能控制端,與微機直接接口,片內(nèi)帶有鎖存功能的8路模擬多路開關,可以對8路0-5V輸入模擬電壓信號分時進行轉(zhuǎn)換,由于ADC0808設計時考慮到若干種模/數(shù)變換技術的長處,所以該芯片適應于過程控制,微控制器輸入通道的接口電路,智能儀器和機床控制等領域。</p><p> ADC0808是
33、分辨率為8位的、以逐次逼近原理進行模/數(shù)轉(zhuǎn)換的器件。其內(nèi)部有一個8通道多路開關,它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進行A/D轉(zhuǎn)換。ADC0808是ADC0809的簡化版本,功能基本相同。一般硬件仿真時采用ADC0808進行A/D轉(zhuǎn)換,實際使用時采用ADC0809進行A/D轉(zhuǎn)換[9]。 </p><p> 2.2.2 ADC0808各引腳功能</p><p>
34、; 圖2-4 ADC0808引腳圖</p><p> ADC0808芯片有28條引腳,采用雙列直插式封裝,其引腳圖如圖2-4所示。</p><p> 下面說明各個引腳功能:</p><p> IN0-IN7(8條):8路模擬量輸入線,用于輸入和控制被轉(zhuǎn)換的模擬電壓。</p><p> ALE:地址鎖存允許輸入線,高電平有效,當ALE
35、為高電平時,為地址輸入線,用于選擇IN0-IN7上那一條模擬電壓送給比較器進行A/D轉(zhuǎn)換。</p><p> ADDA,ADDB,ADDC:3位地址輸入線,用于選擇8路模擬輸入中的一路,其對應關系如表2-2所示:</p><p> 表2-2 ADC0808通道選擇表</p><p> START:START為“啟動脈沖”輸入法,該線上正脈沖由CPU送來,寬度應
36、大于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><p> OE:OE為輸出允許端,高電平能使D1-D8引腳上輸出轉(zhuǎn)換后的數(shù)字量。</p><p>
37、 REF+、REF-:參考電壓輸入量,給電阻階梯網(wǎng)絡供給標準電壓。</p><p> Vcc、GND: Vcc為主電源輸入端,GND為接地端,一般REF+與Vcc連接在一起,REF-與GND連接在一起.</p><p> CLK:時鐘輸入端。</p><p> 2.3 顯示電路的設計</p><p> LED是發(fā)光二極管顯示器的縮
38、寫。LED由于結(jié)構(gòu)簡單、價格便宜、與單片機接口方便等優(yōu)點而得到廣泛應用。LED顯示器是由若干個發(fā)光二極管組成顯示字段的顯示器件。在單片機中使用最多的是七段數(shù)碼顯示器。</p><p> 在應用系統(tǒng)中,設計要求不同,使用的LED顯示器的位數(shù)也不同,因此就生產(chǎn)了位數(shù),尺寸,型號不同的LED顯示器供選擇,在本設計中,選擇4位一體的數(shù)碼型LED顯示器,簡稱“4-LED”。本系統(tǒng)中前一位顯示電壓的整數(shù)位,即個位,后兩位顯
39、示電壓的小數(shù)位。</p><p> 4-LED顯示器引腳如圖2-5所示,是一個共陰極接法的4位LED數(shù)碼顯示管,其中a,b,c,e,f,g為4位LED各段的公共輸出端,1、2、3、4分別是每一位位數(shù)選端,DP是小數(shù)點引出端,4位一體LED數(shù)碼顯示管的內(nèi)部結(jié)構(gòu)是由4個單獨的LED組成,每個LED的段輸出引腳在內(nèi)部都并聯(lián)后,引出到器件的外部。</p><p> 圖2-5 4位LED引腳&
40、lt;/p><p> 本設計中LED和單片機的連接如圖2-6,圖中可以看出,本設計用單片機的P1.0~P1.7作為LED顯示的片選端口,P2端口的高四位作為LED的位選信號。</p><p> 圖2-6 顯示電路連接圖</p><p> 2.4 總體電路設計</p><p> 經(jīng)過以上的設計過程,可設計出基于單片機的簡易數(shù)字電壓表硬件
41、電路原理圖如圖2-7所示。</p><p> 圖2-7 設計電路總圖</p><p> 此電路的工作原理是:+5V模擬電壓信號通過變阻器VR1分壓后由ADC0808的IN0通道進入(由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低電平),經(jīng)過模/數(shù)轉(zhuǎn)換后,產(chǎn)生相應的數(shù)字量經(jīng)過其輸出通道D0-D7傳送給AT89C51芯片的P0口,AT89C51負責把接收到的數(shù)字量經(jīng)過數(shù)據(jù)處
42、理,產(chǎn)生正確的7段數(shù)碼管的顯示段碼傳送給四位LED,同時它還通過其四位I/O口P2.4、P2.5、P2.6、P2.7產(chǎn)生位選信號控制數(shù)碼管的亮滅。此外,AT89C51還控制ADC0808的工作。其中,單片機AT89C51從外部中斷P3.3連接到D觸發(fā)器從而控制ADC0808的CLOCK,P3.0發(fā)正脈沖啟動A/D轉(zhuǎn)換,P3.2檢測A/D轉(zhuǎn)換是否完成,轉(zhuǎn)換完成后,P3.1置高從P1口讀取轉(zhuǎn)換結(jié)果送給LED顯示出來[9]。</p>
43、;<p> 簡易數(shù)字直流電壓表的硬件電路已經(jīng)設計完成,就可以選取相應的芯片和元器件,利用Proteus軟件繪制出硬件的原理,并仔細地檢查修改,直至形成完善的硬件原理圖。</p><p> 3 數(shù)字電壓表的軟件設計</p><p> 3.1 設計流程圖</p><p> 主程序主要完成信號存儲、信號處理、A/ D轉(zhuǎn)換以及調(diào)用顯示等。</
44、p><p> 主程序流程圖:程序首先從ORG0000H開始,然后無條件件跳轉(zhuǎn)至主程序的首地址開始,初始化后,先調(diào)用模數(shù)轉(zhuǎn)換程序進行輸入信號的數(shù)字化,然后調(diào)用顯示子程序?qū)⑻幚砗蟮臄?shù)字輸出,一次數(shù)據(jù)結(jié)束后,循環(huán)執(zhí)行調(diào)用的兩個子程序。</p><p> A/D轉(zhuǎn)換子程序流程圖:首先進行開始模數(shù)轉(zhuǎn)化,執(zhí)行后,如果檢測到轉(zhuǎn)化沒有完成則繼續(xù)轉(zhuǎn)化,如果轉(zhuǎn)化完成,執(zhí)行下一條指令,將取得模數(shù)轉(zhuǎn)化結(jié)果并轉(zhuǎn)換為
45、工程量,然后顯示轉(zhuǎn)換結(jié)果,此為一次模數(shù)轉(zhuǎn)換,如此循環(huán)可轉(zhuǎn)換下一組數(shù)據(jù),全部轉(zhuǎn)換完畢后,結(jié)束。</p><p> 圖3-1 程序設計流程圖</p><p> 3.2 各子程序簡介</p><p> 所謂初始化,是對將要用到的MCS_51系列單片機內(nèi)部部件或擴展芯片進行 初始工作狀態(tài)設定,初始化子程序的主要工作是設置定時器的工作模式,初值預置,開中斷和打開定時
46、器等[9]。</p><p> A/D轉(zhuǎn)換子程序用來控制對輸入的模塊電壓信號的采集測量,并將對應的數(shù)值存入相應的內(nèi)存單元。</p><p> 顯示子程序采用動態(tài)掃描實現(xiàn)四位數(shù)碼管的數(shù)值顯示,在采用動態(tài)掃描顯示方式時,要使得LED顯示的比較均勻,又有足夠的亮度,需要設置適當?shù)膾呙桀l率,當掃描頻率在70HZ左右時,能夠產(chǎn)生比較好的顯示效果,一般可以采用間隔10ms對LED進行動態(tài)掃描一次,
47、每一位LED的顯示時間為1ms[10]。</p><p> 在本設計中,為了簡化硬件設計,主要采用軟件定時的方式,即用定時器0溢出中斷功能實現(xiàn)11μs定時,通過軟件延時程序來實現(xiàn)5ms的延時。</p><p><b> 4 軟件調(diào)試</b></p><p><b> 4.1 軟件調(diào)試</b></p>
48、<p> 軟件調(diào)試的主要任務是排查錯誤,錯誤主要包括邏輯和功能錯誤,這些錯誤有些是顯性的,而有些是隱形的,可以通過仿真開發(fā)系統(tǒng)發(fā)現(xiàn)逐步改正。Proteus軟件可以對基于微控制器的設計連同所有的周圍電子器件一起仿真。Proteus支持的微處理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。Proteus可以完成單片機系統(tǒng)原理圖電路繪制、PCB設計,更為顯著的特點是可以與u Visions3 IDE工具
49、軟件結(jié)合進行編程仿真調(diào)試[11]。</p><p> 本系統(tǒng)的調(diào)試主要以軟件為主,其中,系統(tǒng)電路圖的繪制和仿真我采用的是Proteus軟件,程序方面,采用的是C語言,用Keil軟件將程序?qū)懭雴纹瑱C。</p><p><b> 4.2 誤差分析</b></p><p> 由于單片機AT89C51為8位處理器,當輸入電壓為5.00V時,AD
50、C0808輸出數(shù)據(jù)值為255(FFH),因此單片機最高的數(shù)值分辨率為0.0196V(5/255)。這就決定了電壓表的最高分辨率只能到0.0196V,從下表可看到,測試電壓一般以0.01V的幅度變化[11]。</p><p> 本文的數(shù)字電壓表可以測量0-5V的電壓值,最大分辯率為0.01V。通過仿真測量結(jié)果可得到簡易數(shù)字電壓表與“標準”數(shù)字電壓表對比測試表。</p><p> 本次設計
51、的電壓表誤差分析采用多次測量求絕對差值的方法,并把各組數(shù)據(jù)列成表格,這樣能更加清晰地看出誤差的波動范圍及大小,如下表4-1所示:</p><p> 表4-1 誤差分析</p><p> 從上表可以看出,簡易數(shù)字電壓表測得的值基本上比標準電壓值偏小0-0.02V,這可以通過校正ADC0808的基準電壓來解決。因為該電壓表設計時直接用5V的供電電源作為電壓,所以電壓可能有偏差。當要測量大
52、于5V的電壓時,可在輸入口使用分壓電阻,而程序中只要將計算程序的除數(shù)進行調(diào)整就可以了。</p><p><b> 5 結(jié)論 </b></p><p> 經(jīng)過近段時間的努力,基于AT89C51單片機的數(shù)字電壓表設計基本完成。但設計中仍然存在許多不足之處。這次設計是我第一次設計電路,并用Proteus實現(xiàn)了仿真。在這過程中,我對電路設計,單片機的使用等都有了新的認識
53、。通過這次設計學會了Proteus和Keil軟件的使用方法,掌握了從系統(tǒng)的需要、方案的設計、功能模塊的劃分、原理圖電路圖的仿真的設計流程,積累了不少經(jīng)驗。</p><p> 基于單片機的數(shù)字電壓表使用性強、結(jié)構(gòu)簡單、成本低、外接元件少。在實際應用工作應能好,測量電壓準確,精度高。系統(tǒng)功能、指標達到了論文的預期要求,本文設計主要實現(xiàn)了簡易數(shù)字電壓表測量一路電壓的功能,詳細說明了從原理圖的設計、電路圖的仿真再到軟件
54、的調(diào)試。</p><p> 通過本次設計,我對單片機這門課有了進一步的了解。無論是在硬件連接方面還是在軟件編程方面。本次設計采用了AT89C51單片機芯片,設計中還用到了模/數(shù)轉(zhuǎn)換芯片ADC0808,以前在學單片機課程時只是對其理論知識有了初步的理解。通過這次設計,對它的工作原理有了更深的理解。在調(diào)試過程中遇到很多問題,硬件上的理論知識學得不夠扎實,對電路的仿真方面也不夠熟練。</p><p
55、> 總之這次電路的設計和仿真,基本上達到了設計的功能要求。在以后的實踐工作中,我將繼續(xù)努力學習電路設計方面的理論知識,并理論聯(lián)系實際,爭取在電路設計方面能有所提升。</p><p><b> 參考文獻:</b></p><p> [1]胡健.單片機原理及接口技術.北京:機械工業(yè)出版社,2004年10月</p><p> [2]王毓
56、銀.數(shù)字電路邏輯設計.高等教育出版社,2005年12月</p><p> [3]宋鳳娟,孫軍,李國忠.基于89C51單片機數(shù)字電壓表設計[J] .工業(yè)控制計算機,2007/04</p><p> [4]謝維成、楊加國.單片機原理與應用及C51程序設計實例.電子工業(yè)出版社,2006年3月</p><p> [5]李廣弟.單片機基礎.北京航空航天大學出版社,200
57、7年5月</p><p> [6]姜志海,黃玉清等著.單片機原理及應用[M].北京:電子工業(yè)出版社.2005年7月 </p><p> [7]魏立峰.單片機原理及應用技術.北京大學出版社,2005年</p><p> [8]周潤景.Protues在MCS-51&ARM7系統(tǒng)應用百例.第一版.北京:電子工業(yè)出版社2006年</p><
58、p> [9]邊春遠等著.MCS-51單片機應用開發(fā)實用子程序[M].北京:人民郵電出版社.2005/9</p><p> [10]苗紅霞.單片機實現(xiàn)數(shù)字電壓表的軟硬件設計[J] .河海大學常州分校學報,2002,(03).</p><p> [11]于殿泓、王新年.單片機原理與程序設計實驗教程.西安電子科技大學出版社,2007/5</p><p><
59、;b> 致 謝</b></p><p> 經(jīng)過近段時間的不懈努力,本次畢業(yè)設計即將接近尾聲,由于是初次嘗試設計電路,由于知識及經(jīng)驗的匱乏,難免遇到很多困難,如果沒有指導老師的督促指導以及同學們的幫助,很難順利的完成此次畢業(yè)設計。從開始選題到論文的順利完成,都離不開老師、同學、朋友給以的幫助,在這里請接受我的謝意!</p><p> 首先,感謝在本次畢業(yè)設計過程中,從
60、選題、構(gòu)思、資料收集到最后定稿的各個環(huán)節(jié)給予細心指引與教導的吳老師,使我對課程的多方面的知識有了深刻的認識,使我得以最終完成畢業(yè)設計,在此表示衷心感謝。</p><p> 本次設計的順利完成,還要特別感謝**老師,如果上學期沒跟隨*老師學習Protues軟件的使用,本次設計業(yè)不可能這么順利的完成。</p><p> 其次,感謝在做畢業(yè)設計中幫助我的同學們,感謝你們給我的幫助和鼓勵,感謝
61、你們在我遇到困難時所給的幫助,正是有了你們的幫助和鼓勵,此次畢業(yè)設計才得以順利的完成。</p><p> 最后,對大學四年以來曾經(jīng)關心支持過我的老師、同學,還有我的親愛的室友們送上最真誠的謝意。對于給我們提供了良好學習環(huán)境的--師范大學,更是充滿了感激,由于母校的培養(yǎng),才使我成長為一個合格的大學生。</p><p><b> 附錄:</b></p>
62、<p><b> 程序代碼:</b></p><p> #include <AT89X52.H> </p><p> unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f}; </p><p> unsigned ch
63、ar code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00}; </p><p> unsigned char dispbuf[8]={10,10,10,10,10,0,0,0}; </p><p> unsigned char dispcount; </p><p>
64、 unsigned char getdata; </p><p> unsigned int temp; </p><p> long int i; </p><p> sbit ST=P3^0; </p><p> sbit OE=P3^1; </p><p> sbit EOC=P3^2; </
65、p><p> sbit CLK=P3^3;</p><p> void main(void) </p><p><b> { </b></p><p><b> ST=0; </b></p><p><b> OE=0; </b></p>
66、;<p><b> ET0=1; </b></p><p><b> ET1=1; </b></p><p><b> EA=1; </b></p><p> TMOD=0x12; </p><p><b> TH0=216; </b&g
67、t;</p><p><b> TL0=216; </b></p><p> TH1=(65536-5000)/256; </p><p> TL1=(65536-5000)%256; </p><p><b> TR1=1; </b></p><p><b&g
68、t; TR0=1; </b></p><p><b> ST=1; </b></p><p><b> ST=0; </b></p><p><b> while(1) </b></p><p><b> { </b></p&g
69、t;<p> if(EOC==1) </p><p><b> { </b></p><p><b> OE=1; </b></p><p> getdata=P0; </p><p><b> OE=0; </b></p><p&g
70、t; i=getdata*196;</p><p> dispbuf[5]=i/10000; </p><p> i=i%10000; </p><p> dispbuf[6]=i/1000;</p><p> i=i%1000; </p><p> dispbuf[7]=i/100;</p>
71、<p><b> ST=1; </b></p><p><b> ST=0; </b></p><p><b> } } } </b></p><p> void t0(void) interrupt 1 using 0 //定時器0 中斷
72、服務</p><p><b> { </b></p><p> CLK=~CLK; </p><p><b> } </b></p><p> void t1(void) interrupt 3 using 0 //定時器1 中斷服務</p>
73、;<p><b> { </b></p><p> TH1=(65536-6000)/256; </p><p> TL1=(65536-6000)%256; </p><p> P1=dispcode[dispbuf[dispcount]]; </p><p> P2=dispbitcode[d
74、ispcount]; </p><p> if(dispcount==5) </p><p><b> { </b></p><p> P1=P1 | 0x80; </p><p><b> } </b></p><p> dispcount++; </p&g
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于at89c51單片機的數(shù)字電壓表設計(畢業(yè)論文)
- 畢業(yè)論文--基于at89c51單片機的數(shù)字電壓表的設計
- 基于at89c51單片機的數(shù)字電壓表設計
- 基于at89c51單片機的數(shù)字電壓表的仿真設計
- 數(shù)字電壓表畢業(yè)論文--基于51單片機的數(shù)字電壓表設計
- 基于51單片機的數(shù)字電壓表設計 畢業(yè)論文
- @基于AT89C51單片機的數(shù)字電壓表的Proteus仿真設計與應用.pdf
- 基于at89c51的簡易數(shù)字電壓表設計
- 2017畢業(yè)論文-基于at89c51單片機數(shù)字時鐘的設計
- 89c51單片機數(shù)字電壓表課程設計
- 基于STC89C51單片機的數(shù)字電壓表設計.pdf
- 基于at89c51單片機的數(shù)字時鐘設計
- 畢業(yè)論文--基于單片機的數(shù)字電壓表設計
- 基于at89s52單片機的數(shù)字電壓表設計畢業(yè)論文
- 畢業(yè)論文基于at89s52單片機的數(shù)字電壓表設計
- 基于單片機的數(shù)字電壓表畢業(yè)論文
- 單片機數(shù)字電壓表畢業(yè)論文
- (畢業(yè)論文)基于單片機的數(shù)字電壓表設計
- 畢業(yè)論文——基于單片機的數(shù)字電壓表
- 基于at89c51單片機數(shù)字鐘設計
評論
0/150
提交評論