基于51單片機的數字電壓表設計_第1頁
基于51單片機的數字電壓表設計_第2頁
基于51單片機的數字電壓表設計_第3頁
基于51單片機的數字電壓表設計_第4頁
基于51單片機的數字電壓表設計_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、揚 州 市 職 業(yè) 大 學畢 業(yè) 設 計(論 文)設計(論文)題目: 基于51單片機的數字電壓表設計 專 業(yè): 通信技術 1 基于51單片機的數字電壓表設計摘要:數字電壓表簡稱DVM,它是采用數字化測量技術,把連續(xù)的模擬量(直流輸入電壓)轉換成不連續(xù)、離散的數字形式并加以顯示的儀表。數字電壓表自從一九五二年問世以來,隨著電子技術的飛躍發(fā)展,特別是目前,作為測量儀表、模擬指示儀表的數字化以及自動測量的系統(tǒng),而得到了很大的發(fā)展。數字電壓表是從電位差計的自動化這種想法研制出來的,因此即便是最初的數字電壓表,其精度也要比模擬式儀表高,而其成本比電位差計也高。以后,DVM的發(fā)展就著眼在高精度和低成本兩個

2、方面。單片機可單獨地完成現(xiàn)代工業(yè)控制所要求的智能化控制功能,這是單片機最大的特征。本電路主要采用AT89S51芯片和ADC0809芯片來完成一個簡易的數字電壓表,能夠對輸入的05 V的模擬直流電壓進行測量,并通過一個4位一體的7段LED數碼管進行顯示。該電壓表的測量電路主要由三個模塊組成:A/D轉換模塊、數據處理模塊及顯示控制模塊。A/D轉換主要由芯片ADC0809來完成,它負責把采集到的模擬量轉換為相應的數字量再傳送到數據處理模塊。數據處理則由芯片AT89S51來完成,其負責把ADC0809傳送來的數字量經一定的數據處理,產生相應的顯示碼送到顯示模塊進行顯示;另外它還控制著ADC0809芯片

3、的工作。關鍵詞: 單片機 數字電壓表 AT89S51 A/D轉換 ADC0809目錄第1章產品要求及方案選擇.41.1設計的目的.41.2產品的要求.41.3各模塊方案選擇及論證.4第2章主要原件介紹.62.1模數轉換芯片ADC0809.62.2控制芯片AT89S51.72.3鎖存芯片SN74LS373.92.4 SEG-MPXE數碼管.10第3章電壓表原理系統(tǒng)硬件電路設計與實現(xiàn).113.1電壓表的原理.113.2 電源部分.113.3 A/D轉換電路.113.4 單片機最小系統(tǒng)電路部分.133.4.1時鐘電路部分.133.4.2復位電路部分.143.5 顯示電路部分.143.7量程標定電路.

4、15第4章 系統(tǒng)軟件設計.174.1 主程序設計.174.2 各子程序設計.174.3源程序代碼.20第5章 調試.24參考文獻.24附錄.25附錄A 原理圖.25附錄B 總結與感謝.27附錄C 元件清單.29第1章 產品要求及方案選擇1.1 設計的目的通過制作簡易數字電壓表,加深對所學專業(yè)知識的認識,提高分析、解決工程實際問題的能力,提高對單片機的應用能力,提高收集文獻、資料的能力,從而達到綜合運用所學的專業(yè)知識進行電子產品設計、制作與調試的能力。1.2 產品的要求基本功能:1) 能用數碼管顯示電壓值2) 測量精度達0.5V3) 自制直流穩(wěn)壓電源4) 系統(tǒng)具備復位功能1.3 各模塊方案選擇與

5、論證根據設計要求,系統(tǒng)可分為電壓采集模塊、A/D轉換模塊 、主控模塊、顯示模塊。A/D轉換模塊:方案一: A/D轉換器采用ICL7107型三位半顯示的芯片,輸入信號,流經取樣電路取樣后送到ICL7107型三位半A/D轉換器,只需要很少的簡單外圍元件,就可組成數字電流表模塊,直接驅動三位半LED顯示器顯示,最后輸入電流在顯示部分顯示。由于本人對此電路不熟悉,而且ICL7107做的LED數字表,最大的缺點就是數字亂跳不穩(wěn)定,特別最后一位。所以不采用此方案。方案二: 采用ADC0809轉換芯片,其中A/D轉換器用于實現(xiàn)模擬量向數字量的轉換,單電源供電。它是具有8路模擬量輸入、8位數字量輸出功能的A/

