直流電壓表設計_第1頁
直流電壓表設計_第2頁
直流電壓表設計_第3頁
直流電壓表設計_第4頁
直流電壓表設計_第5頁
已閱讀5頁,還剩14頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、-目 錄一、設計要求2二、設計目的2三、設計的具體實現21. 系統概述22. 單元電路設計33. 軟件程序設計14四、結論與展望22五、心得體會及建議23六、附錄23七、參考文獻24一設計要求設計一個由8051MCU組成的簡易直流電壓表系統。能夠測量一定圍的電壓值,并以數字形式進展顯示。通過這個過程熟悉A/D轉換、鍵盤控制、串口通信和七段數碼管的使用,掌握51系列單片機控制和測試方法。設計以AT89C51單片機為核心,對電壓信號首先進展比例調節以滿足A/D的需要;設置按鍵用于調節不同的電壓檔位;用LED顯示測量得到的電壓值;設計通信接口電路以實現測量數據的傳送。完成根本要求,可以適當發揮進展擴

2、展設計。測量圍0-200V10位模數轉換采樣結果通過LED數碼管顯示通過串行口與PC通信二、設計目的(1)利用所學單片機的理論知識進展軟硬件整體設計,鍛煉學生理論聯系實際、提高我們的綜合應用能力。 (2)我們這次的課程設計是以單片機為根底,設計并開發直流電壓表。 (3)掌握各個接口芯片(如ADC0808等)的功能特性及接口方法,并能運用其實現一個簡單的微機應用系統功能器件。三、設計的具體實現1.系統概述直流電壓表是針對直流屏、太陽能光伏、蓄電池、電鍍、通信電源、直流電開工具等應用場合設計的。該系列的直流電量儀表包含直流電流表、直流電壓表、安培小時計、電壓小時計、直流功率表、直流電能表等。數字電

3、壓表Digital Voltmeter簡稱DVM,它是采用數字化測量技術,把連續的模擬量直流輸入電壓轉換成不連續、離散的數字形式并加以顯示的儀表.傳統的指針式電壓表功能單一、精度低,不能滿足現代測量的需求,采用單片機的數字電壓表,它的精度高、抗干擾能力強。可擴展性強、集成方便,還可與PC進展實時通信。目前,有各種單片A/D轉換器構成的數字電壓表,已被廣泛用于電子及電工測量、工業自動化儀表、自動測試系統等智能測量領域,與此同時,也能把電量及非電量測量技術提高到嶄新水平。該系列產品是一種高精度的安裝式儀表.方案論證方案一:采用數字化測量技術,把連續的模擬量直流輸入電壓轉換成不連續離散的數字形式并加

4、以顯示的儀表。這種傳統的指針式電壓表功能單一精度低,不能滿足數字化時代的要求。方案二:采用單片機與AD轉換器設計一個數字電壓表,測量直流電壓值,四位數碼顯示。目前,由于各種單片A/D轉換器構成的數字電壓表,已被廣泛用于電子及電工測量,工業自動化儀表等測量領域,顯示出強大的生命力。從以上兩種方案,很容易看出,按系統功能實現要求,兩者相比擬方案二的設計既簡單又實用,軟件設計也比擬簡單同時也實現了功能要求,故采用方案二。所以,本設計 A/D轉換器局部采用普通元器件構成模擬局部,利用MCS-51單片機借助軟件實現數字顯示功能,自動校零、LED顯示等功能時采用AT89C51單片機編程實現直流電壓表量程的

5、自動轉換。本系統主要包括三大模塊:轉換模塊、數據處理模塊及顯示模塊。其中,A/D轉換采用ADC0808對輸入的模擬信號進展轉換,控制核心AT89C51再對轉換的結果進展運算處理,最后驅動輸出裝置LED顯示數字電壓信號。總體構造框圖如圖1所示模擬電 壓AT89C51 單片機ADC0808轉換LED數字顯 示圖1 總體構造框圖2.單元電路設計1)各局部概述 A/D轉換器的設計 A/D轉換器具有抗干擾能力強的特點,在采用零點校準的前提下,其轉換精度也可以做得很高,但顯著的缺乏是轉換速度較慢,并且分辨率越高,其轉換速度也就越慢,因此本設計采用了A/D轉換器,可以較好的改善轉換速度慢的缺點,它的轉換速率

