久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 38568|回復: 17
打印 上一主題 下一主題
收起左側

基于單片機的數字電壓表畢業設計論文

  [復制鏈接]
跳轉到指定樓層
樓主
目錄

摘 要
Abstract
第一章  緒 論
1.1 課題研究的背景及意義
1.2 國內外研究現狀和發展
1.3 本文的研究內容
第二章  系統分析與設計方案
2.1 系統分析
2.1.1 功能及指標
2.2 系統總體方案設計
2.2.1 方案設計的基本思路
2.2.2 數字電壓表的兩種設計方案
2.2.3  A/D轉換模塊的選擇
2.2.4 接口模塊的選擇
2.2.5 微控制器的選擇
2.3 系統硬件分析
2.3.1 AT89S52單片機簡介
2.3.2 LCD1602顯示器簡介
2.3.3 ADC0804轉換芯片簡介
第三章  系統硬件電路設計
3.1系統組成
3.2電源接口電路
3.3 AT89S52單片機最小系統電路
3.3.2 復位電路
3.3.3 晶振電路
3.4 LCD1602顯示電路
3.6 A/D轉換電路
3.7 量程轉換電路
第四章 系統軟件設計
4.1 系統主程序流程圖
4.2 LCD1602液晶流程圖
4.3 ADC0804流程圖
第五章  性能測試與分析
5.1 各模塊獨立測試
5.2 系統聯合調試
5.3 系統運行評估
第六章  總 結
參考文獻(References)
致 謝
附錄1: 系統原理圖及實物圖
附錄2: 系統主程序

基于單片機的數字電壓表


專業: 學號:           


摘 要在電路設計中我們時常會用到電壓表,過去大部分電壓表還是模擬的,雖然精度較高但模擬電壓表采用用指針式,里面是磁電或電磁式結構,所以響應較慢。為適應許多高速信號領域目前已廣泛使用數字電壓表。數字電壓表的誕生打破了傳統電子測量儀器的模式和格局,它顯示清晰直觀、讀數準確,采用了先進的數顯技術,大大地減少了因人為因素所造成的測量誤差事件,數字電壓表是把連續的模擬量(直流輸入電壓)轉換成不連續、離散的數字形式,并加以顯示的儀表。數字電壓表把電子技術、計算技術、自動化技術的成果與精密電測量技術密切的結合在一起,成為儀器、儀表領域中獨立而完整的一個分支,數字電壓表標志著電子儀器領域的一場革命,也開創了現代電子測量技術的先河。
本設計是基于Atmel51單片機開發平臺和自動控制原理的基礎上實現的一種數字電壓表系統。該系統采用Atmel89S52單片機作為控制核心,以ADC0804為數據采樣系統,實現被測電壓的數據采樣;使用穩壓二極管做過壓保護,并通過模擬開關實現了輸入量程的自動轉換;使用字符液晶顯示被測電壓。


Design of Digital Voltage Meter based on Single-chip Microcomputer


AbstractIn circuit design, we often use voltage meter,Over the past most of the voltage meter or a simulation,Although high precision analog voltage used in the table, but with the pointer, which is a magnetic or electromagnetic structure,so the slow response.To meet the many areas of high-speed signal has been widely used digital voltmeter.The birth of digital voltage meter break the traditional model of electronic measuring instruments and patterns. It shows the clear and intuitive, accurate readings, using an advanced digital display technology, greatly reduced due to human factors of the measurement error caused by the incident. Digital voltage meter is a row of analog (DC input voltage) into a non-continuous, discrete digital form, and the instrument display. Digital voltage meter to electronic technology, computing technology, automation technology and precision of the results of electrical measurement technology closer together and become instruments, meters and complete an independent field of a branch, digital voltage meter indicates that the field of electronic devices a revolution and also pioneered the modern pioneer of electronic measurement technology.

The design is based on Atmel51 microcontroller development platform and automatic control based on the principle of a digital voltage meter system.The system uses Atmel89S52 microcontroller as the control core, ADC0804 for the sampled data system, The use of a zener diode for overvoltage protection, and through the realization of analog switch the input range automatic conversion; the use of character liquid crystal display the measured voltage.



第一章   1.1 課題研究的背景及意義

數字電壓表的高速發展,使它已成為實現測量自動化、提高工作效率不可缺少的儀表,數字化是當前計量儀器發展的主要方向之一,而高準度的DC-DVC的出現,又使數字電壓表進入了精密標準測量領域。隨著現代化技術的不斷發展,數字電壓表的功能和種類將越來越強,越來越多,其使用范圍也會越來越廣泛。采用智能化的數字儀器也將是必然的趨勢,它們將不僅能提高測量準確度,而且能提高電測量技術的自動化程序,可以擴展成各種通用數字儀表、專用數字儀表及各種非電量的數字化儀表(如:溫度計、濕度計、酸度計、重量、厚度儀等),幾乎覆蓋了電子電工測量、工業測量、自動化儀表等各個領域。從而提高計量檢定人員的工作效率。

