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

下載本文檔

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

文檔簡介

1、<p>  題目 數(shù)字電壓表 </p><p><b>  任務(wù)與要求</b></p><p>  開始日期 2011年 4月 20 日完成日期 2011 年5月 25 日</p><p><b>  目錄</b></p><

2、p><b>  1 設(shè)計(jì)方案1</b></p><p>  2 設(shè)計(jì)總體框圖1</p><p>  2.1 硬件部分1</p><p>  2.2 軟件部分2</p><p>  2.2.1主程序設(shè)計(jì)2</p><p>  2.2.2 A/D轉(zhuǎn)換子程序3</p>&

3、lt;p>  2.2.3數(shù)據(jù)處理子程序4</p><p>  3 設(shè)計(jì)單元電路5</p><p>  3.1 模數(shù)轉(zhuǎn)換單元5</p><p>  3.1.1 ADC0808引腳說明5</p><p>  3.1.2 ADC0808通道選擇6</p><p>  3.1.3 ADC0808的工作原理:6

4、</p><p>  3.2 數(shù)據(jù)處理及控制單元7</p><p>  3.3 4位一體七段數(shù)碼管8</p><p>  4 電路原理說明9</p><p>  4.1 模數(shù)轉(zhuǎn)換9</p><p>  4.2 數(shù)據(jù)處理及控制10</p><p><b>  5 參考文獻(xiàn)11

5、</b></p><p>  6 結(jié)論及心得11</p><p><b>  7 附錄12</b></p><p>  7.1 調(diào)試報(bào)告12</p><p>  7.2元器件清單16</p><p>  簡易直流電壓表的設(shè)計(jì)</p><p><b&

6、gt;  1 設(shè)計(jì)方案</b></p><p>  本設(shè)計(jì)主要采用AT89C51芯片和ADC0808芯片來完成一個(gè)簡易的數(shù)字電壓表,能夠?qū)斎氲?~5 V的模擬直流電壓進(jìn)行測量,并通過一個(gè)4位一體的7段LED數(shù)碼管進(jìn)行顯示,測量誤差約為0.02 V。該電壓表的測量電路主要由三個(gè)模塊組成:A/D轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊及顯示控制模塊。A/D轉(zhuǎn)換主要由芯片ADC0808來完成,它負(fù)責(zé)把采集到的模擬量轉(zhuǎn)換為相

7、應(yīng)的數(shù)字量再傳送到數(shù)據(jù)處理模塊。數(shù)據(jù)處理則由芯片AT89C51來完成,其負(fù)責(zé)把ADC0808傳送來的數(shù)字量經(jīng)一定的數(shù)據(jù)處理,產(chǎn)生相應(yīng)的顯示碼送到顯示模塊進(jìn)行顯示;另外它還控制著ADC0808芯片的工作。顯示模塊主要由7段數(shù)碼管組成,顯示測量到的電壓值。</p><p><b>  2 設(shè)計(jì)總體框圖</b></p><p><b>  2.1 硬件部分<

8、/b></p><p>  本實(shí)驗(yàn)采用AT89C51單片機(jī)芯片配合ADC0808模/數(shù)轉(zhuǎn)換芯片構(gòu)成一個(gè)簡易的數(shù)字電壓表,原理電路如圖1所示。該電路通過ADC0808芯片采樣輸入口IN7輸入的0~5 V的模擬量電壓,經(jīng)過模/數(shù)轉(zhuǎn)換后,產(chǎn)生相應(yīng)的數(shù)字量經(jīng)過其輸出通道D0~D7傳送給AT89C51芯片的P0口。AT89C51負(fù)責(zé)把接收到的數(shù)字量經(jīng)過數(shù)據(jù)處理,產(chǎn)生正確的7段數(shù)碼管的顯示段碼,并通過其P1口傳送給數(shù)碼