6、D轉換器,轉換時間為100s,模擬輸入電壓范圍為0V+5V,不需零點和滿刻度校準,功耗低,約15mW。由于模擬轉換電路的種類很多,通過對轉換速度,精度和價格方面考慮,所以選擇方案二采用ADC0809為本次設計的轉換芯片。接口模塊:方案一:使用數字電路實現(xiàn),采用譯碼芯片CD4543作為接口芯片,這種方案能實現(xiàn)功能,但穩(wěn)定性不高,結構復雜。方案二:采用AT89S51單片機作為系統(tǒng)的控制單元,通過A/D轉換將被測值轉換為數字量送入單片機中,再由單片機來送顯。此方案各類功能易于實現(xiàn),成本低、功耗低,顯示穩(wěn)定。通過比較,我選擇方案二。系統(tǒng)原理框圖如1.1所示:圖1.1 數字電壓表設計框圖第2章 主要元件

7、介紹2.1 模數轉換芯片ADC0809ADC0809是典型的8位8通道逐次逼近式A/D轉換器,它可以和微型計算機直接接口。ADC0809轉換器的系列芯片是ADC0808,可以相互替換。 ADC0809內部邏輯結構圖2-1 ADC0809的內部邏輯結構及引腳圖  ADC0809的內部邏輯結構如圖2-1所示。圖中多路模擬開關可選通8路模擬通道,允許8路模擬量分時輸入,并共用一個A/D轉換器進行轉換。地址鎖存與譯碼電路完成對A、B、C三個地址位進行鎖存與譯碼,如表2-1所示。表2-1 ADC0809通道選擇表 C(ADDC)B(ADDB)A(ADDA)選擇的通道000IN0001

8、IN1010IN2011IN3100IN4101IN5110IN6111IN7 ADC0809的引腳ADC0809芯片為28引腳雙列直插式封裝,其引腳排列如圖2-1所示。(1)IN0IN7:8路模擬量輸入通道。(2)A、B、C:模擬通道地址線。這3根地址線用于對8路模擬通道的選擇,其譯碼關系如表1-1所示。其中,A為低地址,C為高地址,引腳圖中為ADDA,ADDB和ADDC。(3)ALE:地址鎖存允許信號。對應ALE上跳沿,A、B、C地址狀態(tài)送入地址鎖存器中。(4)START:轉換啟動信號。START上升沿時,復位ADC0809;START下降沿時啟動芯片,開始進行A/D轉換;在A/D轉換期間

9、,START應保持低電平。本信號有時簡寫為ST。(5)D7D0:數據輸出線。為三態(tài)緩沖輸出形式,可以和單片機的數據線直接相連。D0為最低位,D7為最高。 (6)OE:輸出允許信號。用于控制三態(tài)輸出鎖存器向單片機輸出轉換得到的數據。OE=0,輸出數據線呈高阻;OE=1,輸出轉換得到的數據。(7)CLK:時鐘信號。ADC0809的內部沒有時鐘電路,所需時鐘信號由外界提供,因此有時鐘信號引腳。通常使用頻率為500KHz的時鐘信號。(8)EOC:轉換結束信號。EOC=0,正在進行轉換;EOC=1,轉換結束。使用中該狀態(tài)信號即可作為查詢的狀態(tài)標志,又可作為中斷請求信號使用。(9)Vcc: +5V電源,G

10、ND:地。 (10)Vref:參考電壓。參考電壓用來與輸入的模擬信號進行比較,作為逐次逼近的基準。其典型值為+5V(Vref(+)=+5V, Vref(-)=0V)。 ADC0809的工作原理:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿啟動 A/D轉換,之后EOC輸出信號變低,指示轉換正在進行。直到A/D轉換完成,EOC變?yōu)楦唠娖剑甘続/D轉換結束,結果數據已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平時,輸出三態(tài)門打開,轉換結果的數字量輸出到數據總線上。2.2 控制芯片AT89S5

11、1AT89S51是美國ATMEL公司生產的低功耗、高性能CMOS 8位單片機。AT89S51片內含有4k字節(jié)Flash閃速存儲器,128字節(jié)內部 RAM,32個I/O 口線,看門狗(WDT),兩個數據指針,兩個16 位定時/計數器,一個5向量兩級中斷結構,一個全雙工串行通信口,片內振蕩器及時鐘電路。同時,S51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止CPU的工作,但允許 RAM,定時/計數器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 RAM中的內容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,