6、分辨率的乘積比傳統的雙積分式A/D轉換器提高至少兩個數量級。單片機計數、控制電路設計 通過對A/D轉換器的方案分析,本設計采用的單片機編程實現A/D轉換,脈沖的計數功能由單片機實現,所以對單片機的速度提出了較高的要求,根本要求分辨率為11位,轉換速度不低于2次/S,發揮局部要求分辨率15位,采用MCS-51單片機實現控制和脈沖計數,采用16MHZ晶振,完全能滿足分辨率15位和轉換速度2次/S的要求。顯示電路 顯示是電路采用數碼管顯示器,可顯示各種字體的數字、字母,還可以自定義容,增加了顯示的美觀性與直觀性,是重要的是提供了友好的人機界面。同時LED 8段數碼管有靜態顯示和動態顯示兩種方式。靜態

7、顯示方式的各位數碼管相互獨立,公共端恒定接地或接正電源。每一個字段都要獨占一條I/O口只要有斷碼輸出,顯示器就可以顯示出所要顯示的字符,如果CPU不改寫,則一直保持下去。動態顯示方式下各位數碼管的段選線相應并連在一起,由一個8位的I/O口控制;各位的為選線有另外的I/O口控制。2單元硬件電路本次設計是以單片機AT89C51芯片、A/D轉換器為核心設計了一個簡易的直流電壓測量電路,在硬件方面,通過一個可變電阻調節輸入電壓的變化來反映所檢測到的電壓變化。此變化的電壓通過ADC0808的一個通道INO送入并進展A/D轉換后再送入單片機AT89C51中進展處理,再轉換成相應的實際電壓值,最后通過四位L

8、ED數碼管顯示,準確到十分位,LED采用的是動態掃描顯示,使用74HC02P芯片進展驅動,軟件方面采用匯編編程。使得整個系統完成一個簡易的數字電壓表的功能。輸入電壓電路輸入電路的作用是把不同量程的被測的電壓規到A/D轉換器所要求的電壓值。衰減輸入電路如圖2所示圖2衰減輸入電路 圖3量程切換開關本儀表設計的是0-1000V電壓,靈敏度高,所以只需衰減器,如圖2所示9M 900K 90K 和10K電阻構成1/101/1001/1000的衰減器。衰減輸入電路可由開關來選擇不同的衰減率,從而切換檔位。AT89C51單片機AT89C51是一種帶4K字節閃存可編程可擦除只讀存儲器FPEROMFlash P

9、rogrammable and Erasable Read Only Memory是低電壓、高性能CMOS 8位微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。外形及引腳排列如圖4所示:單片機最小系統主要由電源、復位、振蕩電路以及擴展局部等局部組成。最小系統原理圖如圖5所示

10、。圖4 AT89C51引腳圖 圖5最小系統電路圖接口分配電路設計如右圖6所示:VCC:供電電壓。GND:接地。 圖6 單片機接口電路P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/ 地址的第八位。在這里P0口作為輸入與輸出分別與ADC0808的輸出端和LCD顯示的輸入端相連,且P0外部被阻值為1K的電阻拉高。 P2口:P2口為一個部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被部上拉電阻拉高,且作為輸入。并因此作為輸入時

11、,P2口的管腳被外部拉低,將輸出電流。這是由于部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進展存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用部上拉優勢,當對外部八位地址數據存儲器進展讀寫時,P2口輸出其特殊功能存放器的容。這里只用到了P2.0P2.3四個端口,其中P2.1P2.3都是作為輸出端口控制顯示電路的存放器選擇、讀寫信號和使能端口。P3口:P3口管腳是8個帶部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流ILL這是由于上拉的緣故。 P3口也可作

12、為AT89C51的一些特殊功能口,在這里用到了P3.3 /INT1外部中斷1、 P3.6 /WR外部數據存儲器寫選通、P3.7 /RD外部數據存儲器讀選通。RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想制止ALE的輸出可在SFR8EH地址上置0。此時,

13、ALE只有在執行MOV*,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE制止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在外部數據存儲器時,這兩次有效的/PSEN信號將不出現。 /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器0000H-FFFFH,不管是否有部程序存儲器。注意加密方式1時,/EA將部鎖定為RESET;當/EA端保持高電平時,此間部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源VPP。*TAL1:反向振蕩放大器的輸入及部時鐘工作電路的輸入

