基于單片機的簡易數字電壓表的設計_第1頁
基于單片機的簡易數字電壓表的設計_第2頁
基于單片機的簡易數字電壓表的設計_第3頁
基于單片機的簡易數字電壓表的設計_第4頁
基于單片機的簡易數字電壓表的設計_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于單片機的簡易數字電壓表的設計摘要 本文介紹了一種基于單片機的簡易數字電壓表的設計。該設計主要由三個模塊組成:A/D轉換模塊,數據處理模塊及顯示模塊。A/D轉換主要由芯片ADC0808來完成,它負責把采集到的模擬量轉換為相應的數字量在傳送到數據處理模塊。數據處理則由芯片AT89C51來完成,其負責把ADC0808傳送來的數字量經過一定的數據處理,產生相應的顯示碼送到顯示模塊進行顯示;此外,它還控制著ADC0808芯片工作。該系統(tǒng)的數字電壓表電路簡單,所用的元件較少,成本低,且測量精度和可靠性較高。此數字電壓表可以測量0-5V的1路模擬直流輸入電壓值,并通過一個四位一體的7段數碼管顯示出來。

2、關鍵詞 單片機;數字電壓表;A/D轉換;AT89C51;ADC0808 Design of Simple Digital Voltmeter Based on Single-chip Microcontroller Tian MingmingAbstract This paper which introduces a kind of simple digital voltmeter is based on single-chip microcontroller design. The circuit of the voltage meter is mainly consisted of thr

3、ee mould pieces: A/D converting mould piece, A/D converting is mainly completed 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 processes th

4、e data produced by the ADC0808 chip and generates the right manifestation codes, also transmits the codes to the manifestation controlling mould piece. Also, the AT89C51 chip controls the ADC0808 chip to work. The voltmeter features in simple electrical circuit, lower use of elements, low cost, more

5、over, its measuring precision and reliability. The voltmeter is capable of measuring 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.Keywords Single-chip microcontroller; Digital voltmeter; A/D converter; AT89C51; AD

6、C0808 目 錄1 引言12 設計總體方案22.1設計要求22.2 設計思路22.3 設計方案23 硬件電路設計33.1 A/D轉換模塊33.2 單片機系統(tǒng)73.3 復位電路和時鐘電路93.4 LED顯示系統(tǒng)設計113.5 總體電路設計134 程序設計154.1 程序設計總方案154.2 系統(tǒng)子程序設計155 仿真175.1 軟件調試175.2 顯示結果及誤差分析17結 論20參考文獻21附錄 程序代碼22致謝251 引言在電量的測量中,電壓、電流和頻率是最基本的三個被測量,其中電壓量的測量最為經常。而且隨著電子技術的發(fā)展,更是經常需要測量高精度的電壓,所以數字電壓表就成為一種必不可少的測量

7、儀器。數字電壓表簡稱DVM,它是采用數字化測量技術,把連續(xù)的模擬量轉換成不連續(xù)、離散的數字形式并加以顯示的儀表。由于數字式儀器具有讀數準確方便、精度高、誤差小、測量速度快等特而得到廣泛應用1。 傳統(tǒng)的指針式刻度電壓表功能單一,進度低,容易引起視差和視覺疲勞,因而不能滿足數字化時代的需要。采用單片機的數字電壓表,將連續(xù)的模擬量如直流電壓轉換成不連續(xù)的離散的數字形式并加以顯示,從而精度高、抗干擾能力強,可擴展性強、集成方便,還可與PC實時通信。數字電壓表是諸多數字化儀表的核心與基礎2。以數字電壓表為核心,可以擴展成各種通用數字儀表、專用數字儀表及各種非電量的數字化儀表。目前,由各種單片機和A/D轉

8、換器構成的數字電壓表作全面深入的了解是很有必要的。最近的幾十年來,隨著半導體技術、集成電路(IC)和微處理器技術的發(fā)展,數字電路和數字化測量技術也有了巨大的進步,從而促使了數字電壓表的快速發(fā)展,并不斷出現(xiàn)新的類型4。數字電壓表從1952年問世以來,經歷了不斷改進的過程,從最早采用繼電器、電子管和形式發(fā)展到了現(xiàn)在的全固態(tài)化、集成化(IC化),另一方面,精度也從0.01%-0.005%。目前,數字電壓表的內部核心部件是A/D轉換器,轉換的精度很大程度上影響著數字電壓表的準確度,因而,以后數字電壓表的發(fā)展就著眼在高精度和低成本這兩個方面3。本文是以簡易數字直流電壓表的設計為研究內容,本系統(tǒng)主要包括三