12、ATMEL的AT89S51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。(圖2-2為其內部結構圖,圖2-3為其引腳圖。) 主要性能參數與MCS-51產品指令系列完全兼容;4K字節(jié)在系統(tǒng)編程(ISP)Flash閃速存儲器;1000次擦寫周期;4.05.5 V工作電壓范圍;全靜態(tài)工作模式:0Hz33MHz;三級程序加密鎖;128字節(jié)內部RAM;32個可編程I/O口線;2個16位的定時/計數器;6個中斷源;圖2-2 AT89S51芯片內部總體結構圖全雙工串行UART通道;低工耗空閑和掉電模式;中斷可從空閑模式喚醒系統(tǒng);看門狗(WDT)及雙數據指針;掉電標識和快速編程特性;靈

13、活的在系統(tǒng)編程(ISP-字節(jié)或頁寫模式)。 AT89S51的引腳:AT89S51芯片為40引腳雙列直插式封裝,其引腳排列如圖1-7所示。圖2-3 AT89S51的引腳圖2.3 鎖存芯片SN74LS37374LS373是八D鎖存器(3S,鎖存允許輸入有回環(huán)特性) ,常應用在地址鎖存及輸出口的擴展中。SN74LS373 常用的8d鎖存器,常用作地址鎖存和i/o輸出. 可以用74hc373代換. 74LS373是低功耗肖特基TTL8D鎖存器,74HC373是高速CMOS器件,功能與74LS373相同,兩者可以互換。74LS373內有8個相同的D型(三態(tài)同相)鎖存器,由兩個控制端(11腳G或EN;1腳

14、OUT、CONT、OE)控制。當OE接地時,若G為高電平,74LS373接收由PPU輸出的地址信號;如果G為低電平,則將地址信號鎖存。74LS373的輸出端O0O7可直接與總線相連。當三態(tài)允許控制端OE為低電平時,O0O7為正常邏輯狀態(tài),可用來驅動負載或總線。當OE為高電平時,O0O7呈高阻態(tài),即不驅動總線,也不為總線的負載,但鎖存器內部的邏輯操作不受影響。      當鎖存允許端LE為高電平時,O隨數據D而變。當LE為低電平時,O被鎖存在已建立的數據電平。(其引腳圖如圖2-4所示。) 圖2-4 SN74LS373引腳圖2.4 SEG-MPX4

15、數碼管本實驗的顯示模塊主要由一個4位一體的7段LED數碼管構成,用于顯示測量到的電壓值。它是一個共陽極的數碼管。每一位數碼管的a,b,c,d,e,f,g和dp端都各自連接在一起,用于接收AT89S51的P1口產生的顯示段碼。1,2,3,4引腳端為其位選端,用于接收AT89S51的P3口產生的位選碼。第3章 電壓表原理系統(tǒng)硬件電路設計與實現(xiàn)3.1 電壓表的原理本設計采用AT89S51單片機芯片配合ADC0809模/數轉換芯片構成一個簡易的數字電壓表,原理電路如下圖所示。該電路通過ADC0809芯片采樣輸入口IN0輸入的05 V的模擬量電壓,經過模/數轉換后,產生相應的數字量經過其輸出通道D0D7

16、傳送給AT89S51芯片的P0口。AT89S51負責把接收到的數字量經過數據處理,產生正確的7段數碼管的顯示段碼,并通過其P1口經驅動芯片SN74LS373驅動,再傳送給數碼管。同時它還通過其三位I/O口P3.0、P3.1、P3.2產生位選信號,控制數碼管的亮滅。另外,AT89S51還控制著ADC0809的工作。其ALE管腳為ADC0809提供了1MHz工作的時鐘脈沖;P2.3控制ADC0809的地址鎖存端(ALE);P2.4控制ADC0809的啟動端(START);P2.5控制ADC0809的輸出允許端(OE);P3.7控制ADC0809的轉換結束信號(EOC)。3.2 電源部分電源部分電路