14、。*TAL2:來自反向振蕩器的輸出。A/D轉換器概述 模數轉換器即A/D轉換器,或簡稱ADC,通常是指一個將模擬信號轉變為數字信號的電子元件。 通常的模數轉換器是將一個輸入電壓信號轉換為一個輸出的數字信號。由于數字信號本身不具有實際意義,僅僅表示一個相對大小。故任何一個模數轉換器都需要一個參考模擬量作為轉換的標準,比擬常見的參考標準為最大的可轉換信號大小。而輸出的數字量則表示輸入信號相對于參考信號的大小。 模數轉換器最重要的參數是轉換的精度,通常用輸出的數字信號的位數的多少表示。轉換器能夠準確輸出的數字信號的位數越多,表示轉換器能夠分辨輸入信號的能力越強,轉換器的性能也就越好。 A/D轉換一般

15、要經過采樣、保持、量化及編碼4個過程。在實際電路中,有些過程是合并進展的,如采樣和保持,量化和編碼在轉換過程中是同時實現的。 一般來說,AD比DA貴,尤其是高速的AD,因為在*些特殊場合,如導彈的攝像頭局部要求有高速的轉換能力。一般那樣AD要上千美元。還有通過AD的并聯可以提高AD的轉換效率,多個AD同時處理數據,能滿足處理器的數字信號需求了。模數轉換過程包括量化和編碼。量化是將模擬信號量程分成許多離散量級,并確定輸入信號所屬的量級。編碼是對每一量級分配唯一的數字碼,并確定與輸入信號相對應的代碼。最普通的碼制是二進制,它有2n個量級n為位數,可依次逐個編號。模數轉換的方法很多,從轉換原理來分可

16、分為直接法和間接法兩大類。 直接法是直接將電壓轉換成數字量。它用數模網絡輸出的一套基準電壓,從高位起逐位與被測電壓反復比擬,直到二者到達或接近平衡。控制邏輯能實現對分搜索的控制,其比擬方法如同天平稱重。先使二進位制數的最高位Dn-11,經數模轉換后得到一個整個量程一半的模擬電壓VS,與輸入電壓Vin相比擬,假設Vin>VS,則保存這一位;假設Vin<Vin,則Dn-10。然后使下一位Dn-21,與上一次的結果一起經數模轉換后與Vin相比擬,重復這一過程,直到使D01,再與Vin相比擬,由Vin>VS還是Vin<V 來決定是否保存這一位。經過n次比擬后,n位存放器的狀態即

17、為轉換后的數據。這種直接逐位比擬型又稱反應比擬型轉換器是一種高速的數模轉換電路,轉換精度很高,但對干擾的抑制能力較差,常用提高數據放大器性能的方法來彌補。它在計算機接口電路中用得最普遍。 間接法不將電壓直接轉換成數字,而是首先轉換成*一中間量,再由中間量轉換成數字。常用的有電壓-時間間隔(V/T)型和電壓-頻率(V/F)型兩種,其中電壓-時間間隔型中的雙斜率法又稱雙積分法用得較為普遍。 模數轉換器的選用具體取決于輸入電平、輸出形式、控制性質以及需要的速度、分辨率和精度。 用半導體分立元件制成的模數轉換器常常采用單元構造,隨著大規模集成電路技術的開展,模數轉換器體積逐漸縮小為一塊模板、一塊集成電

18、路接口分配電路設計如圖7所示:IN0IN7為8路模擬量輸入端,這里只接一路電壓信號,其輸入信號是由直流電源及可調電阻提供。 OUT1OUT8為8位二進制數字量 圖7 A/D轉換電路輸出端,其另一端連接到AT89C51單片機進展數值轉換。ADDA、ADDB、ADDC為3位片選地址輸入線,用于選通8路模擬輸入中的一路。ALE為地址鎖存允許信號,由單片機P3.6口寫信號與P2.0口相或取反輸入,高電平有效。 START為 AD轉換啟動脈沖輸入端,由單片機P3.6口寫信號與P2.0口相或取反輸入一個正脈沖使其啟動脈沖上升沿使0808復位,下降沿啟動A/D轉換。 EOC為 AD轉換完畢信號,當AD轉換完