9、大模塊:轉換模塊、數據處理模塊及顯示模塊。其中,A/D轉換采用ADC0808對輸入的模擬信號進行轉換,控制核心AT89C51再對轉換的結果進行運算處理,最后驅動輸出裝置LED顯示數字電壓信號11。 2 設計總體方案2.1設計要求 以MCS-51系列單片機為核心器件,組成一個簡單的直流數字電壓表。采用1路模擬量輸入,能夠測量0-5V之間的直流電壓值。電壓顯示用4位一體的LED數碼管顯示,至少能夠顯示兩位小數。 盡量使用較少的元器件。 2.2 設計思路 根據設計要求,選擇AT89C51單片機為核心控制器件。A/D轉換采用ADC0808實現(xiàn),與單片機的接口為P1口和P2口的高四位引腳。電壓顯示采用4

10、位一體的LED數碼管。LED數碼的段碼輸入,由并行端口P0產生:位碼輸入,用并行端口P2低四位產生。2.3 設計方案硬件電路設計由6個部分組成; A/D轉換電路,AT89C51單片機系統(tǒng),LED顯示系統(tǒng)、時鐘電路、復位電路以及測量電壓輸入電路。硬件電路設計框圖如圖1所示。 時鐘電路 復位電路A/D轉換電路測量電壓輸入顯示系統(tǒng)AT89C51 P1 P2 P2 P0 圖1 數字電壓表系統(tǒng)硬件設計框圖3 硬件電路設計3.1 A/D轉換模塊現(xiàn)實世界的物理量都是模擬量,能把模擬量轉化成數字量的器件稱為模/數轉換器(A/D轉換器),A/D轉換器是單片機數據采集系統(tǒng)的關鍵接口電路,按照各種A/D芯片的轉化原

11、理可分為逐次逼近型,雙重積分型等等。雙積分式A/D轉換器具有抗干擾能力強、轉換精度高、價格便宜等優(yōu)點。與雙積分相比,逐次逼近式A/D轉換的轉換速度更快,而且精度更高,比如ADC0809、ADC0808等,它們通常具有8路模擬選通開關及地址譯碼、鎖存電路等,它們可以與單片機系統(tǒng)連接,將數字量送到單片機進行分析和顯示。一個n位的逐次逼近型A/D轉換器只需要比較n次,轉換時間只取決于位數和時鐘周期,逐次逼近型A/D轉換器轉換速度快,因而在實際中廣泛使用1。3.1.1 逐次逼近型A/D轉換器原理逐次逼近型A/D轉換器是由一個比較器、A/D轉換器、存儲器及控制電路組成。它利用內部的寄存器從高位到低位一次

12、開始逐位試探比較。轉換過程如下:開始時,寄存器各位清零,轉換時,先將最高位置1,把數據送入A/D轉換器轉換,轉換結果與輸入的模擬量比較,如果轉換的模擬量比輸入的模擬量小,則1保留,如果轉換的模擬量比輸入的模擬量大,則1不保留,然后從第二位依次重復上述過程直至最低位,最后寄存器中的內容就是輸入模擬量對應的二進制數字量5。其原理框圖如圖2所示:順序脈沖發(fā)生器逐次逼近寄存器ADC電壓比較器輸入電壓輸入數字量圖2 逐次逼近式A/D轉換器原理圖3.1.2 ADC0808 主要特性ADC0808是CMOS單片型逐次逼近式A/D轉換器,帶有使能控制端,與微機直接接口,片內帶有鎖存功能的8路模擬多路開關,可以

13、對8路0-5V輸入模擬電壓信號分時進行轉換,由于ADC0808設計時考慮到若干種模/數變換技術的長處,所以該芯片非常適應于過程控制,微控制器輸入通道的接口電路,智能儀器和機床控制等領域5。ADC0808主要特性:8路8位A/D轉換器,即分辨率8位;具有鎖存控制的8路模擬開關;易與各種微控制器接口;可鎖存三態(tài)輸出,輸出與TTL兼容;轉換時間:128s;轉換精度:0.2%;單個+5V電源供電;模擬輸入電壓范圍0- +5V,無需外部零點和滿度調整;低功耗,約15mW6。3.1.3 ADC0808的外部引腳特征 ADC0808芯片有28條引腳,采用雙列直插式封裝,其引腳圖如圖3所示。圖3 ADC080

