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

下載本文檔

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

文檔簡介

1、<p><b>  數(shù)字電壓表設(shè)計</b></p><p><b>  總體設(shè)計</b></p><p>  1.數(shù)字電壓表的設(shè)計即將連續(xù)的模擬電壓信號經(jīng)過A/D轉(zhuǎn)換器轉(zhuǎn)換成二進(jìn)制數(shù)值,再經(jīng)由單片機(jī)軟件編程轉(zhuǎn)換成十進(jìn)制數(shù)值并通過顯示屏顯示。 </p><p>  2.按系統(tǒng)實(shí)現(xiàn)要求,決定控制系

2、統(tǒng)采用AT89C51單片機(jī),A/D轉(zhuǎn)換由于仿真軟件里的ADC0808.</p><p>  3.采用ADC0808。數(shù)字電壓表系統(tǒng)整體框圖如下圖1所示。</p><p>  ( 圖一)整體設(shè)計框圖</p><p>  系統(tǒng)通過軟件設(shè)置單片機(jī)的內(nèi)部定時器T1產(chǎn)生中斷信號。通過片選選擇8路通道中的一路,將該路電壓送入ADC0808的EOC端口產(chǎn)生高電平,同時將ADC08

3、08的OE端口置為高電平,單片機(jī)將轉(zhuǎn)換后結(jié)果存到片內(nèi)RAM。系統(tǒng)調(diào)出轉(zhuǎn)換顯示程序,將轉(zhuǎn)換為二進(jìn)制的數(shù)據(jù)在轉(zhuǎn)換成十進(jìn)制數(shù)并輸出到LCD顯示電路,將相應(yīng)電壓顯示出來。</p><p><b>  模塊分析</b></p><p>  接口分配電路設(shè)計如右圖2所示:</p><p>  P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL

4、門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/ 地址的第八位。在這里P0口作為輸入與輸出分別與ADC0808的輸出端和LCD顯示的輸入端相連,且P0外部被阻值為1K?的電阻拉高</p><p>  P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因

5、此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。這里只用到了P2.0~P2.3四個端口,其中P2.1~P2.3都是作為輸出端口控制顯示電路的寄存器選擇、讀寫信號和使能端口。</p><p>

6、  P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 </p><p>  P3口也可作為AT89C51的一些特殊功能口,在這里用到了P3.3 /INT1(外部中斷1)、 P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)、P3.7 /RD(外部數(shù)據(jù)存儲器

7、讀選通)。</p><p><b>  A/D轉(zhuǎn)換</b></p><p>  接口分配電路設(shè)計如圖3所示:</p><p><b>  A/D轉(zhuǎn)換電路 </b></p><p>  IN0~I(xiàn)N7為8路模擬量輸入端,這里只接一路電壓信號,其輸入信號是由直流電源及可調(diào)電阻提供。 </p>

8、<p>  OUT1~OUT8為8位二進(jìn)制數(shù)字量輸出端,其另一端連接到AT89C51單片機(jī)進(jìn)行數(shù)值轉(zhuǎn)換。 </p><p>  ADDA、ADDB、ADDC為3位片選地址輸入線,用于選通8路模擬輸入中的一路。</p><p>  ALE為地址鎖存允許信號,由單片機(jī)P3.6口寫信號與P2.0口相或取反輸入,高電平有效。 </p><p>  START為

9、 A/D轉(zhuǎn)換啟動脈沖輸入端,由單片機(jī)P3.6口寫信號與P2.0口相或取反輸入一個正脈沖使其啟動(脈沖上升沿使0808復(fù)位,下降沿啟動A/D轉(zhuǎn)換)。 </p><p>  EOC為 A/D轉(zhuǎn)換結(jié)束信號,當(dāng)A/D轉(zhuǎn)換結(jié)束時,此端輸出一個高電平取反給P3.3口(轉(zhuǎn)換期間一直為低電平)。 </p><p>  OE為數(shù)據(jù)輸出允許信號,高電平有效。當(dāng)A/D轉(zhuǎn)換結(jié)束時,此端由單片機(jī)P3.7讀信號與P2

10、.0口相或后取反輸入一個高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。</p><p><b>  顯示電路  </b></p><p>  接口分配設(shè)計如圖4所示:</p><p>  RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。由單片機(jī)P2.1口控制</p><p>  R/W為讀寫信號線,高電平時進(jìn)