9、管。同時(shí)它還通過其三位I/O口P3.0、P3.1、P3.2產(chǎn)生位選信號,控制數(shù)碼管的亮滅。另外,AT89C51還控制著ADC0808的工作。其ALE管腳為ADC0808提供了1MHz工作的時(shí)鐘脈沖;P2.3控制ADC0808的地址鎖存端(ALE);P2.4控制ADC0808的啟動端(START);P2.5控制ADC0808的輸出允許端(OE);P3.7控制ADC0808的轉(zhuǎn)換結(jié)束信號(EOC)。系統(tǒng)框圖如圖2所示。</p>

10、<p><b>  圖1電路圖原理</b></p><p><b>  圖2 系統(tǒng)框圖</b></p><p><b>  2.2 軟件部分</b></p><p>  2.2.1主程序設(shè)計(jì)</p><p>  本設(shè)計(jì)采用C語言編程。首先是初始化,主要是針對定時(shí)器T

11、0,設(shè)置其工作方式,裝入計(jì)數(shù)初值,允許中斷等。準(zhǔn)備工作做好后便啟動ADC0808對IN7腳輸入進(jìn)的0~5V電壓模擬信號進(jìn)行數(shù)據(jù)采集并轉(zhuǎn)換成相對應(yīng)的0~255十進(jìn)制數(shù)字量。</p><p>  在數(shù)據(jù)處理子程序中,運(yùn)用標(biāo)度變換知識,編寫算法將0~255十進(jìn)制數(shù)字量轉(zhuǎn)換成0.00~5.00V的數(shù)據(jù),輸出到顯示子程序進(jìn)行顯示。整個(gè)主程序就是在A/D轉(zhuǎn)換,數(shù)據(jù)處理及顯示程序循環(huán)執(zhí)行。整個(gè)程序流程框圖如圖3所示。</

12、p><p><b>  圖3 主程序流程圖</b></p><p>  2.2.2 A/D轉(zhuǎn)換子程序</p><p>  啟動ADC0808對模擬量輸入信號進(jìn)行轉(zhuǎn)換,通過判斷EOC(P1.6引腳)來確定轉(zhuǎn)換是否完成,若EOC為0,則繼續(xù)等待;若EOC為1,則把OE置位,將轉(zhuǎn)換完成的數(shù)據(jù)存儲到AT89C51中。程序流程圖如圖4所示。</p>

13、;<p>  圖4 數(shù)據(jù)處理子程序流程圖</p><p>  2.2.3 數(shù)據(jù)處理子程序</p><p>  數(shù)據(jù)處理子程序主要根據(jù)標(biāo)度變換公式1-1,把0~255十進(jìn)制數(shù)轉(zhuǎn)換為0.00~5.00V。</p><p>  ,:模擬測量值;:模擬輸入最小值;:模擬輸入最大值;:模數(shù)轉(zhuǎn)換后的值;:模數(shù)轉(zhuǎn)換后的最小值;:模數(shù)轉(zhuǎn)換后的最大值。</p>

14、;<p>  在本設(shè)計(jì)中,根據(jù)要求知,,,,,則上式可以簡化為。</p><p><b>  3 設(shè)計(jì)單元電路</b></p><p>  3.1 模數(shù)轉(zhuǎn)換單元</p><p>  此處采用ADC0808模塊實(shí)現(xiàn),它是典型的8位8通道逐次逼近式A/D轉(zhuǎn)換器,主要由8路模擬開關(guān)、地址所存譯碼電路、逐次逼近寄存器SAR、樹狀模擬開關(guān)、

15、256R電阻分壓器、電壓比較器及三態(tài)輸出鎖存器等組成。</p><p>  3.1.1 ADC0808引腳說明</p><p>  ADC0808芯片為28引腳雙列直插式封裝,其引腳如圖5所示,</p><p>  圖5 ADC0808的引腳圖</p><p>  (1)IN0~I(xiàn)N7:8路模擬量輸入通道。</p><p

