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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  單片微機(jī)應(yīng)用課程設(shè)計(jì)說(shuō)明書(shū)</p><p>  設(shè)計(jì)題目 89C51單片機(jī)擴(kuò)展8155顯示電子鐘 </p><p><b>  目錄</b></p><p><b>  課程設(shè)計(jì)任務(wù)書(shū)</b></p><p>  設(shè)計(jì)方

2、案的擬定及說(shuō)明</p><p><b>  硬件電路設(shè)計(jì)</b></p><p><b>  電子元件的選擇</b></p><p><b>  元件參數(shù)計(jì)算確定</b></p><p><b>  電路原理圖設(shè)計(jì)</b></p><p

3、><b>  控制軟件流程圖</b></p><p><b>  控制軟件源程序</b></p><p><b>  控制軟件說(shuō)明書(shū)</b></p><p><b>  設(shè)計(jì)小結(jié)</b></p><p><b>  參考資料目錄</b

4、></p><p><b>  二、課程設(shè)計(jì)任務(wù)書(shū)</b></p><p><b>  課程設(shè)計(jì)的目的</b></p><p>  單片微機(jī)應(yīng)用課程設(shè)計(jì)是單片微機(jī)課程的綜合性與實(shí)踐性教學(xué)環(huán)節(jié),課程設(shè)計(jì)的目的就是:(1)綜合運(yùn)用單片微機(jī)原理課程和單片機(jī)接口技術(shù)課程的知識(shí),分析和解決實(shí)際應(yīng)用中的問(wèn)題進(jìn)一步鞏固、加深和拓寬

5、所學(xué)的知識(shí)。</p><p> ?。?)通過(guò)設(shè)計(jì)實(shí)踐,逐步樹(shù)立正確的設(shè)計(jì)思想,熟悉掌握單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的一般規(guī)律,培養(yǎng)分析問(wèn)題和解決問(wèn)題的能力。</p><p> ?。?)通過(guò)邏輯分析、方案設(shè)計(jì)、硬件電路連接、畫(huà)程序流程圖,匯編語(yǔ)言編程,上機(jī)調(diào)試,進(jìn)行全面的單片微機(jī)應(yīng)用基本技能的訓(xùn)練。</p><p><b>  2、課程設(shè)計(jì)的內(nèi)容</b>&

6、lt;/p><p>  課程設(shè)計(jì)的題目一般是在實(shí)驗(yàn)電路板上設(shè)計(jì)制作電子鐘或控制簡(jiǎn)易二坐標(biāo)數(shù)控實(shí)驗(yàn)臺(tái)。</p><p>  課程設(shè)計(jì)的內(nèi)容包括:裝置的方案設(shè)計(jì),電路原理圖設(shè)計(jì),實(shí)際電路的連接,畫(huà)軟件流程圖,編寫(xiě)程序,調(diào)試運(yùn)行,編寫(xiě)課程設(shè)計(jì)說(shuō)明書(shū)。</p><p>  課程設(shè)計(jì)中要求完成以下工作:</p><p> ?。?)一張完整的電路原理圖,包括

7、電路上有關(guān)元件的參數(shù)設(shè)計(jì);</p><p> ?。?)整個(gè)控制軟件流程圖;</p><p>  (3)設(shè)計(jì)計(jì)算和操作控制課程設(shè)計(jì)說(shuō)明書(shū)。</p><p><b>  3、課程設(shè)計(jì)的步驟</b></p><p>  (1)課程設(shè)計(jì)的一般進(jìn)程和步驟見(jiàn)下表:</p><p> ?。?)片內(nèi)RAM單元分配

8、</p><p>  控制程序中需要使用一些數(shù)據(jù)存儲(chǔ)器單元存放有用的數(shù)據(jù),根據(jù)控制程序中要使用的存儲(chǔ)器單元數(shù)量,需將單片機(jī)中片內(nèi)RAM單元進(jìn)行分配,重新定義堆棧指針的值,避免堆棧區(qū)和程序用的數(shù)據(jù)存儲(chǔ)區(qū)之間沖突。</p><p>  在控制軟件中需要使用的數(shù)據(jù)存儲(chǔ)單元有:</p><p>  二、設(shè)計(jì)方案的擬定及說(shuō)明</p><p>  1.方

9、案的擬定及說(shuō)明</p><p><b>  程序初始化功能為:</b></p><p>  顯示緩沖區(qū)單元、標(biāo)志單元清零,時(shí)、分、秒單元和計(jì)數(shù)延時(shí)單元置初值,定時(shí)器初始化,確定定時(shí)時(shí)間常數(shù),開(kāi)中斷,如果用8255,則對(duì)8255處始化等。</p><p>  時(shí)、分、秒顯示功能為:</p><p>  顯示程序,將顯示緩沖