19、畢時,此端輸出一個高電平取反給P3.3口轉換期間一直為低電平。 OE為數據輸出允許信號,高電平有效。當AD轉換完畢時,此端由單片機P3.7讀信號與P2.0口相或后取反輸入一個高電平,才能翻開輸出三態門,輸出數字量。 逐次逼近型A/D轉換器原理逐次逼近型A/D轉換器是由一個比擬器、A/D轉換器、存儲器及控制電路組成。它利用部的存放器從高位到低位一次開場逐位試探比擬。轉換過程如下:開場時,存放器各位清零,轉換時,先將最高位置1,把數據送入A/D轉換器轉換,轉換結果與輸入的模擬量比擬,如果轉換的模擬量比輸入的模擬量小,則1保存,如果轉換的模擬量比輸入的模擬量大,則1不保存,然后從第二位依次重復上述過

20、程直至最低位,最后存放器中的容就是輸入模擬量對應的二進制數字量。其原理框圖如圖8所示:順序脈沖發生器逐次逼近存放器ADC電壓比擬器輸入電壓輸入數字量圖8 逐次逼近式A/D轉換器原理圖2.3.3 ADC0808 主要特性ADC0808是CMOS單片型逐次逼近式A/D轉換器,帶有使能控制端,與微機直接接口,片帶有鎖存功能的8路模擬多路開關,可以對8路0-5V輸入模擬電壓信號分時進展轉換,由于ADC0808設計時考慮到假設干種模/數變換技術的長處,所以該芯片非常適應于過程控制,微控制器輸入通道的接口電路,智能儀器和機床控制等領域5。ADC0808主要特性:8路8位A/D轉換器,即分辨率8位;具有鎖存

21、控制的8路模擬開關;易與各種微控制器接口;可鎖存三態輸出,輸出與TTL兼容;轉換時間:128s;轉換精度:0.2%;單個+5V電源供電;模擬輸入電壓圍0- +5V,無需外部零點和滿度調整;低功耗,約15mW。2.3.4 ADC0808的外部引腳特征 ADC0808芯片有28條引腳,采用雙列直插式封裝,其引腳圖如圖9所示。圖9 ADC0808引腳圖下面說明各個引腳功能:IN0-IN78條:8路模擬量輸入線,用于輸入和控制被轉換的模擬電壓。地址輸入控制4條:ALE:地址鎖存允許輸入線,高電平有效,當ALE為高電平時,為地址輸入線,用于選擇IN0-IN7上那一條模擬電壓送給比擬器進展A/D轉換。AD

22、DA,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 1 0 1 0 1 0 1 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 START:START為“啟動脈沖輸入法,該線上正脈沖由CPU送來,寬度應大于100ns,上升沿清零SAR,下降沿啟動ADC工作。EOC: EOC為轉換完畢輸出線,該線上高電平表示A/D轉換已完畢,數字量已鎖入三態輸出鎖存器。D1-D8:數字量輸出端,D1為高位。OE:OE為輸出

23、允許端,高電平能使D1-D8引腳上輸出轉換后的數字量。REF+、REF-:參考電壓輸入量,給電阻階梯網絡供應標準電壓。Vcc、GND: Vcc為主電源輸入端,GND為接地端,一般REF+與Vcc連接在一起,REF-與GND連接在一起. CLK:時鐘輸入端。2.3.5 ADC0808的部構造及工作流程ADC0808由8路模擬通道選擇開關,地址鎖存與譯碼器,比擬器,8位開關樹型A/D轉換器,逐次逼近型存放器,定時和控制電路和三態輸出鎖存器等組成,其部構造如圖10所示。圖10 ADC0808的部構造其中:18路模擬通道選擇開關實現從8路輸入模擬量中選擇一路送給后面的比擬器進展比擬。2地址鎖存與譯碼器

24、用于當ALE信號有效時,鎖存從ADDA、ADDB、ADDC 3根地址線上送來的3位地址,譯碼后產生通道選擇信號,從8路模擬通道中選擇當前模擬通道。3比擬器,8位開關樹型A/D轉換器,逐次逼近型存放器,定時和控制電路組成8位A/D轉換器,當START信號有效時,就開場對當前通道的模擬信號進展轉換,轉換完成后,把轉換得到的數字量送到8位三態鎖存器,同時通過引腳送出轉換完畢信號。4三態輸出鎖存器保存當前模擬通道轉換得到的數字量,當OE信號有效時,把轉換的結果送出。ADC0808的工作流程為:1輸入3位地址,并使ALE=1,將地址存入地址鎖存器中,經地址譯碼器從8路模擬通道中選通1路模擬量送給比擬器。