17、主要是要求能提供穩(wěn)定可靠的電壓,使整個系統(tǒng)能正常的工作。采用220V的工頻交流電壓,而單片機的工作電壓是直流+5V,為此,先通過一個普通的變壓器降低電壓,再通過橋式整流,然后再通過7805芯片的進一步穩(wěn)壓,確保+5V電源的穩(wěn)定、可靠。而且7805集成穩(wěn)壓器是常用的固定輸出+5V電壓的集成穩(wěn)壓器。它的內部含有限流保護、過熱保護和過壓保護電路,采用了噪聲低、溫度漂移小的基準電壓源,工作穩(wěn)定可靠。1腳為輸入端,2腳為接地端,3腳為輸出端,使用十分方便,可以在任何有交流電壓的地方使用,不需另帶電池。通過整流濾波以后輸出直流電壓,為了確保整個電路能正常工作,考慮到不接負載或電源電壓有波動時電容能承受的耐

18、壓,必須加電容。發(fā)光二極管D2點亮表示電源電路正常工作,其電源電路如圖3-1所示:圖 3-1 電源電路3.3 A/D轉換電路A/D轉換器是模擬量輸入通道中的一個環(huán)節(jié),單片機通過A/D轉換器把輸入模擬量變成數字量再處理。隨著大規(guī)模集成電路的發(fā)展,目前不同廠家已經生產出了多種型號的A/D轉換器,以滿足不同應用場合的需要。如果按照工作原理劃分,ADC主要有4種類型,即雙積分式A/D轉換器、逐次逼近式A/D轉換器和并行式A/D轉換器和計數比較式A/D轉換器。目前最常用的是雙積分和逐次逼近式。 圖3-2 A/D轉換電路圖3.4 單片機最小系統(tǒng)電路部分單片機內部每個部件要想協(xié)調一致地工作,必須在統(tǒng)一口令時

19、鐘信號的控制下工作。單片機工作所需要的時鐘信號有兩種產生方式,即內部時鐘方式和外部時鐘方式。圖3.5是內部時鐘方式:單片機內部有一個構成振蕩器的增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸入端,這個放大器與作為反饋元件的片外晶振一起構成自激振蕩器。在該圖中,電容C1和C2取20PF,晶體的振蕩頻率取12MHz,晶體振蕩頻率高,則系統(tǒng)的時鐘頻率也高,單片機運行速度也就快。圖3-3 單片機最小系統(tǒng)電路圖3.4.1復位電路部分AT89S51的復位電路如圖3.5所示。當單片機一上電,立即復位。電容C和電阻R1實現(xiàn)上電自動復位。復位也是使單片機退出低功耗工作方式而進入正常狀態(tài)的一

20、種操作。圖3-4 復位電路部分電路圖3.4.2時鐘電路部分單片機內部每個部件要想協(xié)調一致地工作,必須在統(tǒng)一口令時鐘信號的控制下工作。單片機工作所需要的時鐘信號有兩種產生方式,即內部時鐘方式和外部時鐘方式。圖3.5是內部時鐘方式:單片機內部有一個構成振蕩器的增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸入端,這個放大器與作為反饋元件的片外晶振一起構成自激振蕩器。在該圖中,電容C1和C2取20PF,晶體的振蕩頻率取12MHz,晶體振蕩頻率高,則系統(tǒng)的時鐘頻率也高,單片機運行速度也就快。實際連接如圖3-5所示:圖3-5時鐘電路部分3.5 顯示電路部分本電路的顯示模塊主要由一個4

21、位一體的7段LED數碼管構成,用于顯示測量到的電壓值。它是一個共陽極的數碼管,每一位數碼管的a,b,c,d,e,f,g和dp端都各自連接在一起,用于接收AT89S51的P1口產生的顯示段碼。1,2,3,4引腳端為其位選端,用于接收AT89S51的P3口產生的位選碼。本系統(tǒng)采用動態(tài)掃描方式。掃描方法是用其接口電路把所有數碼管的8個比劃段ag和DP同名端連在一起,而每一個數碼管的公共極COM各自獨立地受I/O線控制。CUP從字段輸出口送出字型碼時,所有數碼管接收到相同的字型碼,但究竟是哪個數碼管亮,則取決于COM端。COM端與單片機的I/O接口相連接,由單片機輸出位位選碼到IO接口,控制何時哪一位