10、區(qū)中的內(nèi)容送數(shù)碼管進(jìn)行顯示。</p><p>  時(shí)、分、秒計(jì)時(shí)單元內(nèi)容送顯示緩沖區(qū)功能為:</p><p>  將時(shí)、分、秒三個(gè)計(jì)時(shí)單元的內(nèi)容分別拆開(kāi)后送六個(gè)顯示緩沖區(qū)單元。</p><p>  閃爍指示當(dāng)前正在調(diào)整的單元功能:</p><p>  在時(shí)間調(diào)整狀態(tài)下有效。0.5秒閃爍標(biāo)志以0.5秒的間隔在“0”和“1”之間變化,當(dāng)0.5秒閃

11、爍標(biāo)志為“1”時(shí),由時(shí)鐘調(diào)整時(shí)狀態(tài)指針指示的顯示單元置成顯示“空”碼,當(dāng)0.5秒閃爍標(biāo)志為“0”時(shí),保持原顯示單元的內(nèi)容,這樣在顯示程序的控制下,數(shù)碼管會(huì)在閃爍顯示。</p><p>  鍵盤(pán)掃描處理功能為:</p><p>  沒(méi)有按鍵按下就退出,有按鍵按下,進(jìn)行鍵盤(pán)處理:如時(shí)鐘調(diào)整狀態(tài)鍵按下時(shí)的處理和時(shí)鐘調(diào)整鍵按下時(shí)的處理。</p><p><b> 

12、 中斷程序功能為:</b></p><p>  定時(shí)時(shí)間到,時(shí)、分、秒單元分別計(jì)數(shù)(時(shí)間到1秒,秒單元計(jì)數(shù),當(dāng)秒單元計(jì)數(shù)值到60秒后,分單元計(jì)數(shù)同時(shí)秒單元清0,當(dāng)分單元。計(jì)數(shù)值到60分后,時(shí)單元計(jì)數(shù)同時(shí)分單元清0)。</p><p><b>  硬件電路設(shè)計(jì)</b></p><p><b>  1.電子元件的選擇</

13、b></p><p>  AT89C51、8155</p><p><b>  元件參數(shù)的計(jì)算確定</b></p><p>  8155口地址的分配</p><p>  根據(jù)題目要求:PB口地址為F702H,則8155片選信號(hào)線應(yīng)接單片機(jī)P2.3口,IO/M口可接P2.4口,由此分配8155命令狀態(tài)字口地址為F70

14、0H,8155 PB口口地址為EF02H。</p><p>  定時(shí)器定時(shí)中斷初始化計(jì)算</p><p>  時(shí)鐘要實(shí)現(xiàn)1S計(jì)時(shí),則可將定時(shí)器設(shè)定定時(shí)時(shí)間為50ms,20次中斷后即可實(shí)現(xiàn)一秒定時(shí)。選擇定時(shí)器T0,工作方式為方式一(16位定時(shí)器),則定時(shí)初值為X=216-(50*1000)=15526=3CB0H,則定時(shí)器TH0送初值為03C,TL0送初值為B0H.</p>&

15、lt;p><b>  3.電路原理圖</b></p><p><b>  單片機(jī)的功能模塊</b></p><p>  MCS-51的晶振電路圖</p><p>  AT89C51與8155的接口連接</p><p>  鍵盤(pán)與AT89C51的連接電路圖</p><p>

16、;<b>  控制軟件流程圖</b></p><p><b>  1.顯示程序流程圖</b></p><p><b>  中斷程序流程圖</b></p><p><b>  定時(shí)中斷</b></p><p><b>  定時(shí)器設(shè)初值</b&

17、gt;</p><p><b>  是否有鍵按下</b></p><p>  秒單元計(jì)數(shù)+1 秒單元清0,分單元進(jìn)1</p><p>  是否大于60 Y</p><p><b>  是否有鍵按下</b></p><p>  分單元計(jì)數(shù)+

18、1 分單元清0,時(shí)單元進(jìn)1</p><p>  是否大于60 Y</p><p><b>  是否有鍵按下</b></p><p>  時(shí)單元計(jì)數(shù)+1 時(shí)單元清0</p><p><b>  Y</b></p>

19、<p>  是否大于24 </p><p><b>  RETI</b></p><p><b>  控制軟件源程序</b></p><p><b>  源程序清單:</b></p><p>  ORG 0000H ;程序開(kāi)始</p>

20、<p>  LJMP MAIN ;</p><p>  ORG 000BH ;定時(shí)器中斷地址設(shè)置</p><p>  LJMP STOP_SRV ;</p><p><b>  ORG 001BH</b></p><p>  LJMP INTT1</p><p>

21、;<b>  MAIN:</b></p><p>  ;----------------------------初始化程序------</p><p>  DISM0 EQU 30H</p><p>  DISM1 EQU 31H</p><p>  DISM2 EQU 32H</p><p> 

22、 DISM3 EQU 33H</p><p>  DISM4 EQU 34H</p><p>  DISM5 EQU 35H ;顯示緩存區(qū)</p><p>  HH EQU 36H ;時(shí)</p><p>  MM EQU 37H ;分</p><p>  SS EQU 38H ;秒</p>

