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

下載本文檔

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

文檔簡介

1、南 京 理 工 大 學 本科生畢業(yè)設計(論文) 學院(系): 專 業(yè): 電氣工程及其自動化 學 生: xx 指導教師: xx 完成日期 2012 年 5 月 南京理工大學本科生畢業(yè)設計(論文) 基于單片機的數(shù)字電壓表設計基于單片機的數(shù)字電壓表設計 design of digital voltmeter based on single-chip microcontroller 總 計: 30 頁 表 格: 4 個 插 圖: 16 幅 南南 京京 理理 工工 大大 學學 本本 科科 畢畢 業(yè)業(yè) 設設 計(論文)計(論文) 基于單片機的數(shù)字電壓表設計基于單片機的數(shù)字電壓表設計 design of d

2、igital voltmeter based on single-chip microcontroller 學 院(系): 專 業(yè): 電氣工程及其自動化 學 生 姓 名: 學 號: 指 導 教 師(職稱): xx (教授) 評 閱 教 師: 完 成 日 期: 南京理工大學 nanjing university of sicengce and technology 基于單片機的數(shù)字電壓表的設計 電氣工程及其自動化專業(yè) xx 摘 要 本文介紹了一種基于單片機的數(shù)字電壓表的設計。該設計主要由三個模 塊組成:a/d 轉(zhuǎn)換模塊,數(shù)據(jù)處理模塊及顯示模塊。a/d 轉(zhuǎn)換主要由芯片 adc0808 來完 成,它

3、負責把采集到的模擬量轉(zhuǎn)換為相應的數(shù)字量再傳送到數(shù)據(jù)處理模塊。數(shù)據(jù)處理 則由芯片 at89c51 來完成,其負責把 adc0808 傳送來的數(shù)字量經(jīng)過一定的數(shù)據(jù)處理, 產(chǎn)生相應的顯示碼送到顯示模塊進行顯示;此外,它還控制著 adc0808 芯片工作。該系 統(tǒng)的數(shù)字電壓表電路簡單,所用的元件較少,成本低,且測量精度和可靠性較高。此 數(shù)字電壓表經(jīng)過 proteus 軟件仿真和調(diào)試,可以測量 0-5v 的 1 路模擬直流輸入電壓值, 并通過一個四位一體的 7 段數(shù)碼管顯示出來。 關鍵詞 數(shù)字電壓表;a/d 轉(zhuǎn)換;at89c51;adc0808;proteus design of digital vol

4、tmeter based on single-chip microcontroller electrical engineering and automation speciality sun kun abstract: this paper introduces a kind of digital voltmeter based on single chip design. this design mainly contains three modules: a/d conversion module, data processing module and display module. a

5、/d transformation mainly contains the chip adc0808 to complete, it is responsible for the collection of the analog conversion to the corresponding digital quantity to transmitting for data processing module. data processing iscompleted by the chip at89c51 , which is responsible for the adc0808 trans

6、mit to the digital quantity after certain data processing, has the corresponding display code to display module display; in addition, it still controls the adc0808 chips work. the system of the digital voltmeter circuit is simple, the components of the less, low cost, and the measured precision and

7、high reliability. the digital voltmeter through the proteus software simulation and test, can measure 0-5 v 1 road simulation input dc voltage value, and through a four one of the seven section digital tube for display. key words : digital voltmeter; a/dconverter ; at89c51; adc0808;proteus 目 錄 1 引言

8、.1 1.1 數(shù)字電壓表的發(fā)展現(xiàn)狀 .1 1.2 本課題研究的主要內(nèi)容 .1 2 設計總體方案 .1 2.1 設計要求 .1 2.2 設計思路 .2 2.3 設計方案 .2 3 硬件電路設計 .2 3.1 a/d 轉(zhuǎn)換模塊 .2 3.1.1 逐次逼近型 a/d 轉(zhuǎn)換器原理.3 3.1.2 adc0808 主要特性 .3 3.1.3 adc0808 的外部引腳特征 .3 3.1.4 adc0808 的內(nèi)部結構及工作流程 .5 3.2 單片機系統(tǒng) .6 3.2.1 at89c51 性能 .6 3.2.2 at89c51 各引腳功能 .6 3.3 復位電路和時鐘電路 .8 3.3.1 復位電路設計.