22、數碼管被點亮。在輪流點亮數碼管的位掃描過程中,每位數碼管的點亮時間極為短暫。但由于人的視覺暫留現(xiàn)象,給人的印象就是一組穩(wěn)定顯示的數碼。動態(tài)方式的優(yōu)點是十分明顯的,即耗電省,在動態(tài)掃描過程中,任何時刻只有一個數碼管是處于工作狀態(tài)的。具體原理圖如圖3-6所示圖3-6 顯示電路圖3.7量程標定電路輸入電路的核心是由輸入衰減器和放大器組成的量程標定電路,如下圖所示。 繼電器S控制1001衰減器是否接入。VT5VT10是模擬開關,控制放大器不同的增益。它們在控制信號的作用下,形成不同的通、斷組態(tài),構成0.1V, 1V,10V,100V,1000V五個量程狀態(tài)及自測試狀態(tài)。各組分析如下:圖3-8 量程標定

23、電路圖(1)0.1量程: VT8,VT6導通,放大電路被接成電壓負反饋放大器,則 放大倍數 Af (21.6+9+1) 1 31.6 最大輸出電壓 Uomax 0.1×31.6 3.16(2) 1V量程 : VT8,VT10 導通,此時放大電路被接成串聯(lián)負反饋放大器,Af (21.6+9+1)( 9+1 ) 3.16Uomax 1×3.163.1(3) 10V量程: VT7,VT9導通,放大電路被接成跟隨器,放大倍數為1, 然后輸出又經分壓,此時 Uomax 10×(9+1)(21.6+9+1 ) 3.16V(4) 100V量程 : VT8,VT10導通,放大電路

24、仍為串聯(lián)負反饋放大器。同時繼電器開關S吸合,使1001衰減器接入,此時 Uomax 100× 1 100 × 21.6+9+1 9+1 3.16V(5)1 000V量程 : 繼電器S吸合,1001衰減器接入;VT,VT9導通,放大電路被接成跟隨器,并使輸出再經分壓,此時Uomax 1000 × 1 100 × (9+1) (21.6+9+1) 3.16 V 由上述計算可見,送入A/D轉換器的輸入規(guī)范電壓為0V3.16V。 由于電路被接成串聯(lián)負反饋形式并且采用自舉電源, 0.1V,1V,10V三擋量程的輸入電阻高達10000M, 10V和1000V擋量程由

25、于接入衰減器,輸入阻抗降為10M。 當VT5,VT6,VT8導通,S吸合時, 電路組態(tài)為自測試狀態(tài)。此時放大器的輸出應為 3.12V。儀器在自診斷時測量該電壓, 并與存儲的數值相比較;若兩者之差在 6內, 即認為放大器工作正常。第4章 系統(tǒng)軟件設計4.1 主程序設計初始化中主要對AT89S51,ADC0809的管腳和數碼管的位選及所用到的內存單元70H,78H,79H,7AH 進行初始化設置。準備工作做好后便啟動ADC0809對IN0腳輸入進的05V電壓模擬信號進行數據采集并轉換成相對應的0255十進制數字量。在數據處理子程序中,運用標度變換知識,編寫算法將0255十進制數字量轉換成0.005

26、.00V的數據,輸出到顯示子程序進行顯示。整個主程序就是在A/D轉換,數據處理及顯示程序循環(huán)執(zhí)行。整個程序流程框圖如下圖所示。   4-1主程序流程圖4.2 各子程序設計A/D轉換子程序啟動ADC0809對模擬量輸入信號進行轉換,通過判斷EOC(P3.1引腳)來確定轉換是否完成,若EOC為0,則繼續(xù)等待;若EOC為1,則把OE置位,將轉換完成的數據存儲到70H中。程序流程圖如下圖所示。 4-2A/D轉換程序流程圖數據處理子程序程序流程圖如下圖所示4-3 數據處理子程序流程圖顯示子程序顯示子程序采用動態(tài)掃描法實現(xiàn)三位數碼管的數值顯示。測量所得的A/D轉換數據放在70H內存單元中,測量數

27、據在顯示時需轉換成10進制BCD碼放在78H7AH單元中。寄存器R1用作顯示數據地址指針。程序流程圖如下圖所示。4-4顯示子程序流程圖4.3源程序代碼ORG 0000HLJMP STARTORG 0003HRETIORG 000BHRETIORG 0013HRETIORG 001BHRETIORG 0023HRETIORG 002BHRETIORG 0030H;初始化參數START: CLR A SETB P3.7 ;初始化EOC CLR P3.0 ;初始化LED位選,全不選中。 CLR P3.1 CLR P3.2 MOV P2 , A ;初始化P2口,清除對ADC0809的控制信號。 MOV