16、>  (2)A、B、C:模擬通道地址線。這3根地址線用于對8路模擬通道的選擇,其譯碼關(guān)系如表1-1所示。其中,A為低地址,C為高地址,引腳圖中為ADDA,ADDB和ADDC。</p><p>  (3)ALE:地址鎖存允許信號。對應(yīng)ALE上跳沿,A、B、C地址狀態(tài)送入地址鎖存器中。</p><p>  (4)START:轉(zhuǎn)換啟動信號。START上升沿時(shí),復(fù)位ADC0808;START

17、下降沿時(shí)啟動芯片,開始進(jìn)行A/D轉(zhuǎn)換;在A/D轉(zhuǎn)換期間,START應(yīng)保持低電平。本信號有時(shí)簡寫為ST。</p><p>  (5)D7~D0:數(shù)據(jù)輸出線。為三態(tài)緩沖輸出形式,可以和單片機(jī)的數(shù)據(jù)線直接相連。D0為最低位,D7為最高。 </p><p>  (6)OE:輸出允許信號。用于控制三態(tài)輸出鎖存器向單片機(jī)輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE=0,輸出數(shù)據(jù)線呈高阻;OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù)。&l

18、t;/p><p>  (7)CLK:時(shí)鐘信號。ADC0808的內(nèi)部沒有時(shí)鐘電路,所需時(shí)鐘信號由外界提供,因此有時(shí)鐘信號引腳。通常使用頻率為500KHz的時(shí)鐘信號。</p><p>  (8)EOC:轉(zhuǎn)換結(jié)束信號。EOC=0,正在進(jìn)行轉(zhuǎn)換;EOC=1,轉(zhuǎn)換結(jié)束。使用中該狀態(tài)信號即可作為查詢的狀態(tài)標(biāo)志,又可作為中斷請求信號使用。</p><p>  (9)Vcc:+5V電源

19、,GND:地。 </p><p>  (10)Vref:參考電壓。參考電壓用來與輸入的模擬信號進(jìn)行比較,作為逐次逼近的基準(zhǔn)。其典型值為+5V(Vref(+)=+5V, Vref(-)=0V)。</p><p>  3.1.2 ADC0808通道選擇</p><p>  表1 ADC0808通道選擇表 </p><p>  多路模擬開關(guān)可選通8

20、路模擬通道,允許8路模擬量分時(shí)輸入,并共用一個(gè)A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換。地址鎖存與譯碼電路完成對A、B、C三個(gè)地址位進(jìn)行鎖存與譯碼,如表1所示。</p><p>  3.1.3 ADC0808的工作原理:</p><p>  首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動 A/D轉(zhuǎn)換,之后EO

21、C輸出信號變低,指示轉(zhuǎn)換正在進(jìn)行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號可用作中斷申請。當(dāng)OE輸入高電平時(shí),輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。</p><p>  圖6 ADC0808信號的時(shí)序配合</p><p>  3.2 數(shù)據(jù)處理及控制單元</p><p>  此處采用AT89C51,它所需要實(shí)

22、現(xiàn)的功能,一是將模數(shù)轉(zhuǎn)換后的數(shù)據(jù)經(jīng)過處理并顯示于4位一體的LED上,二是提供LED的位控信號,選擇所應(yīng)顯示數(shù)據(jù)的一位8段數(shù)碼管,三是提供高電平將ADC0808的鎖存器打開,使得數(shù)字信號能夠輸出給單片機(jī)。</p><p>  圖7 AT89C51的引腳</p><p>  AT89C51的引腳說明如下:</p><p>  (1)VCC:電源電壓;</p>

23、<p>  (2)GND:接地;</p><p>  (3)P0口:P0口是一組8位漏極開路雙向I/O口,每位引腳可驅(qū)動8個(gè)TTL邏輯門路口</p><p>  管腳寫“1”時(shí),被定義為高阻抗輸入。在訪問外部數(shù)據(jù)存儲器或程序存儲器時(shí),它可以被定</p><p>  義為數(shù)據(jù)總線和地址總線的低八位。在FLASH編程時(shí),P0 口作為原碼輸入口;當(dāng)FLASH