9、8 3.3.2 時鐘電路設計.9 3.4 led 顯示系統(tǒng)設計 .9 3.4.1 led 基本結構 .9 3.4.2 led 顯示器的選擇 .10 3.4.3 led 譯碼方式 .11 3.4.4 led 顯示器與單片機接口設計 .11 3.5 總體電路設計 .12 4 程序設計 .13 4.1 程序設計總方案 .13 4.2 系統(tǒng)子程序設計 .14 4.2.1 初始化程序.14 4.2.2 a/d 轉(zhuǎn)換子程序 .14 4.2.3 顯示子程序.14 4.3 仿真 .15 4.3.1 軟件調(diào)試 .15 4.3.2 顯示結果及誤差分析 .15 結束語 .18 參考文獻 .19 附錄 .20 致謝

10、.23 1 引言 1.1 數(shù)字電壓表的發(fā)展現(xiàn)狀 在電量的測量中,電壓、電流和頻率是最基本的三個被測量,其中電壓量的測量 最為經(jīng)常。而且隨著電子技術的發(fā)展,更是經(jīng)常需要測量高精度的電壓,所以數(shù)字電 壓表就成為一種必不可少的測量儀器。數(shù)字電壓表簡稱 dvm,它是采用數(shù)字化測量技術, 把連續(xù)的模擬量轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。由于數(shù)字式儀器 具有讀數(shù)準確方便、精度高、誤差小、測量速度快等特而得到廣泛應用1。 傳統(tǒng)的指針式刻度電壓表功能單一,進度低,容易引起視差和視覺疲勞,因而不 能滿足數(shù)字化時代的需要。采用單片機的數(shù)字電壓表,將連續(xù)的模擬量如直流電壓轉(zhuǎn) 換成不連續(xù)的離散的數(shù)字形式并

11、加以顯示,從而精度高、抗干擾能力強,可擴展性強、 集成方便,還可與 pc 實時通信。數(shù)字電壓表是諸多數(shù)字化儀表的核心與基礎2。以數(shù) 字電壓表為核心,可以擴展成各種通用數(shù)字儀表、專用數(shù)字儀表及各種非電量的數(shù)字 化儀表。目前,由各種單片機和 a/d 轉(zhuǎn)換器構成的數(shù)字電壓表作全面深入的了解是很 有必要的。 最近的幾十年來,隨著半導體技術、集成電路(ic)和微處理器技術的發(fā)展,數(shù) 字電路和數(shù)字化測量技術也有了巨大的進步,從而促使了數(shù)字電壓表的快速發(fā)展,并 不斷出現(xiàn)新的類型4。數(shù)字電壓表從 1952 年問世以來,經(jīng)歷了不斷改進的過程,從最 早采用繼電器、電子管和形式發(fā)展到了現(xiàn)在的全固態(tài)化、集成化(ic

12、化) ,另一方面, 精度也從 0.01%-0.005%。 目前,數(shù)字電壓表的內(nèi)部核心部件是 a/d 轉(zhuǎn)換器,轉(zhuǎn)換的精度很大程度上影響著 數(shù)字電壓表的準確度,因而,以后數(shù)字電壓表的發(fā)展就著眼在高精度和低成本這兩個 方面3。 1.2 本課題研究的主要內(nèi)容 本文是以數(shù)字直流電壓表的設計為研究內(nèi)容,本系統(tǒng)主要包括三大模塊:轉(zhuǎn)換模 塊、數(shù)據(jù)處理模塊及顯示模塊。其中,a/d 轉(zhuǎn)換采用 adc0808 對輸入的模擬信號進行轉(zhuǎn) 換,控制核心 at89c51 再對轉(zhuǎn)換的結果進行運算處理,最后驅(qū)動輸出裝置 led 顯示數(shù) 字電壓信號11。 2 設計總體方案 2.1 設計要求 以 mcs-51 系列單片機為核心器件

13、,組成一個簡單的直流數(shù)字電壓表。 采用 1 路模擬量輸入,能夠測量 0-5v 之間的直流電壓值。 電壓顯示用 4 位一體的 led 數(shù)碼管顯示,至少能夠顯示兩位小數(shù)。 盡量使用較少的元器件。 2.2 設計思路 根據(jù)設計要求,選擇 at89c51 單片機為核心控制器件。 a/d 轉(zhuǎn)換采用 adc0808 實現(xiàn),與單片機的接口為 p1 口和 p2 口的高四位引腳。 電壓顯示采用 4 位一體的 led 數(shù)碼管。 led 數(shù)碼的段碼輸入,由并行端口 p0 產(chǎn)生:位碼輸入,用并行端口 p2 低四位產(chǎn) 生。 2.3 設計方案 硬件電路設計由 6 個部分組成; a/d 轉(zhuǎn)換電路,at89c51 單片機系統(tǒng),