23、<p>  HSEC EQU 39H ;0.5秒計(jì)數(shù)延時(shí)閃爍</p><p>  SEC EQU 40H ;1秒計(jì)數(shù)延時(shí)</p><p>  STATUS EQU 42H</p><p>  FLAG EQU 20H;</p><p>  K1 EQU P1.0 ;按鍵1</p><p> 

24、 K2 EQU P1.1 ;按鍵2</p><p>  ACALL INIT ;初始變化量</p><p>  ACALL INIT_T0;設(shè)置定時(shí)器</p><p><b>  ;無(wú)窮循環(huán)</b></p><p>  LOOP: </p><p>  ACALL SHOW&l

25、t;/p><p>  ACALL DIR </p><p>  ACALL KEYSCAN</p><p><b>  JMP LOOP;</b></p><p>  ;-----------------------------</p><p>  INIT_T0: ;使用定時(shí)器T0模式1計(jì)時(shí)&

26、lt;/p><p>  MOV TMOD,#11H;定時(shí)器T0,工作模式1</p><p>  MOV TH0,#3CH ;定時(shí)50MS</p><p>  MOV TL0,#0B0H</p><p>  MOV TH1,#3CH ;定時(shí)50MS</p><p>  MOV TL1,#0B0H</p>

27、<p>  SETB EA;總中斷開(kāi)放</p><p>  SETB ET0;允許T0中斷</p><p>  SETB TR0 ;T0開(kāi)始計(jì)時(shí)</p><p><b>  RET</b></p><p>  STOP_SRV: ;中斷服務(wù)程序</p><p>  PUSH

28、ACC;累加器入棧保護(hù)</p><p>  PUSH PSW;狀態(tài)字入棧保護(hù)</p><p>  MOV TH0,#3CH</p><p>  MOV TL0,#0B0H</p><p>  INC SEC;1秒計(jì)數(shù)器加一</p><p>  MOV A,SEC;</p><p>  CJNE

29、A,#14H,NEXT;</p><p>  INC SS;秒計(jì)數(shù)器加一</p><p>  MOV SEC,#0;1秒計(jì)數(shù)器清零</p><p><b>  MOV A,SS</b></p><p>  CJNE A,#60,NEXT;</p><p>  INC MM;分計(jì)數(shù)器加一</p

30、><p>  MOV SS,#0;SS清零</p><p><b>  MOV A,MM;</b></p><p>  CJNE A,#60,NEXT;</p><p>  INC HH;小時(shí)計(jì)數(shù)器加一</p><p>  MOV MM,#0;MM清零</p><p><

31、b>  MOV A,HH;</b></p><p>  CJNE A,#24,NEXT;</p><p><b>  MOV SS,#0</b></p><p><b>  MOV MM,#0</b></p><p><b>  MOV HH,#0</b>&l

32、t;/p><p><b>  NEXT:</b></p><p>  POP PSW ;恢復(fù)狀態(tài)字(出棧)</p><p>  POP ACC ;恢復(fù)累加器</p><p>  RETI;---------------------------------------</p><p><b>

33、  SHOW: ;</b></p><p><b>  ;轉(zhuǎn)換秒顯示數(shù)據(jù)</b></p><p><b>  MOV A,SS</b></p><p><b>  MOV B,#10</b></p><p><b>  DIV AB</b>&

34、lt;/p><p>  MOV DISM1,A</p><p><b>  MOV A,B</b></p><p>  MOV DISM0,A</p><p><b>  ;轉(zhuǎn)換分?jǐn)?shù)據(jù)</b></p><p><b>  MOV A,MM</b></p

35、><p><b>  MOV B,#10</b></p><p><b>  DIV AB</b></p><p>  MOV DISM3,A</p><p><b>  MOV A,B</b></p><p>  MOV DISM2,A</p>

36、<p><b>  ;轉(zhuǎn)換小時(shí)數(shù)據(jù)</b></p><p><b>  MOV A,HH</b></p><p><b>  MOV B,#10</b></p><p><b>  DIV AB</b></p><p>  MOV DISM5

37、,A</p><p><b>  MOV A,B</b></p><p>  MOV DISM4,A</p><p><b>  RET</b></p><p><b>  DIR:</b></p><p>  MOV A,STATUS</p>

38、;<p><b>  JNZ DIR00</b></p><p><b>  DIP:</b></p><p>  MOV A,#03H;</p><p>  MOV DPTR,#0F700H</p><p>  MOVX @DPTR,A</p><p>  M

39、OV R0,#30H</p><p>  MOV R5,#0FEH</p><p><b>  MOV R4,#6</b></p><p><b>  DIR0:</b></p><p><b>  MOV A,@R0</b></p><p>  MOV

