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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  單片機(jī)課程設(shè)計(jì)</b></p><p>  實(shí) 驗(yàn) 報(bào) 告</p><p>  XX 年 XX 月 XX 日</p><p><b>  一、實(shí)驗(yàn)?zāi)康?lt;/b></p><p>  1.熟練應(yīng)用proteus仿真單片機(jī)基本功能;</p>

2、;<p>  2.了解計(jì)算機(jī)控制蜂鳴器發(fā)聲原理(模擬電子琴);</p><p>  3.增強(qiáng)對(duì)匯編語言的熟悉。</p><p><b>  二、功能說明</b></p><p>  仿真功能:可以成功仿真單片機(jī)小程序;</p><p>  2. 單片機(jī)功能:電子音調(diào)發(fā)生器--撥動(dòng)不同的開關(guān)產(chǎn)生不同的音調(diào)即依

3、次波動(dòng)K0~K7,發(fā)出1,2,3,4,5,6,7,i八個(gè)音調(diào),播放兩首樂曲。</p><p>  三、實(shí)驗(yàn)原理及設(shè)計(jì)思路</p><p> ?。ㄒ唬㏄roteus仿真單片機(jī)</p><p>  在PROTEUS繪制好原理圖后,調(diào)入已編譯好的目標(biāo)代碼文件:*.HEX,可以在PROTEUS的原理圖中看到模擬的實(shí)物運(yùn)行狀態(tài)和過程。</p><p>

4、  PROTEUS不僅可將許多單片機(jī)實(shí)例功能形象化,也可將許多單片機(jī)實(shí)例運(yùn)行過程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)到的效果。</p><p>  它的元器件、連接線路等卻和傳統(tǒng)的單片機(jī)實(shí)驗(yàn)硬件高度對(duì)應(yīng)。這在相當(dāng)程度上替代了傳統(tǒng)的單片機(jī)實(shí)驗(yàn)教學(xué)的功能,例:元器件選擇、電路連接、電路檢測(cè)、電路修改、軟件調(diào)試、運(yùn)行結(jié)果等。</p><p>  使用Pro

5、teus 軟件進(jìn)行單片機(jī)系統(tǒng)仿真設(shè)計(jì),是虛擬仿真技術(shù)和計(jì)算機(jī)多媒體技術(shù)相結(jié)合的綜合運(yùn)用,有利于培養(yǎng)學(xué)生的電路設(shè)計(jì)能力及仿真軟件的操作能力;且對(duì)單片機(jī)的學(xué)習(xí)比單純學(xué)習(xí)書本知識(shí)更容易讓人接受,更容易提高。實(shí)踐證明,在使用 Proteus 進(jìn)行系統(tǒng)仿真開發(fā)成功之后再進(jìn)行實(shí)際制作,能極大提高單片機(jī)系統(tǒng)設(shè)計(jì)效率。</p><p> ?。ǘ╇娮右粽{(diào)發(fā)生器</p><p><b>  1.實(shí)

6、驗(yàn)原理</b></p><p><b> ?。?)音調(diào)與節(jié)拍:</b></p><p>  音調(diào)由不同頻率的方波產(chǎn)生,音調(diào)與頻率的關(guān)系如下表所示。要產(chǎn)生音頻方波,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時(shí)間。利用計(jì)時(shí)器計(jì)時(shí)此半周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出方波的I/O反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì)I/O反相,就可在I/O腳得

7、到此頻率的方波。在ZKS-03實(shí)驗(yàn)儀上,產(chǎn)生方波的I/O腳選用P1.7,通過跳線選擇器JP1將單片機(jī)的P1.7與蜂鳴器的驅(qū)動(dòng)電路相連。這樣P1.7輸出不同頻率的方波,蜂鳴器便會(huì)發(fā)出不同的聲音。</p><p>  音樂的節(jié)拍是由延時(shí)實(shí)現(xiàn)的,如果1拍為0.4秒,1/4拍是0.1秒。只要設(shè)定延時(shí)時(shí)間,就可求得節(jié)拍的時(shí)間。延時(shí)作為基本延時(shí)時(shí)間,節(jié)拍值只能是它的整數(shù)倍。</p><p><b

