數(shù)字電壓表的設(shè)計畢業(yè)設(shè)計(共37頁)

上傳人:wz****p 文檔編號:46403213 上傳時間:2021-12-13 格式:DOC 頁數(shù):37 大?。?77KB
收藏 版權(quán)申訴 舉報 下載
數(shù)字電壓表的設(shè)計畢業(yè)設(shè)計(共37頁)_第1頁
第1頁 / 共37頁
數(shù)字電壓表的設(shè)計畢業(yè)設(shè)計(共37頁)_第2頁
第2頁 / 共37頁
數(shù)字電壓表的設(shè)計畢業(yè)設(shè)計(共37頁)_第3頁
第3頁 / 共37頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《數(shù)字電壓表的設(shè)計畢業(yè)設(shè)計(共37頁)》由會員分享,可在線閱讀,更多相關(guān)《數(shù)字電壓表的設(shè)計畢業(yè)設(shè)計(共37頁)(37頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、精選優(yōu)質(zhì)文檔-----傾情為你奉上 華東交通大學(xué)理工學(xué)院 Institute of Technology. East China Jiao tong University 畢 業(yè) 設(shè) 計 Graduation Design (2011 —2015 年) 題 目 數(shù)字電壓表的設(shè)計 分 院: 電氣與信息工程分院 專 業(yè): 工程及其自動化 班 級: 電力2011-1

2、 學(xué) 號: 學(xué)生姓名: 田唯迪 指導(dǎo)教師: 起訖日期: 2015-01-01—2015-05-10 摘 要 在電子應(yīng)用領(lǐng)域,工業(yè)自動化儀表已經(jīng)有了非常廣泛的應(yīng)用。本文設(shè)計的數(shù)字電壓表以AT89C51單片機為主要控制器件,利用ADC0808把模擬信號轉(zhuǎn)換為數(shù)字信號并加以顯示的電路。它的設(shè)計主要包括硬件電路和系統(tǒng)程序兩部分設(shè)計。

3、硬件電路主要是單片機最小設(shè)計模塊、A/D轉(zhuǎn)換模塊和顯示模塊的設(shè)計,系統(tǒng)程序設(shè)計則是通過AT89C51單片機先將系統(tǒng)初始化,通過ADC0808轉(zhuǎn)換芯片把模擬量轉(zhuǎn)換成數(shù)字量,最后通過數(shù)碼管顯示數(shù)據(jù)。設(shè)計的數(shù)字電壓表的測量范圍為200mv—10v,對直流電壓進(jìn)行測量。該電路功能強大,有報警系統(tǒng),可控制測量范圍,數(shù)碼管顯示精度高,可擴展性強等優(yōu)點。 數(shù)字電壓表的應(yīng)用在很多領(lǐng)域,有非常好的應(yīng)用前景。對數(shù)字電壓表進(jìn)行研究很有必要性。這對我們研究單片機技術(shù)是很有幫助的。 關(guān)鍵詞:AT89C51;ADC0808;電壓測量;A/D轉(zhuǎn)換 Abstract In electronic ap

4、plications, industrial automation instruments have a very wide range of applications. This design of a digital voltmeter to AT89C51 microcontroller as the main control device, use it ADC0808 analog signals into digital signals and display them circuit. Its design includes hardware and system design

5、program in two parts. The hardware circuit design module is the smallest single-chip design A / D converter module and display module, system programming is through the first AT89C51 SCM system initialization, by ADC0808 converter chip to convert analog to digital, and finally through a digital disp

6、lay data. Measuring range designed digital voltmeter is 200mv-10v, DC voltage measurement. The circuit is powerful, alarm system, control measuring range, digital display and high precision, scalability and other advantages. Application of digital voltmeter in many areas, there is a very good prosp

7、ect. Conduct research on the digital voltmeter very necessity. This single-chip technology for our study is helpful. Key words: T89C52; ADC0808; Voltage measurement;A/D converter 目 錄 專心---專注---專業(yè) 引

8、 言 數(shù)字電壓表簡稱DVM,它是采用數(shù)字化測量技術(shù),能將連續(xù)的模擬量(直流輸入電壓)轉(zhuǎn)換成不連續(xù)的、離散的數(shù)字形式并加以顯示的儀表。目前,數(shù)字電壓表已被廣泛用于電子電氣測量、工業(yè)自動化儀表、自動測試系統(tǒng)等領(lǐng)域。 數(shù)字電壓表有很多優(yōu)點:(1).通過數(shù)碼管顯示數(shù)字清晰直觀,讀數(shù)準(zhǔn)確,相對于借用指針和刻度盤的讀數(shù)有了很大的改進(jìn)。(2).數(shù)碼管顯示位數(shù)多,能測量的范圍更加廣,用途更加廣泛。(3).測量準(zhǔn)確度高,誤差越來越小。準(zhǔn)確度表示測量結(jié)果與真實值的一致性,反映了測量誤差的大小。(4).分辨率高。數(shù)字電壓表測量靈敏度高,微小電壓變化能在數(shù)碼管的動態(tài)顯示中顯示。(5).擴展能力強。在數(shù)字電壓表

9、的基礎(chǔ)上,可改造成用于不同工業(yè)領(lǐng)域的儀器儀表。(6).測量速率快。它取決于A/D 轉(zhuǎn)換器的轉(zhuǎn)換速率。測電壓時,電表兩端接觸被測電壓,數(shù)碼管即刻顯示被測電壓數(shù)值,相對于指針和刻度盤測量更加穩(wěn)定和便捷。(7).輸入阻抗高。數(shù)字電言表在測量時從被測電路上吸取的電流極小,為顯示更加精確,可以用放大電路放大電流,不會影響被測信號源的工作狀態(tài),能減小由信號源內(nèi)阻引起的測量誤差。(8).集成度高,耗能少。新型的數(shù)字電壓表采用CMOS大規(guī)模集成電路,工作狀態(tài)時功耗很低,電池可用時間長。(9).抗干擾能力強。(10)測量電壓時系統(tǒng)恢復(fù)初始化,無需像指針式電壓表那樣置零。

10、 1 緒論 1.1選題的依據(jù)及意義 微型單片機自上世紀(jì)70年代首次出現(xiàn),因為其價格低而性能有很高,便于攜帶所占地方小、可以適配各種功能等等特點很快便引起了人們關(guān)注度,之后很多年的發(fā)展,現(xiàn)在常見于家用電器控制,節(jié)能設(shè)備、電子儀器、智能機器人等方向也有著廣泛的應(yīng)用,在軍事設(shè)備、工業(yè)控制領(lǐng)域都用到單片機控制,可見現(xiàn)在的單片機更加微型,智能,在提高了產(chǎn)品的功能與質(zhì)量同時,還降低了設(shè)計和使用成本。 傳統(tǒng)模式的電壓表測量精度低,容易引入誤差,測量范圍小,功能簡單,不能滿足數(shù)字化時代的需求,很有必要選用既要精度高又要有很強的抗干擾能力,并且同時還需

11、要滿足擴展性強,外形小巧集成方便的芯片最為首選,體積小易于攜帶,還能與電腦端進(jìn)行實時通信?,F(xiàn)階段,在電工檢測方向、工業(yè)自動化儀表控制、智能自動測試系統(tǒng)中,由A/D 轉(zhuǎn)換器作為核心器件的數(shù)字電壓表被越來越廣泛的應(yīng)用,并且再有很大的份額和很強的生命力。由DVM技術(shù)發(fā)展而形成的通用及專用的更高級的數(shù)字儀器儀表也更多的應(yīng)用在監(jiān)測電量和非電量的測試中并且得到了較快的發(fā)展,也將這項技術(shù)提高到了嶄新高度。 1.2 國內(nèi)外現(xiàn)狀研究及發(fā)展趨勢 電子技術(shù)近20年的發(fā)展,微電子技術(shù)、計算機技術(shù)、集成技術(shù)、網(wǎng)絡(luò)技術(shù)等高新技術(shù)越來越成熟。在這樣的情況下,人們不斷對數(shù)字電壓表提出了更高的要求,加快了數(shù)字電壓表的發(fā)

12、展,技術(shù)人員要求數(shù)字電壓表速度更快、性能更穩(wěn)定,靈敏度更高、以及操作更方便,做到成本更低,樣品量提供量更少、和零污染。 數(shù)字電壓表的發(fā)展大致如下: 1. 新技術(shù)的廣泛應(yīng)用 新的A/D轉(zhuǎn)換技術(shù)于上世紀(jì)90年代初在世界許多國家研發(fā)。自動校準(zhǔn)技術(shù)、A/D轉(zhuǎn)換技術(shù)、資源再利用技術(shù),使得數(shù)字電壓表更加精度化、智能化、經(jīng)濟化、環(huán)?;?,向著更高水平發(fā)展。 2. 智能化階段 在電子技術(shù)、大規(guī)模集成電路及計算機技術(shù)日新月異的大背景下,人們很快研制出并量產(chǎn)了DVM數(shù)據(jù)處理和可編程程序在微處理器控制下的芯片,因為數(shù)字電壓有數(shù)據(jù)存儲器ROM并使用C軟件編程,通過可進(jìn)行信息處理,儀器儀表經(jīng)過接口監(jiān)

13、測系統(tǒng),從而進(jìn)行自校、自檢,自查三個步驟,以及高準(zhǔn)確性的運行,這樣便實現(xiàn)了監(jiān)測系統(tǒng)的智能化當(dāng)前,智能化的DVM的出現(xiàn)以及智能化儀表發(fā)展的良好態(tài)勢,DVM將會成為未來的發(fā)展趨勢,并且會得到更多領(lǐng)域的應(yīng)用。這樣為各種物理量的動態(tài)檢測的實現(xiàn)提供了可能。 1.3研究的主要內(nèi)容 本文介紹的一種簡易數(shù)字電壓表。主要是由AT89c51單片機控制,顯示模塊由A/D轉(zhuǎn)換器和數(shù)碼管控制,數(shù)據(jù)處理模塊及顯示模塊組成,芯片由ADC0808采集到的模擬量轉(zhuǎn)化為相應(yīng)的數(shù)字量再傳送到相應(yīng)的模塊處理中。芯片的主要任務(wù)是處理數(shù)據(jù),并且把0808送來的數(shù)字量進(jìn)行分析處理,再送到顯示模塊中顯示,由于元件較少,成本低,測量精

14、度和可靠性較高系統(tǒng)的數(shù)字電壓表電路簡單實現(xiàn)。 2設(shè)計方案與論證 2.1電壓表功能設(shè)計 (1)對直流電壓的測量。 (2)能對常見的交流信號的電壓進(jìn)行測量。 (3)測量電壓的范圍從200mv到10V之間。 (4)當(dāng)輸入電壓過大時能夠具有保護(hù)功能。 (5)顯示功能。 (6)其它附加功能。 2.2設(shè)計思路 電壓表由模擬和數(shù)字轉(zhuǎn)換兩大部分,電路應(yīng)盡量采用中、大規(guī)模集成電路。 (1)為了滿足各方面的設(shè)計需求,選擇AT89C51單片機為核心控制器件。 (2)ADC0808和輸入放大器用來用作A/D轉(zhuǎn)換器,基準(zhǔn)電源構(gòu)成了模擬部分;數(shù)字部分由計數(shù)器、譯碼器、電流放大器、

15、邏輯控制器、振蕩器和顯示器構(gòu)成。數(shù)字量經(jīng)由轉(zhuǎn)換器將輸入端輸入的模擬量轉(zhuǎn)換而成,與此同時產(chǎn)生控制信號并根據(jù)產(chǎn)生的頻率,經(jīng)過分析處理整合檢測最終輸出需要顯示的數(shù)字。 (3)電壓顯示采用兩位一體的LED數(shù)碼管。 (4)LED數(shù)碼的段碼輸入,由并行端口P0產(chǎn)生:位碼輸入,用并行端口P2低兩位產(chǎn)生;小數(shù)點位由P2口產(chǎn)生。 2.3設(shè)計方案 轉(zhuǎn)換電路、A/D轉(zhuǎn)換、單片機、時鐘電路、復(fù)位電路、模擬電壓輸入構(gòu)成了硬件設(shè)計電路 。硬件電路設(shè)計圖如下圖所示: 圖2-1 數(shù)字電壓表總體設(shè)計方案圖 3系統(tǒng)硬件電路的設(shè)計 3.1單片機最小系統(tǒng)設(shè)計 3.1.1 AT89C5

16、1單片機的主要特征 AT89C51單片機的外形如圖3-1所示: 圖3-1 AT89C51引腳圖 P0口引腳:這組引腳共有8個引腳,P0.0-P0.7這8個引腳有兩種不同的功能,分別用于通用I/O口和對片外存儲器的讀/寫數(shù)據(jù),P0口的字節(jié)地址為80H,口的各位口線具有完全相同但又相互獨立的邏輯電路,有一個鎖存器兩個三態(tài)輸入緩沖器一個多路轉(zhuǎn)接開關(guān),實際控制中,P0口多數(shù)情況下都是作為地址/數(shù)據(jù)線使用。 P1口引腳:只可作為普通的I/O口使用,在電路結(jié)構(gòu)上和P0口不同,因為P1口只傳送數(shù)據(jù),所以不再需要轉(zhuǎn)換開關(guān),P1口是準(zhǔn)雙向口,P1口作為輸出用時,可以獨立對外提供推拉電流負(fù)載,

17、外電路就不再需要上拉電阻,作為輸入使用時,必須在鎖存器寫入1,使FET截止。 P2口:P2口字節(jié)地址為0A0H,實際控制中為系統(tǒng)提供高位地址,這個功能和P0口一樣,在電路中有一個多路轉(zhuǎn)接開關(guān),但是轉(zhuǎn)接開關(guān)的一段不再是作為地址數(shù)據(jù)使用,二就是單一的作為地址用而控制功能是它的第二大功能,但是每個引腳不完全一樣。 ALE:地址鎖,使地址鎖存于使能端。訪問外部存儲器,如RAM、ROM。 有51個外部總線,16位地址線,數(shù)據(jù)線為8,而低8位的地址跟數(shù)據(jù)線是重合,所以單獨訪問低8位的地址和數(shù)據(jù),這就需要用到ALE信號。 訪問存儲器的時候,P2口輸出高地址,P0輸出低地址。利用外部的鎖存器(設(shè)計用7

18、4HC245存儲器)配合ALE脈沖,鎖存P0地址,這時讀寫信號開始起作用,P0口讀入或者輸出數(shù)據(jù)。 RST:單片機復(fù)位電路,當(dāng)單片機系統(tǒng)在運行中受到環(huán)境干擾時,程序運行若有錯誤,及時按復(fù)位按鈕,系統(tǒng)電路將自動初始化,起重置作用。 在設(shè)計時單片機系統(tǒng)如上圖3.1 P0口接收由ADC0808送來的數(shù)據(jù),然后通過P1口將數(shù)據(jù)送給LED顯示器,通過顯示器將數(shù)值都顯示出來。 3.1.2 時鐘電路 單片機中指令執(zhí)行都需要在晶振產(chǎn)生的固有頻率下進(jìn)行,按節(jié)拍有順序的一次進(jìn)行下去,而單片機時鐘脈沖是由時序電路發(fā)出的。單片機芯片內(nèi)部有一個串聯(lián)的反相放大器來增強震蕩器高增益,XTAL1為輸入端,XTA

19、L2為輸出端,用一個晶振和 2個30uf的電容構(gòu)成時鐘電路,如下圖所示: 圖3-2 時鐘電路 電路中的器件選擇有三種方法,一是通過計算,二是實驗確定,三是參考一些典型電路,電容器C1和C2取值范圍是30±10uF,本文選擇了30uF的電容,這樣會對對震蕩頻率起到調(diào)節(jié)的作用電路產(chǎn)生的時鐘信號震蕩頻率由石英晶振來決定,最高可選24MHz,本系統(tǒng)中選擇6MHz作為時鐘信號的震蕩頻率。 3.1.3 復(fù)位電路 復(fù)位電路是用來返回到電路設(shè)備初始化狀態(tài)的電路,的上電復(fù)位電路,只要在復(fù)位輸入引腳上接一電容在ACC上端,下端接地就行了。C型單片機,由于在RST端內(nèi)部有一個下拉電阻,故可

20、拆除外部電阻,外接電容減至10uF。上電復(fù)位的工作過程:在加電時,復(fù)位電路通過電容加給RST端一個短暫的高電平信號,此高電平信號隨著Vcc對電容的充電過程而逐漸回落,RST端的高電平持續(xù)時間取決于電容的充電時間。加在RST端的高電平信號要維持足夠長的時間才能保證系統(tǒng)可靠復(fù)位。一般來說復(fù)位方式有上電自動復(fù)位和按鈕復(fù)位兩種。圖3-3是AT89c51單片機的上電復(fù)位和按鈕復(fù)位組合電路。 圖3-3 復(fù)位電路 3.2 A/D轉(zhuǎn)化模塊 現(xiàn)實中大多數(shù)都是模擬量,這樣并不能被我們直接采用,所以人們研制了數(shù)字量的器件,它能把模擬的物理量轉(zhuǎn)變成我們能夠利用的數(shù)字量,這是單片機幾桶收集整理轉(zhuǎn)變

21、數(shù)據(jù)的關(guān)鍵,在電路設(shè)計中必不可少,經(jīng)過人們不斷努力改進(jìn),現(xiàn)在的轉(zhuǎn)換器已經(jīng)具備了很強的抗干擾能力,轉(zhuǎn)換精度十分準(zhǔn)確,性能強,價格低廉,種類多,常用的有逐次逼近型,雙重積分型等。逐次逼近式A/D轉(zhuǎn)換的轉(zhuǎn)換速度和精度都比雙積分型更高,ADC0808轉(zhuǎn)換器可以與單片機連接,把轉(zhuǎn)換得到的數(shù)字量送入單片機,并對數(shù)字量進(jìn)行分析和顯示。每個位比較一次,那么一個n位久需比較n次,這過程中所消耗的由位數(shù)和單片機時鐘周期來共同決定,因為現(xiàn)實中更注重效率,而逐次逼近型A/D轉(zhuǎn)換器轉(zhuǎn)換速度快,在現(xiàn)實的生產(chǎn)生活中被大量采用。 3.2.1 A/D轉(zhuǎn)化器的工作原理 轉(zhuǎn)換器要想工作,必須先做幾個步驟如寄存器每一個都必須

22、歸零,開始轉(zhuǎn)換工作時,必須將最高位置高電也就是置1才能把數(shù)據(jù)送入轉(zhuǎn)換器中進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換后的結(jié)果與輸入時的比較,若經(jīng)轉(zhuǎn)換的模擬量小于輸入的模擬量,則1被保留,如轉(zhuǎn)換的模擬量大于輸入的模擬量,則1不保留,接著第二位第三位第四位并最終到最低位,最終寄存器中所存儲的便是輸入模擬量所對應(yīng)的二進(jìn)制的數(shù)字量。 3.2.2 ADC0808主要特征 ADC0808是有使能控制端和微機直接接口的CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,首先應(yīng)用在智能儀器和機床控制領(lǐng)域片內(nèi)可以對模擬電壓信號對8路同時進(jìn)行轉(zhuǎn)換,之所以這么做,是因為ADC0808與其他相比有著先天的優(yōu)勢:第一,它是8路8位的轉(zhuǎn)換器;其次,8路模擬

23、開關(guān)并具有鎖存控制功能再次可以接各種微控制器口;第三,鎖存三態(tài),與TTL轉(zhuǎn)換電壓低且精度高低功耗等特點。 ADC0808的外部引腳特征: ADC0808有28條引腳,其引腳圖如下所示: 圖3-4 ADC0808的引腳圖 下面說明各個引腳功能: IN0-IN7(8條):用來進(jìn)行輸入控制轉(zhuǎn)換模擬電壓。 地址控制:ALE為地址輸入鎖存許可線,輸入高電平時有效,當(dāng)ALE置高電平時,做為地址輸入線使用。 START:啟動信號脈沖線,正脈沖寬度不小于100ns,否則無法啟動, EOC: 標(biāo)志著轉(zhuǎn)換結(jié)束的輸出線,電位處于高電平時則表示A/D轉(zhuǎn)換已經(jīng)結(jié)束,且數(shù)字量自動鎖入鎖

24、存器中。 D1-D8:數(shù)字量輸出端口,D8位最低位,D1位最高位。 OE:輸出允許端,高電平時,把轉(zhuǎn)換后的數(shù)字量通過D1-D8引腳上輸出。 REF+、REF-:輸入電壓參考量,指給電阻階梯網(wǎng)絡(luò)的參考電壓和標(biāo)準(zhǔn)值。 Vcc、GND: Vcc一般R與EF+連接在一起為主電源輸入端,地端是GND與REF-連接在一起,這樣便是VCC ,GND的作用。 轉(zhuǎn)換器和單片機的鏈接,如下圖: 圖3-5轉(zhuǎn)換器和單片機的鏈接 3.3顯示模塊設(shè)計 3.3.1數(shù)碼管介紹 本文的電壓值是選用LED數(shù)碼管來顯示的。LED數(shù)碼管由8個發(fā)光二極管組成,其中7個按“8”字型排列,還有一個是位于右下角

25、且發(fā)光管的圓點形狀為dp,用來顯示小數(shù)點。LED有低功耗、亮度強、線路簡單、壽命長等優(yōu)點,數(shù)碼管的引腳圖如圖3-6所示: 圖3-6數(shù)碼管引腳排列 發(fā)光二極管有兩種接法,分別是共陽極接法和共陰極接法,把8個點連在一起,高電平在公共端接入的叫共陽極,低電平在公共端接入的叫共陰極。 數(shù)碼管有靜態(tài)和動態(tài)兩種顯示方式。靜態(tài)顯示,就是指一個I/O端口只能控制一個數(shù)碼管的段碼數(shù)據(jù)。這樣各個數(shù)碼管顯示相對獨立,每個數(shù)碼管接收的顯示字符一經(jīng)確定,相應(yīng)I/O口的輸出段碼將保持不變,直到顯示下一個字符,此特點使得數(shù)碼管的顯示亮度也較高。但是也存在著缺點,大量的I/O端口在數(shù)碼管過多時將被占用。

26、動態(tài)顯示,指逐位地點亮顯示器的各個位,點亮一次顯示器的亮度與間隔時間、導(dǎo)通電流和點亮?xí)r間的比例三者相關(guān)。動態(tài)顯示的亮度要比靜態(tài)顯示要暗,所以在選擇靜態(tài)顯示電路中的限流電阻應(yīng)該要大于限流電阻時阻值,防止數(shù)碼管損壞。采用了自動顯示8路模擬電壓值動態(tài)顯示對于設(shè)計的實現(xiàn)非常容易。 3.3.2數(shù)碼管顯示模塊電路 數(shù)碼管要求的驅(qū)動電流在10mA~20mA,為防止數(shù)碼管灌入的電流太大,超出了單片機允許的電流范圍而導(dǎo)致器件損壞,在P1口輸出段碼顯示處,要加入10K的限流電阻排阻,一共8個同阻值的電阻,分別對應(yīng)LED的8個接口,既保護(hù)數(shù)碼管,又簡單電路。本設(shè)計選用軟件譯碼的方式來簡化電路和進(jìn)行數(shù)值顯示。