40、 DPTR,#TAB</p><p>  MOVC A,@A+DPTR</p><p>  MOV DPTR,#0F701H</p><p>  MOVX @DPTR,A</p><p><b>  MOV A,R5</b></p><p>  MOV DPTR,#0F702H</p>

41、<p>  MOVX @DPTR,A</p><p><b>  RL A</b></p><p><b>  MOV R5,A</b></p><p>  LCALL DL1MS</p><p><b>  INC R0</b></p><p

42、>  DJNZ R4,DIR0</p><p><b>  DIROUT:</b></p><p><b>  RET</b></p><p><b>  DIR00:</b></p><p>  JB 03H,DIKK</p><p><b

43、>  AJMP DIP</b></p><p><b>  DIKK:</b></p><p>  JNB 00H,DIKKI</p><p>  MOV A,#03H </p><p>  MOV DPTR,#0F700H</p><p>  MOVX @DPTR,A<

44、;/p><p>  MOV R0,#30H</p><p>  MOV R5,#0FEH</p><p><b>  MOV R4,#2</b></p><p><b>  DIRR0:</b></p><p>  MOV A,#00H</p><p> 

45、 MOV DPTR,#0F701H</p><p>  MOVX @DPTR,A</p><p><b>  MOV A,R5</b></p><p>  MOV DPTR,#0F702H</p><p>  MOVX @DPTR,A</p><p><b>  RL A</b&g

46、t;</p><p><b>  MOV R5,A</b></p><p><b>  INC R0</b></p><p>  DJNZ R4,DIRR0</p><p>  MOV R0,#32H</p><p>  MOV R5,#0FBH</p><

47、;p><b>  MOV R4,#4</b></p><p><b>  DIRR1:</b></p><p><b>  MOV A,@R0</b></p><p>  MOV DPTR,#TAB</p><p>  MOVC A,@A+DPTR</p>

48、<p>  MOV DPTR,#0F701H</p><p>  MOVX @DPTR,A</p><p><b>  MOV A,R5</b></p><p>  MOV DPTR,#0F702H</p><p>  MOVX @DPTR,A</p><p><b>  RL

49、 A</b></p><p><b>  MOV R5,A</b></p><p>  LCALL DL1MS</p><p><b>  INC R0</b></p><p>  DJNZ R4,DIRR1</p><p>  AJMP DIROUT

50、 </p><p><b>  DIKKI:</b></p><p>  AJMP DIP </p><p><b>  DL1MS:</b></p><p>  MOV R7,#6;</p><p>  DEL1:MOV R6,#250;</p>

51、<p><b>  DJNZ R6,$</b></p><p>  DJNZ R7,DEL1;</p><p><b>  RET</b></p><p>  TAB: DB 3FH,06H,5BH,4FH,66H,6DH</p><p>  DB 7DH,07H,7FH,6FH,77

52、H,7CH</p><p>  DB 39H,5EH,7BH,71H,00H,40H </p><p>  ;---------------其他子程序---------------</p><p><b>  ;計(jì)時(shí)單元清零</b></p><p><b>  INIT:</b></p>

53、<p>  MOV HH,#23</p><p>  MOV MM,#59</p><p>  MOV SS,#40</p><p>  MOV SEC,#00H</p><p>  MOV FLAG,#00H</p><p>  MOV STATUS,#00H</p><p> 

54、 MOV HSEC,#00H</p><p><b>  RET</b></p><p>  ;;--------------------------實(shí)現(xiàn)調(diào)整時(shí)間子程序----------------</p><p>  ;按鍵處理程序(設(shè)置時(shí)間)</p><p><b>  KEYSCAN:</b>

55、;</p><p>  JNB K1,KEYSCAN0</p><p>  JNB K2,KEYSCAN1</p><p><b>  KEYOUT:</b></p><p>  ACALL TIAOSHI1</p><p><b>  RET</b></p>

56、<p><b>  KEYSCAN0:</b></p><p>  LCALL DL20MS</p><p>  JB K1,KEYOUT;</p><p><b>  WAIT0:</b></p><p>  ACALL SHOW</p><p><b>

57、;  ACALL DIR</b></p><p>  JNB K1,WAIT0</p><p>  INC STATUS</p><p>  MOV A,STATUS</p><p><b>  CLR ET0</b></p><p><b>  CLR TR0</b&

58、gt;</p><p>  SETB ET1 ;允許T1中斷</p><p>  SETB TR1 ;開(kāi)啟定時(shí)器T1</p><p>  CJNE A,#04H,KEYOUT</p><p>  MOV STATUS,#00</p><p><b>  SETB ET

59、0</b></p><p><b>  SETB TR0</b></p><p><b>  CLR ET1</b></p><p><b>  CLR TR1</b></p><p><b>  CLR 00H</b></p>

60、<p><b>  CLR 01H</b></p><p><b>  CLR 02H</b></p><p><b>  CLR 03H</b></p><p>  SJMP KEYOUT</p><p>  KEYSCAN1: </p><p&