11、行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時可以</p><p>  寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電</p><p>  平R/W為低電平時可以寫入數(shù)據(jù)。由單片機(jī)P2.2口控制</p><p>  E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。由單片機(jī)P2.3口控制</p>

12、<p>  D0~D7為8位雙向數(shù)據(jù)線。由單片機(jī)P0口輸入,經(jīng)過阻值為1K?的上拉電阻連接。</p><p><b>  軟件設(shè)計</b></p><p>  主程序的內(nèi)容包括:起始地址、中斷服務(wù)程序的起始地址、有關(guān)內(nèi)存單元及相關(guān)部件的初始化和一些子程序的調(diào)用等。根據(jù)設(shè)計要求,設(shè)計出如圖所示的主程序流程圖。</p><p>  A/D

13、轉(zhuǎn)換子程序設(shè)計: A/D轉(zhuǎn)換程序的功能是采集數(shù)據(jù),在整個系統(tǒng)設(shè)計中占有很高的地位。當(dāng)系統(tǒng)置好后,單片機(jī)掃描轉(zhuǎn)換結(jié)束管腳P3.7的輸入電平狀態(tài),當(dāng)輸入為高電平則轉(zhuǎn)換完成,將轉(zhuǎn)換的數(shù)值顯示輸出。</p><p>  若輸入為低電平,則繼續(xù)掃描。程序流程圖如圖所示。</p><p>  A/D轉(zhuǎn)換子程序流程圖</p><p><b>  程序清單</b&g

14、t;</p><p>  COM EQU 50H ; 指令寄存器</p><p>  DAT EQU 51H ; 數(shù)據(jù)寄存器</p><p>  RS EQU P2.1 ; LCD寄存器選擇信號</p><p>  RW EQU P2.2 ; LCD讀/寫選擇信號</p><p>  E EQU P2.3 ; LCD使

15、能信號</p><p><b>  ORG 0000H</b></p><p>  LJMP MAIN ;主程序入口</p><p><b>  ORG 000BH</b></p><p>  LJMP BT0 ;T0中斷入口</p><p>  O

16、RG 0030H ;主程序,初始化</p><p>  MAIN: MOV SP,#60H</p><p><b>  LCALL INT</b></p><p>  MOV 30H,#30H</p><p>  MOV 31H,#30H</p><p>  MOV 32H,#0A

17、5H</p><p>  MOV 33H,#30H</p><p>  MOV 34H,#30H</p><p>  MOV R7,#30H</p><p>  LCALL N1 ;顯示 Voltage = 00.00</p><p>  MOV TMOD,#00H ;定時器T0設(shè)為方式0<

18、/p><p>  MOV TH0,#00h ;裝入定時常數(shù)</p><p>  MOV TL0,#00h</p><p>  SETB TR0 ;啟動T0</p><p>  MOV 24h, #03h ;裝入T0中斷次數(shù)</p><p>  MOV IE,#82H ;開中斷</p&g

19、t;<p>  LP: MOV R7,#30H ;顯示緩沖區(qū)首地址</p><p>  LCALL DISPLY</p><p>  SJMP LP ;循環(huán)顯示</p><p><b>  DISPLY:</b></p><p>  MOV COM,#0CAH ;設(shè)置

20、數(shù)據(jù)起始地址(第而行第10位)</p><p>  LCALL PR1</p><p>  MOV R1,#05H</p><p>  MOV R0,#30H</p><p>  l: MOV DAT,@r0</p><p><b>  LCALL PR2</b></p>

21、<p><b>  INC R0</b></p><p>  DJNZ R1,l</p><p><b>  RET</b></p><p>  ;1. 逐字依次輸入方式演示程序段</p><p>  N1:MOV COM,#01H ;清屏</p><

22、p><b>  LCALL PR1</b></p><p>  MOV COM,#06H ;設(shè)置輸入方式</p><p><b>  LCALL PR1</b></p><p>  MOV COM,#081H ;設(shè)置數(shù)據(jù)起始地址(第一行地二位)</p><p><

23、b>  LCALL PR1</b></p><p>  MOV DPTR,#TAB1</p><p>  MOV R2,#0EH</p><p>  MOV R3,#00H</p><p><b>  WRIN1:</b></p><p><b>  MOV A,R3&

24、lt;/b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV DAT,A</b></p><p><b>  LCALL PR2</b></p><p><b>  INC R3</b></p><p>  D

