2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(論文)</b></p><p>  ( 2010 屆 )</p><p>  題 目 簡易數(shù)字電壓表的設(shè)計</p><p>  學(xué) 院 專 業(yè) </p><p><b>  班 級 </b></p><p&g

2、t;<b>  學(xué) 號 </b></p><p><b>  學(xué)生姓名 </b></p><p><b>  指導(dǎo)教師 </b></p><p>  完成日期 2010年3月</p><p><b>  摘 要</b></p>

3、<p>  隨著單片機技術(shù)的發(fā)展,單片機廣泛的應(yīng)用與測量技術(shù)中。以往的測量技術(shù)與之相比,只能將被測量通過指針式指示儀表顯示測量數(shù)值,但是指針式儀表讀數(shù)不方便,且不易于實現(xiàn)計算機控制。本文中數(shù)字電壓表的控制系統(tǒng)采用AT89S52單片機實現(xiàn)模擬電壓信號的檢測與顯示,A/D轉(zhuǎn)換器采用ADC0809為主要硬件,實現(xiàn)數(shù)字電壓表的硬件電路與軟件設(shè)計。該系統(tǒng)的數(shù)字電壓表電路簡單,所用的元件較少,成本低,調(diào)節(jié)工作可實現(xiàn)自動化,還可以方便地進行

4、8路A/D轉(zhuǎn)換的測量,遠程測量結(jié)果傳送等功能。數(shù)字電壓表可以測量0~5V的8路輸入電壓值,并在四位LED數(shù)碼管上輪流顯示或單路顯示。設(shè)計結(jié)果能實現(xiàn)相應(yīng)的功能。</p><p><b>  關(guān)鍵詞</b></p><p>  轉(zhuǎn)換器; 單片機; 數(shù)碼管; 數(shù)字電壓表 </p><p><b>  Abstract</b>&l

5、t;/p><p>  With SCM technology, a wide range of applications and measurement of micro-controller technology. Compared with the previous measurement techniques can only be measured through the instruction pointe

6、r instrument displays measured values, but the pointer meter readings inconvenient, and not easy to implement computer control. Digital voltage meter in this article uses the control system of AT89S52 microcontroller ana

7、log voltage signal detection and display, A / D converter ADC0809 as the main use</p><p><b>  Key words</b></p><p>  Conversion; SC Computer; Digital tube; Digital Voltmeter</p>

8、;<p><b>  目 錄</b></p><p><b>  1. 引言1</b></p><p>  1.1 設(shè)計背景1</p><p>  1.2 設(shè)計目的2</p><p>  1.3 作品要求及功能2</p><p>  2. 總體設(shè)

9、計2</p><p>  2.1 各模塊方案選擇與論證2</p><p>  2.2 總體設(shè)計框圖3</p><p>  3. 系統(tǒng)硬件電路設(shè)計4</p><p>  3.1 單片機芯片選擇AT89S52介紹4</p><p>  3.1.1 主要特性4</p><p>  3.1.

10、2 引腳說明5</p><p>  3.1.3 振蕩器特性7</p><p>  3.1.4 芯片擦除7</p><p>  3.2 A/D轉(zhuǎn)換模塊設(shè)計8</p><p>  3.2.1 ADC0809A/D功能描述8</p><p>  3.2.2 ADC0809A/D工作原理9</p>

11、<p>  3.2.3 ADC0809應(yīng)用說明9</p><p>  3.3 電壓顯示電路9</p><p>  3.4 時鐘電路設(shè)計10</p><p>  3.5 復(fù)位電路設(shè)計11</p><p>  4. 系統(tǒng)程序設(shè)計12</p><p>  4.1 軟件總體框架設(shè)計12</p&

12、gt;<p>  4.2 模/數(shù)轉(zhuǎn)換測量子程序12</p><p>  4.3 LED顯示子程序13</p><p>  5. 制作與調(diào)試14</p><p>  5.1 硬件電路的布線與焊接14</p><p><b>  5.2 調(diào)試15</b></p><p>  5

13、.2.1 系統(tǒng)硬件調(diào)試15</p><p>  5.2.2 系統(tǒng)軟件調(diào)試15</p><p>  5.2.3 調(diào)試心得16</p><p>  5.2.4 測試數(shù)據(jù)16</p><p><b>  6.結(jié)論16</b></p><p><b>  參考文獻18</b&

14、gt;</p><p><b>  謝 辭19</b></p><p><b>  附 件20</b></p><p>  附件1 實物圖20</p><p>  附件2 系統(tǒng)原理圖21</p><p>  附件3 系統(tǒng)PCB圖22</p>&l

15、t;p>  附件4 元器件清單表23</p><p>  附件5 簡易數(shù)字電壓表的源程序24</p><p><b>  1. 引言</b></p><p>  數(shù)字電壓表(Digital Voltmeter )簡稱DVM,它是采用數(shù)字化測量技術(shù),把連續(xù)的模擬量(直流輸入電壓)轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。數(shù)字電壓