在電量的測量中,電壓,電流和頻率是最基本的三個被測量,其中電壓量的測量最經常。而且隨著電子技術的發展,更是需要經常測量高精度的電壓,所以數字電壓就成為必不可少的測量儀器。另外,數字測量儀器具有讀數準確方便,精度度高,誤差小,靈敏度高,分辨率高,測量速度快等特點倍受用戶親睞,數字電壓表的設計就基于這種需求發展起來。目前實現電壓數字化測量的方法仍然是模—數(A/D)轉換的方法。數字電壓表分類繁多,日常生活中一般根據原理的不同進行分類,大致分為:比較式,電壓—時間變換式,積分式等。

1.2 國內外研究現狀和發展            

數字電壓表(Digital Voltmeter)簡稱DVM,它出現在上世紀50年代初,60年代末發張起來的電壓測量儀表,它采用的是數字化測量技術,把連續的模擬量,也就是連續的電壓值轉變為不連續的數字量,加以數字處理然后通過顯示器件顯示。這種電子儀表之所以出現,一方面是由于電子計算機的應用推廣到系統的自動控制信號的實驗領域,提出了各種被觀測量或被控制量轉換成數字量的要求,即為了實時控制和數據處理的要求;另一方面,也是電子計算機的發展,帶動了脈沖數字電路技術的發展,為數字化儀表的出現提供了條件。所以,數字化測量儀表的產生與發展與電子計算機的發展是密切相關的;同時,為革新電子測量中的煩瑣與陳舊方式也促進了它的飛速發展。如今,它又成為向智能化儀表發展的必要橋梁。

    如今,數字電壓表已經絕大部分取代了傳統的模擬指針式電壓表,因為傳統的模擬指針式電壓表功能單一,精度低,讀數的時候非常不方便還經常出錯,而采用單片機的數字電壓表由于測量精度高,速度快,讀數時也非常方便,抗干擾能力強,可擴展性強等優點已被廣泛應用與電子和電工測量,工業自動化儀表,自動測量系統等領域。顯示出強大的生命力。

數字電壓表最初是伺服步進電子管比較式,其優點是準確度比較高,但是采樣速度較慢,體積重達幾十公斤。繼之出現了諧波式電壓表,它的速度方面稍有提高但準確度低,穩定性差,再后來出現了比較式儀表改進逐次漸進式結構,它不僅保持了比較是準確度高的優點,而且速度也有了很大的提高,但它有一缺點就是抗干擾能力差,很容易受到外界因素的影響,隨后,在諧波式的基礎上雙引申出階梯波式,它的唯一進步就是成本降低了,可是準確度,速度及抗干擾能力都未提高。而數字電壓表的發展已經非常成熟,就原理來講,它從原來的一兩種已經發展到多種,在功能上講,它從測單一的參數發展到能測多種參數;從制作原件看,發展到集成電路,準確度已經有了很大的提高,精度已經達到1NV,讀數速度達到每秒幾萬次,而相對以前價格已經降低了很多。數字電壓表(數字面板表)是當前電子、電工、儀器、儀表和測量領域大量使用的一種基本測量工具有關數字電壓表的書籍和應用已經非常普及了。
    數字電壓表的設計和開發,已經有多種類型和款式。傳統的數字電壓表各有特點,它們適合在現場做手工測量,要完成遠程測量并要對測量數據做進一步處理,傳統數字電壓表是無法完成的。然而基于PC通信的數字電壓表,既可以完成測量數據的傳遞,又可借助PC,做測量數據的處理。所以這種類型的數字電壓表無論在功能和實際上,都具有傳統數字電壓表無法比擬的特點,這使得它的開發和應用具有良好的前景。

1.3 本文的研究內容

本設計是基于單片機AT89S52的數字電壓表系統,系統具有精度高、速度快、性能穩定、電路簡單且工作可靠等特點, 具有很好的使用價值。這個設計的目的和意義在于使自己掌握數字電壓表的工作原理,自己動手設計數字電壓表與仿真。設計的數字電壓表可廣泛應用于電壓測量以及通過其它變換器還可以測量其他電量和非電量。數字電壓表廣泛應用于測量領域每次測量的準確度和可信度取決于它的主要性能和技術指標。所示我們要學習和掌握如何設計數字電壓表就顯得十分重要。

在本次畢業設計時,我大量用到了所學的內容。涉及知識面廣,應用性強是本次設計的核心特點。通過自己的動手能力和鉆研精神將課本知識運用到實踐中來,雖然在設計上或者功能實現上存在不足,但最重要的是一種鍛煉,培養一種理論與實踐相結合的能力,希望能對將來步入社會奠定基礎,實現自己人生價值!



第二章  系統分析與設計方案2.1 系統分析