61、gt;  LCALL DL20MS</p><p>  JB K2,KEYOUT</p><p><b>  WAIT1:</b></p><p>  ACALL SHOW</p><p><b>  ACALL DIR</b></p><p>  JNB K2,WAIT1&

62、lt;/p><p>  MOV A,STATUS</p><p><b>  JZ KEYOUT</b></p><p>  CJNE A,#01H,KSCAN11</p><p><b>  INC SS</b></p><p><b>  MOV A,SS</

63、b></p><p>  CJNE A,#3CH,KEYOUT</p><p>  MOV SS,#00</p><p>  SJMP KEYOUT</p><p><b>  KSCAN11:</b></p><p>  CJNE A,#02H,KSCAN21</p><

64、;p><b>  INC MM </b></p><p><b>  MOV A,MM</b></p><p>  CJNE A,#3CH,KEYOUT</p><p>  MOV MM,#00</p><p>  SJMP KEYOUT</p><p><b&g

65、t;  KSCAN21:</b></p><p><b>  INC HH</b></p><p><b>  MOV A,HH</b></p><p>  CJNE A,#18H,KEYOUT</p><p>  MOV HH,#00</p><p>  SJM

66、P KEYOUT</p><p><b>  TIAOSHI1:</b></p><p>  MOV A,STATUS</p><p>  CJNE A,#01H,TIAOSHI2</p><p>  SETB FLAG.0</p><p>  LJMP INTT1</p><

67、p><b>  JMP RT00</b></p><p><b>  TIAOSHI2:</b></p><p>  CJNE A,#02H,TIAOSHI3</p><p>  SETB FLAG.1</p><p>  CLR FLAG.0</p><p>  LJ

68、MP INTT1</p><p><b>  JMP RT00</b></p><p><b>  TIAOSHI3:</b></p><p>  CJNE A,#02H,TIAOSHI4</p><p>  SETB FLAG.2</p><p>  CLR FLAG.1&

69、lt;/p><p>  LJMP INTT1</p><p><b>  JMP RT00</b></p><p><b>  TIAOSHI4:</b></p><p>  CJNE A,#03H,TIAOSHI</p><p><b>  SETB 02H</

70、b></p><p><b>  CLR 01H</b></p><p>  LJMP INTT1</p><p><b>  JMP RT00</b></p><p><b>  TIAOSHI:</b></p><p><b>  C

71、LR 00H</b></p><p><b>  CLR 01H</b></p><p><b>  CLR 02H</b></p><p><b>  CLR 03H</b></p><p><b>  RT00:</b></p>

72、<p><b>  RET</b></p><p><b>  ;防抖動(dòng)延時(shí)</b></p><p><b>  DL20MS:</b></p><p>  ACALL SHOW</p><p><b>  ACALL DIR</b><

73、/p><p>  ACALL SHOW</p><p><b>  ACALL DIR</b></p><p>  ACALL SHOW</p><p><b>  ACALL DIR</b></p><p><b>  RET</b></p>

74、<p>  ;***********閃動(dòng)調(diào)時(shí) 程 序***********</p><p>  ;T1中斷服務(wù)程序,用作時(shí)間調(diào)整時(shí)調(diào)整單元閃爍指示,定時(shí)50ms</p><p>  INTT1: </p><p>  MOV TL1, #0B0H ;裝定時(shí)器T1定時(shí)初值</p><p>  M

75、OV TH1, #3CH </p><p><b>  DEC HSEC</b></p><p>  MOV A,HSEC</p><p>  JNZ INTT1OUT</p><p><b>  CPL 03H </b></p><p>  MOV

76、 HSEC,#0AH</p><p><b>  INTT1OUT:</b></p><p><b>  RETI</b></p><p><b>  END</b></p><p><b>  控制軟件操作</b></p><p>

77、;  1、從菜單中選擇 Project 的下拉菜單中 New Project ,新建工程項(xiàng)目,見(jiàn)圖1</p><p><b>  圖1</b></p><p>  2、確定后出現(xiàn)的對(duì)話(huà)框,輸入新建工程的名字,如example,見(jiàn)圖2</p><p>  (請(qǐng)每個(gè)同學(xué)在D盤(pán)上建立自己的文件夾,將建立的項(xiàng)目保持在自己的文件夾內(nèi))</

78、p><p><b>  圖2</b></p><p>  3、在彈出的對(duì)話(huà)框中選擇CPU 廠商,選中 Atmel 公司,雙擊鼠標(biāo)確認(rèn),見(jiàn)圖3</p><p><b>  圖3</b></p><p>  4、雙擊后在彈出的對(duì)話(huà)框中選擇CPU類(lèi)型,選中AT89C51后確認(rèn),見(jiàn)圖4</p>

79、<p><b>  圖4</b></p><p>  5、選擇否(N),不添加</p><p> ?。ㄈ⒃O(shè)置工程文件參數(shù)</p><p>  在菜單欄中選擇 Project 項(xiàng)的下拉菜單 Options for Target ‘Target1’ 項(xiàng),或單擊工具欄中</p><p><b>  圖