14、led 顯示系 統(tǒng)、時鐘電路、復位電路以及測量電壓輸入電路。硬件電路設計框圖如圖 1 所示。 時鐘電路 復位電路 a/d 轉(zhuǎn)換電路測量電壓輸入 顯示系統(tǒng) at89c51 p1 p2 p2 p0 圖 1 數(shù)字電壓表系統(tǒng)硬件設計框圖 3 硬件電路設計 3.1 a/d 轉(zhuǎn)換模塊 現(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)換精度高、價格便宜等優(yōu)點。與雙積分相比,逐次逼近式 a/d 轉(zhuǎn)換的

15、轉(zhuǎn)換 速度更快,而且精度更高,比如 adc0809、adc0808 等,它們通常具有 8 路模擬選通開 關及地址譯碼、鎖存電路等,它們可以與單片機系統(tǒng)連接,將數(shù)字量送到單片機進行 分析和顯示。一個 n 位的逐次逼近型 a/d 轉(zhuǎn)換器只需要比較 n 次,轉(zhuǎn)換時間只取決于 位數(shù)和時鐘周期,逐次逼近型 a/d 轉(zhuǎn)換器轉(zhuǎn)換速度快,因而在實際中廣泛使用1。 3.1.1 逐次逼近型 a/d 轉(zhuǎn)換器原理 逐次逼近型 a/d 轉(zhuǎn)換器是由一個比較器、a/d 轉(zhuǎn)換器、存儲器及控制電路組成。它 利用內(nèi)部的寄存器從高位到低位一次開始逐位試探比較。 轉(zhuǎn)換過程如下: 開始時,寄存器各位清零,轉(zhuǎn)換時,先將最高位置 1,把數(shù)

16、據(jù)送入 a/d 轉(zhuǎn)換器轉(zhuǎn)換, 轉(zhuǎn)換結果與輸入的模擬量比較,如果轉(zhuǎn)換的模擬量比輸入的模擬量小,則 1 保留,如 果轉(zhuǎn)換的模擬量比輸入的模擬量大,則 1 不保留,然后從第二位依次重復上述過程直 至最低位,最后寄存器中的內(nèi)容就是輸入模擬量對應的二進制數(shù)字量5。其原理框圖 如圖 2 所示: 順序脈沖 發(fā)生器 主次逼近 寄存器 adc 輸入數(shù)字量輸入電壓 電壓 比較器 圖 2 逐次逼近式 a/d 轉(zhuǎn)換器原理圖 3.1.2 adc0808 主要特性 adc0808 是 cmos 單片型逐次逼近式 a/d 轉(zhuǎn)換器,帶有使能控制端,與微機直接接 口,片內(nèi)帶有鎖存功能的 8 路模擬多路開關,可以對 8 路 0-

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

18、式封裝,其引腳圖如圖 3 所示。 圖 3 adc0808 引腳圖 下面說明各個引腳功能: in0-in7(8 條):8 路模擬量輸入線,用于輸入和控制被轉(zhuǎn)換的模擬電壓。 地址輸入控制(4 條): ale:地址鎖存允許輸入線,高電平有效,當 ale 為高電平時,為地址輸入線,用 于選擇 in0-in7 上那一條模擬電壓送給比較器進行 a/d 轉(zhuǎn)換。 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

19、 1 0 1 0 1 0 1 in0 in1 in2 in3 in4 in5 in6 in7 start:start 為“啟動脈沖”輸入法,該線上正脈沖由 cpu 送來,寬度應大于 100ns,上升沿清零 sar,下降沿啟動 adc 工作。 eoc: eoc 為轉(zhuǎn)換結束輸出線,該線上高電平表示 a/d 轉(zhuǎn)換已結束,數(shù)字量已鎖入 三態(tài)輸出鎖存器。 d1-d8:數(shù)字量輸出端,d1 為高位。 oe:oe 為輸出允許端,高電平能使 d1-d8 引腳上輸出轉(zhuǎn)換后的數(shù)字量。 ref+、ref-:參考電壓輸入量,給電阻階梯網(wǎng)絡供給標準電壓。 vcc、gnd: vcc 為主電源輸入端,gnd 為接地端,一般

20、ref+與 vcc 連接在一起, ref-與 gnd 連接在一起。 clk:時鐘輸入端。 3.1.4 adc0808 的內(nèi)部結構及工作流程 adc0808 由 8 路模擬通道選擇開關,地址鎖存與譯碼器,比較器,8 位開關樹型 a/d 轉(zhuǎn)換器,逐次逼近型寄存器,定時和控制電路和三態(tài)輸出鎖存器等組成,其內(nèi)部結 構如圖 4 所示。 圖 4 adc0808 的內(nèi)部結構 其中: (1)8 路模擬通道選擇開關實現(xiàn)從 8 路輸入模擬量中選擇一路送給后面的比較器 進行比較。 (2)地址鎖存與譯碼器用于當 ale 信號有效時,鎖存從 adda、addb、addc 3 根 地址線上送來的 3 位地址,譯碼后產(chǎn)生通