8、> ?。?)蜂鳴器電路:</b></p><p>  蜂鳴器有交流和直流兩種。直流蜂鳴器驅(qū)動(dòng)簡(jiǎn)單,一旦在引腳上加入直流電源它就會(huì)發(fā)出一定頻率的聲音,此時(shí)聲音的音調(diào)和音量是固定的;而交流蜂鳴器在這方面則顯得較靈活,輸入聲音信號(hào)的頻率和音長(zhǎng)是可控的,因此輸出的聲響將更逼真、更悅耳。本實(shí)驗(yàn)儀有一個(gè)交流蜂鳴器,由于一般I/O口的驅(qū)動(dòng)能力有限,因此不用它直接驅(qū)動(dòng)蜂鳴器,它與P87C52X2的連接方式如下圖

9、所示。Buzzer通過一個(gè)跳線與P1.7相連,P1.7輸出不同頻率的方波信號(hào),蜂鳴器就會(huì)發(fā)出不同的聲音。如果控制輸出信號(hào)的頻率和音長(zhǎng),蜂鳴器則會(huì)發(fā)出悅耳的音樂。</p><p><b>  2.設(shè)計(jì)思路</b></p><p>  可將功能實(shí)現(xiàn)分如下模塊:電源模塊-開關(guān)控制模塊+MCU控制模塊+蜂鳴器發(fā)生模塊--數(shù)碼管顯示模塊</p><p>

10、<b>  四、實(shí)驗(yàn)過程</b></p><p>  (一)Proteus仿真單片機(jī)</p><p>  1.第一個(gè)LED燈亮:</p><p>  程序:#include "reg52.h"</p><p>  sbit led1=P1^0;</p><p>  void d

11、elay()</p><p><b>  {int i,j;</b></p><p>  for(i=0;i<100;i++)</p><p>  for(j=0;j<1000;j++);</p><p><b>  }</b></p><p>  void ma

12、in()</p><p><b>  {while(1)</b></p><p>  {led1=1;delay();led1=0;delay();</p><p><b>  }</b></p><p><b>  }</b></p><p>  實(shí)驗(yàn)

13、現(xiàn)象:第一個(gè)LED燈亮。</p><p><b>  仿真:</b></p><p><b>  流水燈</b></p><p>  程序:#include <reg52.h></p><p>  void delay(void)</p><p>  { in