利用MCS-51系列單片機對整個系統進行總體控制,采用數字化測量技術,把連續的模擬量(直流輸入電壓)轉化成不連續、離散的數字形式并加以顯示的儀表。傳統的指針式電壓表功能單一,精度低,不能滿足數字化時代的需求采用單片機的數字電壓表,精度高、抗干擾能力強,可擴展性強、集成方便。目前,由各種單片A/D轉換器構成的數字電壓表,已經被廣泛用于電子及電工測量、工業自動化儀表、自動測量系統等智能化測量領域,顯示出強大的生命力。

2.1.1 功能及指標

本次設計要具體目標如下:

1)分為三檔量程:0~5V,0~10V,0~20V;

2)測量最小分辨率:0.02V;

3)自動選擇量程;

4)采用字符液晶LCD1602顯示。

2.2 系統總體方案設計
2.2.1
方案設計的基本思路

設計主要采用AT89S52單片機芯片和ADC0804模/數轉換芯片來完成一個簡易的數字電壓表,能夠對輸入的0V~20V的模擬直流電壓進行測量,并通過LCD1602進行顯示,測量誤差約為0.02 V。設計電路主要通過ADC0804芯片的模擬電壓輸入端輸入的0V~20V的模擬量電壓,產生相應的數字量經過其輸出通道D0~D7傳送給AT89S52芯片的P0口。該電壓表的測量電路主要由四個模塊組成:A/D轉換模塊、數據處理及控制模塊、量程轉換模塊及顯示控制模塊。A/D轉換主要由芯片ADC0804來完成,主要負責把采集到的模擬量轉換為相應的數字量再傳送到數據處理模塊,數據處理則由單片機AT89S52來完成,其負責把ADC0804傳送來的數字量經數據處理后,產生相應的顯示碼送到顯示模塊進行顯示,量程轉換模塊主要由繼電器和分壓電阻組成,由單片機控制繼電器切換衰減倍數來實現量程轉換,顯示模塊主要由LCD1602組成,實時顯示測量到的電壓值。

2.2.2 數字電壓表的兩種設計方案

設計數字電壓表有多種的設計方法,由于大規模集成電路數字芯片的高速發展,各種數字芯片品種多樣,導致對模擬數據的采集部分不一致,進而又使對數據的處理及顯示的方式的多樣性。又由于在現實的工作生活中,需要測量的模擬電壓范圍是比較大的,所以必須要對輸入電壓作分壓處理,而各個數據處理芯片的處理電壓范圍不同,則各種方案的分段也不同。下面介紹兩種數字電壓表的設計方案。

方案一:由數字電路及芯片構建。

這種設計方案是由模擬電路與數字電路兩大部分組成,模擬部分包括輸入放大器、A/D轉換器和基準電壓源;數字部分包括計數器、譯碼器、邏輯控制器、振蕩器和顯示器。其中,A/D轉換器是它的核心器件,它將輸入的模擬量轉換成數字量。模擬電路和數字電路是相互聯系的,由邏輯控制電路產生控制信號,按規定的時序將A/D轉換器中個組模擬開關接通或斷開,保證A/D轉換正常進行。A/D轉換結果通過計數譯碼電路變換成段碼,最后驅動顯示器顯示出相應的數值。此方案設計的優點是設計成本低,能夠滿足一般的電壓測量。但設計不靈活,都是采用純硬件電路,很難將其在原有的基礎上進行擴展。

方案二:由單片機系統及A/D轉換芯片構建。

這種方案是利用單片機系統與模數轉換芯片、顯示模塊等的結合構建數字電壓表。由于單片機的發展已經成熟,利用單片機系統的軟硬件結合,可以組裝出許多的應用電路來。此方案的原理是模/數(A/D)轉換芯片的基準電壓源,被測量電壓輸入端分別輸入基準電壓和被測電壓。模/數(A/D)轉換芯片將被被測量電壓輸入端所采集到的模擬電壓信號轉換成相應的數字信號,然后通過對單片機系統進行軟件編程,使單片機系統能按規定的時序來采集這些數字信號,通過一定的算法計算出被測量電壓的值。最后單片機系統將計算好了的被測電壓值按一定的時序送入顯示電路模塊加以顯示。此方案不僅能夠繼承方案一的各種優點,還能改進方案一設計的不靈活,可以在原有的基礎上進行擴展[4]。

綜合比較以上兩種設計方案的各方面的優點及現在所設計的電壓表的實用性,選擇第二種電壓表的設計方案,及由單片機及數字芯片構建的方法來實現數字電壓表的設計。

2.2.3  A/D轉換模塊的選擇

方案一:A/D轉換器采用ICL7107型三位半顯示的芯片,輸入信號,流經取樣電路取樣后送到ICL7107型三位半A/D轉換器,只需要很少的簡單外圍元件,就可以組成數字電流表模塊,直接驅動三位半LED顯示器顯示,最后輸入電流在顯示部件顯示。由于ICL7107做的LED數字電壓表最大的缺點是數字亂跳不穩定,特別是最后一位,所以不采用此方案。