27、顯示電路采用LED數(shù)碼管通過軟件譯碼動態(tài)顯示,通過單片機的P1、P3.2、P3.3、P3.5口控制。通過譯碼器驅(qū)動將依次循環(huán)點亮數(shù)碼管,如圖3-7所示: 圖3-7 數(shù)碼管電路 3.3.3 LED數(shù)碼管與單片機接口設(shè)計 LED驅(qū)動電路設(shè)計是一個很重要的問題,單片機的I/O口產(chǎn)生的電流并不能直接驅(qū)動LED,驅(qū)動電路能力太差,這樣就會導(dǎo)致顯示器亮度低,這時,只要用驅(qū)動電路產(chǎn)生足夠的電流,LED就能正常工作。 在LED驅(qū)動電路的設(shè)計過程中,可以利用上拉電阻解決這種問題,就是可以在LED的DP引腳到P0口和7段顯示引腳之間接上上拉電阻,以此來增強P0口的驅(qū)動能力,LED以正常的亮度運行。

28、如圖3-8所示。 圖3-8 數(shù)碼管與單片機的鏈接 3.4 高阻隔放大電路 采用LM324運放構(gòu)成的前級信號調(diào)理電路,作為衰減信號的緩沖,提高輸出阻抗,電壓不變,電流增大,保證輸出穩(wěn)定并減小后級電路對信號的影響,避免沖擊電壓對運放的危害,加一個電容保護(hù)電路。 圖3-9 高阻隔放大電路 3.5 總體電路設(shè)計 總結(jié)以上的設(shè)計,利用protues軟件繪制出簡易的數(shù)字直流電壓表電路原理圖。數(shù)字直流電壓表電路圖的工作原理是:輸入模擬電壓,對模擬電壓信號進(jìn)行處理然后再由ADC0808的IN0通道進(jìn)入,這樣經(jīng)過轉(zhuǎn)換后的數(shù)字量經(jīng)過D0-D7輸出通道再傳送給單片機芯片的P1口,