25、2送START一高脈沖,START的上升沿使逐次存放器復位,下降沿啟動A/D轉換,并使EOC信號為低電平。3當轉換完畢時,轉換的結果送入到輸出三態鎖存器中,并使EOC信號回到高電平,通知CPU已轉換完畢。4當CPU執行一讀數據指令時,使OE為高電平,則從輸出端D0-D7讀出數據。 LED顯示電路 LED根本構造LED是發光二極管顯示器的縮寫。LED由于構造簡單、價格廉價、與單片機接口方便等優點而得到廣泛應用。LED顯示器是由假設干個發光二極管組成顯示字段的顯示器件6。在單片機中使用最多的是七段數碼顯示器。LED七段數碼顯示器由8個發光二極管組成顯示字段,其中7個長條形的發光二極管排列成“日字形

26、,另一個圓點形的發光二極管在顯示器的右下角作為顯示小數點用,其通過不同的組合可用來顯示各種數字。LED引腳排列如下列圖11所示:圖11 LED引腳排列 LED顯示器的選擇在應用系統中,設計要求不同,使用的LED顯示器的位數也不同,因此就生產了位數,尺寸,型號不同的LED顯示器供選擇,在本設計中,選擇4位一體的數碼型LED顯示器,簡稱“4-LED。本系統中前一位顯示電壓的整數位,即個位,后兩位顯示電壓的小數位。4-LED顯示器引腳如圖12所示,是一個共陰極接法的4位LED數碼顯示管,其中a,b,c,e,f,g為4位LED各段的公共輸出端,1、2、3、4分別是每一位的位數選端,dp是小數點引出端,

27、4位一體LED數碼顯示管的部構造是由4個單獨的LED組成,每個LED的段輸出引腳在部都并聯后,引出到器件的外部。圖12 4位LED引腳對于這種構造的LED顯示器,它的體積和構造都符合設計要求,由于4位LED陰極的各段已經在部連接在一起,所以必須使用動態掃描方式將所有數碼管的段選線并聯在一起,用一個I/O接口控制顯示。 LED譯碼方式譯碼方式是指由顯示字符轉換得到對應的字段碼的方式,對于LED數碼管顯示器,通常的譯碼方式有硬件譯碼和軟件譯碼方式兩種。硬件譯碼是指利用專門的硬件電路來實現顯示字符碼的轉換。軟件譯碼就是編寫軟件譯碼程序,通過譯碼程序來得到要顯示的字符的字段碼,譯碼程序通常為查表程序。

28、本設計系統中為了簡化硬件線路設計,LED譯碼采用軟件編程來實現。由于本設計采用的是共陰極LED,其對應的字符和字段碼如下表2所示。表2 共陰極字段碼表顯示字符共陰極字段碼03FH106H25BH34FH466H56DH67DH707H87FH96FH LED顯示器與單片機接口設計由于單片機的并行口不能直接驅動LED顯示器,所以,在一般情況下,必須采用專用的驅動電路芯片,使之產生足夠大的電流,顯示器才能正常工作。如果驅動電路能力差,即負載能力不夠時,顯示器亮度就低,而且驅動電路長期在超負荷下運行容易損壞,因此,LED顯示器的驅動電路設計是一個非常重要的問題。為了簡化數字式直流電壓表的電路設計,在

29、LED驅動電路的設計上,可以利用單片機P0口上外接的上拉電阻來實現,即將LED的A-G段顯示引腳和DP小數點顯示引腳并聯到P0口與上拉電阻之間,這樣,就可以加大P0口作為輸出口德驅動能力,使得LED能按照正常的亮度顯示出數字,如圖13所示。圖13 LED與單片機接口間的設計3軟件程序設計1系統軟件設計進展的整體操作流程方案,總體流程圖和A/D轉化流程圖最大的不同就在:總體流程圖是將總體控制電路的運行步驟,而A/D轉化流程圖是局部中斷運行方式,兩種控制功能融合在一起,是考慮到可以實現全部功能的原因,且原理簡單。如此設計,其優點在于:設計思想比擬簡單,較容易組裝電路。或者是,連線方便、一清二楚,不