方案二:A/D轉換器采用ADC0804轉換芯片,其中A/D轉換器用于實現模擬量數字量的轉換,單電源供電。ADC0804是屬于連續漸進式的A/D轉換器,這類型的A/D轉換器除了轉換速度快、分辨率高外,還有價錢便宜等優點。 ADC0804是采用單通道模擬量輸入,8位數字量輸出功能的A/D轉換器,轉換時間為100us,模擬輸入電壓范圍為0V~5V,具有參考電壓輸入端,內含時鐘發生器,不需要調零,因此,本次設計選用ADC0804作為AD轉換芯片。

2.2.4 接口模塊的選擇

方案一:使用數字電路實現,采用譯碼芯片CD4543作為接口芯片,這種方案能實現功能,但穩定性不高,結構復雜。

方案二:采用AT89S52單片機作為系統的控制單元,通過A/D轉換將被測量轉換為數字量送入單片機中,再由單片機產生顯示碼送入顯示模塊顯示。此方案各種功能易于實現,成本低、功耗低,顯示穩定。

通過比較,選擇方案二。

2.2.5 微控制器的選擇

目前單片機種類很多,如何選擇性價比最低、開發容易、開發周期最短的產品,是工程師考慮的主要問題之一。目前我國銷售的主流MCU產品有8051、PIC、MCP430、STC、AVR等系列的單片機,,先購單片機總體上主要從兩方面考慮,其一是目標系統需要哪些資源,其二是根據成本的控制選擇價格最低的產品,即所謂的“性價比最高”原則。資源方面考慮的重要指標有速度、位數、電壓、功耗、存儲容量、系統擴展與驅動能力、抗干擾能力,是否嵌入ADC、DAC等其他的特殊要素。另外軟件開發的簡易性也是重要考慮的因素。例如MCS-51系列作為傳統的8位單片機,現在仍在廣泛的應用就是因為它具有非常方便的開發工具、集成環境和軟件資源。成本方面主要看選擇哪家廠商的產品。實際上同一類產品有很多兼容系列,不同的廠家價格有很大差別。更重要的是要選擇供貨服務好,能提供良好技術支持,信譽高的代理經銷商。

AT89S系列與AT89C系列單片機的應用與區別:

              AT89C52是一個低電壓,高性能CMOS 8位單片機,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器和Flash存儲單元,功能強大的AT89C52單片機可為您提供許多較復雜系統控制應用場合。

AT89S52是一個低功耗,高性能CMOS 8位單片機,片內含8k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準 MCS-51指令系統及80C51引腳結構,芯片內集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S52可為許多嵌入式控制應用系統提供高性價比的解決方案。因此為了下載的方便我采取AT89S52的單片機。

2.3 系統硬件分析

本設計是以單片機AT89S52和A/D轉換器ADC0804為核心,測量連續信號的數字電壓表。硬件主要由:5V直流電源供電模塊,單片機AT89S52模塊,AD轉換模塊,電壓顯示模塊,量程轉換模塊組成。

數字電壓表的總體框圖如圖2.1所示:

圖2.1 系統總體框圖

2.3.1 AT89S52單片機簡介

AT89S52是一個低功耗,高性能CMOS 8位單片機,片內含4k Bytes ISP(In-system programmable)的可反復擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統及80C51引腳結構,芯片內集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S52可為許多嵌入式控制應用系統提供高性價比的解決方案。

AT89S52實物圖如圖2.2所示:

                  

圖2.2 AT89S52實物圖

2.3.2 LCD1602顯示器簡介

普通的LED數碼管只能用來顯示數字,如果要顯示英文、漢字或者圖像,則必須使用液晶顯示器。液晶顯示器的英文名稱是Liquid Crystal Display,簡稱LCD。液晶顯示器作為顯示器件具有體積小、重量輕、功耗低等優點,所以LCD日漸成為各種便攜式電子產品的理想顯示器,如電子表、計算器上的顯示器等。

根據LCD的顯示內容劃分,可以分為段式LCD、字符式LCD和點陣式LCD3種。其中,字符式LCD以其價廉、顯示內容豐富、美觀、使用方便等特點,成為LED數碼管的理想替代品。

1602LCD顯示屏實物圖如圖2.3所示:

                       

                                                 圖2.3 LCD1602顯示屏實物圖

2.3.3 ADC0804轉換芯片簡介

ADC0804 是8 位ADC0804是屬于連續漸進式的A/D轉換器。ADC0804是單通道模擬量輸入,8位數字量輸出功能的A/D轉換器,轉換時間為100us,模擬輸入電壓范圍為0V~5V,具有參考電壓輸入端,內含時鐘發生器,不需要調零。

ADC0804的控制信號時序圖,由下圖2.4所示。

圖2.4 ADC0804控制信號時序圖
ADC0804的主要電氣特性如下:
  • 工作電壓:+5V,即VCC=+5V
  • 模擬輸入電壓范圍:0~+5V,即0≤Vin≤+5V。
  • 分辨率:8位,即分辨率為1/28=1/256,轉換值介于0~255之間。
  • 轉換時間:100us(fCK=640KHz時)。
  • 轉換誤差:±1LSB。
  • 參考電壓:2.5V,即Vref=2.5V。

  系統硬件電路設計3.1系統組成