14、8引腳圖下面說明各個引腳功能:IN0-IN7(8條):8路模擬量輸入線,用于輸入和控制被轉換的模擬電壓。地址輸入控制(4條):ALE:地址鎖存允許輸入線,高電平有效,當ALE為高電平時,為地址輸入線,用于選擇IN0-IN7上那一條模擬電壓送給比較器進行A/D轉換。ADDA,ADDB,ADDC:3位地址輸入線,用于選擇8路模擬輸入中的一路,其對應關系如表1所示: 表1 ADC0808通道選擇表地址碼 對應的輸入通道 C B A 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 START

15、:START為“啟動脈沖”輸入法,該線上正脈沖由CPU送來,寬度應大于100ns,上升沿清零SAR,下降沿啟動ADC工作。EOC: EOC為轉換結束輸出線,該線上高電平表示A/D轉換已結束,數字量已鎖入三態(tài)輸出鎖存器。D1-D8:數字量輸出端,D1為高位。OE:OE為輸出允許端,高電平能使D1-D8引腳上輸出轉換后的數字量。REF+、REF-:參考電壓輸入量,給電阻階梯網絡供給標準電壓。Vcc、GND: Vcc為主電源輸入端,GND為接地端,一般REF+與Vcc連接在一起,REF-與GND連接在一起. CLK:時鐘輸入端。3.1.4 ADC0808的內部結構及工作流程ADC0808由8路模擬通

16、道選擇開關,地址鎖存與譯碼器,比較器,8位開關樹型A/D轉換器,逐次逼近型寄存器,定時和控制電路和三態(tài)輸出鎖存器等組成,其內部結構如圖4所示。圖4 ADC0808的內部結構其中:(1)8路模擬通道選擇開關實現(xiàn)從8路輸入模擬量中選擇一路送給后面的比較器進行比較。(2)地址鎖存與譯碼器用于當ALE信號有效時,鎖存從ADDA、ADDB、ADDC 3根地址線上送來的3位地址,譯碼后產生通道選擇信號,從8路模擬通道中選擇當前模擬通道。(3)比較器,8位開關樹型A/D轉換器,逐次逼近型寄存器,定時和控制電路組成8位A/D轉換器,當START信號有效時,就開始對當前通道的模擬信號進行轉換,轉換完成后,把轉換

17、得到的數字量送到8位三態(tài)鎖存器,同時通過引腳送出轉換結束信號。(4)三態(tài)輸出鎖存器保存當前模擬通道轉換得到的數字量,當OE信號有效時,把轉換的結果送出。ADC0808的工作流程為:(1)輸入3位地址,并使ALE=1,將地址存入地址鎖存器中,經地址譯碼器從8路模擬通道中選通1路模擬量送給比較器。(2)送START一高脈沖,START的上升沿使逐次寄存器復位,下降沿啟動A/D轉換,并使EOC信號為低電平。(3)當轉換結束時,轉換的結果送入到輸出三態(tài)鎖存器中,并使EOC信號回到高電平,通知CPU已轉換結束。(4)當CPU執(zhí)行一讀數據指令時,使OE為高電平,則從輸出端D0-D7讀出數據。3.2 單片機

18、系統(tǒng)3.2.1 AT89C51性能AT89C51是美國ATMEL公司生產的低電壓,高性能CMOS8位單片機,片內含有4KB的可反復擦寫的只讀程序存儲器和128字節(jié)的隨機存儲器。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容,由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,它為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。 AT89C51功能性能:與MCS-51成品指令系統(tǒng)完全兼容;4KB可編程閃速存儲器;壽命:1000次寫/擦循環(huán);數據保留時間:10年;全靜態(tài)工作:0-24MHz;三級程序

