數(shù)字電壓表的設計畢業(yè)設計(共37頁)
《數(shù)字電壓表的設計畢業(yè)設計(共37頁)》由會員分享,可在線閱讀,更多相關《數(shù)字電壓表的設計畢業(yè)設計(共37頁)(37頁珍藏版)》請在裝配圖網上搜索。
1、精選優(yōu)質文檔-----傾情為你奉上 華東交通大學理工學院 Institute of Technology. East China Jiao tong University 畢 業(yè) 設 計 Graduation Design (2011 —2015 年) 題 目 數(shù)字電壓表的設計 分 院: 電氣與信息工程分院 專 業(yè): 工程及其自動化 班 級: 電力2011-1
2、 學 號: 學生姓名: 田唯迪 指導教師: 起訖日期: 2015-01-01—2015-05-10 摘 要 在電子應用領域,工業(yè)自動化儀表已經有了非常廣泛的應用。本文設計的數(shù)字電壓表以AT89C51單片機為主要控制器件,利用ADC0808把模擬信號轉換為數(shù)字信號并加以顯示的電路。它的設計主要包括硬件電路和系統(tǒng)程序兩部分設計。
3、硬件電路主要是單片機最小設計模塊、A/D轉換模塊和顯示模塊的設計,系統(tǒng)程序設計則是通過AT89C51單片機先將系統(tǒng)初始化,通過ADC0808轉換芯片把模擬量轉換成數(shù)字量,最后通過數(shù)碼管顯示數(shù)據(jù)。設計的數(shù)字電壓表的測量范圍為200mv—10v,對直流電壓進行測量。該電路功能強大,有報警系統(tǒng),可控制測量范圍,數(shù)碼管顯示精度高,可擴展性強等優(yōu)點。 數(shù)字電壓表的應用在很多領域,有非常好的應用前景。對數(shù)字電壓表進行研究很有必要性。這對我們研究單片機技術是很有幫助的。 關鍵詞:AT89C51;ADC0808;電壓測量;A/D轉換 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ù)字化測量技術,能將連續(xù)的模擬量(直流輸入電壓)轉換成不連續(xù)的、離散的數(shù)字形式并加以顯示的儀表。目前,數(shù)字電壓表已被廣泛用于電子電氣測量、工業(yè)自動化儀表、自動測試系統(tǒng)等領域。 數(shù)字電壓表有很多優(yōu)點:(1).通過數(shù)碼管顯示數(shù)字清晰直觀,讀數(shù)準確,相對于借用指針和刻度盤的讀數(shù)有了很大的改進。(2).數(shù)碼管顯示位數(shù)多,能測量的范圍更加廣,用途更加廣泛。(3).測量準確度高,誤差越來越小。準確度表示測量結果與真實值的一致性,反映了測量誤差的大小。(4).分辨率高。數(shù)字電壓表測量靈敏度高,微小電壓變化能在數(shù)碼管的動態(tài)顯示中顯示。(5).擴展能力強。在數(shù)字電壓表
9、的基礎上,可改造成用于不同工業(yè)領域的儀器儀表。(6).測量速率快。它取決于A/D 轉換器的轉換速率。測電壓時,電表兩端接觸被測電壓,數(shù)碼管即刻顯示被測電壓數(shù)值,相對于指針和刻度盤測量更加穩(wěn)定和便捷。(7).輸入阻抗高。數(shù)字電言表在測量時從被測電路上吸取的電流極小,為顯示更加精確,可以用放大電路放大電流,不會影響被測信號源的工作狀態(tài),能減小由信號源內阻引起的測量誤差。(8).集成度高,耗能少。新型的數(shù)字電壓表采用CMOS大規(guī)模集成電路,工作狀態(tài)時功耗很低,電池可用時間長。(9).抗干擾能力強。(10)測量電壓時系統(tǒng)恢復初始化,無需像指針式電壓表那樣置零。
10、 1 緒論 1.1選題的依據(jù)及意義 微型單片機自上世紀70年代首次出現(xiàn),因為其價格低而性能有很高,便于攜帶所占地方小、可以適配各種功能等等特點很快便引起了人們關注度,之后很多年的發(fā)展,現(xiàn)在常見于家用電器控制,節(jié)能設備、電子儀器、智能機器人等方向也有著廣泛的應用,在軍事設備、工業(yè)控制領域都用到單片機控制,可見現(xiàn)在的單片機更加微型,智能,在提高了產品的功能與質量同時,還降低了設計和使用成本。 傳統(tǒng)模式的電壓表測量精度低,容易引入誤差,測量范圍小,功能簡單,不能滿足數(shù)字化時代的需求,很有必要選用既要精度高又要有很強的抗干擾能力,并且同時還需
11、要滿足擴展性強,外形小巧集成方便的芯片最為首選,體積小易于攜帶,還能與電腦端進行實時通信?,F(xiàn)階段,在電工檢測方向、工業(yè)自動化儀表控制、智能自動測試系統(tǒng)中,由A/D 轉換器作為核心器件的數(shù)字電壓表被越來越廣泛的應用,并且再有很大的份額和很強的生命力。由DVM技術發(fā)展而形成的通用及專用的更高級的數(shù)字儀器儀表也更多的應用在監(jiān)測電量和非電量的測試中并且得到了較快的發(fā)展,也將這項技術提高到了嶄新高度。 1.2 國內外現(xiàn)狀研究及發(fā)展趨勢 電子技術近20年的發(fā)展,微電子技術、計算機技術、集成技術、網絡技術等高新技術越來越成熟。在這樣的情況下,人們不斷對數(shù)字電壓表提出了更高的要求,加快了數(shù)字電壓表的發(fā)
12、展,技術人員要求數(shù)字電壓表速度更快、性能更穩(wěn)定,靈敏度更高、以及操作更方便,做到成本更低,樣品量提供量更少、和零污染。 數(shù)字電壓表的發(fā)展大致如下: 1. 新技術的廣泛應用 新的A/D轉換技術于上世紀90年代初在世界許多國家研發(fā)。自動校準技術、A/D轉換技術、資源再利用技術,使得數(shù)字電壓表更加精度化、智能化、經濟化、環(huán)?;?,向著更高水平發(fā)展。 2. 智能化階段 在電子技術、大規(guī)模集成電路及計算機技術日新月異的大背景下,人們很快研制出并量產了DVM數(shù)據(jù)處理和可編程程序在微處理器控制下的芯片,因為數(shù)字電壓有數(shù)據(jù)存儲器ROM并使用C軟件編程,通過可進行信息處理,儀器儀表經過接口監(jiān)
13、測系統(tǒng),從而進行自校、自檢,自查三個步驟,以及高準確性的運行,這樣便實現(xiàn)了監(jiān)測系統(tǒng)的智能化當前,智能化的DVM的出現(xiàn)以及智能化儀表發(fā)展的良好態(tài)勢,DVM將會成為未來的發(fā)展趨勢,并且會得到更多領域的應用。這樣為各種物理量的動態(tài)檢測的實現(xiàn)提供了可能。 1.3研究的主要內容 本文介紹的一種簡易數(shù)字電壓表。主要是由AT89c51單片機控制,顯示模塊由A/D轉換器和數(shù)碼管控制,數(shù)據(jù)處理模塊及顯示模塊組成,芯片由ADC0808采集到的模擬量轉化為相應的數(shù)字量再傳送到相應的模塊處理中。芯片的主要任務是處理數(shù)據(jù),并且把0808送來的數(shù)字量進行分析處理,再送到顯示模塊中顯示,由于元件較少,成本低,測量精
14、度和可靠性較高系統(tǒng)的數(shù)字電壓表電路簡單實現(xiàn)。 2設計方案與論證 2.1電壓表功能設計 (1)對直流電壓的測量。 (2)能對常見的交流信號的電壓進行測量。 (3)測量電壓的范圍從200mv到10V之間。 (4)當輸入電壓過大時能夠具有保護功能。 (5)顯示功能。 (6)其它附加功能。 2.2設計思路 電壓表由模擬和數(shù)字轉換兩大部分,電路應盡量采用中、大規(guī)模集成電路。 (1)為了滿足各方面的設計需求,選擇AT89C51單片機為核心控制器件。 (2)ADC0808和輸入放大器用來用作A/D轉換器,基準電源構成了模擬部分;數(shù)字部分由計數(shù)器、譯碼器、電流放大器、
15、邏輯控制器、振蕩器和顯示器構成。數(shù)字量經由轉換器將輸入端輸入的模擬量轉換而成,與此同時產生控制信號并根據(jù)產生的頻率,經過分析處理整合檢測最終輸出需要顯示的數(shù)字。 (3)電壓顯示采用兩位一體的LED數(shù)碼管。 (4)LED數(shù)碼的段碼輸入,由并行端口P0產生:位碼輸入,用并行端口P2低兩位產生;小數(shù)點位由P2口產生。 2.3設計方案 轉換電路、A/D轉換、單片機、時鐘電路、復位電路、模擬電壓輸入構成了硬件設計電路 。硬件電路設計圖如下圖所示: 圖2-1 數(shù)字電壓表總體設計方案圖 3系統(tǒng)硬件電路的設計 3.1單片機最小系統(tǒng)設計 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)輸入緩沖器一個多路轉接開關,實際控制中,P0口多數(shù)情況下都是作為地址/數(shù)據(jù)線使用。 P1口引腳:只可作為普通的I/O口使用,在電路結構上和P0口不同,因為P1口只傳送數(shù)據(jù),所以不再需要轉換開關,P1口是準雙向口,P1口作為輸出用時,可以獨立對外提供推拉電流負載,
17、外電路就不再需要上拉電阻,作為輸入使用時,必須在鎖存器寫入1,使FET截止。 P2口:P2口字節(jié)地址為0A0H,實際控制中為系統(tǒng)提供高位地址,這個功能和P0口一樣,在電路中有一個多路轉接開關,但是轉接開關的一段不再是作為地址數(shù)據(jù)使用,二就是單一的作為地址用而控制功能是它的第二大功能,但是每個引腳不完全一樣。 ALE:地址鎖,使地址鎖存于使能端。訪問外部存儲器,如RAM、ROM。 有51個外部總線,16位地址線,數(shù)據(jù)線為8,而低8位的地址跟數(shù)據(jù)線是重合,所以單獨訪問低8位的地址和數(shù)據(jù),這就需要用到ALE信號。 訪問存儲器的時候,P2口輸出高地址,P0輸出低地址。利用外部的鎖存器(設計用7
18、4HC245存儲器)配合ALE脈沖,鎖存P0地址,這時讀寫信號開始起作用,P0口讀入或者輸出數(shù)據(jù)。 RST:單片機復位電路,當單片機系統(tǒng)在運行中受到環(huán)境干擾時,程序運行若有錯誤,及時按復位按鈕,系統(tǒng)電路將自動初始化,起重置作用。 在設計時單片機系統(tǒng)如上圖3.1 P0口接收由ADC0808送來的數(shù)據(jù),然后通過P1口將數(shù)據(jù)送給LED顯示器,通過顯示器將數(shù)值都顯示出來。 3.1.2 時鐘電路 單片機中指令執(zhí)行都需要在晶振產生的固有頻率下進行,按節(jié)拍有順序的一次進行下去,而單片機時鐘脈沖是由時序電路發(fā)出的。單片機芯片內部有一個串聯(lián)的反相放大器來增強震蕩器高增益,XTAL1為輸入端,XTA
19、L2為輸出端,用一個晶振和 2個30uf的電容構成時鐘電路,如下圖所示: 圖3-2 時鐘電路 電路中的器件選擇有三種方法,一是通過計算,二是實驗確定,三是參考一些典型電路,電容器C1和C2取值范圍是30±10uF,本文選擇了30uF的電容,這樣會對對震蕩頻率起到調節(jié)的作用電路產生的時鐘信號震蕩頻率由石英晶振來決定,最高可選24MHz,本系統(tǒng)中選擇6MHz作為時鐘信號的震蕩頻率。 3.1.3 復位電路 復位電路是用來返回到電路設備初始化狀態(tài)的電路,的上電復位電路,只要在復位輸入引腳上接一電容在ACC上端,下端接地就行了。C型單片機,由于在RST端內部有一個下拉電阻,故可
20、拆除外部電阻,外接電容減至10uF。上電復位的工作過程:在加電時,復位電路通過電容加給RST端一個短暫的高電平信號,此高電平信號隨著Vcc對電容的充電過程而逐漸回落,RST端的高電平持續(xù)時間取決于電容的充電時間。加在RST端的高電平信號要維持足夠長的時間才能保證系統(tǒng)可靠復位。一般來說復位方式有上電自動復位和按鈕復位兩種。圖3-3是AT89c51單片機的上電復位和按鈕復位組合電路。 圖3-3 復位電路 3.2 A/D轉化模塊 現(xiàn)實中大多數(shù)都是模擬量,這樣并不能被我們直接采用,所以人們研制了數(shù)字量的器件,它能把模擬的物理量轉變成我們能夠利用的數(shù)字量,這是單片機幾桶收集整理轉變
21、數(shù)據(jù)的關鍵,在電路設計中必不可少,經過人們不斷努力改進,現(xiàn)在的轉換器已經具備了很強的抗干擾能力,轉換精度十分準確,性能強,價格低廉,種類多,常用的有逐次逼近型,雙重積分型等。逐次逼近式A/D轉換的轉換速度和精度都比雙積分型更高,ADC0808轉換器可以與單片機連接,把轉換得到的數(shù)字量送入單片機,并對數(shù)字量進行分析和顯示。每個位比較一次,那么一個n位久需比較n次,這過程中所消耗的由位數(shù)和單片機時鐘周期來共同決定,因為現(xiàn)實中更注重效率,而逐次逼近型A/D轉換器轉換速度快,在現(xiàn)實的生產生活中被大量采用。 3.2.1 A/D轉化器的工作原理 轉換器要想工作,必須先做幾個步驟如寄存器每一個都必須
22、歸零,開始轉換工作時,必須將最高位置高電也就是置1才能把數(shù)據(jù)送入轉換器中進行轉換,轉換后的結果與輸入時的比較,若經轉換的模擬量小于輸入的模擬量,則1被保留,如轉換的模擬量大于輸入的模擬量,則1不保留,接著第二位第三位第四位并最終到最低位,最終寄存器中所存儲的便是輸入模擬量所對應的二進制的數(shù)字量。 3.2.2 ADC0808主要特征 ADC0808是有使能控制端和微機直接接口的CMOS單片型逐次逼近式A/D轉換器,首先應用在智能儀器和機床控制領域片內可以對模擬電壓信號對8路同時進行轉換,之所以這么做,是因為ADC0808與其他相比有著先天的優(yōu)勢:第一,它是8路8位的轉換器;其次,8路模擬
23、開關并具有鎖存控制功能再次可以接各種微控制器口;第三,鎖存三態(tài),與TTL轉換電壓低且精度高低功耗等特點。 ADC0808的外部引腳特征: ADC0808有28條引腳,其引腳圖如下所示: 圖3-4 ADC0808的引腳圖 下面說明各個引腳功能: IN0-IN7(8條):用來進行輸入控制轉換模擬電壓。 地址控制:ALE為地址輸入鎖存許可線,輸入高電平時有效,當ALE置高電平時,做為地址輸入線使用。 START:啟動信號脈沖線,正脈沖寬度不小于100ns,否則無法啟動, EOC: 標志著轉換結束的輸出線,電位處于高電平時則表示A/D轉換已經結束,且數(shù)字量自動鎖入鎖
24、存器中。 D1-D8:數(shù)字量輸出端口,D8位最低位,D1位最高位。 OE:輸出允許端,高電平時,把轉換后的數(shù)字量通過D1-D8引腳上輸出。 REF+、REF-:輸入電壓參考量,指給電阻階梯網絡的參考電壓和標準值。 Vcc、GND: Vcc一般R與EF+連接在一起為主電源輸入端,地端是GND與REF-連接在一起,這樣便是VCC ,GND的作用。 轉換器和單片機的鏈接,如下圖: 圖3-5轉換器和單片機的鏈接 3.3顯示模塊設計 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ù)碼管接收的顯示字符一經確定,相應I/O口的輸出段碼將保持不變,直到顯示下一個字符,此特點使得數(shù)碼管的顯示亮度也較高。但是也存在著缺點,大量的I/O端口在數(shù)碼管過多時將被占用。
26、動態(tài)顯示,指逐位地點亮顯示器的各個位,點亮一次顯示器的亮度與間隔時間、導通電流和點亮時間的比例三者相關。動態(tài)顯示的亮度要比靜態(tài)顯示要暗,所以在選擇靜態(tài)顯示電路中的限流電阻應該要大于限流電阻時阻值,防止數(shù)碼管損壞。采用了自動顯示8路模擬電壓值動態(tài)顯示對于設計的實現(xiàn)非常容易。 3.3.2數(shù)碼管顯示模塊電路 數(shù)碼管要求的驅動電流在10mA~20mA,為防止數(shù)碼管灌入的電流太大,超出了單片機允許的電流范圍而導致器件損壞,在P1口輸出段碼顯示處,要加入10K的限流電阻排阻,一共8個同阻值的電阻,分別對應LED的8個接口,既保護數(shù)碼管,又簡單電路。本設計選用軟件譯碼的方式來簡化電路和進行數(shù)值顯示。
27、顯示電路采用LED數(shù)碼管通過軟件譯碼動態(tài)顯示,通過單片機的P1、P3.2、P3.3、P3.5口控制。通過譯碼器驅動將依次循環(huán)點亮數(shù)碼管,如圖3-7所示: 圖3-7 數(shù)碼管電路 3.3.3 LED數(shù)碼管與單片機接口設計 LED驅動電路設計是一個很重要的問題,單片機的I/O口產生的電流并不能直接驅動LED,驅動電路能力太差,這樣就會導致顯示器亮度低,這時,只要用驅動電路產生足夠的電流,LED就能正常工作。 在LED驅動電路的設計過程中,可以利用上拉電阻解決這種問題,就是可以在LED的DP引腳到P0口和7段顯示引腳之間接上上拉電阻,以此來增強P0口的驅動能力,LED以正常的亮度運行。
28、如圖3-8所示。 圖3-8 數(shù)碼管與單片機的鏈接 3.4 高阻隔放大電路 采用LM324運放構成的前級信號調理電路,作為衰減信號的緩沖,提高輸出阻抗,電壓不變,電流增大,保證輸出穩(wěn)定并減小后級電路對信號的影響,避免沖擊電壓對運放的危害,加一個電容保護電路。 圖3-9 高阻隔放大電路 3.5 總體電路設計 總結以上的設計,利用protues軟件繪制出簡易的數(shù)字直流電壓表電路原理圖。數(shù)字直流電壓表電路圖的工作原理是:輸入模擬電壓,對模擬電壓信號進行處理然后再由ADC0808的IN0通道進入,這樣經過轉換后的數(shù)字量經過D0-D7輸出通道再傳送給單片機芯片的P1口,
29、接收到的數(shù)字量可以通過AT89C51進行數(shù)據(jù)處理,通過P0口輸出給譯碼器,從而7段數(shù)碼管的顯示段碼再傳送給74HC245譯碼然后去驅動LED,還控制P2.0、P2.1、P2.2的段選以及小數(shù)點。此外,AT89C51還控制ADC0808的工作,單片機AT89C51通過從ALE引腳輸出方波,接到ADC0808的CLOCK,P3.0發(fā)正脈沖啟動A/D轉換,A/D轉換完成產生中斷,單片機進入中斷程序,從P1口讀取轉換的P3.1置高電位,然后送給LED顯示。 總體電路設計完畢,利用Proteus制出硬件的原理結構圖,并作相應的檢查、修改、及測試,直至完成完善的硬件原理結構圖。本設計目的是能對電壓進行測
30、量,顯示的功能和其他相應的軟件配合。如圖3-10所示: 圖3-10 系統(tǒng)電路圖 4 程序設計 4.1主程序流程圖 主程序流程分成3個模塊,初始化模塊,顯示A/D轉換子程序模塊和子程序模塊構成的。第一步,開始,系統(tǒng)自動回到初始化狀態(tài),此時,A/D轉化子程序啟動,將輸入的模擬信號轉化為數(shù)字信號,測量限值比較,若輸入的模擬電壓大于電壓表的測量范圍,則系統(tǒng)蜂鳴器報警且輸出電壓表測量電壓最大值,若輸入電壓小于測量范圍,則系統(tǒng)正常運行且輸出準確電壓,接著顯示子程序啟動,數(shù)字信號通過LED顯示板顯示數(shù)
31、值,流程結束。如下圖所示: 圖4-1 數(shù)字電壓表主程序框圖 啟動電源前,系統(tǒng)自動復位,蜂鳴器關閉,LED顯示關閉,定時器初始化。啟動電源,輸入被測模擬電壓值,經過A/D轉換程序,譯碼器獲得電壓數(shù)值,通過LED顯示器顯示,此時判斷被測電壓是否超出測量范圍,若超出,蜂鳴器報警,輸出測量范圍最大值;若正常,則輸出準確電壓。另外,還可設置系統(tǒng)電壓的測量范圍,通過限制設置一欄設定想要的測量范圍。 主程序核心代碼: //主程序 void main() { int value; //電壓數(shù)據(jù) unsigned int delay_count=0; //延時計數(shù) BUZ=
32、0; //上電先關閉蜂鳴器 LED=1; //關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; //關蜂鳴器 LED=1; //關LED
33、 b_over=0; //超限標志 } else //電壓超限 { b_over=1; //超限標志 } } if(KEY1 == 0) //按鍵1-設定限值 { while(!KEY1); //等待按鍵松開 SetFun(); //設定限值 } } } 4.2 A/D轉換子程序流程圖 模擬輸入電壓經過ADC0808轉換成數(shù)值,再經過A/D轉換子程序移入相應的存儲單元中,輸入電壓與A/D轉化結果對比,正確則輸出轉換結果,錯誤則重新對比,將正確的輸出結果進行數(shù)值轉換,以數(shù)
34、值形式顯示結果,顯示階段出現(xiàn)問題則重新回到啟動轉化階段重復循環(huán),顯示正確數(shù)值后A/D轉換子程序結束。流程如圖4-2所示,轉換子程序經過一段時間調用一次。 圖4-2 A/D轉化流程圖 開始后,鎖存通道地址,復位電路自動復位,延時3毫秒,下降沿啟動轉換,延時,設置ADOE=1時,引腳置為讀,當輸入ADOE=1,等待轉換,通過ADC0808允許數(shù)據(jù)輸出,譯碼器讀取AD數(shù)據(jù),反之,當輸入ADOE=0時,禁止數(shù)據(jù)輸出,且返回AD數(shù)據(jù)。 A/D轉換程序代碼: //讀ADC數(shù)據(jù) u8 ReadData() { u8 adda; ADALE=1; ADALE=0;
35、 //鎖存通道地址 ADSTART=1; //上升沿復位 Delayms(3); //延時幾毫秒 ADSTART=0; //下降沿啟動轉換 Delayms(3); //延時幾毫秒 ADEOC=1; //引腳置為讀 while(!ADEOC); //等待轉換結束 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ù)膾呙桀l率,設置掃描頻率在70HZ左右時,能夠產生比較好的顯示效果。在protues仿真中輸入的電壓比較穩(wěn)定,所以在顯示中看不到動態(tài)的效果。 4.4編程軟件keil介紹 Keil是一款非常強大的軟件,它的庫函數(shù)非常豐富,在Windows系統(tǒng)中功能強大,Keil 51生成的效率高而且語句簡單易懂,所以Keil被廣泛應用于開發(fā)編程軟件。開發(fā)人員發(fā)現(xiàn)C語言在功能強大,結構性、可讀性、可維護性上都有明顯的優(yōu)勢,移植性好,現(xiàn)在多數(shù)技術人員需要熟練掌握好C語言的編程,這對學習單片機有更多的好
37、處。 5 仿真與調試 5.1 protues仿真的介紹 Proteus是一款EDA工具軟件,它可以對電路系統(tǒng)進行仿真,也可以對單片機及其他器件仿真,國內外普遍使用protues進行仿真,此軟件的功能在非常完善,仿真的效果與實物的測試,兩者誤差非常小,很實用的軟件。 智能原理圖設計中,電路元件種類齊全,電路仿真功能完善,支持多數(shù)CPU類型、支持外設、實時仿真、編譯及調試、實用的PCB設計平臺,這些都是Proteus主要功能。 Proteus功能特點: 1.PCB自動或人工布線 2.原理布圖 3.SPICE電路仿真 特點是: 1.互動的電路仿真 2.仿真處理器及
38、其外圍電路 5.2 protues仿真電路圖 圖5-1 仿真圖 5.3仿真結果 左鍵雙擊單片機AT89C51,彈出如圖5-2所示一個菜單,點擊program file找到程序所在的位置。載入程序。就可以進行模擬測試了。 圖5-2 載入程序示意圖 載入程序完成后,就可以開始仿真了,點擊軟件中的運行按鈕,單片機中的程序開始運行。通過改變被測的模擬電壓來顯示實際環(huán)境下電壓的改變,當數(shù)碼管所顯示的數(shù)值和輸入被測電壓的數(shù)值接近時,說明系統(tǒng)設計正確。系統(tǒng)電壓輸入到被測電壓顯示存在一定的誤差,該誤差可能是分壓系數(shù)的引起、電磁干擾引起、放大器的非理想特性引起等等。 當IN
39、0口輸入電壓為0時,數(shù)碼管顯示0.0。顯示結果如圖5-3: 圖5-3 仿真效果圖 當INT0輸入為5.05V時,對應的顯示結果如圖5-4所示: 圖6-4 仿真效果圖 當INT0口輸入為9.85V時,與輸出結果稍微有點誤差,對應的輸出結果如圖5-5所示: 圖5-5 仿真效果圖 當輸入電壓10.5V時,被測電壓超過數(shù)字電壓表測量范圍,報警器鳴笛報警。顯示最高測量電壓為10V。 圖5-6 仿真效果圖 仿真成功。 總 結 本設計是我第一次設計的電路,利用
40、Proteus的仿真與實現(xiàn)。在這個過程中,我學到了許多課外的知識,提高了自己思考和設計的能力,對使用單片機有新的體會。通過本設計利用Proteus和Keil軟件,我也學到了很多知識,在硬件設計、系統(tǒng)程序編程、功能模塊劃分、設計原理圖和電路仿真設計的過程中,積累了很多經驗?;趩纹瑱C的數(shù)字電壓表功能強大,它結構簡單,電路原理易懂,成本低,用到外部元件少,能夠在實踐中很好地工作,測量電壓精度高。該系統(tǒng)的功能,得到了理想的效果,在系統(tǒng)硬件設計有可擴展性,增加了限值電壓測量范圍,過壓報警等功能。本設計實現(xiàn)了對簡易數(shù)字電壓表的測量電壓的功能,詳細描述了電路原理,設計與仿真,繪畫出電路原理圖及軟件調試。
41、 通過本次設計,加深了我對單片機的認知,體積雖小,但有著強大功能。本設計采用AT89C51單片機,功能更完善,應用領域更廣泛。該設計也可用于模數(shù)轉換芯片ADC0808,在單一的課程對知識的理論有一個初步的了解。通過本設計,對數(shù)字電壓表的工作原理,有一個更深的了解。 該電路的設計和仿真,基本滿足設計要求。以后的實踐過程中,我仍會認真學習電路設計的理論知識,理論聯(lián)系實際,爭取在電路設計的取得更多的進步。 參考文獻 [1]謝自美.電子線路設計實驗測試(第二版)[M],.武漢:華中科技大學出版社,2000. [2]張文祥.單片機系統(tǒng)設計與開發(fā)教程[M].北京:電子工業(yè)出版社,20
42、11. [3]劉宏.Protel電路設計實用指南[M].西安:西安電子科技大學出版,2004. [4]陳明熒.8051單片機課程設計實訓教材[M].北京:清華大學出版社. [5]孟祥蓮.單片機原理及應用:基于Proteus與KeilC[M].北京:哈爾濱工業(yè)大學出版社,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轉換結束信號(輸出高) sbit ADSTART=P3^5; //ADC0808轉換啟動脈沖(至少100ns,上升沿復位,下降沿啟動轉換) #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; //默認電壓上限9V,超過9V會報警 bit b_over=0; //超限標志 //延時(單位: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)先級設置(該句允許T0中斷嵌套進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; //上升沿復位 Delayms(3);
47、 //延時幾毫秒 ADSTART=0; //下降沿啟動轉換 Delayms(3); //延時幾毫秒 ADEOC=1; //引腳置為讀 while(!ADEOC); //等待轉換結束 ADOE=1; //數(shù)據(jù)輸出允許 adda=ADCPORT; //讀取AD數(shù)據(jù) ADOE=0; //數(shù)據(jù)輸出禁止 return adda; //返回AD數(shù)據(jù) } //定時器0中斷處理,負責顯示 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; //個位 } } //設定限值 void SetFun() { ValueDis(valueMAX); //顯示上限 while(1) { if(KEY1 == 0) //按鍵2-退出設定 { 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轉換 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; //上電先關閉蜂鳴器 LED=1; //關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; //關蜂鳴器 LED=1; //關LED b_over=0; //超限標志 } else //電壓超限 { b_over=1; //超限標志 } } if(KEY1 == 0) //按鍵1-設定限值 { while(!KEY1); //等待按鍵松開 SetFun(); //設定限值 } } }
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 市教育局冬季運動會安全工作預案
- 2024年秋季《思想道德與法治》大作業(yè)及答案3套試卷
- 2024年教師年度考核表個人工作總結(可編輯)
- 2024年xx村兩委涉案資金退還保證書
- 2024年憲法宣傳周活動總結+在機關“弘揚憲法精神推動發(fā)改工作高質量發(fā)展”專題宣講報告會上的講話
- 2024年XX村合作社年報總結
- 2024-2025年秋季第一學期初中歷史上冊教研組工作總結
- 2024年小學高級教師年終工作總結匯報
- 2024-2025年秋季第一學期初中物理上冊教研組工作總結
- 2024年xx鎮(zhèn)交通年度總結
- 2024-2025年秋季第一學期小學語文教師工作總結
- 2024年XX村陳規(guī)陋習整治報告
- 2025年學校元旦迎新盛典活動策劃方案
- 2024年學校周邊安全隱患自查報告
- 2024年XX鎮(zhèn)農村規(guī)劃管控述職報告