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

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  1 引言4</b></p><p>  2 總體方案設(shè)計4</p><p>  3 硬件電路設(shè)計5</p><p>  3.1 單片機及其外圍電路5</p><p>  3.2 硬件電路組成

2、6</p><p>  4 系統(tǒng)軟件設(shè)計10</p><p>  4.1 初始化程序設(shè)計10</p><p>  4.2 主程序設(shè)計11</p><p>  4.3 倒計時30s子程序的設(shè)計12</p><p>  4.4 外部中斷T1中斷子程序設(shè)計14</p><p>  4.5 定

3、時器T1中斷子程序設(shè)計17</p><p>  4.6 選手按鍵程序的設(shè)計18</p><p>  4.7 數(shù)碼管顯示程序的設(shè)計19</p><p>  5 系統(tǒng)調(diào)試與總結(jié)21</p><p>  附錄A 系統(tǒng)原理圖22</p><p>  附錄B 源程序22</p><p><

4、;b>  1 引言</b></p><p>  此次設(shè)計提出了用80C51單片機為核心控制元件,設(shè)計一個簡易的搶答器,本方案以80C51單片機作為主控核心,與數(shù)碼管、蜂鳴器等構(gòu)成八路搶答器,利用了單片機的延時電路、按鍵復(fù)位電路、時鐘電路、定時/中斷等電路,設(shè)計的八路搶答器具有倒計時和實時顯示搶答選手的號碼的特點,還有復(fù)位電路,使其再開始新的一輪的答題和比賽。</p><p&g

5、t;  它的功能實現(xiàn)是比賽開始,主持人讀完題之后按下總開關(guān),倒計時開始,此時數(shù)碼管開始進行30s的倒計時,是選手的思考時間,倒計時完后,才允許開始搶答,若有人答題,對應(yīng)的會在數(shù)碼管上顯示出該選手的編號并由蜂鳴器發(fā)出聲音,在30s倒計時內(nèi)答題無效。</p><p><b>  2 總體方案設(shè)計</b></p><p>  圖2.1 總體電路設(shè)計框圖</p>

6、<p>  總體程序設(shè)計思路圖為如圖2.1所示。</p><p>  復(fù)位電路:當(dāng)一輪進行完時,由主持人按下,下一輪倒計時開始,復(fù)位電路接P3.3口。</p><p>  獨立式按鍵鍵盤:用于輸入高低電平,連接到P1口,由P1口檢測電平的變化。</p><p>  搶答器倒計時顯示電路:有三位數(shù)碼管組成,前兩位顯示30s倒計時,由第三位顯示成功搶答選手

7、編號。</p><p>  蜂鳴電路:有選手搶答成功,P3.1口發(fā)出脈沖,使蜂鳴器發(fā)出聲音。</p><p><b>  3 硬件電路設(shè)計</b></p><p>  3.1 單片機最小系統(tǒng)</p><p>  微控制器采用AT89C51。AT89C51是美國ATMEL公司生產(chǎn)的與MCS-51系列單片機完全兼容的高性能C

8、MOS 8位單片機,MCS-51系列單片機以其推出時間早、配套資源豐富、開發(fā)手段完善、性價比高等特點而得到了廣泛的應(yīng)用,是單片機的主流品種。</p><p>  AT89C51的內(nèi)部資源主要包括:</p><p>  ·與MCS--51 系列完全兼容的高性能8位CPU;</p><p>  ·4K字節(jié)可重復(fù)編程的Flash存儲器;</p&g

9、t;<p>  ·256字節(jié)的SRAM;</p><p>  ·4個8位的并行口,共32條I/O口線;</p><p>  ·3個16位的定時器/計數(shù)器;</p><p>  ·6個中斷源,2個中斷優(yōu)先級的中斷系統(tǒng);</p><p>  ·一個全雙工的串行口;</p>