29、接收到的數(shù)字量可以通過AT89C51進(jìn)行數(shù)據(jù)處理,通過P0口輸出給譯碼器,從而7段數(shù)碼管的顯示段碼再傳送給74HC245譯碼然后去驅(qū)動LED,還控制P2.0、P2.1、P2.2的段選以及小數(shù)點。此外,AT89C51還控制ADC0808的工作,單片機AT89C51通過從ALE引腳輸出方波,接到ADC0808的CLOCK,P3.0發(fā)正脈沖啟動A/D轉(zhuǎn)換,A/D轉(zhuǎn)換完成產(chǎn)生中斷,單片機進(jìn)入中斷程序,從P1口讀取轉(zhuǎn)換的P3.1置高電位,然后送給LED顯示。 總體電路設(shè)計完畢,利用Proteus制出硬件的原理結(jié)構(gòu)圖,并作相應(yīng)的檢查、修改、及測試,直至完成完善的硬件原理結(jié)構(gòu)圖。本設(shè)計目的是能對電壓進(jìn)行測

30、量,顯示的功能和其他相應(yīng)的軟件配合。如圖3-10所示: 圖3-10 系統(tǒng)電路圖 4 程序設(shè)計 4.1主程序流程圖 主程序流程分成3個模塊,初始化模塊,顯示A/D轉(zhuǎn)換子程序模塊和子程序模塊構(gòu)成的。第一步,開始,系統(tǒng)自動回到初始化狀態(tài),此時,A/D轉(zhuǎn)化子程序啟動,將輸入的模擬信號轉(zhuǎn)化為數(shù)字信號,測量限值比較,若輸入的模擬電壓大于電壓表的測量范圍,則系統(tǒng)蜂鳴器報警且輸出電壓表測量電壓最大值,若輸入電壓小于測量范圍,則系統(tǒng)正常運行且輸出準(zhǔn)確電壓,接著顯示子程序啟動,數(shù)字信號通過LED顯示板顯示數(shù)