80、6</b></p><p>  2、在出現(xiàn)的對(duì)話(huà)選項(xiàng)卡中選擇 Target 項(xiàng),在中輸入單片機(jī)工作的頻率</p><p><b>  圖7</b></p><p>  3、在選項(xiàng)卡中選擇 Debug 調(diào)試項(xiàng),見(jiàn)圖8</p><p><b>  圖8</b></p><

81、p><b>  (1)  </b></p><p><b>  圖8</b></p><p>  選中此項(xiàng)keil為純軟件仿真,不需要連接仿真器就可以仿真,軟件實(shí)驗(yàn)就可以選擇這一項(xiàng)(實(shí)驗(yàn)一、實(shí)驗(yàn)二為純軟件仿真)</p><p><b>  (2) </b></p><p&

82、gt;<b>  圖9 </b></p><p>  選中此項(xiàng)keil為帶有Monitor-51目標(biāo)仿真器的仿真,必須要有硬件keil-c51仿真器的支持,否則不能仿真,在我們做硬件實(shí)驗(yàn)時(shí)選擇這一項(xiàng)</p><p> ?。▽?shí)驗(yàn)三、實(shí)驗(yàn)四為硬件仿真,此項(xiàng))</p><p> ?。?)單擊 圖9 后面的 設(shè)置,出現(xiàn)圖10對(duì)話(huà)框,設(shè)置Port

83、串口:一般為COM1,Baudrate 波特率:38400bit/s, 最后 確認(rèn)</p><p><b>  圖10</b></p><p>  (4)在選項(xiàng)卡中按確定</p><p> ?。?)設(shè)置完成,就可以添加事先編好的 *.asm 文件程序編譯運(yùn)行</p><p>  (四)、編寫(xiě)新程序事例</p&

84、gt;<p>  圖11 圖12</p><p>  1、在菜單欄File (文件)選項(xiàng)的下拉菜單中選擇 New… (新建文件),見(jiàn) 圖11 ,選擇后出現(xiàn) 圖12 文本編輯框,輸入?yún)R編程序</p><p><b>  圖13</b></p><p>  2、

85、在輸入程序標(biāo)點(diǎn)符號(hào)時(shí)注意,應(yīng)在沒(méi)有中文輸入法狀態(tài),如圖13</p><p><b>  輸入程序:</b></p><p><b>  ORG 0000H</b></p><p>  AJMP MAIN</p><p>  ORG 0030H</p><p>  M

86、AIN: MOV R0,#20H;(R0)= </p><p>  MOV R2,#0FH ;(R2)= </p><p>  MOV A,#00H</p><p>  A1: MOV @R0,A; <

87、;/p><p>  INC R0; (R0)= </p><p>  INC A;(A)= </p><p>  DJNZ R2,A1</p><p>  MOV R0,#20H</p><p>  MOV DPTR,#7

88、000H</p><p>  MOV R2,#0FH</p><p>  A2: MOV A,@R0</p><p>  MOVX @DPTR,A</p><p><b>  INC R0</b></p><p>  INC DPTR</p>&l

89、t;p>  DJNZ R2,A2</p><p>  MOV R0,#0A0H</p><p>  MOV DPTR,#7000H</p><p>  MOV R2,#0FH</p><p>  A3: MOVX A,@DPTR</p><p>  MOVX @R0,A<

90、;/p><p><b>  INC R0</b></p><p>  INC DPTR</p><p>  DJNZ R2,A3</p><p>  DO: LJMP DO</p><p><b>  END</b></p><p&

91、gt;<b>  3、保存文件</b></p><p><b>  圖14</b></p><p>  4保存文件以文件擴(kuò)展名*.ASM保存,如圖15</p><p> ?。ㄕ?qǐng)每個(gè)同學(xué)把程序保存在自己的文件夾)</p><p><b>  圖15</b></p>

92、<p>  5、運(yùn)行程序,要把文件程序添加到工程里去執(zhí)行,操作如圖16</p><p><b>  圖16</b></p><p>  6、添加程序?qū)υ?huà)框操作圖17所示(如果已編好程序存在自己的U盤(pán)中,可以先復(fù)制到D盤(pán)上,直接添加即可)</p><p><b>  圖17</b></p><p

93、>  7、添加好程序,在庫(kù)里把文件打開(kāi),操作見(jiàn)圖18</p><p><b>  圖18</b></p><p>  8、編譯程序,也可以在工具欄中點(diǎn)擊Project ,操做如圖19后圖20</p><p><b>  圖19</b></p><p><b>  圖20</b&