19、存儲器鎖定;128*8B內部RAM;32個可編程I/O口線;2個16位定時/計數器;5個中斷源;可編程串行UART通道;片內震蕩器和掉電模式6。 3.2.2 AT89C51各引腳功能AT89C51提供以下標準功能:4KB的Flash閃速存儲器,128B內部RAM,32個I/O口線,兩個16位定時/計數器,一個5向量兩級中斷結構,一個全雙工串行通信口,片內震蕩器及時鐘電路,同時,AT89C51可降至0Hz靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止CPU的工作,但允許RAM,定時/計數器,串行通信口及中斷系統(tǒng)繼續(xù)工作,掉電方式保存RAM中的內容,但震蕩器停止工作并禁止其他所有工作

20、直到下一個硬件復位。AT89C51采用PDIP封裝形式,引腳配置如圖5所示7。圖5 AT89C51的引腳圖AT89C51芯片的各引腳功能為:P0口:這組引腳共有8條,P0.0為最低位。這8個引腳有兩種不同的功能,分別適用于不同的情況,第一種情況是89C51不帶外存儲器,P0口可以為通用I/O口使用,P0.0-P0.7用于傳送CPU的輸入/輸出數據,這時輸出數據可以得到鎖存,不需要外接專用鎖存器,輸入數據可以得到緩沖,增加了數據輸入的可靠性;第二種情況是89C51帶片外存儲器,P0.0-P0.7在CPU訪問片外存儲器時先傳送片外存儲器的低8位地址,然后傳送CPU對片外存儲器的讀/寫數據。P0口為

21、開漏輸出,在作為通用I/O使用時,需要在外部用電阻上拉。P1口:這8個引腳和P0口的8個引腳類似,P1.7為最高位,P1.0為最低位,當P1口作為通用I/O口使用時,P1.0-P1.7的功能和P0口的第一功能相同,也用于傳送用戶的輸入和輸出數據。P2口:這組引腳的第一功能與上述兩組引腳的第一功能相同即它可以作為通用I/O口使用,它的第一功能和P0口引腳的第二功能相配合,用于輸出片外存儲器的高8位地址,共同選中片外存儲器單元,但并不是像P0口那樣傳送存儲器的讀/寫數據。P3口:這組引腳的第一功能和其余三個端口的第一功能相同,第二功能為控制功能,每個引腳并不完全相同,如下表2所示:表2 P3口各位

22、的第二功能P3口各位第二功能P3.0 RXT(串行口輸入)P3.1 TXD(串行口輸出)P3.2/INT0(外部中斷0輸入)P3.3/INT1(外部中斷1輸入)P3.4T0(定時器/計數器0的外部輸入)P3.5T1(定時器/計數器1的外部輸入)P3.6/WR(片外數據存儲器寫允許) P3.7/RD(片外數據存儲器讀允許)Vcc為+5V電源線,Vss接地。ALE:地址鎖存允許線,配合P0口的第二功能使用,在訪問外部存儲器時,89C51的CPU在P0.0-P0.7引腳線去傳送隨后而來的片外存儲器讀/寫數據。在不訪問片外存儲器時,89C51自動在ALE線上輸出頻率為1/6震蕩器頻率的脈沖序列。該脈沖

23、序列可以作為外部時鐘源或定時脈沖使用。/EA:片外存儲器訪問選擇線,可以控制89C51使用片內ROM或使用片外ROM,若/EA=1,則允許使用片內ROM, 若/EA=0,則只使用片外ROM。/PSEN:片外ROM的選通線,在訪問片外ROM時,89C51自動在/PSEN線上產生一個負脈沖,作為片外ROM芯片的讀選通信號。RST:復位線,可以使89C51處于復位(即初始化)工作狀態(tài)。通常89C51復位有自動上電復位和人工按鍵復位兩種。XTAL1和XTAL2:片內震蕩電路輸入線,這兩個端子用來外接石英晶體和微調電容,即用來連接89C51片內OSC(震蕩器)的定時反饋回路。3.3 復位電路和時鐘電路3

24、.3.1 復位電路設計單片機在啟動運行時都需要復位,使CPU和系統(tǒng)中的其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。MCS-51單片機有一個復位引腳RST,采用施密特觸發(fā)輸入。當震蕩器起振后,只要該引腳上出現(xiàn)2個機器周期以上的高電平即可確保時器件復位1。復位完成后,如果RST端繼續(xù)保持高電平,MCS-51就一直處于復位狀態(tài),只要RST恢復低電平后,單片機才能進入其他工作狀態(tài)。單片機的復位方式有上電自動復位和手動復位兩種,圖6是51系列單片機統(tǒng)常用的上電復位和手動復位組合電路,只要Vcc上升時間不超過1ms,它們都能很好的工作1。 圖6 復位電路3.3.2 時鐘電路設計單片機中CPU每