25、JNZ R2,WRIN1</p><p>  MOV COM,#0C1H ;設(shè)置數(shù)據(jù)起始地址(第二行地二位)</p><p><b>  LCALL PR1</b></p><p>  MOV DPTR,#TAB2</p><p><b>  MOV R2,#9</b></p>

26、;<p>  MOV R3,#00H</p><p><b>  WRIN2:</b></p><p><b>  MOV A,R3</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV DAT,A</b></p>

27、;<p><b>  LCALL PR2</b></p><p><b>  INC R3</b></p><p>  DJNZ R2,WRIN2</p><p><b>  RET</b></p><p>  TAB1: DB "VOLTAGE=

28、 "</p><p>  ; LCD間接控制方式下的初始化子程序</p><p><b>  INT:</b></p><p>  LCALL DELAY ; 調(diào)延時子程序</p><p>  MOV COM,#38H ; 設(shè)置工作方式(2行,8位數(shù)據(jù))</p><p><b&

29、gt;  LCALL PR1</b></p><p>  MOV COM,#01H ; 清屏</p><p><b>  LCALL PR1</b></p><p>  MOV COM,#06H ; 設(shè)置輸入方式</p><p><b>  LCALL PR1</b></p>

30、<p>  MOV COM,#0CH ; 設(shè)置顯示方式</p><p><b>  LCALL PR1</b></p><p><b>  RET</b></p><p>  DELAY:MOV R6,#0FH ; 延時子程序</p><p>  MOV R7,#00H</p&g

31、t;<p>  DELAY1: NOP</p><p><b>  NOP</b></p><p>  DJNZ R7,DELAY1</p><p>  DJNZ R6,DELAY1</p><p><b>  RET</b></p><p>  ;LCD間接控

32、制方式的驅(qū)動子程序如下</p><p>  ;1 讀BF和AC值</p><p>  PR0: PUSH ACC</p><p>  MOV P0,#0FFH ; P0置位, 準(zhǔn)備讀</p><p>  CLR RS ; RS=0</p><p>  SETB RW; R/W=1</p><p>

33、;  SETB E ; E=1</p><p>  LCALL DELAY</p><p>  MOV COM,P0 ; 讀BF和AC6-4值</p><p>  CLR E ; E=0</p><p><b>  POP ACC</b></p><p><b>  RET</b&

34、gt;</p><p>  ;2 寫指令代碼子程序</p><p>  PR1: PUSH ACC</p><p>  CLR RS ; RS=0</p><p>  SETB RW ; R/W=1</p><p>  PR11:MOV P0,#0FFH; P0置位, 準(zhǔn)備讀</p><p

35、>  SETB E ; E=1</p><p>  LCALL DELAY</p><p><b>  NOP</b></p><p><b>  MOV A,P0</b></p><p><b>  CLR E</b></p><p>  JB

36、ACC.7,PR11;BF=1?</p><p>  CLR RW; R/W=0</p><p>  MOV P0,COM</p><p>  SETB E ; E=1</p><p>  CLR E ; E=0; E=0</p><p><b>  POP ACC</b></p>

37、<p><b>  RET</b></p><p>  ;3 寫顯示數(shù)據(jù)子程序</p><p>  PR2:PUSH ACC</p><p>  CLR RS ; RS=0</p><p>  SETB RW; R/W=1</p><p>  PR21:MOV P0,#0FFH</

38、p><p>  SETB E ; E=1</p><p>  LCALL DELAY</p><p>  MOV A,P0 ; 讀BF和AC6-4值</p><p>  CLR E ; E=0</p><p>  JB ACC.7,PR21</p><p><b>  SETB RS<

39、;/b></p><p><b>  CLR RW</b></p><p>  MOV P0,DAT; 寫入數(shù)據(jù)</p><p><b>  SETB E</b></p><p><b>  CLR E</b></p><p><b> 

40、 POP ACC</b></p><p><b>  RET</b></p><p>  ;4 讀顯示數(shù)據(jù)子程序</p><p>  PR3:PUSH ACC</p><p>  CLR RS ; RS=0</p><p>  SETB RW; R/W=1</p><

41、;p>  PR31:MOV P0,#0FFH ; P0置位, 準(zhǔn)備讀</p><p>  SETB E ; E=1</p><p>  LCALL DELAY</p><p>  MOV A,P0 ; 讀BF和AC6-4值</p><p>  CLR E ; E=0</p><p>  JB ACC.7,PR31