16、表自從一九五二年問世以來,隨著電子技術(shù)的飛躍發(fā)展,特別是目前,作為測量儀表、模擬指示儀表的數(shù)字化以及自動測量的系統(tǒng),而得到了很大的發(fā)展。數(shù)字電壓表是從電位差計的自動化這種想法研制出來的,因此即便是最初的數(shù)字電壓表,其精度也要比模擬式儀表高,而其成本比電位差計也高。以后,DVM的發(fā)展就著眼在高精度和低成本兩個方面。單片機可單獨的完成現(xiàn)代工業(yè)控制所要求的智能化控制功能,這是單片機最大的特征。單片機控制系統(tǒng)能夠取代以前利用復(fù)雜電子線路或數(shù)字電

17、路構(gòu)成的控制系統(tǒng),可以用軟件控制來實現(xiàn),并能夠?qū)崿F(xiàn)智能化[1]。</p><p><b>  1.1設(shè)計背景</b></p><p>  數(shù)字電壓表出現(xiàn)在50年代初,60年代末發(fā)起來的電壓測量儀表,簡稱DVM,它采用的是數(shù)字化測量技術(shù),把連續(xù)的模擬量,也就是連續(xù)的電壓值轉(zhuǎn)變?yōu)椴贿B續(xù)的數(shù)字量,加以數(shù)字處理,然后再通過顯示器件顯示。這種電子測量的儀表之所以出現(xiàn),一方面是由

18、于電子計算機的應(yīng)用逐漸推廣到系統(tǒng)的自動控制信實驗研究的領(lǐng)域,提出了將各種被觀察量或被控制量轉(zhuǎn)換成數(shù)碼的要求,即為了實時控制及數(shù)據(jù)處理的需要;另一方面,也是電子計算機的發(fā)展,帶動了脈沖數(shù)字電路技術(shù)的進步,為數(shù)字化儀表的出現(xiàn)提供了條件。所以,數(shù)字化測量儀表的產(chǎn)生與發(fā)展與電子計算機的發(fā)展是密切相關(guān)的;同時,為革新電子測量中的繁瑣和陳舊方式也催促了它的飛速發(fā)展,如今,它又成為向智能化儀表發(fā)展的必要橋梁。</p><p>

19、  如今,數(shù)字電壓表已絕大部分取代了傳統(tǒng)的模擬指針式電壓表。因為傳統(tǒng)的模擬指針式電壓表功能單一,精度低,讀數(shù)的時候也非常不方便,很容易出錯。而采用單片機的數(shù)字電壓表由于測量精度高,速度快,讀數(shù)時也非常的方便,抗干擾能力強,可擴展性強等優(yōu)點已被廣泛的應(yīng)用于電子及電工的測量,工業(yè)自動化化儀表,自動測試系統(tǒng)等智能化測量領(lǐng)域。顯示出強大的生命力[2]。</p><p><b>  1.2 設(shè)計目的</b&

20、gt;</p><p>  通過制作簡易數(shù)字電壓表,加深對所學(xué)專業(yè)知識的認識,提高分析、解決工程實際問題的能力,提高對單片機的應(yīng)用能力,提高收集文獻、資料的能力,從而達到綜合運用所學(xué)的專業(yè)知識進行電子產(chǎn)品的設(shè)計、制作與調(diào)試的能力。</p><p>  1.3 作品要求及功能 </p><p>  設(shè)計的基本內(nèi)容是使基于單片機所設(shè)計出的數(shù)字電壓表可以測量0-5V的8路

21、輸入電壓值,并在四位LED數(shù)碼管上輪流顯示或單路顯示。測量最小分辨率為0.019V,測量誤差約為0.02V。系統(tǒng)除能確保實現(xiàn)要求的功能外,還可以方便地進行8路其他A/D轉(zhuǎn)換量的測量、遠程測量結(jié)果傳送等功能。所要解決的主要問題是如何更有效地設(shè)計出符合設(shè)計要求的簡易數(shù)字電壓表,特別是要注意其測量電壓的誤差,難點是數(shù)碼管需輪流顯示或單路顯示所測出的電壓值,并且能使軟硬件有效的結(jié)合起來[3]。</p><p><b

22、>  基本功能:</b></p><p>  電壓測量范圍0-5V</p><p>  能用數(shù)碼管顯示電壓值</p><p><b>  測量誤差0.02V</b></p><p><b>  系統(tǒng)具備復(fù)位功能</b></p><p>  系統(tǒng)具備選擇顯示功

23、能</p><p><b>  2. 總體設(shè)計</b></p><p>  2.1 各模塊方案選擇與論證 </p><p><b>  A/D轉(zhuǎn)換模塊:</b></p><p><b>  方案一:</b></p><p>  A/D轉(zhuǎn)換器采用ICL

24、7107型三位半顯示的芯片,輸入信號,流經(jīng)取樣電路取樣后送到ICL7107型三位半A/D轉(zhuǎn)換器,只需要很少的簡單外圍元件,就可組成數(shù)字電流表模塊,直接驅(qū)動三位半LED顯示器顯示,最后輸入電流在顯示部分顯示。由于本人對此電路布熟悉,而且ICL7107做的LED數(shù)字表,最大的確定就是數(shù)字亂跳不穩(wěn)定,特別最后一位。所以不采用此方案。</p><p><b>  方案二:</b></p>