94、gt;</p><p>  在編譯過(guò)程中,如果有錯(cuò)可以在信息窗口中顯示出來(lái),雙擊錯(cuò)誤信息,可以在源程序中定位所在行。糾錯(cuò)后,再次編譯直到?jīng)]有錯(cuò)誤。</p><p><b>  五)、調(diào)試程序</b></p><p>  編譯好以后,要切換編程和調(diào)試模式,操作見(jiàn)圖21,或點(diǎn)擊工具欄上的</p><p><b> 

95、 圖21</b></p><p><b>  1、單步調(diào)試</b></p><p>  跟蹤就,若有子程序調(diào)用,也會(huì)跟蹤到子程序中去。</p><p>  單步調(diào)試程序,一條指令一條指令地執(zhí)行程序可以全速執(zhí)行子程序(把子程序作為一步執(zhí)行完),而不會(huì)跟蹤到子程序中。</p><p>  在單步調(diào)試中,可以查看內(nèi)

96、存地址及外部地址單元內(nèi)容</p><p>  1)、點(diǎn)擊菜單欄選擇View (瀏覽) 的下拉菜單 Memory Windows (存儲(chǔ)器窗口)</p><p><b>  圖26</b></p><p>  2、在Keil軟件的右下方出現(xiàn)的對(duì)話(huà)框,如圖27所示</p><p><b>  圖27</b&g

97、t;</p><p>  3、在對(duì)話(huà)框中輸入你查看的地址單元,如圖27、圖28所示,例如要查看30H 內(nèi)存地址單元的內(nèi)容,就輸入D:30H 按ENTER(回車(chē)鍵),在底下就顯示30H 的內(nèi)容(第一個(gè)為30H,后面一個(gè)為31H,一個(gè)個(gè)按順序排);如果要查看外部數(shù)據(jù)存儲(chǔ)器的8000H 的內(nèi)容就輸入X:8000H 地址后按回車(chē),如圖29所示</p><p><b>  圖28</

98、b></p><p><b>  圖29</b></p><p>  單步執(zhí)行下程序,至 DJNZ R2,A1行。觀察并記錄指令運(yùn)行結(jié)果</p><p>  2、利用“執(zhí)行到光標(biāo)處”功能進(jìn)行調(diào)試</p><p>  將光標(biāo)移到想要暫停的地方,MOV R0,#20H所在行,選擇 “執(zhí)行到光標(biāo)處”功能,程序

99、快速執(zhí)行到光標(biāo)所在行。</p><p>  觀察運(yùn)行情況,并記錄,此時(shí)</p><p>  3、利用斷點(diǎn)進(jìn)行調(diào)試</p><p>  設(shè)置斷點(diǎn):將鼠標(biāo)移到源程序窗口相應(yīng)程序行,雙擊左鍵設(shè)置斷點(diǎn),或擊右鍵選“設(shè)置/取消斷點(diǎn)”功能設(shè)置斷點(diǎn)。斷點(diǎn)設(shè)置好后,此行出現(xiàn)紅色方形標(biāo)記。用全速執(zhí)行的功能,當(dāng)程序執(zhí)行到斷點(diǎn)時(shí),會(huì)暫停下來(lái),可以觀察程序中各變量的值,判斷程序是否正確。&

100、lt;/p><p>  取消斷點(diǎn):將鼠標(biāo)移到源程序窗口相應(yīng)斷點(diǎn)程序行,雙擊左鍵取消斷點(diǎn)?;驌粲益I選“設(shè)置/取消斷點(diǎn)”功能取消斷點(diǎn)。斷點(diǎn)取消后,此行的紅色方形標(biāo)記消失。</p><p>  注意:設(shè)置的斷點(diǎn)如果不取消,會(huì)一直存在。</p><p>  在MOV R0,#0A0H行設(shè)置斷點(diǎn),全速執(zhí)行,暫停后觀察并記錄以下單元內(nèi)容</p><p>

101、;<b>  4、運(yùn)行,見(jiàn)圖22</b></p><p><b>  圖22</b></p><p>  11、軟件仿真時(shí)要停止程序可以點(diǎn)擊工具欄上的快捷鍵Halt(停止)</p><p>  硬件仿真時(shí)停止程序不要點(diǎn)擊工具欄上的快捷鍵Halt(停止),見(jiàn)圖23。停止程序要按仿真器上的復(fù)位按鈕,見(jiàn)仿真器示意圖24</

102、p><p><b>  圖23</b></p><p><b>  圖24</b></p><p>  停止程序以后,要進(jìn)行模式切換,見(jiàn)圖21,這時(shí)就可以對(duì)程序進(jìn)行修改,編譯運(yùn)行。如果要想運(yùn)行其他程序,就要把原來(lái)的程序從工程庫(kù)里移除,見(jiàn)圖25,然后再添加</p><p><b>  圖2<