21、道選擇信號,從 8 路模擬通道中選擇當前模 擬通道。 (3)比較器,8 位開關樹型 a/d 轉(zhuǎn)換器,逐次逼近型寄存器,定時和控制電路組 成 8 位 a/d 轉(zhuǎn)換器,當 start 信號有效時,就開始對當前通道的模擬信號進行轉(zhuǎn)換, 轉(zhuǎn)換完成后,把轉(zhuǎn)換得到的數(shù)字量送到 8 位三態(tài)鎖存器,同時通過引腳送出轉(zhuǎn)換結束 信號。 (4)三態(tài)輸出鎖存器保存當前模擬通道轉(zhuǎn)換得到的數(shù)字量,當 oe 信號有效時, 把轉(zhuǎn)換的結果送出。 adc0808 的工作流程為: (1)輸入 3 位地址,并使 ale=1,將地址存入地址鎖存器中,經(jīng)地址譯碼器從 8 路 模擬通道中選通 1 路模擬量送給比較器。 (2)送 start

22、 一高脈沖,start 的上升沿使逐次寄存器復位,下降沿啟動 a/d 轉(zhuǎn) 換,并使 eoc 信號為低電平。 (3)當轉(zhuǎn)換結束時,轉(zhuǎn)換的結果送入到輸出三態(tài)鎖存器中,并使 eoc 信號回到高 電平,通知 cpu 已轉(zhuǎn)換結束。 (4)當 cpu 執(zhí)行一讀數(shù)據(jù)指令時,使 oe 為高電平,則從輸出端 d0-d7 讀出數(shù)據(jù)。 3.2 單片機系統(tǒng) 3.2.1 at89c51 性能 at89c51 是美國 atmel 公司生產(chǎn)的低電壓,高性能 cmos8 位單片機,片內(nèi)含有 4kb 的可反復擦寫的只讀程序存儲器和 128 字節(jié)的隨機存儲器。該器件采用 atmel 高密度 非易失存儲器制造技術制造,與工業(yè)標準的

23、 mcs-51 指令集和輸出管腳相兼容,由于將 多功能 8 位 cpu 和閃爍存儲器組合在單個芯片中,atmel 的 at89c51 是一種高效微控制 器,它為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。 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 個 16 位定時/計數(shù)器;5 個中斷源; 可編程串行 uart 通道;片內(nèi)震蕩器和掉電模式6。 3.2.2 at89c51 各引

24、腳功能 at89c51 提供以下標準功能:4kb 的 flash 閃速存儲器,128b 內(nèi)部 ram,32 個 i/o 口線,兩個 16 位定時/計數(shù)器,一個 5 向量兩級中斷結構,一個全雙工串行通信口, 片內(nèi)震蕩器及時鐘電路,同時,at89c51 可降至 0hz 靜態(tài)邏輯操作,并支持兩種軟件可 選的節(jié)電工作模式。空閑方式停止 cpu 的工作,但允許 ram,定時/計數(shù)器,串行通信 口及中斷系統(tǒng)繼續(xù)工作,掉電方式保存 ram 中的內(nèi)容,但震蕩器停止工作并禁止其他 所有工作直到下一個硬件復位。at89c51 采用 pdip 封裝形式,引腳配置如圖 5 所示7。 圖 5 at89c51 的引腳圖

25、at89c51 芯片的各引腳功能為: 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 訪問片外存儲器時先傳送片外存儲器的低 8 位地址, 然后傳送 cpu 對片外存儲器的讀/寫數(shù)據(jù)。p0 口為開漏輸出,在作為通用 i/o 使用時, 需要在

26、外部用電阻上拉。 p1 口:這 8 個引腳和 p0 口的 8 個引腳類似,p1.7 為最高位,p1.0 為最低位,當 p1 口作為通用 i/o 口使用時,p1.0-p1.7 的功能和 p0 口的第一功能相同,也用于傳送 用戶的輸入和輸出數(shù)據(jù)。 p2 口:這組引腳的第一功能與上述兩組引腳的第一功能相同即它可以作為通用 i/o 口使用,它的第一功能和 p0 口引腳的第二功能相配合,用于輸出片外存儲器的高 8 位地址,共同選中片外存儲器單元,但并不是像 p0 口那樣傳送存儲器的讀/寫數(shù)據(jù)。 p3 口:這組引腳的第一功能和其余三個端口的第一功能相同,第二功能為控制功 能,每個引腳并不完全相同,如下表