24、</p><p>  進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須接上拉電阻。</p><p>  (4) RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。</p><p>  (5)/PSEN:外部程序存儲器的選通信號</p><p>  (6)XTAL1:片內(nèi)高增益反向放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。(

25、7)XTAL2:片內(nèi)高增益反向放大器的輸出端。</p><p>  3.3 4位一體七段數(shù)碼管</p><p>  本實(shí)驗(yàn)的顯示模塊主要由一個(gè)4位一體的7段LED數(shù)碼管構(gòu)成,用于顯示測量到的電壓值。它是一個(gè)共陰極的數(shù)碼管,每一位數(shù)碼管的原理圖如圖所示。每一位數(shù)碼管的a,b,c,d,e,f,g和dp端都各自連接在一起,用于接收AT89C51的P0口產(chǎn)生的顯示段碼。1,2,3,4引腳端為其位選

26、端,用于接收AT89C51的P1口產(chǎn)生的位選碼。圖8為一位數(shù)碼管的原理圖。</p><p>  圖8一位數(shù)碼管的原理圖。</p><p><b>  4 電路原理說明 </b></p><p><b>  4.1 模數(shù)轉(zhuǎn)換</b></p><p>  如圖1電路原理圖所示,三個(gè)地址位ADDA,ADD

27、B,ADDC均接高電平+5V電壓,因而所需測量的外部電壓可由ADC0808的IN7端口輸入。由于ADC0808在進(jìn)行A/D轉(zhuǎn)換時(shí)需要有CLK信,本設(shè)計(jì)中利用AT89C51的定時(shí)中斷產(chǎn)生一個(gè)100KHZ的脈沖,由P1.4口送給ADC0808的時(shí)鐘端,通過軟件給其輸入一個(gè)正脈沖,可立即啟動A/D轉(zhuǎn)換。在軟件設(shè)計(jì)中,由于我們對單片機(jī)知識還沒能很熟練的掌握,用中斷方式較復(fù)雜,且這個(gè)程序CPU工作量不大,查詢方式對速度不會產(chǎn)生影響,所以我們采用查

28、詢方式,確保仿真的進(jìn)度和準(zhǔn)確度。</p><p>  在A/D轉(zhuǎn)換開始之前,逐次逼近寄存器的SAR的內(nèi)容為0,在A/D轉(zhuǎn)換過程中,SAR存放“試探”數(shù)字量,在轉(zhuǎn)換完畢后,它的內(nèi)容即為A/D轉(zhuǎn)換的結(jié)果數(shù)字量。邏輯控制與定時(shí)電路在START正脈沖啟動后工作,沒來一個(gè)CLK脈沖,該電路就可能告知向SAR中傳送一次試探值,對應(yīng)輸出U0與U1比較,確定一次逼近值,經(jīng)過8次逼近,即可獲得最后轉(zhuǎn)換的結(jié)果數(shù)字量。此處,EOC端口

29、的信號顯示ADC0808的狀態(tài),開始A/D轉(zhuǎn)換時(shí),EOC為低電平,轉(zhuǎn)換結(jié)束后,輸出高電平。</p><p>  4.2 數(shù)據(jù)處理及控制</p><p>  A/D轉(zhuǎn)換完畢后,單片機(jī)的P1.6口接收到一高電平,立馬通過P1將OE置1,ADC0808的三態(tài)輸出鎖存器被打開,轉(zhuǎn)換完的數(shù)字信號經(jīng)過與D0~D7相連的P0口進(jìn)入AT89C51。AT89C51根據(jù)公式1-1將數(shù)字信號轉(zhuǎn)換為模擬量,然后利