14、t i;</p><p><b>  int j;</b></p><p>  for(i=0;i<100;i++)</p><p>  for(j=0;j<200;j++);</p><p><b>  }</b></p><p>  void main(voi

15、d)</p><p><b>  {int i;</b></p><p><b>  while(1)</b></p><p>  { P1 = 0xFF;delay();</p><p>  for(i=0;i<8;i++)</p><p>  {P1 = P1

16、<< 1;delay();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  實(shí)驗(yàn)現(xiàn)象:LED 燈從LED1向LED8依次亮,到全部亮后在循環(huán)</p><p

17、><b>  仿真:</b></p><p><b>  按鍵中斷</b></p><p><b>  程序:</b></p><p>  #include<reg52.h></p><p>  sbit s1 = P2^0;</p><p

18、>  sbit s2 = P2^1;</p><p>  sbit s3 = P2^2;</p><p>  sbit s4 = P2^3;</p><p>  sbit en = P2^5;</p><p>  int dispcount = 0;</p><p>  void Delay(int m)<

19、/p><p>  {while(--m);</p><p><b>  }</b></p><p>  void ext_int0() interrupt 0 //中斷服務(wù)程序</p><p>  { EA = 0;</p><p>  Delay(4000);</p><

20、;p>  dispcount++; //每按一次中斷按鍵,計(jì)數(shù)加一</p><p>  if(dispcount==10) </p><p>  dispcount=0;</p><p><b>  EA = 1;</b></p><p><b>  }</b>&l

21、t;/p><p>  void ext_int1() interrupt 2 //中斷服務(wù)程序</p><p>  { EA = 0;</p><p>  Delay(4000);</p><p>  dispcount--; //每按一次中斷按鍵,計(jì)數(shù)減一</p><p>  if(disp

22、count<0) </p><p>  dispcount=9;</p><p><b>  EA = 1;</b></p><p><b>  }</b></p><p>  void display(void) //數(shù)碼管顯示函數(shù)</p><

23、;p>  { s1 = 0;</p><p><b>  s2 = 0;</b></p><p><b>  s3 = 0;</b></p><p><b>  s4 = 0;</b></p><p><b>  en = 1;</b></

24、p><p>  switch(dispcount)</p><p><b>  {</b></p><p><b>  case 0:</b></p><p>  P0 = 0xC0; //display 0 </p><p>  Delay(600

25、00); </p><p><b>  break;</b></p><p><b>  case 1:</b></p><p>  P0 = 0xF9; //display 1</p><p>  Delay(60000);</p><p><

26、;b>  break;</b></p><p><b>  case 2:</b></p><p>  P0 = 0xA4;</p><p>  Delay(60000); //display 2</p><p><b>  break;</b></p>

27、;<p><b>  case 3:</b></p><p>  P0 = 0xB0; //display 3 </p><p>  Delay(60000); </p><p><b>  break;</b></p><p><b>  ca

28、se 4:</b></p><p>  P0 = 0x99; //display 4</p><p><b>  break;</b></p><p><b>  case 5:</b></p><p>  P0 = 0x92; //display

29、5</p><p>  Delay(60000);</p><p><b>  break;</b></p><p><b>  case 6:</b></p><p>  P0 = 0x82; //display 6</p><p>  Delay(600

30、00);</p><p><b>  break;</b></p><p><b>  case 7:</b></p><p>  P0 = 0xF8;//display 7</p><p>  Delay(60000);</p><p><b>  bre

31、ak;</b></p><p><b>  case 8:</b></p><p>  P0 = 0x80; //display 8</p><p>  Delay(60000);</p><p><b>  break;</b></p><p>

32、;<b>  case 9:</b></p><p>  P0 = 0x90; //display 9</p><p>  Delay(60000);</p><p><b>  break;</b></p><p><b>  default:</b><

33、;/p><p>  P0 = 0x88; //display a </p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void main()

34、</p><p>  { TCON=0x05; </p><p><b>  IE=0x85;</b></p><p>  while(1) </p><p>  {display(); //循環(huán)顯示,等待中斷</p><p><b>  }</b></

35、p><p><b>  }</b></p><p><b>  實(shí)驗(yàn)現(xiàn)象:</b></p><p>  數(shù)碼管顯示4個(gè)0,進(jìn)入等待外部中斷狀態(tài):按下S1時(shí),顯示值加一;按下S2時(shí),顯示值減一;</p><p><b>  仿真結(jié)果:</b></p><p>

36、  初始顯示0000,按下開關(guān)一后,數(shù)字加一;按下開關(guān)二,數(shù)字減一;最大值9999.</p><p>  (二)電子音調(diào)發(fā)生器</p><p><b>  1.實(shí)驗(yàn)源程序</b></p><p><b>  ORG 0000H</b></p><p>  KEYPRO:JB P1.2,GO1 ;

37、P1.2口為1時(shí)跳轉(zhuǎn)</p><p>  LJMP GOMUS1 ;P1.2口為0時(shí)判斷P1.4是否也為0,P1.4為0時(shí)長(zhǎng)轉(zhuǎn)移</p><p>  GO0:LJMP KEYP01 ;P1.4口不為0,P1.2口為0時(shí)發(fā)1音</p><p>  GO1:JB P1.4,GO2</p><p>  LJMP GOMUS6</p&g

38、t;<p>  G10:LJMP KEYP02 ;檢查P1.2不為0后,P1.4口為0 發(fā)“2”音</p><p>  GO2:JB P1.5,GO3</p><p>  LJMP GOMUS3 </p><p>  GO21:LJMP KEYP03</p><p>  GO3:JB P1.6,GO4</p>

39、<p>  LJMP GOMUS7 </p><p>  GO31:LJMP KEYP04 </p><p>  GO4:JB P3.2,GO5</p><p>  LJMP GOMUS4 </p><p>  GO41:LJMP KEYP05</p><p>  GO5:JB P3.3,GO6&l

40、t;/p><p>  LJMP GOMUS8 </p><p>  GO51:LJMP KEYP06</p><p>  GO6:JB P3.4,GO8</p><p>  LJMP GOMUS2</p><p>  GO7:LJMP KEYP07 ;p3.4口為0 發(fā)“7”音 </

41、p><p>  GO8:JB P3.5,KEYPRO ;都為1則重新掃描 </p><p>  LJMP GOMUS5 ;跳到再次判定k6 </p><p>  GO9:LJMP KEYP08 ;判定k6不為0,則p3.5口為0 發(fā)“I”音</p><p>  GOMUS1:JB P1.4,GO0

42、 </p><p>  LJMP MUSTART1 ;k0,k1同為0播歌1,k1不為0,返回1.2發(fā)“1”音</p><p>  GOMUS2:JB P3.5,GO7 </p><p>  LJMP MUSTART2 ;k6,k7同為0播歌2,k7不為0,返回3.4發(fā)“7”音</p><p>  GOMUS3:J

43、B P1.6,GO21</p><p>  LJMP MUSTART3</p><p>  GOMUS4:JB P3.3,GO41</p><p>  LJMP MUSTART4 </p><p>  GOMUS5:JB P3.4,GO9 ;k7為0,再檢查k6是否為0 </p><p>  

44、LJMP MUSTART2</p><p>  GOMUS6:JB P1.2,G10</p><p>  LJMP MUSTART1 ;k1為0,再檢查k0是否為0</p><p>  GOMUS7:JB P1.5,GO31</p><p>  LJMP MUSTART3</p><p>  GOMUS8:JB P3

45、.2,GO51</p><p>  LJMP MUSTART4</p><p>  KEYP01:SETB P1.7 ;音調(diào)1的方波發(fā)生</p><p>  MOV R3,#100 ;設(shè)循環(huán)初值,使開關(guān)在0時(shí)播放一段時(shí)間</p><p><b>  MAIN01:</b><

46、/p><p>  MOV TMOD,#01H ;設(shè)置定時(shí)器t0工作方式1</p><p>  MOV TL0,#21H</p><p>  MOV TH0,#0F9H ;音調(diào)1對(duì)應(yīng)初值f921h</p><p>  SETB TR0 ;啟動(dòng)t0工作</p>

47、;<p>  WAIT1:JNB TF0,WAIT1 ;定時(shí)未到,循環(huán)等待</p><p>  CLR TF0 ;定時(shí)到,清tf0</p><p>  CPL P1.7 ;由p1.7輸出,信號(hào)取反</p><p>  DJNZ R3,MAIN01</p

48、><p>  MOV A,#0F9H</p><p>  ACALL SHOW</p><p>  LJMP KEYPRO</p><p>  KEYP02:SETB P1.7 ;音調(diào)2的方波發(fā)生</p><p>  MOV R3,#100</p><p><b

49、>  MAIN02:</b></p><p>  MOV TMOD,#01H</p><p>  MOV TL0,#0E1H</p><p>  MOV TH0,#0F9H</p><p><b>  SETB TR0</b></p><p>  WAIT2:JNB TF0,WA

50、IT2</p><p><b>  CLR TF0</b></p><p><b>  CPL P1.7</b></p><p>  DJNZ R3,MAIN02</p><p>  MOV A,#0A4H</p><p>  ACALL SHOW</p>&l

51、t;p>  LJMP KEYPRO</p><p>  KEYP03:SETB P1.7 ;音調(diào)3的方波發(fā)生</p><p>  MOV R3,#100</p><p><b>  MAIN03:</b></p><p>  MOV TMOD,#01H</p><

52、p>  MOV TL0,#8CH</p><p>  MOV TH0,#0FAH</p><p><b>  SETB TR0</b></p><p>  WAIT3:JNB TF0,WAIT3</p><p><b>  CLR TF0</b></p><p><

53、;b>  CPL P1.7</b></p><p>  DJNZ R3,MAIN03</p><p>  MOV A,#0B0H</p><p>  ACALL SHOW</p><p>  LJMP KEYPRO</p><p>  KEYP04:SETB P1.7

54、 ;音調(diào)4的方波發(fā)生</p><p>  MOV R3,#100</p><p><b>  SETB P1.6</b></p><p><b>  MAIN04:</b></p><p>  MOV TMOD,#01H</p><p>  MOV TL0,#0D8H<

55、/p><p>  MOV TH0,#0FAH</p><p><b>  SETB TR0</b></p><p>  WAIT4:JNB TF0,WAIT4</p><p><b>  CLR TF0</b></p><p><b>  CPL P1.7</b&

56、gt;</p><p>  DJNZ R3,MAIN04</p><p>  MOV A,#99H</p><p>  ACALL SHOW</p><p>  LJMP KEYPRO</p><p>  KEYP05:SETB P1.7 ;音調(diào)5的方波發(fā)生</p>&l

57、t;p>  MOV R3,#100</p><p><b>  MAIN05:</b></p><p>  MOV TMOD,#01H</p><p>  MOV TL0,#68H</p><p>  MOV TH0,#0FBH</p><p><b>  SETB TR0<

58、/b></p><p>  WAIT5:JNB TF0,WAIT5</p><p><b>  CLR TF0</b></p><p><b>  CPL P1.7</b></p><p>  DJNZ R3,MAIN05</p><p>  MOV A,#92H<

59、;/p><p>  ACALL SHOW</p><p>  LJMP KEYPRO</p><p>  KEYP06:SETB P1.7 ;音調(diào)6的方波發(fā)生</p><p>  MOV R3,#100</p><p><b>  MAIN06:</b></p&

60、gt;<p>  MOV TMOD,#01H</p><p>  MOV TL0,#0E9H</p><p>  MOV TH0,#0FBH</p><p><b>  SETB TR0</b></p><p>  WAIT6:JNB TF0,WAIT6</p><p><b&

61、gt;  CLR TF0</b></p><p><b>  CPL P1.7</b></p><p>  DJNZ R3,MAIN06</p><p>  ACALL SHOW</p><p>  MOV A,#82H</p><p>  LJMP KEYPRO</p>

62、<p>  KEYP07:SETB P1.7 ;音調(diào)7的方波發(fā)生</p><p>  MOV R3,#100</p><p><b>  MAIN07:</b></p><p>  MOV TMOD,#01H</p><p>  MOV TL0,#5BH</p>

63、<p>  MOV TH0,#0FCH</p><p><b>  SETB TR0</b></p><p>  WAIT7:JNB TF0,WAIT7</p><p><b>  CLR TF0</b></p><p><b>  CPL P1.7</b><

64、/p><p>  DJNZ R3,MAIN07</p><p>  MOV A,#0F8H</p><p>  ACALL SHOW</p><p>  LJMP KEYPRO</p><p>  KEYP08:SETB P1.7 ;音調(diào)I的方波發(fā)生</p><p>

65、;  MOV R3,#100</p><p><b>  MAIN08:</b></p><p>  MOV TMOD,#01H</p><p>  MOV TL0,#8FH</p><p>  MOV TH0,#0FCH</p><p><b>  SETB TR0</b>

66、</p><p>  WAIT8:JNB TF0,WAIT8</p><p><b>  CLR TF0</b></p><p><b>  CPL P1.7</b></p><p>  DJNZ R3,MAIN08</p><p>  MOV A,#80H</p>

67、;<p>  ACALL SHOW</p><p>  LJMP KEYPRO</p><p>  JIELI:JMP KEYPRO</p><p>  MUSTART1: ;歌曲1的播放程序</p><p>  MOV R0,#00H

68、 ;節(jié)拍表指針置零</p><p>  MOV R1,#00H ;音符表指針置零</p><p>  RTAB:MOV A,R0</p><p>  MOV DPTR,#RYTH</p><p>  MOVC A,@A+DPTR</p><p>  MOV R2,A

69、 ;查表法將一個(gè)節(jié)拍數(shù)據(jù)取出放R2計(jì)數(shù)器中</p><p>  TTAB:MOV A,R1</p><p>  MOV DPTR,#TONE</p><p>  MOVC A,@A+DPTR</p><p>  MOV R3,A ;取出音符表高8位&l

70、t;/p><p>  INC R1 ;指針加1</p><p><b>  MOV A,R1</b></p><p>  MOV DPTR,#TONE</p><p>  MOVC A,@A+DPTR</p><p>  MOV R4,A

71、 ;取出低8位</p><p>  SETB P1.7 ;輸出相應(yīng)音調(diào)的方波</p><p>  LOOP:MOV R5,#3BH</p><p>  MAIN:MOV TMOD,#01H</p><p>  MOV TL0,R4</p>

72、<p>  MOV TH0,R3</p><p><b>  SETB TR0</b></p><p>  WAIT:JNB TF0,WAIT</p><p><b>  CLR TF0</b></p><p><b>  CPL P1.7</b></p&g

73、t;<p>  MAYA:JB P1.2,MAYB ;判斷1.2,1.4口是否有為1</p><p>  JB P1.4,MAYB</p><p>  LJMP RA </p><p>  MAYB:JB P3.4,JIELI ;判斷3.4,3.5口

74、是否有為1 </p><p>  JB P3.5,JIELI</p><p>  LJMP MUSTART2 ;3.4,3.5口皆為0則放第二首歌</p><p>  RA: MOV A,#86H ;顯示E</p><p>  ACALL SHOW</p>

75、<p>  DJNZ R5,MAIN ;無打斷則繼續(xù)放第一首歌</p><p>  DJNZ R2,LOOP</p><p><b>  INC R0</b></p><p>  INC R1 ;兩個(gè)表的指針都加1</p

76、><p>  CJNE R1,#166,RTAB ;判斷是否取完</p><p>  LJMP KEYPRO;</p><p><b>  ;《知足》音符表</b></p><p><b>  TONE2:</b></p><p>  ;

77、 1 7. 1 5 5 1 7. 1 3 </p><p>  DB 0F9H,21H,0F8H,0B6H,0F9H,21H,0FBH,68H,0FBH,68H,0F9H,21H,0F8H,0B6H,0F9H,21H,0FAH,8CH</p><p>  ;

78、1 7. 1 5. 3 2 6. 7. 1 2 </p><p>  DB 0F9H,21H,0F8H,0B6H,0F9H,21H,0F6H,0D4H,0FAH,8CH,0F9H,0E1H,0F7H,0D1H,0F8H,0B6H,0F9H,21H,0F9H,0E1H</p>

79、<p>  ; 1 7. 1 5 5 6 7 i 5</p><p>  DB 0F9H,21H,0F8H,0B6H,0F9H,21H,0FBH,68H,0FBH,68H,0FBH,0E9H,0FCH,5BH,0FCH,8FH,0FBH,68H</p><p&

80、gt;  ; 6 7 i 5 3 3 4 3 6. 2 1</p><p>  DB 0FBH,0E9H,0FCH,5BH,0FCH,8FH,0FBH,68H,0FAH,8CH,0FAH,8CH,0FAH,0D8H,0FAH,8CH,0F7H,0D1H,0F9H,

81、0E1H,0F9H,21H</p><p>  ; 1 i 7 6 4 2 5. 7 6 5 2 1 </p><p>  DB 0F9H,21H,0FCH,8FH,0FCH,5BH,0FBH,0E9H,0FAH,0D8H

82、,0F9H,0E1H,0FDH,6EH,0FCH,5BH,0FBH,0E9H,0FBH,68H,0F9H,0E1H,0F9H,21H</p><p>  ; 2 3 4 4 6 5 3 2 3 3 4 5 </p><p&

83、gt;  DB 0F9H,0E1H,0FAH,8CH,0FAH,0D8H,0FAH,0D8H,0FBH,0E9H,0FBH,68H,0FAH,8CH,0F9H,0E1H,0FAH,8CH,0FAH,8CH,0FAH,0D8H,0FBH,68H</p><p>  ; 1 i 7 6 4 7 i 2

84、9; 5 2' 7 i </p><p>  DB 0F9H,21H,0FCH,8FH,0FCH,5BH,0FBH,0E9H,0FAH,0D8H,0FCH,5BH,0FCH,8FH,0FCH,0EFH,0FBH,68H,0FCH,0EFH,0FCH,5BH,0FCH,8FH</p><p>  ; 6

85、7 i 6 7 i 2' 5 </p><p>  DB 0FBH,0E9H,0FCH,0EFH,0FCH,8FH,0FBH,0E9H,0FCH,5BH,0FCH,8FH,0FCH,0EFH,0FBH,68H</p><p><b>  ;《知足》節(jié)拍表</b>

86、;</p><p><b>  RYTH2:</b></p><p>  DB 08,04,04,08,12,08,04,04,20</p><p>  DB 08,04,04,06,09,04,04,04,04,20</p><p>  DB 08,04,04,08,12,10,07,07,20</p>

87、<p>  DB 10,08,08,08,04,06,06,04,03,04,05</p><p>  DB 04,06,06,08,08,05,04,05,05,06,08,08</p><p>  DB 04,05,08,04,05,08,04,05,08,04,05,06</p><p>  DB 04,05,06,10,08,06,06,12,09

88、,07,06,15</p><p>  DB 04,04,14,04,04,14,05,22</p><p>  MUSTART3: ;歌曲3的播放程序</p><p>  MOV R0,#00H ;節(jié)拍表指針置零</p><p>  MOV R

89、1,#00H ;音符表指針置零</p><p>  RTAB3:MOV A,R0</p><p>  MOV DPTR,#RYTH3</p><p>  MOVC A,@A+DPTR</p><p>  MOV R2,A ;查表法將一個(gè)節(jié)拍數(shù)據(jù)取出放R2

90、計(jì)數(shù)器中</p><p>  TTAB3:MOV A,R1</p><p>  MOV DPTR,#TONE3</p><p>  MOVC A,@A+DPTR</p><p>  MOV R3,A ;取出音符表高8位</p><p>  INC R1

91、 ;指針加1</p><p><b>  MOV A,R1</b></p><p>  MOV DPTR,#TONE3</p><p>  MOVC A,@A+DPTR</p><p>  MOV R4,A ;取出低8位</

92、p><p>  SETB P1.7 ;輸出相應(yīng)音調(diào)的方波</p><p>  LOOP3:MOV R5,#3BH</p><p>  MAIN3:MOV TMOD,#01H</p><p>  MOV TL0,R4</p><p>  MOV TH0,R3</p>

93、;<p><b>  SETB TR0</b></p><p>  WAIT33:JNB TF0,WAIT33</p><p><b>  CLR TF0</b></p><p><b>  CPL P1.7</b></p><p>  MAYA2:JB P1.5

94、,MAYB2 </p><p>  JB P1.6,MAYB2 ;判斷1.5,1.6口是否有1</p><p><b>  LJMP RB1</b></p><p>  MAYB2:JB P1.2,BACK1</p><p>  JB P1.4,BACK1</p><p>

95、;  LJMP MUSTART1 ;1.2,1.4口皆為0則放第一首歌</p><p>  BACK1:LJMP JIELI</p><p>  RB1: MOV A,#86H</p><p>  ACALL SHOW</p><p>  DJNZ R5,MAIN3 ;無打斷則繼續(xù)放第三首歌</p&g

96、t;<p>  DJNZ R2,LOOP3</p><p><b>  INC R0</b></p><p>  INC R1 ;兩個(gè)表的指針都加1</p><p>  CJNE R1,#166,RTAB3 ;判斷是否取完</p><p>  LJ

97、MP KEYPRO</p><p>  2.Proteus仿真</p><p>  1)創(chuàng)建一個(gè)Keil 應(yīng)用程序</p><p>  (1)新建一個(gè)工程項(xiàng)目文件;</p><p>  (2)為工程選擇保存位置,且命名(最好在一個(gè)新建文件夾中);</p><p>  (3)為工程項(xiàng)目設(shè)置調(diào)試環(huán)境;因芯片為AT89C52

98、,選擇設(shè)備Atmel下AT89C52</p><p>  (4)新建一個(gè)新文件并輸入程序代碼;</p><p>  (5)另存創(chuàng)建的源程序項(xiàng)目文件到同一個(gè)文件夾,后綴.asm;</p><p>  (6)把源程序文件添加到項(xiàng)目中。</p><p>  2)編譯連接環(huán)境設(shè)置 </p><p>  為產(chǎn)生.hex輸出文件,