31、值,流程結(jié)束。如下圖所示: 圖4-1 數(shù)字電壓表主程序框圖 啟動電源前,系統(tǒng)自動復(fù)位,蜂鳴器關(guān)閉,LED顯示關(guān)閉,定時器初始化。啟動電源,輸入被測模擬電壓值,經(jīng)過A/D轉(zhuǎn)換程序,譯碼器獲得電壓數(shù)值,通過LED顯示器顯示,此時判斷被測電壓是否超出測量范圍,若超出,蜂鳴器報警,輸出測量范圍最大值;若正常,則輸出準(zhǔn)確電壓。另外,還可設(shè)置系統(tǒng)電壓的測量范圍,通過限制設(shè)置一欄設(shè)定想要的測量范圍。 主程序核心代碼: //主程序 void main() { int value; //電壓數(shù)據(jù) unsigned int delay_count=0; //延時計數(shù) BUZ=

32、0; //上電先關(guān)閉蜂鳴器 LED=1; //關(guān)LED TimerInit(); //定時器初始化 while(1) { delay_count++; //延時計數(shù)+1 if(delay_count>5000) { delay_count=0; //延時計數(shù)清0 value=GetValue(); //獲取電壓 ValueDis(value); //顯示電壓 if(value<=valueMAX) //電壓正常 { BUZ=0; //關(guān)蜂鳴器 LED=1; //關(guān)LED