103、;/b></p><p>  綜合運(yùn)用各種調(diào)試方法對(duì)源程序進(jìn)行調(diào)試。</p><p><b>  七、設(shè)計(jì)小結(jié)</b></p><p>  本來(lái)兩周的單片機(jī)課程設(shè)計(jì)實(shí)習(xí),因?yàn)橛卸嚅T(mén)考試壓縮為一周。這個(gè)學(xué)期由于大部分時(shí)間都在忙著考研,所以也沒(méi)有怎么看《單片微機(jī)原理系統(tǒng)設(shè)計(jì)與應(yīng)用》這本書(shū),雖然選了《單片機(jī)原理與接口》這門(mén)課程,但學(xué)這門(mén)課程的過(guò)

104、程中,心里想著考研,雖每節(jié)課都去聽(tīng)了,卻沒(méi)有花許多時(shí)間去思考這門(mén)課程,很多關(guān)于單片機(jī)接口的知識(shí)都不甚理解。</p><p>  考完研的第一天,我們開(kāi)始了課程設(shè)計(jì)的動(dòng)員會(huì),指導(dǎo)老師薛老師給我們每個(gè)人都分配了任務(wù)。我的任務(wù)是用一片8155的 PA口(段控)和PB口(位控)作輸出口控制六個(gè)數(shù)碼管顯示(二個(gè)數(shù)碼管顯示“時(shí)”、二個(gè)數(shù)碼管顯示“分”、二個(gè)數(shù)碼管顯示“秒”), 用89C51的P1口作輸入口控制按鍵輸入,做一臺(tái)

105、電子鐘。要求:8155的PB口地址:F702H。當(dāng)時(shí)也沒(méi)多在意,因?yàn)檫@一周我有四門(mén)考試,必須先過(guò)了這四關(guān)。周六考試結(jié)束后,就開(kāi)始思考,仔細(xì)閱讀了課程設(shè)計(jì)說(shuō)明書(shū),才發(fā)現(xiàn)這次課程設(shè)計(jì)的任務(wù)不輕,主要是自己的匯編語(yǔ)言差不多忘完了,必須重新把教科書(shū)看一片,對(duì)程序和單片機(jī)要有足夠的理解,才能完成用單片機(jī)實(shí)現(xiàn)電子鐘的任務(wù)。</p><p>  于是,我花了兩天時(shí)間看了一下教科書(shū)上重要的知識(shí),并且請(qǐng)教了那些比較熟練單片機(jī)的同學(xué)

106、,也在網(wǎng)上和讀書(shū)館搜集有關(guān)的資料。之后開(kāi)始了按照設(shè)計(jì)指導(dǎo)書(shū)的流程開(kāi)始編寫(xiě)自己的電子鐘程序。這幾天真的特辛苦,每天早上九點(diǎn)之前到實(shí)驗(yàn)室,晚上十點(diǎn)才離開(kāi)實(shí)驗(yàn)室,功夫不負(fù)有心人,我的想法也初步得到實(shí)現(xiàn),雖然還有一些沒(méi)達(dá)到自己的目的,比如說(shuō)我本想在時(shí)鐘調(diào)整狀態(tài)下,正在調(diào)整的“時(shí)”或“分”或“秒”要進(jìn)行閃爍顯示指示。</p><p>  但最后卻只能在秒表調(diào)時(shí)是閃爍。雖然花了一天的時(shí)間修改程序,并調(diào)試,并在實(shí)驗(yàn)室里呆了一天

107、,當(dāng)最后還是沒(méi)能實(shí)現(xiàn)理想的功能。</p><p>  我設(shè)計(jì)的電子鐘能實(shí)現(xiàn)調(diào)試“時(shí)”、“分”、“秒”的功能,顯示的也比較清晰,用兩個(gè)鍵盤(pán)實(shí)現(xiàn)調(diào)時(shí),如果還有時(shí)間我相信自己能實(shí)現(xiàn)自己所想的功能。當(dāng)然這次試驗(yàn)讓我學(xué)會(huì)了很多知識(shí),任何只是都需要運(yùn)用到實(shí)踐才能成為真正的知識(shí),也只有實(shí)踐才能讓我學(xué)會(huì)更多知識(shí)。這次課程設(shè)計(jì)是我們大學(xué)里的最后一次課程設(shè)計(jì),真正說(shuō)來(lái)雖然只有短短一周時(shí)間,但我們從中體會(huì)很多,其中重要的是,遇到困難不

108、僅要自己學(xué)會(huì)獨(dú)立思考,也需要同學(xué)和老師的幫助。另一方面也體會(huì)到研究人員的辛苦,需要耐心和毅力去實(shí)現(xiàn)自己的想法,面對(duì)困難不應(yīng)退縮,而應(yīng)勇于應(yīng)對(duì)。</p><p>  總之,這次課程設(shè)計(jì)獲益匪淺,雖然時(shí)間安排在考研和末考完之后,但卻更顯其對(duì)我們今后走向崗位或進(jìn)入研究生學(xué)習(xí)的特殊意義,不管怎么樣,這次課程設(shè)計(jì)鍛煉了我的自學(xué)能力和實(shí)踐能力。</p><p><b>  八、參考文獻(xiàn)目錄&

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論