30、用程序獲取模擬量的每一位,分別通過P0口輸出到LED上。與此同時(shí),AT89C51會通過P1.0~P1.3口選擇用哪一段LED顯示所傳出的數(shù)據(jù)。例如,當(dāng)P1.0~P1.3=1110,則LED接收到的數(shù)據(jù)會在第四段LED上顯示。 </p><p>  另外,AT89C51一旦獲得了數(shù)據(jù)后便會將ST置0,即模數(shù)轉(zhuǎn)換器停止轉(zhuǎn)換,知道LED獲得新的數(shù)據(jù)并顯示出來,ST才會重新置1.由于AT89C51轉(zhuǎn)換速率很快(微妙量級)

31、,所</p><p>  以不會影響其接收新的數(shù)據(jù)。最終顯示如下圖所示。</p><p>  圖9 運(yùn)行中的電路圖</p><p><b>  5 參考文獻(xiàn)</b></p><p>  [1] 胡乾坤,李廣斌,李玲,喻紅.單片微型計(jì)算機(jī)原理與應(yīng)用.華中科技大學(xué)出版社,2005</p><p>  

32、[2] 朱清慧,張鳳瑞,翟天嵩,王志奎.Proteus教程.清華大學(xué)出版社,2008</p><p>  [3] 李廣弟.單片機(jī)基礎(chǔ).北京航空航天大學(xué)出版社,1994</p><p>  [4] 譚運(yùn)光.單片機(jī)開發(fā)手冊.華齡出版社,1994</p><p><b>  6 結(jié)論及心得</b></p><p>  我選擇的

33、是簡易直流電壓表,這個(gè)所用到的芯片都是我們比較熟悉的,89c52和0808模/ 數(shù)轉(zhuǎn)換器。總的來說,這次課設(shè)完成得還算順利,因?yàn)槔蠋熃o的題目都很經(jīng)典,加之所要實(shí)現(xiàn)的功能也很簡單,因而我們能夠獲得的資源就比較豐富。在網(wǎng)上看了許多相關(guān)的電路和程序,也試過直接復(fù)制,但是由于程序不全而泡湯,于是決定自己設(shè)計(jì)電路和編寫匯編程序。在編寫匯編程序時(shí),循環(huán)顯示部分是用以往課程設(shè)計(jì)時(shí)編寫的程序的,直接復(fù)制到這個(gè)設(shè)計(jì)中來時(shí),忘記了刪除一個(gè)命令,導(dǎo)致最后一位

34、在仿真的時(shí)候總是顯示有問題,甚至顯示不了。后來經(jīng)過仔細(xì)檢查,終于發(fā)現(xiàn)了問題的所在并及時(shí)進(jìn)行了修正。在編寫程序過程中還出現(xiàn)了一個(gè)比較有趣的問題,這也算是匯編程序的一個(gè)弊端,就是做乘除的時(shí)候,結(jié)果很容易超出八位,如果不加以處理的話,很容易導(dǎo)致顯示不正常。</p><p>  下面是一段用于中斷處理顯示數(shù)據(jù)的程序。由于模數(shù)轉(zhuǎn)換之后得到的是0~255的八位二進(jìn)制數(shù),所以要通過中斷程序?qū)⒅癁?~5.00的十進(jìn)制小數(shù)。從前

35、面分析我們知道,只要將得到的二進(jìn)制數(shù)除以51,便可以直接得到個(gè)位。由于匯編不能處理小數(shù),所以只能將所得的余數(shù)乘以10,再除以51,得到十分位,以此類推,可以繼續(xù)得到百分位。但是問題就出現(xiàn)在這里,以十分位的計(jì)算為例。得到個(gè)位后,當(dāng)余數(shù)超過25,比如是26時(shí),乘以10的話得到260,就會溢出,而很難進(jìn)行除法操作得到正確的十分位結(jié)果。所以一開始我們就把乘數(shù)減小,變?yōu)?,這樣的話即使余數(shù)是50(除數(shù)為51,50是最大的余數(shù),余數(shù)保存在B),乘以