25、<p>  采用ADC0809轉(zhuǎn)換芯片,其中A/D轉(zhuǎn)換器用于實現(xiàn)模擬量向數(shù)字量的轉(zhuǎn)換,單電源供電。它是具有8路模擬量輸入、8位數(shù)字量輸出功能的A/D轉(zhuǎn)換器,轉(zhuǎn)換時間為100us,模擬輸入電壓范圍為0V~+5V,不需要零點和滿刻度校準,功耗低,約15mW。</p><p>  由于模擬轉(zhuǎn)換電路的種類很多,通過對轉(zhuǎn)換速度,精度和價格方面考慮,所以選擇方案二采用ADC0809為本次設(shè)計的轉(zhuǎn)換芯片[4]。&

26、lt;/p><p><b>  接口模塊:</b></p><p>  方案一:使用數(shù)字電路實現(xiàn),采用譯碼芯片CD4543作為接口芯片,這種方案能實現(xiàn)功能,但穩(wěn)定性不高,結(jié)構(gòu)復(fù)雜。</p><p>  方案二:采用AT89S52單片機作為系統(tǒng)的控制單元,通過A/D轉(zhuǎn)換將被測值轉(zhuǎn)換為數(shù)字量送入單片機,再由單片機來送顯。此方案各功能易于實現(xiàn),成本低、功

27、耗低,顯示穩(wěn)定。</p><p>  通過比較,選擇方案二。</p><p>  2.2 總體設(shè)計框圖</p><p>  總體設(shè)計框圖如圖2-1所示,通過模數(shù)轉(zhuǎn)換器ADC0809采集模擬數(shù)據(jù)并轉(zhuǎn)換為數(shù)字信號,在51單片機的控制與74LS74及三極管的驅(qū)動下,將采集的數(shù)據(jù)顯示在LED數(shù)碼管上。兩個開關(guān)用作選擇測量電壓的路數(shù),一個控制單路顯示,另一個控制循環(huán)顯示,能夠

28、同時測量8路電壓值[5]。</p><p>  圖2-1 簡易數(shù)字電壓表總體設(shè)計框圖</p><p>  3. 系統(tǒng)硬件電路設(shè)計</p><p>  3.1 單片機芯片選擇AT89S52介紹</p><p>  單片機采用MCS-51系列單片機。由ATMEL公司生產(chǎn)的AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編

29、程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。在單芯片上,擁有靈巧的8 位CPU 和在線系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、有效的解決方案。AT89S52具有以下標準功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片

30、內(nèi)晶振及時鐘電路。空閑模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。而且,它還具有一個看門狗(WDT)定時/計數(shù)器,如果程序沒有正常工作,就會強制整個系統(tǒng)復(fù)位,還可以在程序陷入死循環(huán)的時候,讓單片機復(fù)位而不用整個系統(tǒng)斷電,從而保護你的硬件電路[6]。</p><p>  3.1.1 主要特性

31、</p><p>  AT89S52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本[7]。</p><p><b>  其功能如下所示:&l

32、t;/b></p><p>  與MCS-51單片機產(chǎn)品兼容</p><p>  8K字節(jié)在系統(tǒng)可編程Flash存儲器</p><p><b>  1000次擦寫周期</b></p><p>  全靜態(tài)操作:0HZ~33HZ</p><p><b>  三級加密程序存儲器</

33、b></p><p>  32個可編程I/O口線</p><p>  三個16位定時器/計數(shù)器</p><p><b>  八個中斷源</b></p><p>  全雙工UART串行通道</p><p>  低功耗空閑和掉電模式</p><p><b>  

34、掉電后中斷可喚醒</b></p><p><b>  看門狗定時器</b></p><p><b>  雙數(shù)據(jù)指針</b></p><p><b>  掉電標示符[8]</b></p><p>  3.1.2 引腳說明</p><p><

35、;b>  VCC:供電電壓。</b></p><p><b>  GND:接地。</b></p><p>  P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門流。當P1口的引腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行

36、校驗時,P0輸出原碼,此時P0外部必須被拉高。</p><p>  P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口引腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 </p><p>  P2口:P2口為一個內(nèi)部上拉電阻的8位雙向

37、I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其引腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的引腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和

38、控制信號。</p><p>  P3口:P3口引腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p><p>  P3口也可作為AT89S52的一些特殊功能口,如表3.1所示。</p><p>  表3.1 A

39、T89S52特殊功能口表</p><p>  P3口同時為閃爍編程和編程校驗接收一些控制信號。</p><p>  RST:復(fù)位輸入。當振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。</p><p>  ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變

40、的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p>  /PSEN:外部程序存儲器的選通信號。在由外部程

41、序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。</p><p>  /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</

42、p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。</p><p>  XTAL2:來自反向振蕩器的輸出[9]。</p><p>  圖3-1 AT89S52引腳圖</p><p>  3.1.3 振蕩器特性</p><p>  XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配

43、置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度[10]。</p><p>  3.1.4 芯片擦除</p><p>  整個PEROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片

44、擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。 此外,AT89S52設(shè)有穩(wěn)態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,能保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個硬件復(fù)位為止[11]。</p><p>  3.2 A/D轉(zhuǎn)換模塊設(shè)計</p><