27、2 所示: 表 2 p3 口各位的第二功能 p3 口各位第二功能 p3.0 rxt(串行口輸入) p3.1 txd(串行口輸出) p3.2 /int0(外部中斷 0 輸入) p3.3 /int1(外部中斷 1 輸入) p3.4 t0(定時器/計數(shù)器 0 的外部輸入) p3.5 t1(定時器/計數(shù)器 1 的外部輸入) p3.6 /wr(片外數(shù)據(jù)存儲器寫允許) p3.7 /rd(片外數(shù)據(jù)存儲器讀允許) vcc 為+5v 電源線,vss 接地。 ale:地址鎖存允許線,配合 p0 口的第二功能使用,在訪問外部存儲器時,89c51 的 cpu 在 p0.0-p0.7 引腳線去傳送隨后而來的片外存儲器讀

28、/寫數(shù)據(jù)。在不訪問片外存 儲器時,89c51 自動在 ale 線上輸出頻率為 1/6 震蕩器頻率的脈沖序列。該脈沖序列可 以作為外部時鐘源或定時脈沖使用。 /ea:片外存儲器訪問選擇線,可以控制 89c51 使用片內(nèi) rom 或使用片外 rom, 若/ea=1,則允許使用片內(nèi) rom, 若/ea=0,則只使用片外 rom。 /psen:片外 rom 的選通線,在訪問片外 rom 時,89c51 自動在/psen 線上產(chǎn)生一 個負脈沖,作為片外 rom 芯片的讀選通信號。 rst:復位線,可以使 89c51 處于復位(即初始化)工作狀態(tài)。通常 89c51 復位有自 動上電復位和人工按鍵復位兩種。

29、 xtal1 和 xtal2:片內(nèi)震蕩電路輸入線,這兩個端子用來外接石英晶體和微調(diào)電容, 即用來連接 89c51 片內(nèi) osc(震蕩器)的定時反饋回路。 3.3 復位電路和時鐘電路 3.3.1 復位電路設計 單片機在啟動運行時都需要復位,使 cpu 和系統(tǒng)中的其他部件都處于一個確定的 初始狀態(tài),并從這個狀態(tài)開始工作。mcs-51 單片機有一個復位引腳 rst,采用施密特觸 發(fā)輸入。當震蕩器起振后,只要該引腳上出現(xiàn) 2 個機器周期以上的高電平即可確保時 器件復位1。復位完成后,如果 rst 端繼續(xù)保持高電平,mcs-51 就一直處于復位狀態(tài), 只要 rst 恢復低電平后,單片機才能進入其他工作狀

30、態(tài)。單片機的復位方式有上電自 動復位和手動復位兩種,圖 6 是 51 系列單片機統(tǒng)常用的上電復位和手動復位組合電路, 只要 vcc 上升時間不超過 1ms,它們都能很好的工作1。 圖 6 復位電路 3.3.2 時鐘電路設計 單片機中 cpu 每執(zhí)行一條指令,都必須在統(tǒng)一的時鐘脈沖的控制下嚴格按時間節(jié) 拍進行,而這個時鐘脈沖是單片機控制中的時序電路發(fā)出的。cpu 執(zhí)行一條指令的各個 微操作所對應時間順序稱為單片機的時序。mcs-51 單片機芯片內(nèi)部有一個高增益反相 放大器,用于構成震蕩器,xtal1 為該放大器的輸入端,xtal2 為該放大器輸出端,但 形成時鐘電路還需附加其他電路1。 本設計系

31、統(tǒng)采用內(nèi)部時鐘方式,利用單片機內(nèi)部的高增益反相放大器,外部電路 簡單,只需要一個晶振和 2 個電容即可,如圖 7 所示。 圖 7 時鐘電路 電路中的器件選擇可以通過計算和實驗確定,也可以參考一些典型電路的參數(shù), 電路中,電容器 c1 和 c2 對震蕩頻率有微調(diào)作用,通常的取值范圍是 3010pf,在這 個系統(tǒng)中選擇了 33pf;石英晶振選擇范圍最高可選 24mhz,它決定了單片機電路產(chǎn)生 的時鐘信號震蕩頻率,在本系統(tǒng)中選擇的是 12mhz,因而時鐘信號的震蕩頻率為 12mhz。 3.4 led 顯示系統(tǒng)設計 3.4.1 led 基本結構 led 是發(fā)光二極管顯示器的縮寫。led 由于結構簡單、