99、按如下圖對(duì)工程目標(biāo)進(jìn)行設(shè)定:</p><p>  輸出.hex文件,點(diǎn)擊編譯,沒有問題就可以直接運(yùn)行了。</p><p><b>  仿真</b></p><p>  點(diǎn)擊proteus軟件中電路圖芯片位置,導(dǎo)入該hex,運(yùn)行即可。</p><p>  3.外接單片機(jī)使用方法</p><p>  

100、(1)連接好實(shí)驗(yàn)儀與主機(jī)的RS-232通信電纜和電源;</p><p>  (2)把實(shí)驗(yàn)儀的工作模式選擇開關(guān)切換到LOAD處,復(fù)位系統(tǒng)使實(shí)驗(yàn)儀工作于下載狀態(tài);</p><p>  (3)運(yùn)下載軟件并裝載hex文件:把用戶程序經(jīng)過編譯后生成的HEX文件下載,將實(shí)驗(yàn)版工作模式選擇開關(guān)撥至“LOAD”位置,按下復(fù)位開關(guān)“RESET”,系統(tǒng)復(fù)位后,實(shí)驗(yàn)儀將執(zhí)行P87C52X2中的下載監(jiān)控程序,實(shí)現(xiàn)

101、與上位機(jī)進(jìn)行通信,完成下載程序的功能;</p><p>  (4)keil設(shè)置:</p><p>  為目標(biāo)選項(xiàng)參數(shù)設(shè)置:-------設(shè)置,根據(jù)所連計(jì)算機(jī)插口,選擇COM口;</p><p>  點(diǎn)擊調(diào)試-運(yùn)行,即可;</p><p>  若要停止,點(diǎn)擊調(diào)試--停止運(yùn)行;</p><p>  (5)脫機(jī)運(yùn)行程序:&l

