單片機課程設計數字電壓表_第1頁
單片機課程設計數字電壓表_第2頁
單片機課程設計數字電壓表_第3頁
單片機課程設計數字電壓表_第4頁
單片機課程設計數字電壓表_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、單片機課程設計 電壓表的設計學院:信子信息工程學院專業:電子信息工程技術班級:電子信息工程技術二班 學號:11137241* 11137241*姓名: * *目錄1 引言12設計原理及要求22.1數字電壓表的實現原理22.2數字電壓表的設計要求23軟件仿真電路設計23.1設計思路23.2仿真電路圖33.3設計過程33.4 AT89C51的功能介紹4簡單概述4主要功能特性53.4.3 AT89C51的引腳介紹53.5 ADC0809的引腳及功能介紹7芯片概述73.5.2 引腳簡介83.5.3 ADC0809的轉換原理83.6 74LS373芯片的引腳及功能8芯片概述8引腳介紹93.7 LED數碼

2、管的控制顯示93.7.1 LED數碼管的模型9LED數碼管模型如圖3-6所示。93.7.2 LED數碼管的接口簡介94系統軟件程序的設計94.1 主程序104.2 A/D轉換子程序114.3 中斷顯示程序125使用說明與調試結果136總結13參考文獻14附錄1 源程序15附錄2原理電路191 引言在電量的測量中,電壓、電流和頻率是最基本的三個被測量,其中電壓量的測量最為經常。而且隨著電子技術的發展,更是經常需要測量高精度的電壓,所以數字電壓表就成為一種必不可少的測量儀器。數字電壓表簡稱DVM,它是采用數字化測量技術,把連續的模擬量轉換成不連續、離散的數字形式并加以顯示的儀表。由于數字式儀器具有

3、讀數準確方便、精度高、誤差小、測量速度快等特而得到廣泛應用1。 傳統的指針式刻度電壓表功能單一,進度低,容易引起視差和視覺疲勞,因而不能滿足數字化時代的需要。采用單片機的數字電壓表,將連續的模擬量如直流電壓轉換成不連續的離散的數字形式并加以顯示,從而精度高、抗干擾能力強,可擴展性強、集成方便,還可與PC實時通信。數字電壓表是諸多數字化儀表的核心與基礎2。以數字電壓表為核心,可以擴展成各種通用數字儀表、專用數字儀表及各種非電量的數字化儀表。目前,由各種單片機和A/D轉換器構成的數字電壓表作全面深入的了解是很有必要的。最近的幾十年來,隨著半導體技術、集成電路(IC)和微處理器技術的發展,數字電路和

4、數字化測量技術也有了巨大的進步,從而促使了數字電壓表的快速發展,并不斷出現新的類型4。數字電壓表從1952年問世以來,經歷了不斷改進的過程,從最早采用繼電器、電子管和形式發展到了現在的全固態化、集成化(IC化),另一方面,精度也從0.01%-0.005%。目前,數字電壓表的內部核心部件是A/D轉換器,轉換的精度很大程度上影響著數字電壓表的準確度,因而,以后數字電壓表的發展就著眼在高精度和低成本這兩個方面3。本文是以簡易數字直流電壓表的設計為研究內容,本系統主要包括三大模塊:轉換模塊、數據處理模塊及顯示模塊。其中,A/D轉換采用ADC0808對輸入的模擬信號進行轉換,控制核心AT89C51再對轉

5、換的結果進行運算處理,最后驅動輸出裝置LED顯示數字電壓信號2設計原理及要求本設計是利用單片機AT89C51與ADC0809設計一個數字電壓表,測量05V之間的直流電壓值,四位數碼顯示。2.1數字電壓表的實現原理 ADC0809是8位的A/D轉換器。當輸入電壓為5.00V時,輸出的數據值為255(0FFH),因此最大分辨率為0.0196(5/255)。ADC0809具有8路模擬量輸入端口,通過3位地址輸入端能從8路中選擇一路進行轉換。如每隔一段時間依次輪流改變3位地址輸入端的地址,就能依次對8 路輸入電壓進行測量。LED數碼管顯示采用軟件譯碼動態顯示。通過按鍵選擇可對8路循環顯示,也可單路顯示