本系統是基于單片機的數字電壓表電路設計,該系統主要由以下幾個部分組成:單片機、AD轉換、顯示設備、量程轉換,過壓保護等。其中以單片機作為主控芯片控制系統中的A/D轉換電路,量程轉換電路和液晶顯示電路,以實現電壓測量功能。

3.2電源接口電路

由于本系統各模塊均需+5V直流電源供電,故只需設計+5V直流電源電路即可。

電源電路采用六腳自鎖開關控制,其電源兩端并上兩個濾波電容,其中D1為電源指示燈,R3為D1的限流電阻,如圖3.1所示:

圖3.1系統電源接口電路

3.3 AT89S52單片機最小系統電路

    AT89S52是美國ATMEL公司生產的低電壓,高性能CMOS 8位單片機,片內含8KB可反復擦寫的Flash只讀程序存儲器和128 字節隨機存取數據存儲器。該器件采用ATMEL公司高密度、非易失性存儲技術制造,兼容標準MCS-51指令系統,靈活應用于各種控制領域。

   AT89S52單片機最小系統電路由主控電路、復位電路、晶振電路以及電源電路四部分組成。

3.3.1 主控芯片AT89S52

主控電路主要由單片機AT89S52芯片組成,主控芯片電路圖如圖3.2所示,電路中U1為單片機AT89S52,P4為單片機P0的上拉排阻,C5為單片機去耦電容。

圖3.2 AT89S52芯片

3.3.2 復位電路

   AT89S52單片機在啟動運行時或者出現死機時需要復位,使CPU以及其他功能部件處于一個確定的初始狀態,并從這個狀態開始工作。復位電路產生的復位信號(高電平有效)由RST引腳送入到內部的復位電路,對AT89S52單片機進行復位,復位信號要持續兩個機器周期(24個時鐘周期)以上,才能使AT89S52單片機可靠復位。

   AT89S52單片機復位電路如圖3.3所示:

圖3.3復位電路圖

復位電路工作原理:上電瞬間RST引腳的電位與VCC等電位,RST引腳為高電平,隨著電容C6充電電流的減少,RST引腳的電位不斷下降,其充電時間常數為T=R9*C6=100ms,此時間常數足以RST引腳在保持為高電平的時間內完成復位操作。

當單片機已在運行當中時,按下復位鍵S1后松開,也能使單片機RST引腳維持一段時間的高電平,從而實現AT89S52單片機手動復位。

3.3.3 晶振電路

XTAL1和XTAL2是片內振蕩電路輸入端,這兩個端子用來外接石英晶體和微調電容,即用來連接AT89S52單片機片內OSC的定時反饋回路。晶振起振后要能在XTAL2端輸出一個3V左右的正弦波,以便使片內OSC電路按晶振相同頻率自激振蕩。通常,OSC的輸出時鐘頻率FOSC為6MHZ—16MHZ,典型值為12MHZ或11.0592MHZ。電容C5和C6幫助晶振起振,典型值為30pf,調節它們可以達到微調FOSC的目的。本系統中,晶振為12MHZ,C5=C6=30pf。

晶振電路如圖3.4所示:

圖3.4 晶振電路圖

3.4 LCD1602顯示電路

LCD1602字符液晶的8位數據口接單片機的P0口,其三個控制信號腳分別接單片機的P1.0~P1.2腳,圖中電位器R0(3腳)起著調節LCD1602的分辨率的作用。

LCD1602顯示接口電路如圖3.5所示:

圖3.5 1602顯示器接口電路

3.6 A/D轉換電路
A/D轉換電路外接電路如圖3.6所示:圖中U1為ADC0804芯片,電阻 R2=10KΩ、電容C5=150PF決定A/D轉換速率,則內部的轉換頻率是fCK=1/(1.1×10 KΩ×150PF)=606KHz,電容C1為ADC0804的去耦電容。

圖3.6 A/D轉換電路外接電路圖

3.7 量程轉換電路

量程轉換電路如圖所示3.7所示:其中P8為模擬電壓輸入端,可輸入0~20V電壓,R10,R11,R12三個分壓電阻和繼電器RE1,RE2控制電壓衰減倍數,使得輸入到ADC0804的模擬電壓不超過5V,D2為5v穩壓管,作為ADC0804輸入端過壓保護。

         

圖3.7 量程轉換電路


章 系統軟件設計4.1 系統主程序流程圖

系統上電啟動,首先配置好各個模塊端口,初始化液晶顯示和定時器,依次調用各功能模塊。在主程序中實時顯示系統狀態和當前測量的電壓值,并實時掃描中斷。在中斷服務子程序中,檢測按鍵和當前電壓值。系統總流程圖如圖4.1所示:

                                                                                                  圖4.1 系統總流程圖