45、;p>  3.2.1 ADC0809A/D功能描述</p><p>  ADC0809是采樣頻率為8位的、以逐次逼近原理進行模—數(shù)轉(zhuǎn)換的器件。下面3-2是ADC0809管腳圖介紹,其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8個單斷模擬輸入信號中的一個進行A/D轉(zhuǎn)換[12]。</p><p>  圖3-2 ADC0809引腳圖</p><

46、p>  A/D轉(zhuǎn)換器是連接模擬世界與數(shù)字世界的橋梁,它擔(dān)負著將模擬信號變換成適合數(shù)字處理的二進制代碼的任務(wù)。目前,8位A/D轉(zhuǎn)換器的轉(zhuǎn)換速度已經(jīng)達到1.5GHz;并且,有些A/D轉(zhuǎn)換器還可以工作在欠采樣狀態(tài)。對于高速A/D轉(zhuǎn)換器動態(tài)性能的測試,目前常用的方法主要是相干采樣測試法和加窗測試法[13]。</p><p>  ADC0809主要特性如下:</p><p>  8路8位A/D

47、轉(zhuǎn)換器,即分辨率8位;</p><p>  具有鎖存控制的8路模擬開關(guān);</p><p>  易與各種微控制器接口;</p><p>  可鎖存三態(tài)輸出,輸出與TTL兼容;</p><p>  轉(zhuǎn)換時間(f=500KHZ):128US</p><p>  轉(zhuǎn)換精度:0.2%;</p><p> 

48、 單個+5V電源供電;</p><p>  模擬輸入電壓范圍0 ~ +5V,無需外部零點和滿度調(diào)整;</p><p>  低功耗,約15mW。</p><p>  3.2.2 ADC0809A/D工作原理</p><p>  ADC0809的工作過程是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之

49、一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動 A/D轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖剑甘続/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平 時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上[14] 。 </p><p>  3.2.3 ADC0809應(yīng)用說明</p><p>  ADC0

50、809內(nèi)部帶有輸出鎖存器,可以與AT89S52直接相連。</p><p>  初始化時,使ST和OE信號全為低電平。</p><p>  送要轉(zhuǎn)換的哪一通道的地址到A,B,C端口上。</p><p>  在ST端給出一個至少有100NS寬的正脈沖信號。</p><p>  是否轉(zhuǎn)換完畢,我們根據(jù)EOC信號來判斷。</p><

51、;p>  當EOC變?yōu)楦唠娖綍r,這時給OE為高電平,轉(zhuǎn)換的數(shù)據(jù)就輸出給單片機了。</p><p>  3.3 電壓顯示電路</p><p>  設(shè)計中采用的是8段LED數(shù)碼管來顯示電壓值。LED具有耗電低、亮度高、視角大、線路簡單、耐震及壽命長等優(yōu)點,它由8個發(fā)光二極管組成,其中7個按‘8’字型排列,另一個發(fā)光二極管為圓點形狀,位于右下角,常用于顯示小數(shù)點。把8個發(fā)光二極管連在一起,

52、公共端接高電平,叫共陽極接法,相反,公共端接低電平的叫共陰極接法,我們采用共陽極接法。當發(fā)光二極管導(dǎo)通時,相應(yīng)的一段筆畫或點就發(fā)亮,從而形成不同的發(fā)光字符。其8段分別命名為dp g f e d c b a。例如,要顯示“0”,則dp g f e d c b a分別為:1100 0000B;要顯示“A”,則dp g f e d c b a分別為:0001 0001B(共陽極)。若要顯示多個數(shù)字,只要讓若干個數(shù)碼管的位碼循環(huán)為低電平就可以了

53、。</p><p>  根據(jù)設(shè)計要求,顯示電路需要4位LED數(shù)碼管來顯示電壓值,我們再多加一位用來顯示電壓單位“V”,則有7位LED循環(huán)顯示。利用單片機的I/O口驅(qū)動LED數(shù)碼管的亮滅,設(shè)計中由P0口驅(qū)動LED的段碼顯示,即顯示字符,由P2口選擇LED位碼。</p><p>  圖3-3 電壓顯示電路</p><p>  另外,一般I/O接口芯片的驅(qū)動能力是很有限的

54、,在LED顯示器接口電路中,輸出口所能提供的驅(qū)動電流一般是不夠的尤其是設(shè)計中需要用到多位LED,此時就需要增加LED驅(qū)動電路。驅(qū)動電路有多種,常用的是TTL或MOS集成電路驅(qū)動器,在本設(shè)計中采用了74LS245芯片驅(qū)動電路,如上圖3-3所示[15]。</p><p>  3.4 時鐘電路設(shè)計</p><p>  單片機工作是在同一的時鐘脈沖下一拍一拍的進行的,這個脈沖是單片機控制中的時序電

55、路發(fā)出的。單片機的時序就是CPU在執(zhí)行指令時所需控制信號的時間順序。為了保證各部件的同步工作,單片機內(nèi)部電路應(yīng)在唯一的時鐘信號下嚴格地按時序進行工作。</p><p>  89S52內(nèi)部有一個高增益反相放大器,用于構(gòu)成振蕩器,但要形成時鐘脈沖,外部還需要附加電路。89S52的時鐘產(chǎn)生方法有兩種:一種是內(nèi)部時鐘方式,一種是外部時鐘方式。本設(shè)計采用內(nèi)部時鐘方式,利用單片機內(nèi)部的高增益反相放大器,外部電路簡單,只需要一