6、,單路顯示可通過按鍵選擇顯示的通道數。2.2數字電壓表的設計要求可以測量05V范圍內的3路直流電壓值。在4位LED數碼管上輪流顯示各路電壓值或單路選擇顯示,其中3位LED數碼管顯示電壓值,顯示范圍為0.00V5.00V,1位LED數碼管顯示路數,3路分別為0-2。要求測量的最小分辨率為0.02V。3軟件仿真電路設計3.1設計思路 多路數字電壓表應用系統硬件電路由單片機、A/D轉換器、數碼管顯示電路和按鍵處理電路組成,由于ADC0808在進行A/D轉換時需要有CLK信號,本試驗中ADC0808的CLK直接由外部電源提供為500kHz的方波。由于ADC0809的參考電壓VREFVCC,所以轉換之后

7、的數據要經過數據處理,在數碼管上顯示出電壓值。實際顯示的電壓值(D/256*VREF) ADC0808采用逐次逼近法轉換,把模擬電壓轉換成16進制的D,由于是對直流電壓05V進行采集,所以D對應的電壓為V0 ,我們的目的就是要把V0顯示在LED顯示器上,因為單片機不好進行小數點計算,所以有:V0=2*D擴大了100倍,擴大100倍后的結果高八位放寄存器B,低八位放寄存器A,分寄存器B為0或不為0的情況進行存取數據,得到的結果個位放入R0,十位放入R1,通過查表使之顯示在LED顯示器。3.2仿真電路圖用Protues軟件仿真設計的電路如圖3-1所示。圖3-1 仿真電路3.3設計過程時鐘

8、電路復位電路單片機LED顯示電路A/D轉換測量電壓輸入電路 系統結構框圖系統采用12M晶振產生脈沖做AT89C51的內部時鐘信號,通過軟件設置單片機的內部定時器T0產生中斷信號。利用中斷設置單片機的P2.4口取反產生脈沖做AT89C51的時鐘信號。通過按鍵選擇八路通道中的一路,將該路電壓送入ADC0809相應通道,單片機軟件設置ADC0809開始A/D轉換,轉換結束ADC0809的EOC端口產生高電平,同時將ADC0809的EO端口置為高電平,單片機將轉換后結果存到片內RAM。系統調出顯示子程序,將保存結果轉化為0.00-5.00V分別保存在片內RAM;系統調出顯示子程序,將轉化后數據查表,輸

9、出到LED顯示電路,將相應電壓顯示出來,程序進入下一個循環3.4 AT89C51的功能介紹3.4.1簡單概述AT89C51是一種帶4K字節閃存可編程可擦除只讀存儲器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C51是一種帶2K字節閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATM

10、EL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。外形及引腳排列如圖3-2所示。圖3-2 AT89C51芯片模型3.4.2主要功能特性(1) 4K字節可編程閃爍存儲器。 (2) 32個雙向I/O口;128×8位內部RAM 。(3) 2個16位可編程定時/計數器中斷,時鐘頻率0-24MHz。 (4) 可編程串行通道。 (5) 5個中斷源。 (6) 2個讀寫中斷口線。 (7) 低功耗的閑置和掉電模式。(8) 片內振蕩器和時鐘電路。3.4.3 AT89C51的引腳介紹89C51單片機多采用4

11、0只引腳的雙列直插封裝(DIP)方式,下面分別簡單介紹。(1)電源引腳電源引腳接入單片機的工作電源。Vcc(40引腳):+5V電源。GND(20引腳):接地。(2)時鐘引腳XTAL1(19引腳):片內振蕩器反相放大器和時鐘發生器電路的輸入端。XTAL2(20引腳):片內振蕩器反相放大器的輸出端。圖3-3 電源接入方式(3)復位RST(9引腳)在振蕩器運行時,有兩個機器周期(24個振蕩周期)以上的高電平出現在此引腳時,將使單片機復位,只要這個腳保持高電平,51芯片便循環復位。(4)/Vpp(31引腳)為外部程序存儲器訪問允許控制端。當它為高電平時,單片機讀片內程序存儲器,在PC值超過0FFFH后