36、5,得到的是250,也不會溢出,然后再除以51,這樣可以得到十分位的一半,最后把結(jié)果乘以2,就能得到正確的十分位了。于是我們就這樣進(jìn)行編程進(jìn)行仿真,結(jié)果當(dāng)測量電壓十分位為偶數(shù)時(shí),可以部分正常顯示,當(dāng)測量電壓十分位為奇數(shù)時(shí),則依然顯示的是偶數(shù)。這是顯而易見的,因?yàn)樽詈笪覀兪怯蒙坛艘?得到的結(jié)果,還是由于匯編只能進(jìn)行整數(shù)除法的問題,導(dǎo)致結(jié)果只能是偶數(shù)。最后通過思考,想出了幾個(gè)方案,一是利用溢出標(biāo)志位來決定結(jié)果是否進(jìn)行</p>

37、<p><b>  INSER:</b></p><p>  PUSH PSW;</p><p>  PUSH ACC;現(xiàn)場保護(hù)</p><p><b>  PUSH DPH;</b></p><p><b>  PUSH DPL;</b></p>

38、<p><b>  SETB P3.1</b></p><p><b>  CLR EA</b></p><p><b>  MOV A,P2;</b></p><p>  MOV B,#33H;給B及時(shí)數(shù)55</p><p><b>  DIV AB;&l

39、t;/b></p><p>  MOV R0,A;以上可得到個(gè)位</p><p><b>  ;;;;;;;;</b></p><p><b>  MOV A,B</b></p><p>  MOV B,#5;給B及時(shí)數(shù)5,與A相乘,避免得數(shù)超過八位</p><p>&

40、lt;b>  MUL AB;</b></p><p>  MOV B,#33H;</p><p><b>  DIV AB;</b></p><p><b>  MOV R4,B;</b></p><p>  MOV B,#2H;再乘以2,以達(dá)到目的</p><

41、p><b>  MUL AB;</b></p><p><b>  MOV R1,A;</b></p><p><b>  MOV A,R4;</b></p><p><b>  CLR CY;</b></p><p>  CJNE A,#26,LO

42、OP1;判斷余數(shù),以確定A是否少加了1</p><p>  SUBB A,#26;超過51的一半則減去26或者25,并使上一位加1</p><p><b>  INC R1;</b></p><p><b>  LOOP1:</b></p><p><b>  JC LOOP2;</

43、b></p><p>  SUBB A,#25;等于26也進(jìn)行加1操作</p><p><b>  INC R1;</b></p><p><b>  LOOP2:</b></p><p>  MOV B,#2;余數(shù)乘以2,以達(dá)到實(shí)際的余數(shù)</p><p>  MUL

44、AB;以上可得到十分位</p><p><b>  ;;;;;;;;</b></p><p>  MOV B,#5H給B及時(shí)數(shù)5,與A相乘,避免得數(shù)超過八位</p><p><b>  MUL AB;</b></p><p>  MOV B,#33H;給B及時(shí)數(shù)51</p><p

45、><b>  DIV AB;</b></p><p><b>  MOV R4,B;</b></p><p>  MOV B,#2; 再乘以2,以達(dá)到目的</p><p><b>  MUL AB;</b></p><p><b>  MOV R2,A;<

46、/b></p><p><b>  MOV A,R4;</b></p><p><b>  CLR CY;</b></p><p>  CJNE A,#26,LOOP3;同上面的操作,以得到百分位</p><p><b>  INC R2;</b></p>

47、<p><b>  LOOP3:</b></p><p><b>  JC LOOP4;</b></p><p>  INC R2;以上得到百分位</p><p><b>  LOOP4:</b></p><p><b>  ;;;;;;;;</b&

48、gt;</p><p>  POP DPL;恢復(fù)現(xiàn)場</p><p><b>  POP DPH;</b></p><p><b>  POP ACC;</b></p><p><b>  POP PSW;</b></p><p><b>  