25、執(zhí)行一條指令,都必須在統(tǒng)一的時鐘脈沖的控制下嚴格按時間節(jié)拍進行,而這個時鐘脈沖是單片機控制中的時序電路發(fā)出的。CPU執(zhí)行一條指令的各個微操作所對應時間順序稱為單片機的時序。MCS-51單片機芯片內部有一個高增益反相放大器,用于構成震蕩器,XTAL1為該放大器的輸入端,XTAL2為該放大器輸出端,但形成時鐘電路還需附加其他電路1。 本設計系統(tǒng)采用內部時鐘方式,利用單片機內部的高增益反相放大器,外部電路簡,只需要一個晶振和 2個電容即可,如圖7所示。圖7 時鐘電路電路中的器件選擇可以通過計算和實驗確定,也可以參考一些典型電路的參數,電路中,電容器C1和C2對震蕩頻率有微調作用,通常的取值范圍是30

26、±10pF,在這個系統(tǒng)中選擇了33pF;石英晶振選擇范圍最高可選24MHz,它決定了單片機電路產生的時鐘信號震蕩頻率,在本系統(tǒng)中選擇的是12MHz,因而時鐘信號的震蕩頻率為12MHz。3.4 LED顯示系統(tǒng)設計3.4.1 LED基本結構LED是發(fā)光二極管顯示器的縮寫。LED由于結構簡單、價格便宜、與單片機接口方便等優(yōu)點而得到廣泛應用。LED顯示器是由若干個發(fā)光二極管組成顯示字段的顯示器件6。在單片機中使用最多的是七段數碼顯示器。LED七段數碼顯示器由8個發(fā)光二極管組成顯示字段,其中7個長條形的發(fā)光二極管排列成“日”字形,另一個圓點形的發(fā)光二極管在顯示器的右下角作為顯示小數點用,其通過

27、不同的組合可用來顯示各種數字。LED引腳排列如下圖8所示:圖8 LED引腳排列3.4.2 LED顯示器的選擇在應用系統(tǒng)中,設計要求不同,使用的LED顯示器的位數也不同,因此就生產了位數,尺寸,型號不同的LED顯示器供選擇,在本設計中,選擇4位一體的數碼型LED顯示器,簡稱“4-LED”。本系統(tǒng)中前一位顯示電壓的整數位,即個位,后兩位顯示電壓的小數位。4-LED顯示器引腳如圖9所示,是一個共陰極接法的4位LED數碼顯示管,其中a,b,c,e,f,g為4位LED各段的公共輸出端,1、2、3、4分別是每一位的位數選端,dp是小數點引出端,4位一體LED數碼顯示管的內部結構是由4個單獨的LED組成,每

28、個LED的段輸出引腳在內部都并聯(lián)后,引出到器件的外部。圖9 4位LED引腳對于這種結構的LED顯示器,它的體積和結構都符合設計要求,由于4位LED陰極的各段已經在內部連接在一起,所以必須使用動態(tài)掃描方式(將所有數碼管的段選線并聯(lián)在一起,用一個I/O接口控制)顯示。3.4.3 LED譯碼方式譯碼方式是指由顯示字符轉換得到對應的字段碼的方式,對于LED數碼管顯示器,通常的譯碼方式有硬件譯碼和軟件譯碼方式兩種。硬件譯碼是指利用專門的硬件電路來實現(xiàn)顯示字符碼的轉換。軟件譯碼就是編寫軟件譯碼程序,通過譯碼程序來得到要顯示的字符的字段碼,譯碼程序通常為查表程序3。本設計系統(tǒng)中為了簡化硬件線路設計,LED譯

29、碼采用軟件編程來實現(xiàn)。由于本設計采用的是共陰極LED,其對應的字符和字段碼如下表3.3所示。表3.3 共陰極字段碼表顯示字符共陰極字段碼03FH106H25BH34FH466H56DH67DH707H87FH96FH3.4.4 LED顯示器與單片機接口設計由于單片機的并行口不能直接驅動LED顯示器,所以,在一般情況下,必須采用專用的驅動電路芯片,使之產生足夠大的電流,顯示器才能正常工作7。如果驅動電路能力差,即負載能力不夠時,顯示器亮度就低,而且驅動電路長期在超負荷下運行容易損壞,因此,LED顯示器的驅動電路設計是一個非常重要的問題。為了簡化數字式直流電壓表的電路設計,在LED驅動電路的設計上