12、將自動轉向外部程序存儲器。當它為低電平時,只限定在外部程序存儲器,地址為0000HFFFFH。Vpp為該引腳的第二功能,為編程電壓輸入端。(5)ALE/(30引腳)ALE為低八位地址鎖存允許信號。在系統擴展時,ALE的負跳沿江P0口發出的第八位地址鎖存在外接的地址鎖存器,然后再作為數據端口。為該引腳的第二功能,在對片外存儲器編程時,此引腳為編程脈沖輸入端。(6)(29引腳)片外程序存儲器的讀選通信號。在單片機讀片外程序存儲器時,此引腳輸出脈沖的負跳沿作為讀片外程序存儲器的選通信號。(7) pin39-pin32為P0.0-P0.7輸入輸出腳,稱為P0口。P0是一個8位漏極開路型雙向I/O口。內

13、部不帶上拉電阻,當外接上拉電阻時,P0口能以吸收電流的方式驅動八個LSTTL負載電路。通常在使用時外接上拉電阻,用來驅動多個數碼管。 在訪問外部程序和外部數據存儲器時,P0口是分時轉換的地址(低8位)/數據總線,不需要外接上拉電阻。(8)Pin1-Pin8為P1.0-P1.7輸入輸出腳,稱為P1口,是一個帶內部上拉電阻的8位雙向I/0口。P1口能驅動4個LSTTL負載。(9)Pin21-Pin28為P2.0-P2.7輸入輸出腳,稱為P2口。P2口是一個帶內部上拉電阻的8位雙向I/O口,P2口能驅動4個LSTTL負載。端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash程序存儲器

14、編程時,接收高8位地址和控制信息。在訪問外部程序和16位外部數據存儲器時,P2口送出高8位地址。而在訪問8位地址的外部數據存儲器時其引腳上的內容在此期間不會改變。 (10)Pin10-Pin17為P3.0-P3.7輸入輸出腳,稱為P3口。P3口是一個帶內部上拉電阻的8位雙向I/O口,P2口能驅動4個LSTTL負載,這8個引腳還用于專門的第二功能。端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash程序存儲器編程時,接控制信息。3.5 ADC0809的引腳及功能介紹3.5.1芯片概述ADC0809是一種典型的A/D轉換器。它是由8位A/D轉換器,一個8路模擬量開關,8位模擬量地址

15、鎖存譯碼器和一個三態數據輸出鎖存器組成; +5V單電源供電,轉化 時間在100us左右;內部沒有時鐘電路,故需外部提供時鐘信號。芯片模型如圖3-4所示。圖3-4ADC0808芯片模型3.5.2 引腳簡介 (1) IN0IN7:8路模擬量輸入端。(2) D0D7:8位數字量輸出端口。(3) START:A/D轉換啟動信號輸入端。(4) ALE:地址鎖存允許信號,高電平有效。(5) EOC:輸出允許控制信號,高電平有效。(6) OE: 輸出允許控制信號,高電平有效。(7) CLK:時鐘信號輸入端。(8)A、B、C:轉換通道地址,控制8路模擬通道的切換。A、B、C分別與地址線或數據線相連,三位編碼對

16、應8個通道地址端口,A、B、C=000111分別對應IN7IN0通道的地址端口。3.5.3 ADC0809的轉換原理ADC 0809 采用逐次比較的方法完成A/D轉換,由單一的+5V電源供電。片內帶有鎖存功能的8路選1的模擬開關,由A、B、C的編碼來決定所選的通道。ADC0809完成一次轉換需100s左右,它具有輸出TTL三態鎖存緩沖器,可直接連接到AT89C51的數據總線上。通過適當的外接電路,ADC0809可對05V的模擬信號進行轉換。3.6 74LS373芯片的引腳及功能3.6.1芯片概述74LS373是一種帶有三態門的8D鎖存器,其在本設計中是鎖存P0口的低8位地址,芯片模型如圖3-5