33、 b_over=0; //超限標(biāo)志 } else //電壓超限 { b_over=1; //超限標(biāo)志 } } if(KEY1 == 0) //按鍵1-設(shè)定限值 { while(!KEY1); //等待按鍵松開 SetFun(); //設(shè)定限值 } } } 4.2 A/D轉(zhuǎn)換子程序流程圖 模擬輸入電壓經(jīng)過ADC0808轉(zhuǎn)換成數(shù)值,再經(jīng)過A/D轉(zhuǎn)換子程序移入相應(yīng)的存儲單元中,輸入電壓與A/D轉(zhuǎn)化結(jié)果對比,正確則輸出轉(zhuǎn)換結(jié)果,錯誤則重新對比,將正確的輸出結(jié)果進(jìn)行數(shù)值轉(zhuǎn)換,以數(shù)

34、值形式顯示結(jié)果,顯示階段出現(xiàn)問題則重新回到啟動轉(zhuǎn)化階段重復(fù)循環(huán),顯示正確數(shù)值后A/D轉(zhuǎn)換子程序結(jié)束。流程如圖4-2所示,轉(zhuǎn)換子程序經(jīng)過一段時間調(diào)用一次。 圖4-2 A/D轉(zhuǎn)化流程圖 開始后,鎖存通道地址,復(fù)位電路自動復(fù)位,延時3毫秒,下降沿啟動轉(zhuǎn)換,延時,設(shè)置ADOE=1時,引腳置為讀,當(dāng)輸入ADOE=1,等待轉(zhuǎn)換,通過ADC0808允許數(shù)據(jù)輸出,譯碼器讀取AD數(shù)據(jù),反之,當(dāng)輸入ADOE=0時,禁止數(shù)據(jù)輸出,且返回AD數(shù)據(jù)。 A/D轉(zhuǎn)換程序代碼: //讀ADC數(shù)據(jù) u8 ReadData() { u8 adda; ADALE=1; ADALE=0;