32、價格便宜、與單片機接口方 便等優(yōu)點而得到廣泛應用。led 顯示器是由若干個發(fā)光二極管組成顯示字段的顯示器件 6。在單片機中使用最多的是七段數(shù)碼顯示器。led 七段數(shù)碼顯示器由 8 個發(fā)光二極管 組成顯示字段,其中 7 個長條形的發(fā)光二極管排列成“日”字形,另一個圓點形的發(fā) 光二極管在顯示器的右下角作為顯示小數(shù)點用,其通過不同的組合可用來顯示各種數(shù) 字。led 引腳排列如下圖 8 所示: 圖 8 led 引腳排列 3.4.2 led 顯示器的選擇 在應用系統(tǒng)中,設計要求不同,使用的 led 顯示器的位數(shù)也不同,因此就生產(chǎn)了 位數(shù),尺寸,型號不同的 led 顯示器供選擇,在本設計中,選擇 4 位一

33、體的數(shù)碼型 led 顯示器,簡稱“4-led” 。本系統(tǒng)中前一位顯示電壓的整數(shù)位,即個位,后兩位顯示電 壓的小數(shù)位。 4-led 顯示器引腳如圖 9 所示,是一個共陰極接法的 4 位 led 數(shù)碼顯示管,其中 a,b,c,e,f,g 為 4 位 led 各段的公共輸出端,1、2、3、4 分別是每一位的位數(shù)選 端,dp 是小數(shù)點引出端,4 位一體 led 數(shù)碼顯示管的內(nèi)部結構是由 4 個單獨的 led 組 成,每個 led 的段輸出引腳在內(nèi)部都并聯(lián)后,引出到器件的外部。 圖 9 4 位 led 引腳 對于這種結構的 led 顯示器,它的體積和結構都符合設計要求,由于 4 位 led 陰 極的各段

34、已經(jīng)在內(nèi)部連接在一起,所以必須使用動態(tài)掃描方式(將所有數(shù)碼管的段選 線并聯(lián)在一起,用一個 i/o 接口控制)顯示。 3.4.3 led 譯碼方式 譯碼方式是指由顯示字符轉(zhuǎn)換得到對應的字段碼的方式,對于 led 數(shù)碼管顯示器, 通常的譯碼方式有硬件譯碼和軟件譯碼方式兩種。 硬件譯碼是指利用專門的硬件電路來實現(xiàn)顯示字符碼的轉(zhuǎn)換。 軟件譯碼就是編寫軟件譯碼程序,通過譯碼程序來得到要顯示的字符的字段碼, 譯碼程序通常為查表程序3。 本設計系統(tǒng)中為了簡化硬件線路設計,led 譯碼采用軟件編程來實現(xiàn)。由于本設計 采用的是共陰極 led,其對應的字符和字段碼如下表 3.3 所示。 表 3.3 共陰極字段碼表

35、 顯示字符共陰極字段碼 03fh 106h 25bh 34fh 466h 56dh 67dh 707h 87fh 96fh 3.4.4 led 顯示器與單片機接口設計 由于單片機的并行口不能直接驅(qū)動 led 顯示器,所以,在一般情況下,必須采用 專用的驅(qū)動電路芯片,使之產(chǎn)生足夠大的電流,顯示器才能正常工作7。如果驅(qū)動電 路能力差,即負載能力不夠時,顯示器亮度就低,而且驅(qū)動電路長期在超負荷下運行 容易損壞,因此,led 顯示器的驅(qū)動電路設計是一個非常重要的問題。 為了簡化數(shù)字式直流電壓表的電路設計,在 led 驅(qū)動電路的設計上,可以利用單 片機 p0 口上外接的上拉電阻來實現(xiàn),即將 led 的

36、a-g 段顯示引腳和 dp 小數(shù)點顯示引 腳并聯(lián)到 p0 口與上拉電阻之間,這樣,就可以加大 p0 口作為輸出口的驅(qū)動能力,使 得 led 能按照正常的亮度顯示出數(shù)字,如圖 10 所示。 圖 10 led 與單片機接口間的設計 3.5 總體電路設計 經(jīng)過以上的設計過程,可設計出基于單片機的數(shù)字直流電壓表硬件電路原理圖如 圖 11 所示。 圖 11 基于單片機的數(shù)字電壓表 proteus 仿真 此電路的工作原理是:+5v 模擬電壓信號通過變阻器 vr1 分壓后由 adc08008 的 in7 通道進入(由于使用的 in0 通道,所以 adda,addb,addc 均接低電平) ,經(jīng)過模/數(shù) 轉(zhuǎn)換