30、容易出錯。要顯示電路的優勢,則勢必形成各門電路使用。引導顯示電路的穩定性,抗干擾能力增強。主程序的容包括:起始地址、中斷效勞程序的起始地址、有關存單元及相關部件的初始化和一些子程序的調用等。根據設計要求,設計出如下圖的主程序流程圖。A/D轉換子程序設計: A/D轉換程序的功能是采集數據,在整個系統設計中占有很高的地位。當系統置好后,單片機掃描轉換完畢管腳P3.7的輸入電平狀態,當輸入為高電平則轉換完成,將轉換的數值顯示輸出。假設輸入為低電平,則繼續掃描。程序流程圖如下列圖所示。2程序 EQU 50H ; 指令存放器DAT EQU 51H ; 數據存放器RS EQU P2.1 ; LCD存放器選

31、擇信號RW EQU P2.2 ; LCD讀/寫選擇信號E EQU P2.3 ; LCD使能信號 ORG 0000H LJMP MAIN ;主程序入口 ORG 000BH LJMP BT0 ;T0中斷入口 ORG 0030H ;主程序,初始化MAIN: MOV SP,*60H LCALL INT MOV 30H,*30H MOV 31H,*30H MOV 32H,*0A5H MOV 33H,*30H MOV 34H,*30H MOV R7,*30H LCALL N1 ;顯示 Voltage = 00.00MOV TMOD,*00H ;定時器T0設為方式0MOV TH0,*00h ;裝入定時常數M

32、OV TL0,*00hSETB TR0 ;啟動T0MOV 24h, *03h ;裝入T0中斷次數MOV IE,*82H ;開中斷LP: MOV R7,*30H ;顯示緩沖區首地址LCALL DISPLYSJMP LP ;循環顯示DISPLY: MOV ,*0CAH ;設置數據起始地址第而行第10位 LCALL PR1 MOV R1,*05H MOV R0,*30Hl: MOV DAT,r0 LCALL PR2 INC R0 DJNZ R1,l RET;1. 逐字依次輸入方式演示程序段N1:MOV ,*01H ;清屏 LCALL PR1 MOV ,*06H ;設置輸入方式 LCALL PR1 M

33、OV ,*081H ;設置數據起始地址第一行地二位 LCALL PR1 MOV DPTR,*TAB1 MOV R2,*0EH MOV R3,*00HWRIN1: MOV A,R3 MOVC A,A+DPTR MOV DAT,A LCALL PR2 INC R3 DJNZ R2,WRIN1 MOV ,*0C1H ;設置數據起始地址第二行地二位 LCALL PR1 MOV DPTR,*TAB2 MOV R2,*9 MOV R3,*00HWRIN2: MOV A,R3 MOVC A,A+DPTR MOV DAT,A LCALL PR2 INC R3 DJNZ R2,WRIN2 RETTAB1: DB

34、 "VOLTAGE= " LCD間接控制方式下的初始化子程序INT:LCALL DELAY ; 調延時子程序MOV ,*38H ; 設置工作方式2行,8位數據LCALL PR1MOV ,*01H ; 清屏LCALL PR1MOV ,*06H ; 設置輸入方式LCALL PR1MOV ,*0CH ; 設置顯示方式LCALL PR1RETDELAY:MOV R6,*0FH ; 延時子程序MOV R7,*00HDELAY1: NOP NOPDJNZ R7,DELAY1DJNZ R6,DELAY1RET;LCD間接控制方式的驅動子程序如下;1 讀BF和AC值PR0: PUSH AC

35、C MOV P0,*0FFH ; P0置位, 準備讀 CLR RS ; RS=0 SETB RW; R/W=1 SETB E ; E=1 LCALL DELAY MOV ,P0 ; 讀BF和AC6-4值 CLR E ; E=0 POP ACC RET;2 寫指令代碼子程序PR1: PUSH ACC CLR RS ; RS=0 SETB RW ; R/W=1PR11:MOV P0,*0FFH; P0置位, 準備讀 SETB E ; E=1 LCALL DELAY NOP MOV A,P0 CLR E ACC.7,PR11;BF=1? CLR RW; R/W=0 MOV P0, SETB E ;