35、 //鎖存通道地址 ADSTART=1; //上升沿復(fù)位 Delayms(3); //延時幾毫秒 ADSTART=0; //下降沿啟動轉(zhuǎn)換 Delayms(3); //延時幾毫秒 ADEOC=1; //引腳置為讀 while(!ADEOC); //等待轉(zhuǎn)換結(jié)束 ADOE=1; //數(shù)據(jù)輸出允許 adda=ADCPORT; //讀取AD數(shù)據(jù) ADOE=0; //數(shù)據(jù)輸出禁止 return adda; //返回AD數(shù)據(jù) } 4.3顯示子程序 顯示子程序采用動

36、態(tài)顯示實現(xiàn)數(shù)碼管的數(shù)值顯示,在采用動態(tài)掃描顯示方式時,要使得LED顯示的均勻穩(wěn)定,還要有足夠的亮度,需要設(shè)置適當(dāng)?shù)膾呙桀l率,設(shè)置掃描頻率在70HZ左右時,能夠產(chǎn)生比較好的顯示效果。在protues仿真中輸入的電壓比較穩(wěn)定,所以在顯示中看不到動態(tài)的效果。 4.4編程軟件keil介紹 Keil是一款非常強大的軟件,它的庫函數(shù)非常豐富,在Windows系統(tǒng)中功能強大,Keil 51生成的效率高而且語句簡單易懂,所以Keil被廣泛應(yīng)用于開發(fā)編程軟件。開發(fā)人員發(fā)現(xiàn)C語言在功能強大,結(jié)構(gòu)性、可讀性、可維護(hù)性上都有明顯的優(yōu)勢,移植性好,現(xiàn)在多數(shù)技術(shù)人員需要熟練掌握好C語言的編程,這對學(xué)習(xí)單片機有更多的好