37、后,產(chǎn)生相應的數(shù)字量經(jīng)過其輸出通道 d0-d7 傳送給 at89c51 芯片的 p1 口, at89c51 負責把接收到的數(shù)字量經(jīng)過數(shù)據(jù)處理,產(chǎn)生正確的 7 段數(shù)碼管的顯示段碼傳送 給四位 led,同時它還通過其四位 i/o 口 p2.0、p2.1、p2.2、p2.3 產(chǎn)生位選信號控制 數(shù)碼管的亮滅。此外,at89c51 還控制 adc0808 的工作。其中,單片機 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)換結果送給 l

38、ed 顯示出來3。 數(shù)字直流電壓表的硬件電路已經(jīng)設計完成,就可以選取相應的芯片和元器件,利 用 proteus 軟件繪制出硬件的原理,并仔細地檢查修改,直至形成完善的硬件原理圖。 但要真正實現(xiàn)電路對電壓的測量和顯示的功能,還需要有相應的軟件配合,才能達到 設計要求。 4 程序設計 4.1 程序設計總方案 根據(jù)模塊的劃分原則,將該程序劃分初始化模塊,a/d 轉(zhuǎn)換子程序和顯示子程序, 這三個程序模塊構成了整個系統(tǒng)軟件的主程序,如圖 12 所示。 開始 調(diào)用a/d轉(zhuǎn)換子程序 調(diào)用顯示子程序 結束 初始化 圖 12 數(shù)字式直流電壓表主程序框圖 4.2 系統(tǒng)子程序設計 4.2.1 初始化程序 所謂初始化

39、,是對將要用到的 mcs-51 系列單片機內(nèi)部部件或擴展芯片進行初始工 作狀態(tài)設定,初始化子程序的主要工作是設置定時器的工作模式,初值預置,開中斷 和打開定時器等9。 4.2.2 a/d 轉(zhuǎn)換子程序 a/d 轉(zhuǎn)換子程序用來控制對輸入的模塊電壓信號的采集測量,并將對應的數(shù)值存入 相應的內(nèi)存單元,其轉(zhuǎn)換流程圖如圖 13 所示。 啟動轉(zhuǎn)換 a/d 轉(zhuǎn)換結束? 輸出轉(zhuǎn)換結果 數(shù)值轉(zhuǎn)換 顯示 結束 圖 13 a/d 轉(zhuǎn)換流程圖 4.2.3 顯示子程序 顯示子程序采用動態(tài)掃描實現(xiàn)四位數(shù)碼管的數(shù)值顯示,在采用動態(tài)掃描顯示方式 時,要使得 led 顯示的比較均勻,又有足夠的亮度,需要設置適當?shù)膾呙桀l率,當掃

40、描頻率在 70hz 左右時,能夠產(chǎn)生比較好的顯示效果,一般可以采用間隔 10ms 對 led 開始 進行動態(tài)掃描一次,每一位 led 的顯示時間為 1ms10。 在本設計中,為了簡化硬件設計,主要采用軟件定時的方式,即用定時器 0 溢出 中斷功能實現(xiàn) 11s 定時,通過軟件延時程序來實現(xiàn) 5ms 的延時。 4.3 仿真 4.3.1 軟件調(diào)試 軟件調(diào)試的主要任務是排查錯誤,錯誤主要包括邏輯和功能錯誤,這些錯誤有些 是顯性的,而有些是隱形的,可以通過仿真開發(fā)系統(tǒng)發(fā)現(xiàn)逐步改正。proteus 軟件可以 對基于微控制器的設計連同所有的周圍電子器件一起仿真,用戶甚至可以實時采用諸 如 led/lcd、鍵

41、盤、rs232 終端等動態(tài)外設模型來對設計進行交互仿真。proteus 支持 的微處理芯片包括 8051 系列、avr 系列、pic 系列、hc11 系列及 z80 等等。proteus 可以完成單片機系統(tǒng)原理圖電路繪制、pcb 設計,更為顯著點的特點是可以與 u visions3 ide 工具軟件結合進行編程仿真調(diào)試8。 本系統(tǒng)的調(diào)試主要以軟件為主,其中,系統(tǒng)電路圖的繪制和仿真我采用的是 proteus 軟件,而程序方面,采用的是匯編語言,用 keil 軟件將程序?qū)懭雴纹瑱C。 4.3.2 顯示結果及誤差分析 顯示結果 1.當 in0 輸入電壓值為 0.40v 時,顯示結果如圖 15 所示。測