56、個晶振和2個電容即可,如圖3-4所示。</p><p><b>  圖3-4 時鐘電路</b></p><p><b>  3.5復(fù)位電路設(shè)計</b></p><p>  復(fù)位是單片機的初始化操作。單片機系統(tǒng)在上電啟動運行時,都需要先復(fù)位,其作用是使CPU和系統(tǒng)中其他部件處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,單片機

57、復(fù)位后(RST從高電平變?yōu)榈碗娖剑?,?000H地址開始執(zhí)行指令。</p><p>  單片機的RST引腳為主機提供一個外部復(fù)位信號輸入端口。復(fù)位信號是高電平有效,高電平有效的持續(xù)時間應(yīng)為2個機器周期以上。</p><p>  單片機的復(fù)位方式有上電復(fù)位和手工復(fù)位兩種,圖3-5是51系列單片機常用的上電復(fù)位和手動復(fù)位組合電路,只要VCC上升時間不超過1MS,他們都能很好的工作[16]。&l

58、t;/p><p><b>  圖3-5 復(fù)位電路</b></p><p><b>  4. 系統(tǒng)程序設(shè)計</b></p><p>  4.1 軟件總體框架設(shè)計</p><p><b>  圖4-1 主流程圖</b></p><p>  如圖4-1,為主流程圖

59、,本軟件充分采用了模塊化設(shè)計,包括主程序,顯示控制程序,顯示數(shù)據(jù)轉(zhuǎn)為三位BCD碼子程序,顯示子程序,延時程序,電壓測量子程序,按鍵檢測子程序等子程序。</p><p>  首先初始化程序,所謂初始化,是對將要用到的MCS-51系列單片機內(nèi)部部件或擴展芯片進行初始工作設(shè)定。初始化子程序的主要工作是設(shè)置定時器的工作模式、初值預(yù)置、開中斷和打開定時器等。系統(tǒng)上電時,將70H~77H內(nèi)存單元清0,P2口置0。</p

60、><p>  在剛上電時,因70H~77H內(nèi)存單元的數(shù)據(jù)位0,則每一通道的數(shù)碼管顯示值都為0。當進行一次測量后,將顯示每一條通道的A/D轉(zhuǎn)換值。每個通道的數(shù)據(jù)顯示時間在1us左右。主程序在調(diào)用顯示程序和測試程序之間循環(huán)[17]。</p><p>  4.2 模/數(shù)轉(zhuǎn)換測量子程序</p><p>  顯示子程序采用動態(tài)掃描法實現(xiàn)四位數(shù)碼管的數(shù)值顯示。測量所得的A/D轉(zhuǎn)換數(shù)

61、據(jù)放在70H~77H內(nèi)存單元中,測量數(shù)據(jù)在顯示時需轉(zhuǎn)換成10進制BCD碼放在78H~7BH單元中,其中7BH存放通道標志數(shù)。寄存器R3用作8路循環(huán)控制,R0用作顯示數(shù)據(jù)地址指針。其程序流程圖如圖4-2所示。</p><p>  圖4-2  A/D轉(zhuǎn)換測量程序流程圖</p><p>  4.3 LED顯示子程序</p><p>  顯示子程序采用動態(tài)掃描實現(xiàn)四位數(shù)碼管

62、的數(shù)值顯示。在采用動態(tài)掃描顯示方式時,要使得LED顯示的比較均勻,又有足夠的亮度,需要設(shè)置適當?shù)膾呙桀l率。當掃描頻率在70HZ左右時,能夠產(chǎn)生足夠的圖像和較好的顯示效果。一般可以采用間隔10MS對LED進行動態(tài)掃描一次,每一位LED的顯示時間為1MS。</p><p>  在單片機中,定時功能既可以由硬件(定時/計數(shù)器)實現(xiàn),也可以通過軟件定時程序?qū)崿F(xiàn)。軟件延時程序占用CPU的時間,因此,它降低了CPU的利用率;

63、硬件定時是利用單片機內(nèi)定時器定時,啟動以后定時器可與CPU并行工作,不占用CPU的時間,使CPU工作有較高的工作效率。由于本設(shè)計簡單,可靠性較高,因而采用軟件實現(xiàn)的方式對CPU的影響不大。</p><p>  在本設(shè)計中,為了簡化硬件設(shè)計,主要采用軟件定時的方式,即用定時器0溢出中斷功能實現(xiàn)11US定時,通過軟件延時程序來實現(xiàn)5MS的延時。</p><p>  1.T0定時器中斷服務(wù)程序的

64、功能:</p><p>  從顯示緩沖區(qū)分別取出4位LED顯示器顯示數(shù)據(jù)的位碼和段碼,送到P1口,依次顯示每一位,每一位的顯示時間為5MS,顯示4位需要20MS的時間。</p><p>  2.定時器T0的計數(shù)初值</p><p>  設(shè)時鐘頻率為12MHZ,1個機器周期時間為1US。T0定時器產(chǎn)生11US的定時,可以計算出計數(shù)值和計數(shù)初值:</p>