102、t;/p><p>  正確連接實(shí)驗(yàn)儀與主機(jī)的RS-232通信電纜和電源;</p><p>  把實(shí)驗(yàn)儀的工作模式選擇開關(guān)切換到RUN處,復(fù)位系統(tǒng)使實(shí)驗(yàn)儀工作于脫機(jī)運(yùn)行狀態(tài)。</p><p><b>  五、實(shí)驗(yàn)感想</b></p><p>  縱觀這次實(shí)驗(yàn),自我感覺收獲很大。因?yàn)閱纹瑱C(jī)課程本身實(shí)用性就很強(qiáng),在課堂理論講解時(shí)的

103、硬件結(jié)構(gòu),指令系統(tǒng),程序結(jié)構(gòu),存儲(chǔ)器擴(kuò)展技術(shù)等部分內(nèi)容,均讓我在本次實(shí)驗(yàn)中有了切身的理解和應(yīng)用體會(huì)。</p><p>  首先是單片機(jī)的焊接,因?yàn)橛须娐穲D,所以焊接沒有什么難度。但是,同樣的的焊接方法,我焊接好的單片機(jī)卻出故障而不能調(diào)試,在多方查找癥結(jié)無果后,我借用他人單片機(jī)對(duì)我的程序進(jìn)行了調(diào)試。</p><p>  此外我還對(duì)基本程序和新程序做了仿真。仿真使用的是proteus軟件,需要