42、量誤差為 0.00v。 圖 15 輸入電壓為 0.40v 時,led 的顯示結果為 400mv 2. 當 in0 口輸入電壓值為 3.00v 時,顯示結果如圖 16。測量誤差為 0.06v。 圖 16 輸入電壓為 3.00v 時,led 的顯示結果為 3060mv 誤差分析 通過以上仿真測量結果可得到數(shù)字電壓表與“標準”數(shù)字電壓表對比測試表,如 下表 4 所示 表 4 簡易數(shù)字電壓表與“標準”數(shù)字電壓表對比測試表 標準電壓值/v電壓表測量值/v絕對誤差 0.000.000.00 0.500.520.02 1.001.020.02 1.501.540.04 2.002.400.04 2.502.

43、540.04 3.003.060.06 3.503.560.06 4.004.080.08 5.005.100.10 由于單片機 at89c51 為 8 位處理器,當輸入電壓為 5.00v 時,adc0808 輸出數(shù)據(jù)值 為 255(ffh) ,因此單片機最高的數(shù)值分辨率為 0.0196v(5/255)。這就決定了電壓表 的最高分辨率只能到 0.0196v,從上表可看到,測試電壓一般以 0.01v 的幅度變化。從 上表可以看出,簡易數(shù)字電壓表測得的值基本上比標準電壓值偏大 0-0.01v,這可以通 過校正 adc0808 的基準電壓來解決。因為該電壓表設計時直接用 5v 的供電電源作為電 壓,

44、所以電壓可能有偏差。當要測量大于 5v 的電壓時,可在輸入口使用分壓電阻,而 程序中只要將計算程序的除數(shù)進行調(diào)整就可以了。 結束語 經(jīng)過一段時間的努力,畢業(yè)論文基于單片機的數(shù)字電壓表基本完成。但設計中的 不足之處仍然存在。在電路中用 proteus 軟件實現(xiàn)了仿真,在這過程中,使我對電路 設計和單片機的使用等都有了新的認識。通過這次設計學會了 proteus 和 keil 軟件的 使用方法,掌握了從系統(tǒng)的需要、方案的設計、功能模塊的劃分、原理圖的設計和電 路圖的仿真的設計流程,積累了不少經(jīng)驗。 基于單片機的數(shù)字電壓表使用性強、結構簡單、成本低、外接元件少。在實際應 用工作應能好,測量電壓準確,

45、精度高。系統(tǒng)功能、指標達到了課題的預期要求、系 統(tǒng)在硬件設計上充分考慮了可擴展性,經(jīng)過一定的改造,可以增加功能。本文設計主 要實現(xiàn)了數(shù)字電壓表測量一路電壓的功能,詳細說明了從原理圖的設計、電路圖的仿 真再到軟件的調(diào)試。 通過本次設計,我對單片機這門課有了進一步的了解。無論是在硬件連接方面還 是在軟件編程方面。本次設計采用了 at89c51 單片機芯片,與以往的單片機相比增加 了許多新的功能,使其功能更為完善,應用領域也更為廣泛。設計中還用到了模/數(shù)轉(zhuǎn) 換芯片 adc0808,以前在學單片機課程時只是對其理論知識有了初步的理解。通過這次 設計,對它的工作原理有了更深的理解。在調(diào)試過程中遇到很多問

46、題,最后和老師同 學一步一個腳印解決了一個又一個問題。 總之這次電路的設計和仿真,基本上達到了設計的功能要求。在以后的實踐中, 我將繼續(xù)努力學習電路設計方面的理論知識,并理論聯(lián)系實際,爭取在電路設計方面 能有所提升。 參考文獻 1 胡健.單片機原理及接口技術.北京:機械工業(yè)出版社,2004 年 10 月 2 王毓銀.數(shù)字電路邏輯設計.高等教育出版社,2005 年 12 月 3 于殿泓.單片機原理與程序設計實驗教程.西安電子科技大學出版社,2007 年 5 月 4 謝維成、楊加國.單片機原理與應用及 c51 程序設計實例.電子工業(yè)出版社,2006 年 3 月 5 李廣弟.單片機基礎.北京航空航天大學出版社,2007 年 5 月 6 姜志海,黃玉清等著.單片機原理及應用m .北京:電子工業(yè)出版社.2005 年 7 月 7 魏立峰.單片機原理及應用技術.北京大學出版社,2005 年 8 月 8 周潤景.protues 在 mcs-51個位 led_1equ 31h;十位 led_2equ 32h;百位 led_3equ 33h;存放千

溫馨提示

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

評論

0/150

提交評論