65、<p>  計數(shù)值=定時時間/機器周期時間=11US/1US=11</p><p>  計數(shù)初值=256-11=245</p><p>  初值寄存器的初值為:TH0=245; TL0=00H</p><p>  工作方式寄存器TMOD=XXXX0010B=X2H,T0定時器,工作方式2.最大定時值為256US[18]。</p><p&

66、gt;<b>  5. 制作與調(diào)試</b></p><p>  5.1 硬件電路的布線與焊接</p><p>  根據(jù)原理圖生成PCB圖,在把完成的PCB圖打印到轉(zhuǎn)印紙上,然后用熱轉(zhuǎn)印制作線路板。做出線路板后再打孔,注意鉆頭尺寸。然后是元器件的焊接,焊接時要注意元器件的正負極,不要焊錯。還要注意不要虛焊,虛焊是很難檢查的。因為是雙面板,有銅線相連的焊盤正反面都要焊,以

67、確保線路連通,所以必須萬分仔細,避免漏焊。</p><p><b>  5.2 調(diào)試 </b></p><p>  5.2.1系統(tǒng)硬件調(diào)試</p><p>  在系統(tǒng)上電開始測量前,要用萬用表的電壓檔對被測電壓進行估測,然后以此選擇適當?shù)牧砍?,防止過大電壓燒壞A/D轉(zhuǎn)換器。首先用萬用表按照原理圖逐步檢查印刷板中各器件的電源及各引腳的連接是否正確

68、,有否斷路、短路或者虛焊,尤其是給電路供電的電源部分要重點檢查,用數(shù)字萬用表測量輸出端的電壓是否為+5V,是否穩(wěn)定,能輸出+5V,且穩(wěn)定即可說明電源電路的設(shè)計基本達到要求。如果電壓要求沒有達到,要及時排查給與解決,以免燒壞芯片和其他元器件。</p><p>  5.2.2 系統(tǒng)軟件調(diào)試 </p><p>  軟件調(diào)試的任務(wù)是利用開發(fā)工具進行在線仿真調(diào)試,發(fā)現(xiàn)和糾正程序的錯誤,同時也能發(fā)現(xiàn)硬

69、件的故障。軟件調(diào)試是一個模塊進行的。首先單獨調(diào)試各子程序是否能夠按照預(yù)期的功能,接口電路的控制是否正常。最后調(diào)試整個程序。尤其注意的是各模塊間能否正確的傳遞參數(shù)。</p><p>  檢查LED顯示模塊程序。在主程序中調(diào)用DISPLAY()和DISLAY_ZIFU()函數(shù),觀察在LED上是否能夠顯示相應(yīng)的字符。如果不能,則在相關(guān)的子程序中設(shè)計斷點,反復(fù)調(diào)試直到能夠顯示。</p><p> 

70、 檢查按鍵模塊程序。本設(shè)計的按鍵模塊程序是用狀態(tài)機的方法,可以在KEY_STATEL狀態(tài)下加一個任務(wù),如顯示一個字符在LED上。觀察是否能正確顯示。</p><p>  檢查A/D轉(zhuǎn)換模塊程序。可以在硬件電路的輸入端輸入已知的幾個電壓,分別觀察LED上是否能顯示相應(yīng)的電壓值。</p><p>  檢查數(shù)據(jù)的轉(zhuǎn)換模塊程序??梢暂斎胂鄳?yīng)電壓,觀察LED顯示的電壓值是否一致。如果一致。則數(shù)據(jù)轉(zhuǎn)換

71、的算法正確的。</p><p>  總調(diào)試。當相應(yīng)的各模塊環(huán)節(jié)都正確后,可程序下載到單片機。接上電源運行。再檢查所有功能,觀察是否能預(yù)期的一樣。如果一樣,說明設(shè)計成功完成。</p><p>  在一開始調(diào)試時,數(shù)碼管的顯示較不穩(wěn)定,感覺較閃爍,數(shù)據(jù)變化不連貫,好像在跳變。經(jīng)過反復(fù)思考發(fā)現(xiàn),一開始程序是使用靜態(tài)顯示方法。查了很多資料發(fā)現(xiàn),一般數(shù)碼管顯示采用動態(tài)掃描的方法,于是將程序的顯示部分

72、改成動態(tài)掃描程序,經(jīng)再次調(diào)試可以顯示比較穩(wěn)定的數(shù)字串了。</p><p>  5.2.3 調(diào)試心得</p><p>  回顧起此次畢業(yè)設(shè)計,我感慨頗多,從理論到實踐,在整整幾個月的日子里,我學(xué)到很多很多的東西,不僅鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的內(nèi)容。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學(xué)的理論知識與實踐相結(jié)合

73、起來,從理論中得出結(jié)論,才是真正的知識,才能提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程遇到了各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,通過這次課程設(shè)計,把以前所學(xué)過的知識重新溫故,鞏固了所學(xué)的知識。</p><p><b>  5.2.4測試數(shù)據(jù)</b></p><p>  調(diào)試完后,對電路進行

74、精度、準確度進行測試,為了保證精確度,要多測幾個點,除了零點和滿度值外,再選擇兩個中間值進行比較,測試結(jié)果如表5.1所示。</p><p>  表5.1 測試數(shù)據(jù)表</p><p>  以上數(shù)據(jù)符合要求,測試成功。</p><p><b>  結(jié)論</b></p><p>  經(jīng)過接近兩個月的努力,終于完成了畢業(yè)設(shè)計—簡