10、<p><b>  ·內(nèi)部振蕩器;</b></p><p><b>  ·可編程串行通道 </b></p><p>  ·低功耗的閑置和掉電模式 </p><p>  ·片內(nèi)振蕩器和時鐘電路</p><p>  其最小系統(tǒng)主要包括復(fù)位電路,時鐘電

11、路,如下圖3.1所示。</p><p>  圖3.1 單片機最小系統(tǒng)電路圖</p><p>  3.2 硬件電路功能說明</p><p> ?。?)復(fù)位電路的設(shè)計</p><p>  MCS-5l的復(fù)位輸入引腳RST為MCS-51提供了初始化的手段,可以使程序從指定處開始執(zhí)行,在MCS-5l的時鐘電路工作后,只要RST引腳上出現(xiàn)超過兩個機器周

12、期以上的高電平時,即可產(chǎn)生復(fù)位的操作.只要RST保持高電平,則MCS-5l循環(huán)復(fù)位.只有當(dāng)RST由高電平變低電平以后。MCS-51才從0000H地址開始執(zhí)行程序。本系統(tǒng)采用按鍵復(fù)位方式的復(fù)位電路。</p><p>  復(fù)位電路:當(dāng)一輪進行完時,由主持人按下,下一輪倒計時開始,如圖3.2所示。</p><p>  圖3.2 復(fù)位控制電路</p><p> ?。?)獨立

13、式按鍵鍵盤設(shè)計</p><p>  鍵盤接口中使用多少根I/O線,鍵盤中就有幾個按鍵,鍵盤接口使用了8根I/O口線,該鍵盤就有8個按鍵,這種類型的鍵盤,其按鍵比較少,且鍵盤中各按鍵的工作互不干擾。因此可以根據(jù)實際需要對鍵盤中的按鍵靈活的編碼。</p><p>  最簡單的編碼方式就是根據(jù)I/O輸入口所直接反映的相應(yīng)按鍵,按下的狀態(tài)進行編碼,稱按鍵直接狀態(tài)碼,對于這樣編碼的獨立式鍵盤,CP

14、U可以通過直接讀取I/O口的狀態(tài)來獲取按鍵的直接狀態(tài)編碼值,根據(jù)這個值直接進行按鍵識別,這樣形式的鍵盤結(jié)構(gòu)簡單,按鍵識別容易。</p><p>  獨立式鍵盤的缺點是需要占用比較多的I/O口線,當(dāng)單片機應(yīng)用系統(tǒng)鍵盤中需要的按鍵比較少或I/O口線比較富余時,可以采用這樣類型的鍵盤。 </p><p>  獨立式按鍵鍵盤:用于輸入高低電平,八位選手搶答時高低電平發(fā)生變化,如圖3.3所示。<

15、;/p><p>  圖3.3 搶答按鍵部分</p><p>  (3)數(shù)碼管顯示部分設(shè)計 </p><p>  LED動態(tài)顯示是單片機中應(yīng)用最為廣泛的一種顯示方式,其接口電路是把所有顯示器的8個筆劃段a-dp 同名端并聯(lián)在一起,而每一個顯示器的公共極COM是各自獨立地受I/O線控制,CPU的字段輸出口送出字形碼時,所有顯示器由于同名端并連接收到相同的字形碼,但究竟哪個

16、顯示器亮,則取決于COM端,而這一端是由I/O控制的,所以就可以自行決定何時顯示哪一位了,在輪流點亮掃描過程中,每位顯示器的點亮?xí)r間表是極為短暫的,但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝將就盡管實際上各位顯示器并非間時點亮,但只要掃描速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感。</p><p>  搶答器倒計時顯示電路:有三位數(shù)碼管組成,前兩位顯示30s倒計時,第三位顯示成功搶答選手編號,如圖3

17、.4所示。</p><p>  圖3.4 顯示控制部分圖</p><p>  (4)蜂鳴器電路設(shè)計</p><p>  我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機某個口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的巨型波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào),