37、處。 5 仿真與調(diào)試 5.1 protues仿真的介紹 Proteus是一款EDA工具軟件,它可以對電路系統(tǒng)進(jìn)行仿真,也可以對單片機及其他器件仿真,國內(nèi)外普遍使用protues進(jìn)行仿真,此軟件的功能在非常完善,仿真的效果與實物的測試,兩者誤差非常小,很實用的軟件。 智能原理圖設(shè)計中,電路元件種類齊全,電路仿真功能完善,支持多數(shù)CPU類型、支持外設(shè)、實時仿真、編譯及調(diào)試、實用的PCB設(shè)計平臺,這些都是Proteus主要功能。 Proteus功能特點: 1.PCB自動或人工布線 2.原理布圖 3.SPICE電路仿真 特點是: 1.互動的電路仿真 2.仿真處理器及

38、其外圍電路 5.2 protues仿真電路圖 圖5-1 仿真圖 5.3仿真結(jié)果 左鍵雙擊單片機AT89C51,彈出如圖5-2所示一個菜單,點擊program file找到程序所在的位置。載入程序。就可以進(jìn)行模擬測試了。 圖5-2 載入程序示意圖 載入程序完成后,就可以開始仿真了,點擊軟件中的運行按鈕,單片機中的程序開始運行。通過改變被測的模擬電壓來顯示實際環(huán)境下電壓的改變,當(dāng)數(shù)碼管所顯示的數(shù)值和輸入被測電壓的數(shù)值接近時,說明系統(tǒng)設(shè)計正確。系統(tǒng)電壓輸入到被測電壓顯示存在一定的誤差,該誤差可能是分壓系數(shù)的引起、電磁干擾引起、放大器的非理想特性引起等等。 當(dāng)IN

39、0口輸入電壓為0時,數(shù)碼管顯示0.0。顯示結(jié)果如圖5-3: 圖5-3 仿真效果圖 當(dāng)INT0輸入為5.05V時,對應(yīng)的顯示結(jié)果如圖5-4所示: 圖6-4 仿真效果圖 當(dāng)INT0口輸入為9.85V時,與輸出結(jié)果稍微有點誤差,對應(yīng)的輸出結(jié)果如圖5-5所示: 圖5-5 仿真效果圖 當(dāng)輸入電壓10.5V時,被測電壓超過數(shù)字電壓表測量范圍,報警器鳴笛報警。顯示最高測量電壓為10V。 圖5-6 仿真效果圖 仿真成功。 總 結(jié) 本設(shè)計是我第一次設(shè)計的電路,利用

40、Proteus的仿真與實現(xiàn)。在這個過程中,我學(xué)到了許多課外的知識,提高了自己思考和設(shè)計的能力,對使用單片機有新的體會。通過本設(shè)計利用Proteus和Keil軟件,我也學(xué)到了很多知識,在硬件設(shè)計、系統(tǒng)程序編程、功能模塊劃分、設(shè)計原理圖和電路仿真設(shè)計的過程中,積累了很多經(jīng)驗?;趩纹瑱C的數(shù)字電壓表功能強大,它結(jié)構(gòu)簡單,電路原理易懂,成本低,用到外部元件少,能夠在實踐中很好地工作,測量電壓精度高。該系統(tǒng)的功能,得到了理想的效果,在系統(tǒng)硬件設(shè)計有可擴展性,增加了限值電壓測量范圍,過壓報警等功能。本設(shè)計實現(xiàn)了對簡易數(shù)字電壓表的測量電壓的功能,詳細(xì)描述了電路原理,設(shè)計與仿真,繪畫出電路原理圖及軟件調(diào)試。

41、 通過本次設(shè)計,加深了我對單片機的認(rèn)知,體積雖小,但有著強大功能。本設(shè)計采用AT89C51單片機,功能更完善,應(yīng)用領(lǐng)域更廣泛。該設(shè)計也可用于模數(shù)轉(zhuǎn)換芯片ADC0808,在單一的課程對知識的理論有一個初步的了解。通過本設(shè)計,對數(shù)字電壓表的工作原理,有一個更深的了解。 該電路的設(shè)計和仿真,基本滿足設(shè)計要求。以后的實踐過程中,我仍會認(rèn)真學(xué)習(xí)電路設(shè)計的理論知識,理論聯(lián)系實際,爭取在電路設(shè)計的取得更多的進(jìn)步。 參考文獻(xiàn) [1]謝自美.電子線路設(shè)計實驗測試(第二版)[M],.武漢:華中科技大學(xué)出版社,2000. [2]張文祥.單片機系統(tǒng)設(shè)計與開發(fā)教程[M].北京:電子工業(yè)出版社,20

42、11. [3]劉宏.Protel電路設(shè)計實用指南[M].西安:西安電子科技大學(xué)出版,2004. [4]陳明熒.8051單片機課程設(shè)計實訓(xùn)教材[M].北京:清華大學(xué)出版社. [5]孟祥蓮.單片機原理及應(yīng)用:基于Proteus與KeilC[M].北京:哈爾濱工業(yè)大學(xué)出版社,2010. [6]周潤景.PROTEUS入門實用教程[M].北京:機械工業(yè)出版社,2006. 附 錄 1. 電路原理圖。 2. 程序代碼。 #include <reg52.h> #define u8 unsigned char #define u16 unsigned