49、RETI</b></p><p><b>  7 附錄</b></p><p><b>  7.1 調(diào)試報(bào)告</b></p><p>  由于此次設(shè)計(jì)的程序較簡單,因而其在keil里運(yùn)行的時(shí)候很順利。但是當(dāng)將程序加入連接好的電路中并開始仿真時(shí),就遇到了上述的問題。通過思考解決了這些問題之后,仿真就完全沒問題了。

50、</p><p>  在焊實(shí)際元件的過程中,第一次把電路焊好了,但是完全沒有顯示。第二次重新焊了電路,終于實(shí)現(xiàn)了功能。電壓的調(diào)節(jié)是通過電位器來實(shí)現(xiàn)的,如果要測量其他電壓,只需要把電位器的兩端拆下來即可。不過在過程中還是遇到了單片機(jī)的輸出電流不足以驅(qū)動數(shù)碼管的為題,導(dǎo)致顯示的時(shí)候亮度不夠,于是利用反相器來放大電流,就可以在白天也有比較好的亮度用于觀察了。實(shí)際電路圖及工作狀態(tài)圖如下:</p><p

51、><b>  源程序如下:</b></p><p><b>  ORG 0000H</b></p><p>  LJMP CLOCK</p><p><b>  ORG 0003H</b></p><p>  LJMP INSER;跳轉(zhuǎn)到外部中斷0</p>

52、<p><b>  ORG 000BH</b></p><p>  LJMP INSER1;</p><p><b>  ORG 0030H</b></p><p><b>  CLOCK:</b></p><p>  MOV DPTR,#TAB;把tab的首地址給d

53、ptr</p><p>  MOV R0,#00H;賦初值</p><p>  MOV R1,#00H;</p><p>  MOV R2,#00H;</p><p>  MOV TL0,#0FEH;</p><p><b>  SETB ET0;</b></p><p>

54、  MOV TH0,#0FFH</p><p>  MOV TL0,#0E0H</p><p><b>  SETB IT0</b></p><p><b>  SETB TR0</b></p><p><b>  SETB PX0</b></p><p&g

55、t;  SETB EX0;打開中斷0</p><p>  SETB EA;打開中斷開關(guān)</p><p><b>  CONNECT:</b></p><p>  MOV R7,#10</p><p><b>  SETB P3.0</b></p><p><b> 

56、 CLR P3.0</b></p><p><b>  setb ea</b></p><p>  DISPLAY:;循環(huán)顯示程序段</p><p><b>  CLR P1.1</b></p><p>  MOV A,#0FH;給A賦值,用來和時(shí)進(jìn)行邏輯運(yùn)算,以達(dá)到分別顯示時(shí)的十位和個(gè)

57、位</p><p>  ANL A,R0;邏輯與,把R0的值給A</p><p>  MOVC A,@A+DPTR;查表得到電壓個(gè)位的位選碼</p><p>  MOV P0,A;送出顯示</p><p><b>  CLR P0.7</b></p><p>  LCALL DELAY</p

58、><p><b>  SETB P1.1</b></p><p><b>  ;;;;;;</b></p><p><b>  CLR P1.2</b></p><p>  MOV A,#0FH;</p><p>  ANL A,R1;邏輯與,把R1的低四位

59、給A</p><p>  MOVC A,@A+DPTR;查表得到十分位的位選碼</p><p>  MOV P0,A;送出顯示</p><p>  LCALL DELAY</p><p><b>  SETB P1.2</b></p><p><b>  ;;;;;;</b>

60、</p><p><b>  CLR P1.3</b></p><p>  MOV A,#0FH;</p><p>  ANL A,R2;把R2低四位給A</p><p>  MOVC A,@A+DPTR;查表得百分位的位選碼</p><p>  MOV P0,A;送出顯示</p>

61、<p><b>  SETB P0.7</b></p><p>  LCALL DELAY</p><p><b>  SETB P1.3</b></p><p><b>  ;;;;;;</b></p><p>  DJNZ R7,L3</p><