18、使喇叭發(fā)出不同的聲音。單片機通過內(nèi)部定時器的操作實現(xiàn)交替變換的波形輸出驅(qū)動揚聲器發(fā)聲,有選手搶答成功,使蜂鳴器發(fā)出聲音,如圖3.5所示。</p><p>  圖3.5 蜂鳴器提示時間部分圖</p><p><b>  4 系統(tǒng)軟件設(shè)計</b></p><p>  系統(tǒng)軟件分為主程序、中斷服務(wù)程序和子程序三部分</p><p

19、>  4.1 主程序(主程序流程框圖見圖4.1)</p><p>  圖4.1 主程序流程框圖</p><p>  主程序是系統(tǒng)上電或復(fù)位后首先要執(zhí)行的程序,主程序主要完成系統(tǒng)的初始化、掃描顯示、掃描鍵盤等工作。程序流程如圖4.1所示,對單片機進行初始化,包括設(shè)置堆棧、倒計時30S設(shè)置、定時器T0設(shè)置,外部中斷設(shè)置,鍵盤掃描設(shè)置,初始化狀態(tài)時顯示000。</p>&l

20、t;p>  4.3 倒計時30s子程序:(定時器T0中斷子程序框圖如圖4.2所示)</p><p>  圖4.2 定時器T0中斷子程序框圖 </p><p>  首先要把累加器ACC和程序狀態(tài)字PSW放入堆棧保護,然后進行倒計時的設(shè)置,設(shè)置為30S倒計時,先看看1S到?jīng)],如果到,倒計時自動減1,并在數(shù)碼管顯示,再判斷倒計時的30s到?jīng)],沒到繼續(xù)倒計時并顯示,倒計時計完為止,然后彈

21、出累加器ACC與程序狀態(tài)字PSW,中斷退出,返回到中斷入口處。 </p><p>  4.4 外部中斷T1中斷子程序:(外部T1中斷子程序框圖如圖4.3所示)</p><p>  圖4.3 外部T1中斷子程序框圖</p><p>  外部中斷T1中斷時要先把累加器ACC和程序狀態(tài)字PSW放入堆棧保護,然后把20H標(biāo)志位置0,再調(diào)用顯示程序,T0開始定時,T1停止

22、,然后設(shè)置30S倒計時,設(shè)置之后彈出累加器ACC與程序狀態(tài)字PSW,中斷退出,返回到中斷入口處。 </p><p>  4.5 定時器T1中斷子程序:(定時器T1中斷程序框圖如圖4.4所示)</p><p>  圖4.4 定時器T1中斷程序框圖</p><p>  定時器T1中斷時要先把累加器ACC和程序狀態(tài)字PSW放入堆棧保護,然后就是響鈴,接上喇叭,利用延時

23、程序控制“高”“低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。設(shè)置之后彈出累加器ACC與程序狀態(tài)字PSW,中斷退出,返回到中斷入口處。 </p><p>  4.6 選手按鍵程序:(鍵盤掃描程序框圖如圖4.5所示)</p><p>  圖4.5 鍵盤掃描程序框圖</p><p>  鍵盤掃描時先判斷20H單元和21H單元標(biāo)志位是否為0,

24、是的話說明允許鍵盤掃描,否的話即不允許鍵盤掃描,不允許掃描就返回調(diào)用,結(jié)束,允許掃描時開始掃描P1口看有沒有選手按下答題鍵,按下時此口變?yōu)榈碗娖?,如果沒有選手按鍵,則判斷P1口有沒有掃描完,沒有掃描完就繼續(xù)掃描,掃面完沒有選手按下就檢查20H和21H</p><p>  4.7 數(shù)碼管顯示程序:(顯示子程序框圖如圖4.6所示)</p><p>  圖4.6 顯示子程序框圖</p&