4.2 LCD1602液晶流程圖
系統上電后,配置好液晶端口,然后對LCD1602進行初始化,再調用LCD1602的讀寫函數,可將采集處理后的電壓數值實時顯示。當電壓值在量程臨界值是,液晶顯示警告信息。
            
                                                                                                  圖4.2 LCD1602 液晶顯示流程圖
4.3 ADC0804流程圖
本系統采用中斷掃描的方式,定時對外部電壓進行采樣。系統上電初始,首先初始化定時器,等待定時器中斷。中斷到達,首先選擇最高量程,啟動AD轉換,比較輸出數值,選擇合適的量程,再次啟動ADC0804,轉換完成后對數據進行處理,再送入LCD1602中顯示。
ADC0804的A/D轉換流程圖如圖4.3所示:
                         圖4.3 A/D轉換流程圖
章  性能測試與分析

基于單片機的數字電壓表在設計中整個系統已經由設計圖紙走向了模型機,標志著整個開發系統的初步成功。系統的設計工作進入到另外一個階段——綜合調試階段。不過在系統的設計與實現中,調試的工作是伴隨著整個系統開發過程的始終。只有經過所有各自軟件程序的調試之后所剩下的公共的接口部分就需要進行聯調了。

5.1 各模塊獨立測試

系統制作完成后,首先測試各器件是否焊接良好,是否存在漏焊、虛焊等現象。檢查整個電路的線路是否存在短路或斷路。檢測電源電路,及各器件電源和地是否連接正常。

檢測無誤后,安裝好單片機,給電路上電,開始測試單片機最小系統。主要檢查復位電路,時鐘晶振電路,P0口上拉排阻及EA引腳是否連接正常。測試單片機各引腳電壓是否正常。

單片機最小系統測試無誤后,可編制測試小程序,分別測試LCD1602、ADC0804電路是否正常工作,各模塊單獨測試,并且逐步深入,以防止芯片損壞。

5.2 系統聯合調試

經過各部分的調試之后,就進入到了整個系統的聯合調試之中。聯合調試的主要目的就是查看系統各部分同時運行時的協調狀況。在測試過程中,主要根據系統運行的條件和期望表現進行模擬,即模擬工作環境,查看系統的輸出結果是否與之相符。如果不相符則作記錄。

系統調試之初,首先利用Proteus仿真軟件和Keil編程軟件構成仿真圖,仿真圖如圖5.1所示,在仿真環境下對系統進行調試、測試,逐步深入。在仿真環境下,系統能正常運行,則在實物上進行最終調試,待一次聯調基本結束后生成測試報告,并得到反饋信息,并再次進行修改—局部聯調—測試,等到經過協調之后再次進行系統聯調直到系統穩定運行為止。

圖5.1 系統仿真圖

5.3 系統運行評估

經過聯調之后,整個系統就處于性能評估之中,性能評估在實驗室條件下對系統整體性能測定分析,主要有:電壓測量精度,量程轉換,顯示效果等。分析系統的優勢和不足,并嘗試提出改進措施,為今后進一步研究提供依據。

  
   通過這次的畢業設計,使我在關于電子方面的實際動手能力有很大的提高,在元器件的布置、安裝、焊接、調試等方面都有很大的進步。我在這項實踐中主要負責實物的制作階段,初期的時候由于對這個數字電壓表沒有一個實質性的概念,所以一時之間不知道該如何下手,后來通過查閱大量相關資料才漸漸的有了一點頭緒。在原理圖的設計過程中遇到很多難題,通過仿真,實驗,不斷對電路進行改進,逐步深入,將問題一一解決。最終將設計付諸實踐,做出實物。

從總體來說,本文重點是實現數字電壓表的功能以及對單片機的外圍電路等進行了基礎性的研究,由于時間和條件的限制,雖然取得了一定的效果,但尚存在一定不足之處,比如測量大電壓時精度不夠,保護電路不完善。并且現實中各種模擬量特點不一樣,系統設計考慮不夠全面,應用范圍有限。這些問題主要由于原理設計及程序處理的原因,不能及時解決,有待今后進一步的研究。

回顧過去,展望未來,隨著科技的發展,出現的各種高級芯片和技術,能夠很大程度上提高電壓表的精確性和穩定性。只有通過不斷的學習,不斷的探索,這樣才能把自己的知識更好的運用與實踐中。

參考文獻(References)

[1]李廣第.單片機基礎[M].北京航空航天出版社.2007.

[2]宋鳳娟,孫軍,李國忠.基于89c51單片機的數字電壓表設計[J].《制造業自動化》.207年第02期.

[3]翟蓓蓓,孫運強,姚愛琴.液晶顯示數字電壓表的設計[J].《山西電子技術》.2011年第05期

[4]陳尚松,郭慶,雷加.電子測量與儀器[M].電子工業出版社. 2009.

[5]吳金戍.8051 單片機實踐與應用[M].清華大學出版社.2002.

[6]黃志偉.全國大學生電子競賽培訓教程[M]. 電子工業出版社.2011.

[7]賈培軍,董軍堂,高延華.一種量程自動切換數字電壓表的設計[J].山西電子技術。2007年第06期.