75、易數(shù)字電壓表的設(shè)計。無論是在硬件連接方面還是在軟件編程方面,都取得了新的收獲。本次實驗采用了AT89S52單片機芯片,與以往我們所熟悉的C51芯片有許多不同之處,通過本次設(shè)計,我對其之間區(qū)別有了一定的認識,S52在C51的基礎(chǔ)上增加了許多新的功能,使其功能更完善。</p><p>  經(jīng)過這個設(shè)計,在大學(xué)多門專業(yè)課的知識都得到了鞏固的同時,對自己的身心也有很好的幫助。由于第一次做這種設(shè)計,對電路的理解,元器件的多

76、樣性等理解的不是很透徹,現(xiàn)在電子器件發(fā)展日新月異,新的器件如雨后春筍般出現(xiàn),也不可能一一嘗試,所以還肯定有很多值得改進的地方。在以后的實踐中,我將繼續(xù)努力學(xué)習(xí)電子電路設(shè)計,力爭取得更大的進步。</p><p>  畢業(yè)設(shè)計培養(yǎng)了嚴肅認真和實事求是的科學(xué)態(tài)度。而且培養(yǎng)了吃苦耐勞的精神以及相對應(yīng)的工程意識,同學(xué)之間的友誼互助也充分的在畢業(yè)設(shè)計當中體現(xiàn)出來了,特別是在之前的查找資料,身旁的同學(xué)都給予了不少的幫助與支持。

77、</p><p><b>  參考文獻</b></p><p>  [1]沙占友.新型數(shù)字電壓表原理與應(yīng)用[M]. 北京:機械工業(yè)出版社,2006, 1-5.</p><p>  [2] 余永權(quán),汪明慧,黃英.單片機在控制系統(tǒng)中的應(yīng)用[M].北京:電子工業(yè)出版社,2003, 34-56.</p><p>  [3] 葉挺

78、秀.應(yīng)用電子學(xué)[M].浙江:浙江大學(xué)出版社,1994,34-56.</p><p>  [4] 王寶香.數(shù)字電壓表自動測試系統(tǒng)[J].宇航計測技術(shù),1998,(11),5-12.</p><p>  [5] 朱承高.電工及電子技術(shù)手冊[M].北京:高等教育出版社,1990,60-65.</p><p>  [6] 何立民.單片機高級教程應(yīng)用與設(shè)計[M].北京:北京

79、航空航天大學(xué)出版社,2000,53-60.</p><p>  [7] 劉樂善,李紅,于林韜.單片機原理及應(yīng)用(第3版)[M].北京:電子工業(yè)出版社50-55.</p><p>  [8] 胡漢才.單片機原理及接口技術(shù)[M].北京:清華大學(xué)出版社,2000,88-89.</p><p>  [9] 劉文濤.單片機應(yīng)用開發(fā)實例[M].北京:清華大學(xué)出版社,2005,1

80、6-31. </p><p>  [10] 李廣弟,朱月秀.單片機基礎(chǔ)(第3版)[M].北京:北京航空航天大學(xué)出版社,2007,212-214.</p><p>  [11] 童詩白,華成英.模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2005,21-33.</p><p>  [12] 胡輝,李葉紫,胡力平.單片機應(yīng)用系統(tǒng)開發(fā)綜合實例[M].北京:清華大學(xué)出版社

81、,2007,211-217.</p><p>  [13] 王毓銀.數(shù)字電路邏輯設(shè)計[M].北京:高等教育出版社,2003,111-115.</p><p>  [14] 李朝青.單片機原理及接口技術(shù)[M].北京:北京航天航空出版社,1990,150-155.</p><p>  [16]何立民.單片機高級教程應(yīng)用與設(shè)計[M].北京:北京航空航天大學(xué)出版社,2000

82、,53-60.</p><p>  [17]王港元.電工電子實踐指導(dǎo)[M].江西:江西科學(xué)技術(shù)出版社,2005,30-32.</p><p>  [18] J. Frank. Instrumentation for Process Measurement and Control[M].BEIJING: Science Publishing House,2000, 60-79.</p&

83、gt;<p><b>  謝 辭</b></p><p>  歲月荏苒,三年的大學(xué)時光竟然就這樣匆匆而過,我要開始寫畢業(yè)論文的謝辭了,心中真是感慨萬千。論文的完成標志著我的大學(xué)生涯即將結(jié)束,也意味著,新的生活即將拉開序幕。最近的半年忙著實習(xí)和寫論文,其間的起起伏伏、悲喜得失,今天想來仍舊唏噓不已,所幸我在生活經(jīng)驗中不斷成長,也為大學(xué)時光畫下了還算完滿的句點。</p>

84、<p>  論文得以順利完成,要感謝的人實在是太多了。首先要衷心地感謝我的導(dǎo)師楊廣映老師的細心指導(dǎo)。</p><p>  我還要感謝學(xué)校對我的栽培,三年來盡力為我提供良好的學(xué)習(xí)和生活環(huán)境,撰寫論文時為我提供免費的數(shù)據(jù)庫以查詢資料。</p><p>  感謝所有在大學(xué)期間傳授我知識的老師,您們的悉心教導(dǎo)讓使我掌握了良好的專業(yè)課知識,這也是論文完成的基礎(chǔ)。</p>