25、gt;<p>  進入顯示子程序先把選手的號碼顯示于01數(shù)碼管,然后是選手的答題時間十秒鐘倒計時顯示,把個位顯示在02數(shù)碼管上,把十位顯示在04數(shù)碼管上,同時把倒計時的數(shù)值減1后存在61H和62H中,判斷倒計時是否結(jié)束到0,結(jié)束的話返回調(diào)用,倒計時沒有結(jié)束即繼續(xù)倒計時。</p><p><b>  5 總結(jié)</b></p><p>  這次課程設(shè)計老師給

26、我們安排了兩個星期的時間,可以說是比較充裕的。雖然如此,我還是很用心的做設(shè)計程序,剛拿到題目,感覺太繁雜了,不知怎么下手,雖然這些知識以前都有接觸過,但也只是分部分來接觸,而這次的設(shè)計是要對前面幾次實驗的一個綜合,真的很難。也翻閱了一些資料,到圖書館翻閱了很多資料,可是還是一片空白,于是也在網(wǎng)上參考一些個程序,然后自己事先編寫好了程序,到了周一去到機房時候,把自己寫的程序燒進去芯片里面,發(fā)現(xiàn)不行,才知是我把段碼地址搞錯了,所以不能在數(shù)碼

27、管上正常顯示。通過運用單片機設(shè)計八路搶答器程設(shè)計,發(fā)現(xiàn)自己的很多不足,自己知識的很多漏洞,看到了自己的實踐經(jīng)驗還是比較缺乏,理論聯(lián)系實際的能力還急需提高。</p><p><b>  附錄A 系統(tǒng)原理圖</b></p><p><b>  附錄B 源程序</b></p><p>  KEY_OPEN EQU 20H&l

28、t;/p><p>  KEY EQU 21H</p><p>  BOOL EQU P3.1</p><p><b>  ORG 0000H</b></p><p><b>  LJMP MAIN</b></p><p><b>  ORG 0

29、00BH</b></p><p><b>  LJMP T0</b></p><p><b>  ORG 0013H</b></p><p><b>  LJMP INT1</b></p><p>  ORG 0001BH</p><p>&

30、lt;b>  LJMP T1</b></p><p><b>  MAIN:</b></p><p>  MOV SP,#70H</p><p>  MOV R1,#60H</p><p>  MOV R5,#20</p><p><b>  MOV A,#0<

31、/b></p><p><b>  MOV 59H,A</b></p><p>  MOV TMOD,#21H</p><p>  MOV TH0,#3CH</p><p>  MOV TL0,#0B0H</p><p>  MOV TH1,#7FH</p><p>

32、  MOV TL1,#7FH</p><p><b>  CLR BOOL</b></p><p><b>  CLR KEY</b></p><p><b>  SETB IT1</b></p><p><b>  SETB ET0</b></p&

33、gt;<p><b>  SETB ET1</b></p><p><b>  SETB EX1</b></p><p><b>  SETB EA</b></p><p>  CLR KEY_OPEN</p><p>  WAIT:LCALL KEY_SCAN&

34、lt;/p><p>  LCALL DISPLY</p><p><b>  SJMP WAIT</b></p><p>  T0: PUSH ACC</p><p><b>  PUSH PSW</b></p><p>  MOV TH0,#3CH</p><

35、;p>  MOV TL0,#0B0H</p><p>  DJNZ R5,T0END</p><p>  MOV R5,#10</p><p><b>  MOV A,59H</b></p><p><b>  DEC A</b></p><p>  CJNE A,#0

36、,L1</p><p><b>  CLR TR0</b></p><p><b>  SETB KEY</b></p><p>  L1: MOV 59H,A</p><p><b>  MOV A,#10</b></p><p><b> 

37、 MOV B,A</b></p><p><b>  MOV A,59H</b></p><p><b>  DIV AB</b></p><p>  MOV R1,#62H</p><p><b>  DA A</b></p><p>&l

38、t;b>  MOV @R1,A</b></p><p><b>  DEC R1</b></p><p><b>  MOV A,B</b></p><p><b>  MOV @R1,A</b></p><p>  LCALL DISPLY</p>