30、,可以利用單片機P0口上外接的上拉電阻來實現(xiàn),即將LED的A-G段顯示引腳和DP小數點顯示引腳并聯(lián)到P0口與上拉電阻之間,這樣,就可以加大P0口作為輸出口德驅動能力,使得LED能按照正常的亮度顯示出數字,如圖10所示。圖10 LED與單片機接口間的設計3.5 總體電路設計經過以上的設計過程,可設計出基于單片機的簡易數字直流電壓表硬件電路原理圖如圖11所示。圖11 簡易數字電壓表電路圖此電路的工作原理是:+5V模擬電壓信號通過變阻器VR1分壓后由ADC08008的IN0通道進入(由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低電平),經過模/數轉換后,產生相應的數字量經過其輸出通道D

31、0-D7傳送給AT89C51芯片的P1口,AT89C51負責把接收到的數字量經過數據處理,產生正確的7段數碼管的顯示段碼傳送給四位LED,同時它還通過其四位I/O口P2.0、P2.1、P2.2、P2.3產生位選信號控制數碼管的亮滅。此外,AT89C51還控制ADC0808的工作。其中,單片機AT89C51通過定時器中斷從P2.4輸出方波,接到ADC0808的CLOCK,P2.6發(fā)正脈沖啟動A/D轉換,P2.5檢測A/D轉換是否完成,轉換完成后,P2.7置高從P1口讀取轉換結果送給LED顯示出來3。簡易數字直流電壓表的硬件電路已經設計完成,就可以選取相應的芯片和元器件,利用Proteus軟件繪制

32、出硬件的原理,并仔細地檢查修改,直至形成完善的硬件原理圖。但要真正實現(xiàn)電路對電壓的測量和顯示的功能,還需要有相應的軟件配合,才能達到設計要求。 4 程序設計4.1 程序設計總方案 根據模塊的劃分原則,將該程序劃分初始化模塊,A/D轉換子程序和顯示子程序,這三個程序模塊構成了整個系統(tǒng)軟件的主程序,如圖12所示。開始初始化調用A/D轉換子程序調用顯示子程序結束圖12 數字式直流電壓表主程序框圖4.2 系統(tǒng)子程序設計4.2.1 初始化程序所謂初始化,是對將要用到的MCS_51系列單片機內部部件或擴展芯片進行初始工作狀態(tài)設定,初始化子程序的主要工作是設置定時器的工作模式,初值預置,開中斷和打開定時器等

33、9。4.2.2 A/D轉換子程序A/D轉換子程序用來控制對輸入的模塊電壓信號的采集測量,并將對應的數值存入相應的內存單元,其轉換流程圖如圖13所示。開始啟動轉換A/D轉換結束?輸出轉換結果數值轉換顯示結束圖13 A/D轉換流程圖4.2.3 顯示子程序顯示子程序采用動態(tài)掃描實現(xiàn)四位數碼管的數值顯示,在采用動態(tài)掃描顯示方式時,要使得LED顯示的比較均勻,又有足夠的亮度,需要設置適當的掃描頻率,當掃描頻率在70HZ左右時,能夠產生比較好的顯示效果,一般可以采用間隔10ms對LED進行動態(tài)掃描一次,每一位LED的顯示時間為1ms10。在本設計中,為了簡化硬件設計,主要采用軟件定時的方式,即用定時器0溢

34、出中斷功能實現(xiàn)11s定時,通過軟件延時程序來實現(xiàn)5ms的延時。5 仿真5.1 軟件調試 軟件調試的主要任務是排查錯誤,錯誤主要包括邏輯和功能錯誤,這些錯誤有些是顯性的,而有些是隱形的,可以通過仿真開發(fā)系統(tǒng)發(fā)現(xiàn)逐步改正。Proteus軟件可以對基于微控制器的設計連同所有的周圍電子器件一起仿真,用戶甚至可以實時采用諸如LED/LCD、鍵盤、RS232終端等動態(tài)外設模型來對設計進行交互仿真。Proteus支持的微處理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。Proteus可以完成單片機系統(tǒng)原理圖電路繪制、PCB設計,更為顯著點的特點是可以與u Visions3 IDE工