[8]史九貴 編著,基于Altium Designer的原理圖與PCB設計[M] .北京:機械工業出版社,2010.

[9]趙建領,薛圓圓等.51單片機開發與應用技術詳解[M].北京:電子工業出版社.2009.
[10]王東峰,王會良,董冠良. 單片機C語言應用100例[M].北京:電子工業出版社.2009.        

  

通過這次畢業設計,我鞏固了以前學過的很多知識,培養了分析與解決問題的能力,更使我檢索和獲取知識的能力的到了很大的提高,這跟老師們給我的指導是分不開的。本次畢業設計在吳靜進老師的悉心指導和自己的積極努力下完成的。在他的諄諄教導下,我按時完成了設計,沒有他的嚴要求,我恐怕就會放縱自己。謹此感謝學院對于這次學生科研的大力支持并向指導老師致以崇高的敬意和衷心的感謝!

附錄1: 系統原理圖及實物圖
附圖一.系統原理圖
附圖二 作品實物圖

  1. #include "reg52.h"
  2. #include "lcd1602.h"
  3. #include<intrins.h>
  4. #define uint unsigned int
  5. #define uchar unsigned char
  6. //sbit P13=P1^3;//警示燈
  7. //sbit key1=P3^1;
  8. //sbit key2=P3^2;
  9. sbit P34=P3^4;
  10. sbit P33=P3^3;
  11. sbit adrd=P3^6;                        
  12. sbit adwr=P3^7;
  13. sbit cs=P3^5;
  14. uchar n=0;
  15. uchar temp=0;
  16. uchar temp1=0;
  17. uchar temp2=0;
  18. uchar b=0,j=0;
  19. float avr=0;
  20. uchar c[8];
  21. uchar table1[]="Digital";
  22. uchar table2[]="Voltage Meter";
  23. //延時程序
  24. void delayms(uint n)
  25. {
  26.               uint i,j;
  27.               for(i=n;i>0;i--)
  28.                             for(j=120;j>0;j--);

  29. }
  30. //電壓顯示程序
  31. void displayv()
  32. {                           
  33.                             uint val=0;
  34.                             val=avr*100;            
  35.             
  36.                             c[0]=val/1000+'0';            
  37.                             c[1]=val/100%10+'0';
  38.                             c[2]='.';
  39.                             c[3]=val/10%10+'0';
  40.                             c[4]=val%10+'0';
  41.                             c[5]='v';
  42.                             c[6]='\0';
  43. }
  44. //主函數
  45. void main()
  46. {
  47.               LCD_Initial();            
  48.               TMOD=0x01;
  49.     TH0 = (65536 - 10000)/256;
  50.     TL0 = (65536 - 10000)%256;
  51.               EA=1;
  52.               ET0=1;            
  53.               GotoXY(5,0);
  54.     Print(table1);
  55.               GotoXY(2,1);
  56.     Print(table2);
  57.               delayms(1000);
  58.               delayms(1000);
  59.               delayms(1000);
  60.               GotoXY(0,0);
  61.     Print("                  ");
  62.               GotoXY(0,1);
  63.     Print("                  ");            
  64.               P33=1;
  65.               P34=1;
  66.               GotoXY(2,0);
  67.                   Print(table2);
  68.               TR0=1;            
  69.               while(1)
  70.               {
  71.               }
  72. }
  73. void intt0() interrupt 1
  74. {
  75.               TH0=(65536-10000)/256;
  76.               TL0=(65536-10000)%256;
  77.               n++;
  78.               if(n==10)
  79.               {
  80.                             P33=1;
  81.                             P34=1;
  82.                             delayms(10);
  83.                             cs=0;
  84.                             adwr=1;                     
  85.                   adwr=0;                                         
  86.                   _nop_();
  87.                             _nop_();
  88.                             adwr=1;            
  89.                   delayms(10);                                       
  90.                             adrd=0;
  91.                             //temp=0;              
  92.                             b=P2;                                         
  93.                             adrd=1;
  94.                             cs=1;                  
  95.                             adwr=0;
  96.                             for(j=0;j<7;j++)//將變b的值反序(因AD0809數據口接反了)
  97.                             {
  98.                                           if(b&(0x01<<j))
  99.                                                         temp|=(0x80>>j);
  100.                                           else
  101.                                                         temp&=~(0x80>>j);
  102.                             }
  103.                             if(temp<64)
  104.                             {
  105.                             P33=0;
  106.                             P34=1;
  107.                             delayms(10);
  108.                             cs=0;
  109.                             adwr=1;                     
  110.                   adwr=0;                                         
  111.                   _nop_();
  112.                             _nop_();
  113.                             adwr=1;            
  114.                   delayms(10);                                       
  115.                             adrd=0;
  116.                             //temp=0;              
  117.                             b=P2;                                         
  118.                             adrd=1;
  119.                             cs=1;                  
  120.                             adwr=0;
  121.                             for(j=0;j<7;j++)//將變b的值反序(因AD0809數據口接反了)
  122.                             {
  123.                                           if(b&(0x01<<j))
  124.                                                         temp1|=(0x80>>j);
  125.                                           else
  126.                                                         temp1&=~(0x80>>j);
  127.                             }
  128.                             if(temp1<128)
  129.                             {
  130.                             P33=0;
  131.                             P34=0;
  132.                             delayms(10);
  133.                             cs=0;
  134.                             adwr=1;                     
  135.                   adwr=0;                                         
  136.                   _nop_();
  137.                             _nop_();
  138.                             adwr=1;            
  139.                   delayms(10);                                       
  140.                             adrd=0;
  141.                             //temp=0;              
  142.                             b=P2;                                         
  143.                             adrd=1;
  144.                             cs=1;                  
  145.                             adwr=0;
  146.                             for(j=0;j<7;j++)//將變b的值反序(因AD0809數據口接反了)
  147.                             {
  148.                                           if(b&(0x01<<j))
  149.                                                         temp2|=(0x80>>j);
  150.                                           else
  151. ……………………

  152. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

完整的Word格式文檔51黑下載地址:
基于單片機的數字電壓表畢業設計論文.doc (549 KB, 下載次數: 378)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏12 分享淘帖 頂5 踩
回復

使用道具 舉報

沙發
ID:424681 發表于 2018-11-11 21:01 | 只看該作者
謝謝樓主
回復

使用道具 舉報

板凳
ID:485218 發表于 2019-3-5 21:57 | 只看該作者
謝謝
對我非常有幫助
回復

使用道具 舉報

地板
ID:508458 發表于 2019-4-10 09:17 | 只看該作者
感謝樓主 幫助很大
回復

使用道具 舉報

5#
ID:490858 發表于 2019-4-10 16:47 | 只看該作者
謝謝分享
回復

使用道具 舉報

6#
ID:547097 發表于 2019-5-25 18:32 | 只看該作者
感謝,非常好,感謝
回復

使用道具 舉報

7#
ID:307576 發表于 2019-5-27 13:21 | 只看該作者
感謝,很棒
回復

使用道具 舉報

8#
ID:555803 發表于 2019-6-5 17:15 | 只看該作者
謝謝樓主,很有幫助
回復

使用道具 舉報

9#
ID:579476 發表于 2019-7-7 17:41 | 只看該作者
謝謝樓主,正在做課程設計
回復

使用道具 舉報

10#
ID:582049 發表于 2019-7-11 17:14 | 只看該作者
樓主是出題的嗎,代碼都是不全的哎
回復

使用道具 舉報

11#
ID:667494 發表于 2019-12-18 16:17 | 只看該作者
賊棒的
回復

使用道具 舉報

12#
ID:667494 發表于 2019-12-18 16:26 | 只看該作者
感謝樓主 幫助很大
回復

使用道具 舉報

13#
ID:659659 發表于 2019-12-19 00:39 | 只看該作者
程序運行顯示缺少lcd1602.h
回復

使用道具 舉報

14#
ID:305511 發表于 2020-2-6 20:00 | 只看該作者
很好呀 值得學習!
回復

使用道具 舉報

15#
ID:632634 發表于 2020-4-6 09:52 來自手機 | 只看該作者
幫助很大感謝樓主
回復

使用道具 舉報

16#
ID:268118 發表于 2020-4-11 02:27 | 只看該作者
感謝樓主的分享。
回復

使用道具 舉報

17#
ID:686387 發表于 2020-4-11 14:17 | 只看該作者
謝謝樓主分享
回復

使用道具 舉報

18#
ID:874404 發表于 2021-1-7 10:09 | 只看該作者
謝謝樓主,寫的非常棒
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 人人干在线视频 | 亚洲精品一区二区三区蜜桃久 | 久久成人免费 | 国产精品视频在线观看 | 在线国产一区二区 | 日韩精品在线观看视频 | 韩日一区 | 欧美一区二区三区 | 国产精品久久国产精品 | 99国产欧美| 精品久久久网站 | 久久免费精品视频 | 国产午夜影院 | 九九av| 国产精品毛片一区二区在线看 | 国产成人免费 | 久久精品aaa | 国产视频福利在线观看 | 久久精品色欧美aⅴ一区二区 | 欧美aⅴ| 久久成人人人人精品欧 | 亚洲人成人一区二区在线观看 | 一区二区精品 | 91传媒在线观看 | 日本在线视频不卡 | 亚洲国产精品一区二区三区 | 精品日韩一区二区 | 91文字幕巨乱亚洲香蕉 | 97久久精品午夜一区二区 | 蜜桃av鲁一鲁一鲁一鲁 | 一区二区福利视频 | 91精品国产91久久久久久吃药 | 人妖av| 色综合美女 | 一区二区三区电影在线观看 | 91精品国产综合久久久久久 | 国产精品入口麻豆www | 精品日韩一区二区 | 国产一区免费 | 精品国产一区二区三区免费 | 国产精品亚洲欧美日韩一区在线 |