39、;<p>  T0END:POP PSW</p><p><b>  POP ACC</b></p><p><b>  RETI</b></p><p>  T1:PUSH ACC</p><p><b>  PUSH PSW</b></p>&l

40、t;p>  MOV R0,#20</p><p>  DJNZ R0,L2</p><p>  LJMP T1END</p><p>  L2:CPL BOOL</p><p>  T1END:POP PSW</p><p><b>  POP ACC</b></p><

41、p><b>  RETI</b></p><p>  INT1:PUSH ACC</p><p><b>  PUSH PSW</b></p><p>  CLR KEY_OPEN</p><p>  MOV P1,#0FFH</p><p>  LCALL DISPL

42、Y</p><p>  MOV 60H,#0</p><p>  MOV 61H,#0</p><p>  MOV 62H,#0</p><p><b>  SETB TR0</b></p><p><b>  CLR TR1</b></p><p>

43、;<b>  CLR KEY</b></p><p>  MOV 59H,#31</p><p><b>  POP ACC</b></p><p><b>  POP PSW</b></p><p><b>  RETI</b></p>&

44、lt;p><b>  KEY_SCAN:</b></p><p>  JNB KEY,KEYEND0</p><p>  JB KEY_OPEN ,KEYEND0</p><p>  JNB P1.0,KEY1</p><p>  JNB P1.1,KEY2</p><p>  JNB

45、 P1.2,KEY3</p><p>  JNB P1.3,KEY4</p><p>  JNB P1.4,KEY5</p><p>  JNB P1.5,KEY6</p><p>  JNB P1.6,KEY7</p><p>  JNB P1.7,KEY8</p><p>  L

46、JMP KEYEND0</p><p>  KEY1: MOV 60H,#1</p><p>  LJMP KEYEND</p><p>  KEY2: MOV 60H,#2</p><p>  LJMP KEYEND</p><p>  KEY3: MOV 60H,#3</p><p> 

47、 LJMP KEYEND</p><p>  KEY4: MOV 60H,#4</p><p>  LJMP KEYEND</p><p>  KEY5: MOV 60H,#5</p><p>  LJMP KEYEND</p><p>  KEY6: MOV 60H,#6</p><p>

48、;  LJMP KEYEND</p><p>  KEY7: MOV 60H,#7</p><p>  LJMP KEYEND</p><p>  KEY8: MOV 60H,#8</p><p>  KEYEND:SETB KEY_OPEN</p><p><b>  SETB TR1</b>

49、;</p><p>  KEYEND0:MOV P1,#0FFH</p><p><b>  RET</b></p><p>  DELAY: MOV R7,#100</p><p>  DS2: MOV R6,#100</p><p><b>  DJNZ R6,$</b

50、></p><p>  DJNZ R7,DS2</p><p><b>  RET</b></p><p>  DISPLY: MOV R4,#3</p><p>  MOV R1,#60H</p><p>  MOV R3,#01H</p><p>  LOO

51、P1: MOV A,R3</p><p>  MOV DPTR,#9002H</p><p>  MOVX @DPTR,A</p><p>  MOV DPTR,#TAB</p><p>  MOV A,@R1</p><p>  MOVC A,@A+DPTR</p><p>  M

52、OV DPTR,#9004H</p><p>  MOVX @DPTR,A</p><p>  LCALL DELAY1</p><p><b>  INC R1</b></p><p><b>  MOV A,R3</b></p><p><b>  R

53、L A</b></p><p>  JB ACC.3 ,L3</p><p><b>  MOV R3,A</b></p><p>  LJMP LOOP1</p><p>  L3: MOV A,#01H</p><p>  MOV R1,#60H</p><

54、;p><b>  MOV R3,A</b></p><p><b>  RET</b></p><p>  TAB: DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H</p><p>  DB 7FH 6FH 77H 7CH 39H 5EH 79H 71H</p><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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論