35、具軟件結合進行編程仿真調試8。本系統(tǒng)的調試主要以軟件為主,其中,系統(tǒng)電路圖的繪制和仿真我采用的是Proteus軟件,而程序方面,采用的是匯編語言,用Keil軟件將程序寫入單片機。5.2 顯示結果及誤差分析5.2.1 顯示結果1. 當IN0口輸入電壓值為0V時,顯示結果如圖14所示,測量誤差為0V。 圖14 輸入電壓為0V時,LED的顯示結果2.當IN0輸入電壓值為1.50V時,顯示結果如圖15所示。測量誤差為0.01V。圖15 輸入電壓為1.50V時,LED的顯示結果3. 當IN0口輸入電壓值為3.50V時,顯示結果如圖16。測量誤差為0.01V。圖16 輸入電壓為3.50V時,LED的顯示結

36、果5.2.2 誤差分析通過以上仿真測量結果可得到簡易數字電壓表與“標準”數字電壓表對比測試表,如下表4所示:表4 簡易數字電壓表與“標準”數字電壓表對比測試表標準電壓值/V簡易電壓表測量值/V絕對誤差/V0.000.000.000.500.510.011.001.000.001.501.510.012.002.000.002.502.500.003.003.000.003.503.500.004.004.000.004.995.000.01由于單片機AT89C51為8位處理器,當輸入電壓為5.00V時,ADC0808輸出數據值為255(FFH),因此單片機最高的數值分辨率為0.0196V(5/

37、255)。這就決定了電壓表的最高分辨率只能到0.0196V,從上表可看到,測試電壓一般以0.01V的幅度變化。 從上表可以看出,簡易數字電壓表測得的值基本上比標準電壓值偏大0-0.01V,這可以通過校正ADC0808的基準電壓來解決。因為該電壓表設計時直接用5V的供電電源作為電壓,所以電壓可能有偏差。當要測量大于5V的電壓時,可在輸入口使用分壓電阻,而程序中只要將計算程序的除數進行調整就可以了。結 論經過一段時間的努力,畢業(yè)論文-基于單片機的簡易數字電壓表基本完成。但設計中的不足之處仍然存在。這次設計是我第一次設計電路,并用Proteus實現(xiàn)了仿真。在這過程中,我對電路設計,單片機的使用等都有

38、了新的認識。通過這次設計學會了Proteus和Keil軟件的使用方法,掌握了從系統(tǒng)的需要、方案的設計、功能模塊的劃分、原理圖的設計和電路圖的仿真的設計流程,積累了不少經驗?;趩纹瑱C的數字電壓表使用性強、結構簡單、成本低、外接元件少。在實際應用工作應能好,測量電壓準確,精度高。系統(tǒng)功能、指標達到了課題的預期要求、系統(tǒng)在硬件設計上充分考慮了可擴展性,經過一定的改造,可以增加功能。本文設計主要實現(xiàn)了簡易數字電壓表測量一路電壓的功能,詳細說明了從原理圖的設計、電路圖的仿真再到軟件的調試。通過本次設計,我對單片機這門課有了進一步的了解。無論是在硬件連接方面還是在軟件編程方面。本次設計采用了AT89C5

39、1單片機芯片,與以往的單片機相比增加了許多新的功能,使其功能更為完善,應用領域也更為廣泛。設計中還用到了模/數轉換芯片ADC0808,以前在學單片機課程時只是對其理論知識有了初步的理解。通過這次設計,對它的工作原理有了更深的理解。在調試過程中遇到很多問題,硬件上的理論知識學得不夠扎實,對電路的仿真方面也不夠熟練。 總之這次電路的設計和仿真,基本上達到了設計的功能要求。在以后的實踐中,我將繼續(xù)努力學習電路設計方面的理論知識,并理論聯(lián)系實際,爭取在電路設計方面能有所提升。參考文獻1胡健.單片機原理及接口技術.北京:機械工業(yè)出版社,2004年10月2王毓銀.數字電路邏輯設計.高等教育出版社,2005年12月3于殿泓、王新年.單片機原理與程序設計實驗教程.西安電子科技大學出版社,2007年5月4謝維成、楊加國.單片機原理與應用及C51程序設計實例.電子工業(yè)出版社,2006年3月5李廣

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論