版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、揚 州 市 職 業(yè) 大 學(xué)畢 業(yè) 設(shè) 計(論 文)設(shè)計(論文)題目: 基于51單片機的數(shù)字電壓表設(shè)計 專 業(yè): 通信技術(shù) 1 基于51單片機的數(shù)字電壓表設(shè)計摘要:數(shù)字電壓表簡稱DVM,它是采用數(shù)字化測量技術(shù),把連續(xù)的模擬量(直流輸入電壓)轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。數(shù)字電壓表自從一九五二年問世以來,隨著電子技術(shù)的飛躍發(fā)展,特別是目前,作為測量儀表、模擬指示儀表的數(shù)字化以及自動測量的系統(tǒng),而得到了很大的發(fā)展。數(shù)字電壓表是從電位差計的自動化這種想法研制出來的,因此即便是最初的數(shù)字電壓表,其精度也要比模擬式儀表高,而其成本比電位差計也高。以后,DVM的發(fā)展就著眼在高精度和低成本兩個
2、方面。單片機可單獨地完成現(xiàn)代工業(yè)控制所要求的智能化控制功能,這是單片機最大的特征。本電路主要采用AT89S51芯片和ADC0809芯片來完成一個簡易的數(shù)字電壓表,能夠?qū)斎氲?5 V的模擬直流電壓進行測量,并通過一個4位一體的7段LED數(shù)碼管進行顯示。該電壓表的測量電路主要由三個模塊組成:A/D轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊及顯示控制模塊。A/D轉(zhuǎn)換主要由芯片ADC0809來完成,它負(fù)責(zé)把采集到的模擬量轉(zhuǎn)換為相應(yīng)的數(shù)字量再傳送到數(shù)據(jù)處理模塊。數(shù)據(jù)處理則由芯片AT89S51來完成,其負(fù)責(zé)把ADC0809傳送來的數(shù)字量經(jīng)一定的數(shù)據(jù)處理,產(chǎn)生相應(yīng)的顯示碼送到顯示模塊進行顯示;另外它還控制著ADC0809芯片
3、的工作。關(guān)鍵詞: 單片機 數(shù)字電壓表 AT89S51 A/D轉(zhuǎn)換 ADC0809目錄第1章產(chǎn)品要求及方案選擇.41.1設(shè)計的目的.41.2產(chǎn)品的要求.41.3各模塊方案選擇及論證.4第2章主要原件介紹.62.1模數(shù)轉(zhuǎn)換芯片ADC0809.62.2控制芯片AT89S51.72.3鎖存芯片SN74LS373.92.4 SEG-MPXE數(shù)碼管.10第3章電壓表原理系統(tǒng)硬件電路設(shè)計與實現(xiàn).113.1電壓表的原理.113.2 電源部分.113.3 A/D轉(zhuǎn)換電路.113.4 單片機最小系統(tǒng)電路部分.133.4.1時鐘電路部分.133.4.2復(fù)位電路部分.143.5 顯示電路部分.143.7量程標(biāo)定電路.
4、15第4章 系統(tǒng)軟件設(shè)計.174.1 主程序設(shè)計.174.2 各子程序設(shè)計.174.3源程序代碼.20第5章 調(diào)試.24參考文獻.24附錄.25附錄A 原理圖.25附錄B 總結(jié)與感謝.27附錄C 元件清單.29第1章 產(chǎn)品要求及方案選擇1.1 設(shè)計的目的通過制作簡易數(shù)字電壓表,加深對所學(xué)專業(yè)知識的認(rèn)識,提高分析、解決工程實際問題的能力,提高對單片機的應(yīng)用能力,提高收集文獻、資料的能力,從而達到綜合運用所學(xué)的專業(yè)知識進行電子產(chǎn)品設(shè)計、制作與調(diào)試的能力。1.2 產(chǎn)品的要求基本功能:1) 能用數(shù)碼管顯示電壓值2) 測量精度達0.5V3) 自制直流穩(wěn)壓電源4) 系統(tǒng)具備復(fù)位功能1.3 各模塊方案選擇與
5、論證根據(jù)設(shè)計要求,系統(tǒng)可分為電壓采集模塊、A/D轉(zhuǎn)換模塊 、主控模塊、顯示模塊。A/D轉(zhuǎn)換模塊:方案一: A/D轉(zhuǎn)換器采用ICL7107型三位半顯示的芯片,輸入信號,流經(jīng)取樣電路取樣后送到ICL7107型三位半A/D轉(zhuǎn)換器,只需要很少的簡單外圍元件,就可組成數(shù)字電流表模塊,直接驅(qū)動三位半LED顯示器顯示,最后輸入電流在顯示部分顯示。由于本人對此電路不熟悉,而且ICL7107做的LED數(shù)字表,最大的缺點就是數(shù)字亂跳不穩(wěn)定,特別最后一位。所以不采用此方案。方案二: 采用ADC0809轉(zhuǎn)換芯片,其中A/D轉(zhuǎn)換器用于實現(xiàn)模擬量向數(shù)字量的轉(zhuǎn)換,單電源供電。它是具有8路模擬量輸入、8位數(shù)字量輸出功能的A/
6、D轉(zhuǎn)換器,轉(zhuǎn)換時間為100s,模擬輸入電壓范圍為0V+5V,不需零點和滿刻度校準(zhǔn),功耗低,約15mW。由于模擬轉(zhuǎn)換電路的種類很多,通過對轉(zhuǎn)換速度,精度和價格方面考慮,所以選擇方案二采用ADC0809為本次設(shè)計的轉(zhuǎn)換芯片。接口模塊:方案一:使用數(shù)字電路實現(xiàn),采用譯碼芯片CD4543作為接口芯片,這種方案能實現(xiàn)功能,但穩(wěn)定性不高,結(jié)構(gòu)復(fù)雜。方案二:采用AT89S51單片機作為系統(tǒng)的控制單元,通過A/D轉(zhuǎn)換將被測值轉(zhuǎn)換為數(shù)字量送入單片機中,再由單片機來送顯。此方案各類功能易于實現(xiàn),成本低、功耗低,顯示穩(wěn)定。通過比較,我選擇方案二。系統(tǒng)原理框圖如1.1所示:圖1.1 數(shù)字電壓表設(shè)計框圖第2章 主要元件
7、介紹2.1 模數(shù)轉(zhuǎn)換芯片ADC0809ADC0809是典型的8位8通道逐次逼近式A/D轉(zhuǎn)換器,它可以和微型計算機直接接口。ADC0809轉(zhuǎn)換器的系列芯片是ADC0808,可以相互替換。 ADC0809內(nèi)部邏輯結(jié)構(gòu)圖2-1 ADC0809的內(nèi)部邏輯結(jié)構(gòu)及引腳圖 ADC0809的內(nèi)部邏輯結(jié)構(gòu)如圖2-1所示。圖中多路模擬開關(guān)可選通8路模擬通道,允許8路模擬量分時輸入,并共用一個A/D轉(zhuǎn)換器進行轉(zhuǎn)換。地址鎖存與譯碼電路完成對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路模擬通道的選擇,其譯碼關(guān)系如表1-1所示。其中,A為低地址,C為高地址,引腳圖中為ADDA,ADDB和ADDC。(3)ALE:地址鎖存允許信號。對應(yīng)ALE上跳沿,A、B、C地址狀態(tài)送入地址鎖存器中。(4)START:轉(zhuǎn)換啟動信號。START上升沿時,復(fù)位ADC0809;START下降沿時啟動芯片,開始進行A/D轉(zhuǎn)換;在A/D轉(zhuǎn)換期間
9、,START應(yīng)保持低電平。本信號有時簡寫為ST。(5)D7D0:數(shù)據(jù)輸出線。為三態(tài)緩沖輸出形式,可以和單片機的數(shù)據(jù)線直接相連。D0為最低位,D7為最高。 (6)OE:輸出允許信號。用于控制三態(tài)輸出鎖存器向單片機輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE=0,輸出數(shù)據(jù)線呈高阻;OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù)。(7)CLK:時鐘信號。ADC0809的內(nèi)部沒有時鐘電路,所需時鐘信號由外界提供,因此有時鐘信號引腳。通常使用頻率為500KHz的時鐘信號。(8)EOC:轉(zhuǎn)換結(jié)束信號。EOC=0,正在進行轉(zhuǎn)換;EOC=1,轉(zhuǎn)換結(jié)束。使用中該狀態(tài)信號即可作為查詢的狀態(tài)標(biāo)志,又可作為中斷請求信號使用。(9)Vcc: +5V電源,G
10、ND:地。 (10)Vref:參考電壓。參考電壓用來與輸入的模擬信號進行比較,作為逐次逼近的基準(zhǔn)。其典型值為+5V(Vref(+)=+5V, Vref(-)=0V)。 ADC0809的工作原理:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動 A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當(dāng)OE輸入高電平時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。2.2 控制芯片AT89S5
11、1AT89S51是美國ATMEL公司生產(chǎn)的低功耗、高性能CMOS 8位單片機。AT89S51片內(nèi)含有4k字節(jié)Flash閃速存儲器,128字節(jié)內(nèi)部 RAM,32個I/O 口線,看門狗(WDT),兩個數(shù)據(jù)指針,兩個16 位定時/計數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,S51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許 RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存 RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復(fù)位。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,
12、ATMEL的AT89S51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。(圖2-2為其內(nèi)部結(jié)構(gòu)圖,圖2-3為其引腳圖。) 主要性能參數(shù)與MCS-51產(chǎn)品指令系列完全兼容;4K字節(jié)在系統(tǒng)編程(ISP)Flash閃速存儲器;1000次擦寫周期;4.05.5 V工作電壓范圍;全靜態(tài)工作模式:0Hz33MHz;三級程序加密鎖;128字節(jié)內(nèi)部RAM;32個可編程I/O口線;2個16位的定時/計數(shù)器;6個中斷源;圖2-2 AT89S51芯片內(nèi)部總體結(jié)構(gòu)圖全雙工串行UART通道;低工耗空閑和掉電模式;中斷可從空閑模式喚醒系統(tǒng);看門狗(WDT)及雙數(shù)據(jù)指針;掉電標(biāo)識和快速編程特性;靈
13、活的在系統(tǒng)編程(ISP-字節(jié)或頁寫模式)。 AT89S51的引腳:AT89S51芯片為40引腳雙列直插式封裝,其引腳排列如圖1-7所示。圖2-3 AT89S51的引腳圖2.3 鎖存芯片SN74LS37374LS373是八D鎖存器(3S,鎖存允許輸入有回環(huán)特性) ,常應(yīng)用在地址鎖存及輸出口的擴展中。SN74LS373 常用的8d鎖存器,常用作地址鎖存和i/o輸出. 可以用74hc373代換. 74LS373是低功耗肖特基TTL8D鎖存器,74HC373是高速CMOS器件,功能與74LS373相同,兩者可以互換。74LS373內(nèi)有8個相同的D型(三態(tài)同相)鎖存器,由兩個控制端(11腳G或EN;1腳
14、OUT、CONT、OE)控制。當(dāng)OE接地時,若G為高電平,74LS373接收由PPU輸出的地址信號;如果G為低電平,則將地址信號鎖存。74LS373的輸出端O0O7可直接與總線相連。當(dāng)三態(tài)允許控制端OE為低電平時,O0O7為正常邏輯狀態(tài),可用來驅(qū)動負(fù)載或總線。當(dāng)OE為高電平時,O0O7呈高阻態(tài),即不驅(qū)動總線,也不為總線的負(fù)載,但鎖存器內(nèi)部的邏輯操作不受影響。 當(dāng)鎖存允許端LE為高電平時,O隨數(shù)據(jù)D而變。當(dāng)LE為低電平時,O被鎖存在已建立的數(shù)據(jù)電平。(其引腳圖如圖2-4所示。) 圖2-4 SN74LS373引腳圖2.4 SEG-MPX4
15、數(shù)碼管本實驗的顯示模塊主要由一個4位一體的7段LED數(shù)碼管構(gòu)成,用于顯示測量到的電壓值。它是一個共陽極的數(shù)碼管。每一位數(shù)碼管的a,b,c,d,e,f,g和dp端都各自連接在一起,用于接收AT89S51的P1口產(chǎn)生的顯示段碼。1,2,3,4引腳端為其位選端,用于接收AT89S51的P3口產(chǎn)生的位選碼。第3章 電壓表原理系統(tǒng)硬件電路設(shè)計與實現(xiàn)3.1 電壓表的原理本設(shè)計采用AT89S51單片機芯片配合ADC0809模/數(shù)轉(zhuǎn)換芯片構(gòu)成一個簡易的數(shù)字電壓表,原理電路如下圖所示。該電路通過ADC0809芯片采樣輸入口IN0輸入的05 V的模擬量電壓,經(jīng)過模/數(shù)轉(zhuǎn)換后,產(chǎn)生相應(yīng)的數(shù)字量經(jīng)過其輸出通道D0D7
16、傳送給AT89S51芯片的P0口。AT89S51負(fù)責(zé)把接收到的數(shù)字量經(jīng)過數(shù)據(jù)處理,產(chǎn)生正確的7段數(shù)碼管的顯示段碼,并通過其P1口經(jīng)驅(qū)動芯片SN74LS373驅(qū)動,再傳送給數(shù)碼管。同時它還通過其三位I/O口P3.0、P3.1、P3.2產(chǎn)生位選信號,控制數(shù)碼管的亮滅。另外,AT89S51還控制著ADC0809的工作。其ALE管腳為ADC0809提供了1MHz工作的時鐘脈沖;P2.3控制ADC0809的地址鎖存端(ALE);P2.4控制ADC0809的啟動端(START);P2.5控制ADC0809的輸出允許端(OE);P3.7控制ADC0809的轉(zhuǎn)換結(jié)束信號(EOC)。3.2 電源部分電源部分電路
17、主要是要求能提供穩(wěn)定可靠的電壓,使整個系統(tǒng)能正常的工作。采用220V的工頻交流電壓,而單片機的工作電壓是直流+5V,為此,先通過一個普通的變壓器降低電壓,再通過橋式整流,然后再通過7805芯片的進一步穩(wěn)壓,確保+5V電源的穩(wěn)定、可靠。而且7805集成穩(wěn)壓器是常用的固定輸出+5V電壓的集成穩(wěn)壓器。它的內(nèi)部含有限流保護、過熱保護和過壓保護電路,采用了噪聲低、溫度漂移小的基準(zhǔn)電壓源,工作穩(wěn)定可靠。1腳為輸入端,2腳為接地端,3腳為輸出端,使用十分方便,可以在任何有交流電壓的地方使用,不需另帶電池。通過整流濾波以后輸出直流電壓,為了確保整個電路能正常工作,考慮到不接負(fù)載或電源電壓有波動時電容能承受的耐
18、壓,必須加電容。發(fā)光二極管D2點亮表示電源電路正常工作,其電源電路如圖3-1所示:圖 3-1 電源電路3.3 A/D轉(zhuǎn)換電路A/D轉(zhuǎn)換器是模擬量輸入通道中的一個環(huán)節(jié),單片機通過A/D轉(zhuǎn)換器把輸入模擬量變成數(shù)字量再處理。隨著大規(guī)模集成電路的發(fā)展,目前不同廠家已經(jīng)生產(chǎn)出了多種型號的A/D轉(zhuǎn)換器,以滿足不同應(yīng)用場合的需要。如果按照工作原理劃分,ADC主要有4種類型,即雙積分式A/D轉(zhuǎn)換器、逐次逼近式A/D轉(zhuǎn)換器和并行式A/D轉(zhuǎn)換器和計數(shù)比較式A/D轉(zhuǎn)換器。目前最常用的是雙積分和逐次逼近式。 圖3-2 A/D轉(zhuǎn)換電路圖3.4 單片機最小系統(tǒng)電路部分單片機內(nèi)部每個部件要想?yún)f(xié)調(diào)一致地工作,必須在統(tǒng)一口令時
19、鐘信號的控制下工作。單片機工作所需要的時鐘信號有兩種產(chǎn)生方式,即內(nèi)部時鐘方式和外部時鐘方式。圖3.5是內(nèi)部時鐘方式:單片機內(nèi)部有一個構(gòu)成振蕩器的增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸入端,這個放大器與作為反饋元件的片外晶振一起構(gòu)成自激振蕩器。在該圖中,電容C1和C2取20PF,晶體的振蕩頻率取12MHz,晶體振蕩頻率高,則系統(tǒng)的時鐘頻率也高,單片機運行速度也就快。圖3-3 單片機最小系統(tǒng)電路圖3.4.1復(fù)位電路部分AT89S51的復(fù)位電路如圖3.5所示。當(dāng)單片機一上電,立即復(fù)位。電容C和電阻R1實現(xiàn)上電自動復(fù)位。復(fù)位也是使單片機退出低功耗工作方式而進入正常狀態(tài)的一
20、種操作。圖3-4 復(fù)位電路部分電路圖3.4.2時鐘電路部分單片機內(nèi)部每個部件要想?yún)f(xié)調(diào)一致地工作,必須在統(tǒng)一口令時鐘信號的控制下工作。單片機工作所需要的時鐘信號有兩種產(chǎn)生方式,即內(nèi)部時鐘方式和外部時鐘方式。圖3.5是內(nèi)部時鐘方式:單片機內(nèi)部有一個構(gòu)成振蕩器的增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸入端,這個放大器與作為反饋元件的片外晶振一起構(gòu)成自激振蕩器。在該圖中,電容C1和C2取20PF,晶體的振蕩頻率取12MHz,晶體振蕩頻率高,則系統(tǒng)的時鐘頻率也高,單片機運行速度也就快。實際連接如圖3-5所示:圖3-5時鐘電路部分3.5 顯示電路部分本電路的顯示模塊主要由一個4
21、位一體的7段LED數(shù)碼管構(gòu)成,用于顯示測量到的電壓值。它是一個共陽極的數(shù)碼管,每一位數(shù)碼管的a,b,c,d,e,f,g和dp端都各自連接在一起,用于接收AT89S51的P1口產(chǎn)生的顯示段碼。1,2,3,4引腳端為其位選端,用于接收AT89S51的P3口產(chǎn)生的位選碼。本系統(tǒng)采用動態(tài)掃描方式。掃描方法是用其接口電路把所有數(shù)碼管的8個比劃段ag和DP同名端連在一起,而每一個數(shù)碼管的公共極COM各自獨立地受I/O線控制。CUP從字段輸出口送出字型碼時,所有數(shù)碼管接收到相同的字型碼,但究竟是哪個數(shù)碼管亮,則取決于COM端。COM端與單片機的I/O接口相連接,由單片機輸出位位選碼到IO接口,控制何時哪一位
22、數(shù)碼管被點亮。在輪流點亮數(shù)碼管的位掃描過程中,每位數(shù)碼管的點亮?xí)r間極為短暫。但由于人的視覺暫留現(xiàn)象,給人的印象就是一組穩(wěn)定顯示的數(shù)碼。動態(tài)方式的優(yōu)點是十分明顯的,即耗電省,在動態(tài)掃描過程中,任何時刻只有一個數(shù)碼管是處于工作狀態(tài)的。具體原理圖如圖3-6所示圖3-6 顯示電路圖3.7量程標(biāo)定電路輸入電路的核心是由輸入衰減器和放大器組成的量程標(biāo)定電路,如下圖所示。 繼電器S控制1001衰減器是否接入。VT5VT10是模擬開關(guān),控制放大器不同的增益。它們在控制信號的作用下,形成不同的通、斷組態(tài),構(gòu)成0.1V, 1V,10V,100V,1000V五個量程狀態(tài)及自測試狀態(tài)。各組分析如下:圖3-8 量程標(biāo)定
23、電路圖(1)0.1量程: VT8,VT6導(dǎo)通,放大電路被接成電壓負(fù)反饋放大器,則 放大倍數(shù) Af (21.6+9+1) 1 31.6 最大輸出電壓 Uomax 0.1×31.6 3.16(2) 1V量程 : VT8,VT10 導(dǎo)通,此時放大電路被接成串聯(lián)負(fù)反饋放大器,Af (21.6+9+1)( 9+1 ) 3.16Uomax 1×3.163.1(3) 10V量程: VT7,VT9導(dǎo)通,放大電路被接成跟隨器,放大倍數(shù)為1, 然后輸出又經(jīng)分壓,此時 Uomax 10×(9+1)(21.6+9+1 ) 3.16V(4) 100V量程 : VT8,VT10導(dǎo)通,放大電路
24、仍為串聯(lián)負(fù)反饋放大器。同時繼電器開關(guān)S吸合,使1001衰減器接入,此時 Uomax 100× 1 100 × 21.6+9+1 9+1 3.16V(5)1 000V量程 : 繼電器S吸合,1001衰減器接入;VT,VT9導(dǎo)通,放大電路被接成跟隨器,并使輸出再經(jīng)分壓,此時Uomax 1000 × 1 100 × (9+1) (21.6+9+1) 3.16 V 由上述計算可見,送入A/D轉(zhuǎn)換器的輸入規(guī)范電壓為0V3.16V。 由于電路被接成串聯(lián)負(fù)反饋形式并且采用自舉電源, 0.1V,1V,10V三擋量程的輸入電阻高達10000M, 10V和1000V擋量程由
25、于接入衰減器,輸入阻抗降為10M。 當(dāng)VT5,VT6,VT8導(dǎo)通,S吸合時, 電路組態(tài)為自測試狀態(tài)。此時放大器的輸出應(yīng)為 3.12V。儀器在自診斷時測量該電壓, 并與存儲的數(shù)值相比較;若兩者之差在 6內(nèi), 即認(rèn)為放大器工作正常。第4章 系統(tǒng)軟件設(shè)計4.1 主程序設(shè)計初始化中主要對AT89S51,ADC0809的管腳和數(shù)碼管的位選及所用到的內(nèi)存單元70H,78H,79H,7AH 進行初始化設(shè)置。準(zhǔn)備工作做好后便啟動ADC0809對IN0腳輸入進的05V電壓模擬信號進行數(shù)據(jù)采集并轉(zhuǎn)換成相對應(yīng)的0255十進制數(shù)字量。在數(shù)據(jù)處理子程序中,運用標(biāo)度變換知識,編寫算法將0255十進制數(shù)字量轉(zhuǎn)換成0.005
26、.00V的數(shù)據(jù),輸出到顯示子程序進行顯示。整個主程序就是在A/D轉(zhuǎn)換,數(shù)據(jù)處理及顯示程序循環(huán)執(zhí)行。整個程序流程框圖如下圖所示。 4-1主程序流程圖4.2 各子程序設(shè)計A/D轉(zhuǎn)換子程序啟動ADC0809對模擬量輸入信號進行轉(zhuǎn)換,通過判斷EOC(P3.1引腳)來確定轉(zhuǎn)換是否完成,若EOC為0,則繼續(xù)等待;若EOC為1,則把OE置位,將轉(zhuǎn)換完成的數(shù)據(jù)存儲到70H中。程序流程圖如下圖所示。 4-2A/D轉(zhuǎn)換程序流程圖數(shù)據(jù)處理子程序程序流程圖如下圖所示4-3 數(shù)據(jù)處理子程序流程圖顯示子程序顯示子程序采用動態(tài)掃描法實現(xiàn)三位數(shù)碼管的數(shù)值顯示。測量所得的A/D轉(zhuǎn)換數(shù)據(jù)放在70H內(nèi)存單元中,測量數(shù)
27、據(jù)在顯示時需轉(zhuǎn)換成10進制BCD碼放在78H7AH單元中。寄存器R1用作顯示數(shù)據(jù)地址指針。程序流程圖如下圖所示。4-4顯示子程序流程圖4.3源程序代碼ORG 0000HLJMP STARTORG 0003HRETIORG 000BHRETIORG 0013HRETIORG 001BHRETIORG 0023HRETIORG 002BHRETIORG 0030H;初始化參數(shù)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 ;初始化數(shù)據(jù)采樣后存儲空間。 MOV 78H , A ;初始化數(shù)據(jù)處理后3位有效數(shù)字的存儲空間(78H最高位,7AH最低位)。 MOV 79H , A MOV 7AH , A MOV A , #0FFH ;初始化P0,P1口,寫入高電平。 MOV P0 , A MOV P1 , A;主程序MAIN: LCALL AD_SUB ;調(diào)用A/D轉(zhuǎn)換子程序,開始采樣并轉(zhuǎn)換。 LCALL TURN_SUB ;調(diào)用數(shù)碼轉(zhuǎn)換子程序,將采樣轉(zhuǎn)換來的0-255轉(zhuǎn)換成一一對應(yīng)的LCALL DISP_SUB ;調(diào)用顯示子程序。LJMP MAIN;= ;A/D轉(zhuǎn)換子程序 AD_SUB: CLR AM
29、OV P2 , A ;初始化P2口,清除對ADC0809的控制信號。MOV R0 , #70H LCALL AD_ST ;調(diào)用采樣轉(zhuǎn)換子程序WAIT: JB P3.7 , DATASAVE ;判斷采樣轉(zhuǎn)換是否完畢,完畢則跳轉(zhuǎn)到DATASAVE進行存儲。 AJMP WAIT ;否則繼續(xù)等待。;啟動采樣,送脈沖時序AD_ST: SETB P2.3 ;ALE 脈沖時序NOPNOPCLR P2.3SETB P2.4 ;START 脈沖時序(上跳清零,下跳開始轉(zhuǎn)換)NOPNOPCLR P2.4NOPNOPRET;采樣轉(zhuǎn)換的數(shù)據(jù)存儲DATASAVE: SETB P2.5 ;置位OE端,允許ADC0809輸
30、出數(shù)據(jù)MOV A , P0 ;將轉(zhuǎn)換的數(shù)據(jù)存儲到70H中MOV R0 , ACLR P2.5 CLR A ;初始化P0,P1,P2口(P0,P1高電平,P2低電平)MOV P2 , AMOV A , #0FFHMOV P0 , AMOV P1 , ARET;將0255轉(zhuǎn)換為0.005.00TURN_SUB: MOV A , R0 MOV B , #51DIV AB MOV 78H , A ;以上這一段是整數(shù)部分(個位)放入78H MOV A , B ;余數(shù)部分放入ACLR F0SUBB A , #1AH ;余數(shù)和51的一半即1AH比較,以便四舍五入MOV F0 , CMOV A , #10MU
31、L AB ;余數(shù)乘以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輔助寄存器,用于存放要顯示的數(shù)據(jù)的地址(初始為最高位78H)C
32、LR AMOV P1 , #0FFH ;初始化P1,P2口(P1高電平,P2低電平)ANL P2 , A LCALL PLAY ;調(diào)用顯示位碼子程序CLR P1.7 ;顯示最高位(個位)后的小數(shù)點SETB P3.0 ;選中最高位LED數(shù)碼管LCALL DELAY ;調(diào)用延遲子程序CLR P3.0 ;取消最高位位選INC R1 ;提取第二位有效數(shù)字(十分位)的數(shù)據(jù)地址(79H)LCALL PLAY ;調(diào)用顯示位碼子程序SETB P3.1 ;選中第二位LED數(shù)碼管LCALL DELAY ;調(diào)用延遲子程序CLR P3.1 ;取消第二位位選INC R1 ;提取最低位(百分位)的數(shù)據(jù)地址(7AH)LCA
33、LL PLAY ;調(diào)用顯示位碼子程序SETB P3.2 ;選中最低位LED數(shù)碼管LCALL DELAY ;調(diào)用延遲子程序CLR P3.2 ;取消最低位位選RET;位碼顯示 PLAY: MOV A , R1 ;送偏移量MOV DPTR , #TAB ;送表首地址MOVC A , A+DPTR ;查表得出相應(yīng)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章 調(diào)試在系統(tǒng)上電開始測量前,要用萬用表的電壓檔對被測電壓進行估測,然后以此選擇適當(dāng)?shù)牧砍蹋乐惯^大電壓燒壞A/D轉(zhuǎn)換器。首先用萬用表按照原理圖逐步檢查印刷板中各器件的電源及各引腳的連接是否正確,有否斷路、短路或者虛焊,尤其是給電路供電的電源部分要重點檢查,用數(shù)字萬用表測量7805輸出端的電壓是否為+5V,是否穩(wěn)定,能夠輸出+5V,且穩(wěn)定即可說明電源電路的設(shè)計基本達到要求。如果電壓沒有達到要求,要及時排查給予解決,以免燒壞芯片和其他元器件。軟件調(diào)試時先進行單元測試,分別對各個代碼模塊進行測試,看其是否實現(xiàn)了
35、規(guī)定功能,再把已經(jīng)測試過的模塊組合起來進行測試,一旦不能正確運行,要找出程序中的錯誤,確定大致的出錯位置,研究有關(guān)部分的錯誤程序,找出錯誤原因,修改設(shè)計和代碼,以排除錯誤。我們在程序編寫完成后,就可以利用仿真器進行初步調(diào)試,觀察在計算機里能否通過編譯與運行并達到設(shè)計的基本要求。在基本符合的情況下,利用仿真器與工作正常的硬件連接進行仿真調(diào)試;或用編程器把程序燒寫到芯片中,直接觀察能否正常運行。如果達不到設(shè)計要求或者不能正常運行,可以直接在程序中進行修改。系統(tǒng)調(diào)試中遇到的問題及解決的方法:1)在應(yīng)用濾波電容的過程中,一開始是把電容串聯(lián)在電路中,導(dǎo)致電路無法導(dǎo)通,而后我們短路電容,解決了問題。2)電
36、源指示燈上,一開始發(fā)現(xiàn)接上電源,指示燈不亮,經(jīng)過儀器測量發(fā)現(xiàn)正負(fù)極接反,后重新焊接,問題解決。3)由于源程序的多處錯誤,使得仿真無法通過,后經(jīng)過單步調(diào)試,把存在的錯誤一一排除,通過了軟件仿真。4)在燒錄芯片的過程中,由于選擇燒錄文件的錯誤及芯片自身問題(因多次燒錄,無法再次燒錄)使得燒錄失敗,后經(jīng)過老師指導(dǎo)并更換了AT89C51芯片,解決了問題。參考文獻1 作者:魏立峰,單片機原理及應(yīng)用技術(shù),北京大學(xué)出版社2006年。2 作者:陳光絨,單片機技術(shù)應(yīng)用教程,北京大學(xué)出版社2005年。3 作者:李廣弟,單片機基礎(chǔ),北京航空航天大學(xué)出版社2007年。.4 作者:劉樹林,低頻電子線路,電子工業(yè)出版社2
37、003年。5 作者:何宏,單片機原理與接口技術(shù),國防工業(yè)出版社2006年6 作者:張志良,單片機原理與控制技術(shù),機械工業(yè)出版社2001年。7 作者:郭強,液晶顯示器件應(yīng)用技術(shù),北京郵電學(xué)院出版社1993年。8 作者: 王辛之,AT89系列單片機原理與接口技術(shù),北京航空航天大學(xué)出版社2004年。附錄附錄A 原理圖附錄B 總結(jié)與感謝本次設(shè)計由于使用的是高效單片機作為核心的測量系統(tǒng),以及靈敏度和精度較高的A/D轉(zhuǎn)換器,使本電壓表具有精度高、靈敏度強、性能可靠、電路簡單成本低的特點,使其有很高的智能化水平。通過本次設(shè)計,我對單片機這門課程有了更進一步的了解。無論是在其硬件連接方面還是在軟件編程方面,都
38、取得了新的收獲。本次實驗采用了AT89S51單片機芯片,與以往我們所熟悉的C51芯片有許多不同之處,通過本次設(shè)計及查閱相關(guān)資料,我對其之間的區(qū)別有了一定的認(rèn)識,在本設(shè)計報告的硬件介紹部分也對其作了詳細(xì)的論述。S51在C51的基礎(chǔ)上增加了許多新的功能,使其功能更為完善,應(yīng)用領(lǐng)域也更為廣泛。另外,在畢業(yè)設(shè)計的整個過程中我發(fā)現(xiàn)了自己對單片機認(rèn)知的一些不足之處。在對單片機編程方面,我又掌握了一些新的編程思想,使得程序更為簡練、易懂,而且更為嚴(yán)謹(jǐn),程序執(zhí)行的穩(wěn)定性得到了提高。在基于單片機的數(shù)字電壓表的設(shè)計過程中也找到了一些關(guān)于單片機開發(fā)的規(guī)律:先了解所有元件的具體內(nèi)容,從而畫出其電路圖,使數(shù)字電壓表從簡易變?yōu)槎喙δ艿姆绞剑m然沒有做多功能的電壓表,確切了解了一些方法。單片機的畢業(yè)設(shè)計是一門很實用、很難得課程,這個設(shè)計運用到了單片機、基礎(chǔ)電路、模電、數(shù)電等方面的知識,通過這次設(shè)計,使我對單片機及其附屬電力有了更進一步的認(rèn)知,進一步
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 描寫秋景的初一作文600字5篇
- 初中物理教學(xué)心得體會
- 大學(xué)畢業(yè)求職信合集五篇
- 對創(chuàng)業(yè)的認(rèn)識和理解范文五篇
- 七年級下冊歷史知識要點歸納總結(jié)
- 光電技術(shù)轉(zhuǎn)讓協(xié)議書(2篇)
- 租賃經(jīng)營合同范本
- 旅游汽車租賃合同樣書
- 2025電腦購銷合同合同范本
- 2025煤炭買賣合同
- 國家開放大學(xué)電大《美學(xué)原理》形考任務(wù)1-4試題和答案
- 現(xiàn)場生命急救知識與技能學(xué)習(xí)通期末考試答案2023年
- 《HSK標(biāo)準(zhǔn)教程3》第18課課件
- 清掃保潔及垃圾清運承包合同
- 聯(lián)通公司集團大客戶業(yè)務(wù)開通項目管理實施細(xì)則(試行)
- 真空管太陽能熱水工程解決方案
- 公路養(yǎng)護作業(yè)區(qū)安全設(shè)施布設(shè)規(guī)定詳細(xì)
- 棋牌室合伙人協(xié)議
- 教師個人履職工作總結(jié)一級教師
- 國開電大本科《管理英語3》機考總題庫
- 初中英語中考專題訓(xùn)練閱讀理解-應(yīng)用文篇
評論
0/150
提交評論