17、所示。圖3-5 74LS373芯片模型3.6.2引腳介紹(1) D0D7:8位數據輸入線;(2) Q0Q7:8位數據輸出線(3) G:數據輸入鎖存選通信號。當加到該引腳的信號為高電平時,外部數據選通到內部鎖存器,負跳變時,數據鎖存到鎖存器中。(4):數據輸出允許信號,低電平有效。當該信號為低電平時,三態門打開,鎖存器中的數據輸出到數據輸出線上,當該信號為高電平時,輸出線為高阻態。3.7 LED數碼管的控制顯示3.7.1 LED數碼管的模型LED數碼管模型如圖3-6所示。圖3-6 LED數碼管模型3.7.2 LED數碼管的接口簡介LED 的段碼端口AG和DP分別接至AT89C51的P1.0P1.

18、7口,位選端14分別接至P2.0、P2.1、P2.2、P2.34系統軟件程序的設計多路數字電壓表系統軟件程序主要有主程序、A/D轉換子程序和中斷顯示程序組成。4.1 主程序如下4.1圖為程序軟件設計流程圖 其中(a)為主程序流程圖,(b)為A/D轉換子程序流程圖。 開始初始化調用A/D轉換子程序調用顯示子程序開始開始模數轉換轉換是否完成取得模數轉換結果并轉化為工程量顯示轉化結果結束(a)主程序流程圖(b)A/D轉換子程序流程圖調用延時程序圖4.1程序軟件設計流程圖 其中A/D轉換子程序是將0809轉化后的數字量,需通過轉化子程序轉化成工程量并通過查表送到P1口送給LED顯示。(1)初始化程序

19、給ADC0809時鐘脈沖信號,并指向0809的0通道啟動A/D轉換,通過延時等待8路采集完畢。(2)數據讀入 控制0809芯片的ALE、START、EOC和OE,STRT為正脈沖時轉換開始,EOC為低電平時A/D轉化結束,OE為高電平時轉換結果送到數據線并被單片機讀入,ALE為上升沿信號地址鎖存允許 CLR P2.4 SETB P2.4 CLR P2.4 JNB P2.5,$ SETB P2.6 MOVX A,DPTR MOV ADC,A CLR P2.6(3)消抖 防抖動的時間是10ms。(4)通道轉換 當判斷有按鍵按下后P3.2口置位即允許74373地址鎖存,DPTR加1指向下一通道。4.

20、2 A/D轉換子程序A/D轉換子程序用于對ADC0809的4路輸入模擬電壓進行A/D轉換,并將轉換的數值存入4個相應的存儲單元中,A/D轉換子程序每隔一定時間調用一次,即隔一段時間對輸入電壓采樣一次,如圖4-2所示進行十六進制調整 開始A/D轉換調用延時存轉換后的十六進制數數據指針加一入棧保護4路轉換次數減一顯示電壓值NY圖4-2轉換子程序流程圖 判斷是否為04.3 中斷顯示程序設計中采用中斷的方式來讀取轉換完成的數據能節省CPU的資源當系統設置好后,一旦數據轉換完成,便會進入外部中斷0,然后在中斷中讀取轉換的數值,處理數據并送數碼管顯示輸出。 LED 數碼管采用軟件譯碼動態掃描的方式。在中斷程序中包含多路循環顯示程序和單路顯示程序,多路循環顯示程序把4個存儲單元的數值依次取出送到4個數碼管上顯示,每一路顯示一秒。單路顯示程序只對當前選中的一路數據進行顯示。每路數據顯示時需經過轉換變成十進制BCD碼,放于4個數碼管顯示緩沖區中。單路或多路循環顯示通過標志位00H控制。在顯示控制程序中加入了對單路或多路循環按鍵的判斷。數字量送P1口取段碼地址P3.1=1?調用循環顯示程序調用

溫馨提示

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

評論

0/150

提交評論