43、 int #define uint unsigned int #define uchar unsigned char //宏定義 sbit KEY1 = P3^0; //按鍵1 sbit KEY2 = P3^1; //按鍵2 sbit KEY3 = P3^2; //按鍵3 sbit LED = P2^6; //LED sbit BUZ = P2^7; //蜂鳴器 #define SEGSELECT P2 //數(shù)碼管位選 #define SEGDATA P0 //數(shù)碼管數(shù)據(jù)端口 sbit ADALE =P3^4; //ADC0808地址鎖存允許信號

44、(高有效) sbit ADOE =P3^7; //ADC0808數(shù)據(jù)輸出允許信號(高有效) sbit ADEOC =P3^6; //ADC0808轉(zhuǎn)換結(jié)束信號(輸出高) sbit ADSTART=P3^5; //ADC0808轉(zhuǎn)換啟動脈沖(至少100ns,上升沿復(fù)位,下降沿啟動轉(zhuǎn)換) #define ADCPORT P1 //ADC0808數(shù)據(jù)端口 char code segcode[22]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,//無點(共陽) 0x40,0x79,0x24,0x3

45、0,0x19,0x12,0x02,0x78,0x00,0x10,//有點(共陽) 0xff,0xbf}; //不顯示,-(共陽) char disbuf[4]; //顯示緩存 char seg=0; //顯示位指示 int valueMAX=900; //默認(rèn)電壓上限9V,超過9V會報警 bit b_over=0; //超限標(biāo)志 //延時(單位:ms) void Delayms(int d) { int i,j; for(i=0;i<d;i++) for(j=0;j<100;j++); } /

46、/定時器初始化 void TimerInit() { TMOD=0x11; IP =0x02; //中斷優(yōu)先級設(shè)置(該句允許T0中斷嵌套進(jìn)T1中斷) TH0=0xaa; TL0=0xaa; TH1=0x00; TL1=0x00; ET0=1; ET1=1; EA=1; TR0=1; TR1=1; } //讀ADC數(shù)據(jù) u8 ReadData() { u8 adda; ADALE=1; ADALE=0; //鎖存通道地址 ADSTART=1; //上升沿復(fù)位 Delayms(3);

47、 //延時幾毫秒 ADSTART=0; //下降沿啟動轉(zhuǎn)換 Delayms(3); //延時幾毫秒 ADEOC=1; //引腳置為讀 while(!ADEOC); //等待轉(zhuǎn)換結(jié)束 ADOE=1; //數(shù)據(jù)輸出允許 adda=ADCPORT; //讀取AD數(shù)據(jù) ADOE=0; //數(shù)據(jù)輸出禁止 return adda; //返回AD數(shù)據(jù) } //定時器0中斷處理,負(fù)責(zé)顯示 void Timer0ISR() interrupt 1 { TR0=0; SEGSELECT=seg|

48、(SEGSELECT&0xfc); SEGDATA=~segcode[disbuf[seg]]; seg++; if(seg>3) seg=0; TH0=0xee; TL0=0xee; TR0=1; } //定時器1中斷處理 void Timer1ISR() interrupt 3 { static char n=0; //中斷計數(shù) TR1=0; n++; if(n==10) { n=0; if(b_over) //超限 { BUZ=!BUZ; LED=!LED; } }

49、 TH1=0x00; TL1=0x00; TR1=1; } //顯示電壓 void ValueDis(int dat) { if(dat<1000) { disbuf[0]=20; //不顯示 disbuf[1]=dat/100+10; //百位 disbuf[2]=dat%100/10; //十位 disbuf[3]=dat%10; //個位 } else { disbuf[0]=dat/1000; //千位 disbuf[1]=dat%1000/100+10; //

50、百位 disbuf[2]=dat%100/10; //十位 disbuf[3]=dat%10; //個位 } } //設(shè)定限值 void SetFun() { ValueDis(valueMAX); //顯示上限 while(1) { if(KEY1 == 0) //按鍵2-退出設(shè)定 { while(!KEY1); //等待按鍵松開 break; //退出 } else if(KEY2 == 0) //按鍵3-減

51、 { if(valueMAX>10) valueMAX-=10; //減1 ValueDis(valueMAX); //顯示上限 while(!KEY2); //等待按鍵松開 } else if(KEY3 == 0) //按鍵4-加 { if(valueMAX<1000) valueMAX+=10; //加1 ValueDis(valueMAX); //顯示上限 while(!KEY3); //等待按鍵松開 } } } //

52、獲取電壓 int GetValue() { u8 addata; float tem; addata=ReadData(); //讀取AD轉(zhuǎn)換 tem=(float)addata; tem=tem*1.9608*2.0; return (int)tem; } //主程序 void main() { int value; //電壓數(shù)據(jù) unsigned int delay_count=0; //延時計數(shù) BUZ=0; //上電先關(guān)閉蜂鳴器 LED=1; //關(guān)LED TimerInit(); //定時器初始化

53、 while(1) { delay_count++; //延時計數(shù)+1 if(delay_count>5000) { delay_count=0; //延時計數(shù)清0 value=GetValue(); //獲取電壓 ValueDis(value); //顯示電壓 if(value<=valueMAX) //電壓正常 { BUZ=0; //關(guān)蜂鳴器 LED=1; //關(guān)LED b_over=0; //超限標(biāo)志 } else //電壓超限 { b_over=1; //超限標(biāo)志 } } if(KEY1 == 0) //按鍵1-設(shè)定限值 { while(!KEY1); //等待按鍵松開 SetFun(); //設(shè)定限值 } } }

展開閱讀全文
溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!