104、點(diǎn)擊芯片導(dǎo)入hex文件。我先對(duì)一些基本小程序做出仿真,大獲成功。在本文中我挑選了幾個(gè)小程序做出說明。</p><p>  接著,我開始對(duì)新程序進(jìn)行仿真和調(diào)試。</p><p>  利用Keil C51集成開發(fā)環(huán)境完成從新工程建立和管理、編譯、連接、目標(biāo)hex文件的生成,然后用proteus軟件仿真,待成功后調(diào)整參數(shù)對(duì)單片機(jī)進(jìn)行調(diào)試。</p><p>  不過仿真芯片

105、和實(shí)踐中所用單片機(jī)芯片不同,所以在調(diào)試新程序時(shí),使用keil新建工程時(shí)所選設(shè)備不同,應(yīng)該是設(shè)備Atmel下AT89C52。</p><p>  這次實(shí)驗(yàn),從程序編寫調(diào)試,軟件仿真,電路焊接,單片機(jī)調(diào)試等各環(huán)節(jié)我都學(xué)到了很多經(jīng)驗(yàn),做到了把課本上的理論知識(shí)應(yīng)用到了實(shí)踐當(dāng)中。</p><p><b>  六、參考文獻(xiàn)</b></p><p>  [1

溫馨提示

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

評(píng)論

0/150

提交評(píng)論