42、</p><p><b>  SETB RS</b></p><p>  SETB RW; R/W=1</p><p>  MOV P0,#0FFH ; 讀數(shù)據(jù)</p><p>  SETB E ; E=1</p><p>  MOV DAT,P0</p><p>  CL

43、R E ; E=0</p><p><b>  POP ACC</b></p><p><b>  RET</b></p><p>  ; 定時器T0中斷服務(wù)程序,讀取ADC0809第0通道的A/D轉(zhuǎn)換結(jié)果并化為顯示值</p><p>  BT0: PUSH ACC ;保護(hù)

44、現(xiàn)場</p><p>  PUSH PSW</p><p>  MOV PSW,#08H</p><p>  CLR TR0 ;停止T0</p><p>  MOV TH0,#00h ;重裝定時常數(shù)</p><p>  MOV TL0,#00h</p>

45、<p>  MOV DPTR,#0F6FFH ;0809端口地址</p><p>  MOV A,#0 ;0通道</p><p>  MOVX @DPTR,A ;啟動0809</p><p>  MOV R7,#0FFH ;等待A/D轉(zhuǎn)換完</p><p>  DJNZ R7,

46、$</p><p>  MOVX A,@DPTR ;讀0809轉(zhuǎn)換結(jié)果</p><p>  MOV B,#03H ;將轉(zhuǎn)換的值除以3再累加,存入40H中</p><p>  DIV AB</p><p>  ADD A,40H</p><p>  MOV 40H,A</p>

47、;<p>  MOV A,B ;將除以3后的余數(shù)累加放入41H中</p><p>  ADD A,41H</p><p>  MOV 41H,A</p><p>  DEC 24h ;3次中斷未到則返回</p><p>  MOV A,24H</p><p&

48、gt;  JNZ RNT1</p><p>  MOV 24h,#03h ;重裝中斷次數(shù)</p><p>  MOV A,41H ;將累加的余數(shù)再除3后相加</p><p><b>  DIV AB</b></p><p>  ADD A,40H</p><p>

49、;  MOV 40H,#0 ;清零累加數(shù)</p><p>  MOV 41H,#0</p><p>  RTN: MOV B,#0fh ;A/D轉(zhuǎn)換結(jié)果化為顯示值</p><p>  MUL AB ;(AD*5)/256</p><p><b>  MOV @R0,A<

50、;/b></p><p><b>  MOV A,B</b></p><p><b>  MOV B,@R0</b></p><p><b>  MOV R0,A</b></p><p>  ADD A,#246</p><p><b>

51、  MOV A,R0</b></p><p>  MOV 30H,#00H</p><p><b>  JNC LOOP</b></p><p>  ADD A,#06H</p><p>  MOV 30H,#01H</p><p><b>  LOOP:</b>

52、</p><p>  MOV 31H,A ;AD*5的高字節(jié)為整數(shù)部分</p><p><b>  MOV A,B</b></p><p>  MOV B,#0AH</p><p>  MUL AB ;AD*5的低字節(jié)為/256的結(jié)果,為小數(shù)部分</p><p>

53、  MOV 33H,B ;二進(jìn)制小數(shù)換為10進(jìn)制數(shù)</p><p>  MOV B,#0AH</p><p>  MUL AB </p><p><b>  MOV 34H,B</b></p><p><b>  LJMP RTN1</b></p><p

54、>  RTN1: SETB TR0</p><p>  ORL 30H,#30H</p><p>  ORL 31H,#30H</p><p>  MOV 32H,#0A5H ;小數(shù)點(diǎn)</p><p>  ORL 33H,#30H</p><p>  ORL 34H,#30H</p><

55、p><b>  POP PSW</b></p><p><b>  POP ACC</b></p><p><b>  RETI</b></p><p><b>  END</b></p><p><b>  原理圖</b>&l

56、t;/p><p><b>  總結(jié)與體會</b></p><p>  這雖然是一個數(shù)字電壓表的設(shè)計但是實(shí)際上就是一個數(shù)據(jù)采集的程序設(shè)計,只不過這里數(shù)據(jù)采集的是模擬電壓罷了,通過設(shè)計把在學(xué)校學(xué)習(xí)的很多課程集合在一起,加深了對課程之間的聯(lián)系,靈活的運(yùn)用。開闊了思維。</p><p>  總的來說結(jié)果還是完成了設(shè)計任務(wù),雖然整個過程有點(diǎn)不在狀態(tài),但還是溫

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論