85、<p>  感謝07應(yīng)用電子的所有同學(xué),你們給我的生活增添了多少的光彩,如果沒有你們,我不敢想象我的大學(xué)生活會是什么樣子的。</p><p>  最后要深深地感謝我的父母親和家人,我永遠都不會忘記你們的良苦用心和對我一如既往的支持與鼓勵??鞓返氖虑橐驗橛心銈兊姆窒矶鞓?,失意的日子因為有你們親切的關(guān)懷也能夠忘卻傷痛,堅強前行。希望你們能夠開心快樂,這是我最大的心愿。附 件</p><

86、;p><b>  附件1 實物圖</b></p><p>  附件2 系統(tǒng)原理圖</p><p>  附件3 系統(tǒng)PCB圖</p><p>  附件4 元器件清單表</p><p>  附件5 簡易數(shù)字電壓表的源程序</p><p>  #include<reg52.h>

87、;</p><p>  #include<math.h></p><p>  #include<absacc.h></p><p>  number[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};</p><p>  number1[10]={0x40,

88、0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};</p><p>  sbit four=P2^0;</p><p>  sbit three=P2^1;</p><p>  sbit two=P2^2;</p><p>  sbit one=P2^3;</p><p>  

89、sbit ST=P3^0;</p><p>  sbit OE=P3^1;</p><p>  sbit EOC=P3^2;</p><p>  unsigned int adcdata, adcdata3;</p><p>  unsigned int i;</p><p>  unsigned int adc0[8

90、];</p><p>  unsigned int k;</p><p>  unsigned int avedata();</p><p>  void show();</p><p>  void delay_2ms();</p><p>  void main()</p><p><

91、b>  {</b></p><p><b>  P2=0xff;</b></p><p><b>  P3=0xff;</b></p><p><b>  OE=0;</b></p><p><b>  ST=0;</b></p&g

92、t;<p><b>  ST=1;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  ST=0;</b></p><p>  while(!EOC);</p

93、><p><b>  OE=1;</b></p><p>  adcdata=avedata();</p><p><b>  show();</b></p><p><b>  ST=1;</b></p><p><b>  }</b>

94、;</p><p><b>  }</b></p><p>  //----------------------------------</p><p>  void show()</p><p><b>  {</b></p><p>  unsigned int adcd

95、ata1;</p><p>  adcdata1=adcdata*19;</p><p><b>  four=0;</b></p><p>  P1=number1[adcdata1/1000];</p><p>  adcdata1%=1000;</p><p>  delay_2ms();&

96、lt;/p><p><b>  four=1;</b></p><p><b>  three=0;</b></p><p>  P1=number[adcdata1/100];</p><p>  adcdata1%=100;</p><p>  delay_2ms();<

97、;/p><p><b>  three=1;</b></p><p><b>  two=0;</b></p><p>  P1=number[adcdata1/10];</p><p>  delay_2ms();</p><p><b>  two=1;</b

98、></p><p><b>  one=0 ;</b></p><p>  P1=number[adcdata1%10];</p><p>  delay_2ms();</p><p><b>  one=1;</b></p><p><b>  }<

99、;/b></p><p>  //------------------------------------------</p><p>  void delay_2ms()</p><p>  { unsigned int i;</p><p>  for(i=0;i<111;i++);</p><p>&

100、lt;b>  }</b></p><p>  //------------------------------------------</p><p>  unsigned int avedata() //求平均</p><p><b>  {</b></p><p>  uns

101、igned int i,j,max,min,sum=0,a,b,c,d,e,f,g,h;</p><p>  for(i=0;i<8;i++)</p><p><b>  { k=P0;</b></p><p>  a=(k&0x01)*128;</p><p>  b=(k&0x02)*32;&l

102、t;/p><p>  c=(k&0x04)*8;</p><p>  d=(k&0x08)*2;</p><p>  e=(k&0x10)/2;</p><p>  f=(k&0x20)/8;</p><p>  g=(k&0x40)/32;</p><p>

103、  h=(k&0x80)/128;</p><p>  adc0[i]=a+b+c+d+e+f+g+h;</p><p>  //adc0[i]=(k&0x01)*128+(k&0x02)*32+(k&0x04)*8+(k&0x08)*2+(k&0x10)/2+(k&0x20)/8+(k&0x40)/32+(k&0x8

104、0)/128; //{ adc0[i]=P0; delay_2ms(); } ? //放數(shù)據(jù)</p><p><b>  }</b></p><p>  for(i=0;i<7;i++)</p><p><b>  {</b></p><p>  if(a

105、dc0[i+1]>adc0[i])</p><p>  max=adc0[i+1];</p><p>  else max=adc0[i];</p><p><b>  }</b></p><p>  for(j=0;j<7;j++)</p><p><b>  {</

106、b></p><p>  if(adc0[j+1]>adc0[j])</p><p>  min=adc0[j];</p><p>  else min=adc0[j+1];</p><p><b>  }</b></p><p>  for(i=0;i<8;i++)</p

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論