36、E=1 CLR E ; E=0; E=0 POP ACC RET;3 寫顯示數據子程序PR2:PUSH ACC CLR RS ; RS=0 SETB RW; R/W=1PR21:MOV P0,*0FFH SETB E ; E=1 LCALL DELAY MOV A,P0 ; 讀BF和AC6-4值 CLR E ; E=0 ACC.7,PR21 SETB RS CLR RW MOV P0,DAT; 寫入數據 SETB E CLR E POP ACC RET;4 讀顯示數據子程序PR3:PUSH ACC CLR RS ; RS=0 SETB RW; R/W=1PR31:MOV P0,*0FFH ;

37、P0置位, 準備讀 SETB E ; E=1 LCALL DELAY MOV A,P0 ; 讀BF和AC6-4值 CLR E ; E=0 ACC.7,PR31 SETB RS SETB RW; R/W=1 MOV P0,*0FFH ; 讀數據 SETB E ; E=1 MOV DAT,P0 CLR E ; E=0 POP ACC RET; 定時器T0中斷效勞程序,讀取ADC0809第0通道的A/D轉換結果并化為顯示值BT0: PUSH ACC ;保護現場PUSH PSWMOV PSW,*08HCLR TR0 ;停頓T0MOV TH0,*00h ;重裝定時常數MOV TL0,*00hMOV DP

38、TR,*0F6FFH ;0809端口地址MOV A,*0 ;0通道MOV* DPTR,A ;啟動0809MOV R7,*0FFH ;等待A/D轉換完DJNZ R7,$MOV* A,DPTR ;讀0809轉換結果 MOV B,*03H ;將轉換的值除以3再累加,存入40H中 DIV AB ADD A,40H MOV 40H,A MOV A,B ;將除以3后的余數累加放入41H中 ADD A,41H MOV 41H,A DEC 24h ;3次中斷未到則返回MOV A,24HJNZ RNT1 MOV 24h,*03h ;重裝中斷次數 MOV A,41H ;將累加的余數再除3后相加 DIV AB AD

39、D A,40H MOV 40H,*0 ;清零累加數 MOV 41H,*0RTN: MOV B,*0fh ;A/D轉換結果化為顯示值 MUL AB ;(AD*5)/256 MOV R0,A MOV A,B MOV B,R0 MOV R0,A ADD A,*246 MOV A,R0 MOV 30H,*00H JNC LOOP ADD A,*06H MOV 30H,*01HLOOP: MOV 31H,A ;AD*5的高字節為整數局部 MOV A,B MOV B,*0AH MUL AB ;AD*5的低字節為/256的結果,為小數局部 MOV 33H,B ;二進制小數換為10進制數 MOV B,*0AH

40、 MUL AB MOV 34H,B LJMP RTN1RTN1: SETB TR0 ORL 30H,*30H ORL 31H,*30H MOV 32H,*0A5H ;小數點 ORL 33H,*30H ORL 34H,*30H POP PSWPOP ACCRETI END3仿真1.翻開WAVE 6000 軟件,菜單欄選擇“文件中的“新建文件,在彈出的窗口中編寫程序,然后保存后綴為“*.asm的程序。2.菜單欄選擇“工程中的“編譯,如果程序無誤即編譯成功,否則修改程序直至編譯成功。3.翻開Proteus軟件,新建文件FileNew Design,同樣在彈出的原理圖編輯窗口中繪制原理圖,然后保存。4

41、.加載程序,選擇SourceAdd/Remove Source Files,在彈出的對話框中點擊“New選擇在WAVE 6000軟件中編寫保存的程序如“*.asm,點擊“OK即加載成功。5.在Proteus軟件中的左下方點擊圖標仿真調試開場,即可看到仿真調試的結果。四、結論與展望基于單片機的直流數字電壓表使用性能好、構造簡單、本錢低、外接元件少。在實際應用工作中適應性強,測量電壓準確,精度高。系統功能、指標到達了課題的預期要求、系統在硬件設計上充分考慮了可擴展性,經過一定的改造,可以增加功能。本文設計主要實現了簡易數字直流電壓表測量電壓的功能,詳細說明了從原理圖的設計、電路圖的仿真再到軟件的調試。通過本次設計,我對單片機這門課有了進一步的了解。無論是在硬件連接方面還是在軟件編程方

溫馨提示

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

評論

0/150

提交評論