62、;p><b>  CLR P3.1</b></p><p><b>  SETB P3.0</b></p><p>  LJMP CONNECT;</p><p><b>  L3:</b></p><p>  LJMP DISPLAY;</p><

63、p><b>  INSER:</b></p><p>  PUSH PSW;</p><p>  PUSH ACC;現(xiàn)場保護(hù)</p><p><b>  PUSH DPH;</b></p><p><b>  PUSH DPL;</b></p><

64、p><b>  SETB P3.1</b></p><p><b>  CLR EA</b></p><p><b>  MOV A,P2;</b></p><p>  MOV B,#33H;</p><p><b>  DIV AB;</b><

65、;/p><p><b>  MOV R0,A;</b></p><p><b>  ;;;;;;;;</b></p><p><b>  MOV A,B</b></p><p><b>  MOV B,#5;</b></p><p>&

66、lt;b>  MUL AB;</b></p><p>  MOV B,#33H;</p><p><b>  DIV AB;</b></p><p><b>  MOV R4,B;</b></p><p>  MOV B,#2H;</p><p><b

67、>  MUL AB;</b></p><p><b>  MOV R1,A;</b></p><p><b>  MOV A,R4;</b></p><p><b>  CLR CY;</b></p><p>  CJNE A,#26,LOOP1;</p

68、><p>  SUBB A,#26;</p><p><b>  INC R1;</b></p><p><b>  LOOP1:</b></p><p><b>  JC LOOP2;</b></p><p>  SUBB A,#25;</p>

69、<p><b>  INC R1;</b></p><p><b>  LOOP2:</b></p><p><b>  MOV B,#2;</b></p><p><b>  MUL AB;</b></p><p><b>  ;

70、;;;;;;;</b></p><p><b>  MOV B,#5H</b></p><p><b>  MUL AB;</b></p><p>  MOV B,#33H;</p><p><b>  DIV AB;</b></p><p>

71、;<b>  MOV R4,B;</b></p><p><b>  MOV B,#2;</b></p><p><b>  MUL AB;</b></p><p><b>  MOV R2,A;</b></p><p><b>  MOV A,

72、R4;</b></p><p><b>  CLR CY;</b></p><p>  CJNE A,#26,LOOP3</p><p><b>  INC R2;</b></p><p><b>  LOOP3:</b></p><p>&

73、lt;b>  JC LOOP4;</b></p><p><b>  INC R2;</b></p><p><b>  LOOP4:</b></p><p><b>  ;;;;;;;;</b></p><p>  POP DPL;恢復(fù)現(xiàn)場</p&g

74、t;<p><b>  POP DPH;</b></p><p><b>  POP ACC;</b></p><p><b>  POP PSW;</b></p><p><b>  RETI</b></p><p><b>  

75、DELAY:</b></p><p>  MOV R5,#01H;延時(shí)500us子程序</p><p><b>  L1:</b></p><p>  MOV R6,#0FFH;</p><p><b>  L2:</b></p><p>  DJNZ R6,L

76、2;</p><p>  DJNZ R5,L1;</p><p><b>  RET</b></p><p>  TAB:DB 0C0H,0F9H,0A4H,0B0H,99H</p><p>  DB 92H,82H,0F8H,80H,90H</p><p><b>  INSER1:&

77、lt;/b></p><p><b>  CLR EX0;</b></p><p><b>  CPL P3.3;</b></p><p>  MOV TH0,#0FFH;</p><p>  MOV TL0,#0E0H;</p><p><b>  SETB

78、 EX0;</b></p><p><b>  RETI</b></p><p><b>  END</b></p><p><b>  7.2 元器件清單</b></p><p>  1. AT89C51芯片 1塊</p&g

79、t;<p>  2. ADC0808芯片 1塊</p><p>  3. 4位一體數(shù)碼 1個(gè)</p><p>  4. 6MHz晶振 1個(gè)</p><p>  5. 33pF電容 2個(gè)</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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論