28、 70H , A ;初始化數據采樣后存儲空間。 MOV 78H , A ;初始化數據處理后3位有效數字的存儲空間(78H最高位,7AH最低位)。 MOV 79H , A MOV 7AH , A MOV A , #0FFH ;初始化P0,P1口,寫入高電平。 MOV P0 , A MOV P1 , A;主程序MAIN: LCALL AD_SUB ;調用A/D轉換子程序,開始采樣并轉換。 LCALL TURN_SUB ;調用數碼轉換子程序,將采樣轉換來的0-255轉換成一一對應的LCALL DISP_SUB ;調用顯示子程序。LJMP MAIN;= ;A/D轉換子程序 AD_SUB: CLR AM

29、OV P2 , A ;初始化P2口,清除對ADC0809的控制信號。MOV R0 , #70H LCALL AD_ST ;調用采樣轉換子程序WAIT: JB P3.7 , DATASAVE ;判斷采樣轉換是否完畢,完畢則跳轉到DATASAVE進行存儲。 AJMP WAIT ;否則繼續(xù)等待。;啟動采樣,送脈沖時序AD_ST: SETB P2.3 ;ALE 脈沖時序NOPNOPCLR P2.3SETB P2.4 ;START 脈沖時序(上跳清零,下跳開始轉換)NOPNOPCLR P2.4NOPNOPRET;采樣轉換的數據存儲DATASAVE: SETB P2.5 ;置位OE端,允許ADC0809輸

30、出數據MOV A , P0 ;將轉換的數據存儲到70H中MOV R0 , ACLR P2.5 CLR A ;初始化P0,P1,P2口(P0,P1高電平,P2低電平)MOV P2 , AMOV A , #0FFHMOV P0 , AMOV P1 , ARET;將0255轉換為0.005.00TURN_SUB: MOV A , R0 MOV B , #51DIV AB MOV 78H , A ;以上這一段是整數部分(個位)放入78H MOV A , B ;余數部分放入ACLR F0SUBB A , #1AH ;余數和51的一半即1AH比較,以便四舍五入MOV F0 , CMOV A , #10MU

31、L AB ;余數乘以10,以便再除以51 MOV B , #51DIV ABJB F0 , LOOP1 ;判斷四舍五入,跳到LOOP1是“四舍”ADD A , #5 ;這是“五入”LOOP1: MOV 79H , A ;十分位MOV A , BCLR F0SUBB A , #1AHMOV F0,CMOV A , #10MUL ABMOV B , #51DIV ABJB F0 , LOOP2ADD A , #5LOOP2: MOV 7AH , A ;百分位RET;= ;顯示子程序 DISP_SUB: MOV R1 , #78H ;R1輔助寄存器,用于存放要顯示的數據的地址(初始為最高位78H)C

32、LR AMOV P1 , #0FFH ;初始化P1,P2口(P1高電平,P2低電平)ANL P2 , A LCALL PLAY ;調用顯示位碼子程序CLR P1.7 ;顯示最高位(個位)后的小數點SETB P3.0 ;選中最高位LED數碼管LCALL DELAY ;調用延遲子程序CLR P3.0 ;取消最高位位選INC R1 ;提取第二位有效數字(十分位)的數據地址(79H)LCALL PLAY ;調用顯示位碼子程序SETB P3.1 ;選中第二位LED數碼管LCALL DELAY ;調用延遲子程序CLR P3.1 ;取消第二位位選INC R1 ;提取最低位(百分位)的數據地址(7AH)LCA

33、LL PLAY ;調用顯示位碼子程序SETB P3.2 ;選中最低位LED數碼管LCALL DELAY ;調用延遲子程序CLR P3.2 ;取消最低位位選RET;位碼顯示 PLAY: MOV A , R1 ;送偏移量MOV DPTR , #TAB ;送表首地址MOVC A , A+DPTR ;查表得出相應LED段碼 MOV P1 , A ;輸出顯示RET ;= ;延時程序DELAY: MOV R6 , #10HDL1: MOV R7 , #10HDL2: DJNZ R7 , DL2DJNZ R6 , DL1RET;= ;09段碼 TAB: DB 0C0H , 0F9H , 0A4H , 0B0

34、H , 99H , 92H , 82H , 0F8H , 80H , 90H END第5章 調試在系統(tǒng)上電開始測量前,要用萬用表的電壓檔對被測電壓進行估測,然后以此選擇適當的量程,防止過大電壓燒壞A/D轉換器。首先用萬用表按照原理圖逐步檢查印刷板中各器件的電源及各引腳的連接是否正確,有否斷路、短路或者虛焊,尤其是給電路供電的電源部分要重點檢查,用數字萬用表測量7805輸出端的電壓是否為+5V,是否穩(wěn)定,能夠輸出+5V,且穩(wěn)定即可說明電源電路的設計基本達到要求。如果電壓沒有達到要求,要及時排查給予解決,以免燒壞芯片和其他元器件。軟件調試時先進行單元測試,分別對各個代碼模塊進行測試,看其是否實現(xiàn)了

35、規(guī)定功能,再把已經測試過的模塊組合起來進行測試,一旦不能正確運行,要找出程序中的錯誤,確定大致的出錯位置,研究有關部分的錯誤程序,找出錯誤原因,修改設計和代碼,以排除錯誤。我們在程序編寫完成后,就可以利用仿真器進行初步調試,觀察在計算機里能否通過編譯與運行并達到設計的基本要求。在基本符合的情況下,利用仿真器與工作正常的硬件連接進行仿真調試;或用編程器把程序燒寫到芯片中,直接觀察能否正常運行。如果達不到設計要求或者不能正常運行,可以直接在程序中進行修改。系統(tǒng)調試中遇到的問題及解決的方法:1)在應用濾波電容的過程中,一開始是把電容串聯(lián)在電路中,導致電路無法導通,而后我們短路電容,解決了問題。2)電

36、源指示燈上,一開始發(fā)現(xiàn)接上電源,指示燈不亮,經過儀器測量發(fā)現(xiàn)正負極接反,后重新焊接,問題解決。3)由于源程序的多處錯誤,使得仿真無法通過,后經過單步調試,把存在的錯誤一一排除,通過了軟件仿真。4)在燒錄芯片的過程中,由于選擇燒錄文件的錯誤及芯片自身問題(因多次燒錄,無法再次燒錄)使得燒錄失敗,后經過老師指導并更換了AT89C51芯片,解決了問題。參考文獻1 作者:魏立峰,單片機原理及應用技術,北京大學出版社2006年。2 作者:陳光絨,單片機技術應用教程,北京大學出版社2005年。3 作者:李廣弟,單片機基礎,北京航空航天大學出版社2007年。.4 作者:劉樹林,低頻電子線路,電子工業(yè)出版社2

37、003年。5 作者:何宏,單片機原理與接口技術,國防工業(yè)出版社2006年6 作者:張志良,單片機原理與控制技術,機械工業(yè)出版社2001年。7 作者:郭強,液晶顯示器件應用技術,北京郵電學院出版社1993年。8 作者: 王辛之,AT89系列單片機原理與接口技術,北京航空航天大學出版社2004年。附錄附錄A 原理圖附錄B 總結與感謝本次設計由于使用的是高效單片機作為核心的測量系統(tǒng),以及靈敏度和精度較高的A/D轉換器,使本電壓表具有精度高、靈敏度強、性能可靠、電路簡單成本低的特點,使其有很高的智能化水平。通過本次設計,我對單片機這門課程有了更進一步的了解。無論是在其硬件連接方面還是在軟件編程方面,都

38、取得了新的收獲。本次實驗采用了AT89S51單片機芯片,與以往我們所熟悉的C51芯片有許多不同之處,通過本次設計及查閱相關資料,我對其之間的區(qū)別有了一定的認識,在本設計報告的硬件介紹部分也對其作了詳細的論述。S51在C51的基礎上增加了許多新的功能,使其功能更為完善,應用領域也更為廣泛。另外,在畢業(yè)設計的整個過程中我發(fā)現(xiàn)了自己對單片機認知的一些不足之處。在對單片機編程方面,我又掌握了一些新的編程思想,使得程序更為簡練、易懂,而且更為嚴謹,程序執(zhí)行的穩(wěn)定性得到了提高。在基于單片機的數字電壓表的設計過程中也找到了一些關于單片機開發(fā)的規(guī)律:先了解所有元件的具體內容,從而畫出其電路圖,使數字電壓表從簡易變?yōu)槎喙δ艿姆绞?,雖然沒有做多功能的電壓表,確切了解了一些方法。單片機的畢業(yè)設計是一門很實用、很難得課程,這個設計運用到了單片機、基礎電路、模電、數電等方面的知識,通過這次設計,使我對單片機及其附屬電力有了更進一步的認知,進一步

溫馨提示

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

評論

0/150

提交評論