課程設(shè)計---基于at89s52單片機簡易電子琴設(shè)計_第1頁
已閱讀1頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  《單片機應(yīng)用與仿真訓(xùn)練》設(shè)計報告</p><p>  ------基于AT89S52單片機簡易電子琴設(shè)計</p><p>  姓 名: </p><p>  學(xué) 號: </p><p>  專業(yè)班級: 電信08—2班

2、</p><p>  指導(dǎo)老師:     </p><p>  所在學(xué)院: 電氣工程與自動化學(xué)院 </p><p>  2011年11月22 日</p><p><b>  摘要</b></p><p>  設(shè)計的主要內(nèi)容是用 AT89S52單片機為核心控制元

3、件,通過脈沖觸發(fā)產(chǎn)生出電子音調(diào),設(shè)計一個簡易的電子琴。以單片機作為主控核心,與鍵盤、蜂鳴器等模塊組成控制模塊。該系統(tǒng)運行穩(wěn)定,其優(yōu)點是硬件電路簡單,軟件功能完善,控制系統(tǒng)可靠,性價比較高等,具有一定的實用與參考價值。</p><p>  關(guān)鍵詞:AT89S52;單片機;脈沖觸發(fā);電子琴設(shè)計</p><p><b>  目錄</b></p><p&

4、gt;<b>  1 概述2</b></p><p>  1.1 功能簡介2</p><p>  1.2 功能的實現(xiàn)2</p><p>  1.3 音樂產(chǎn)生原理3</p><p>  2 系統(tǒng)總體方案及硬件設(shè)計4</p><p>  2.1 總體方案4</p><p

5、>  2.2 硬件部分4</p><p>  2.2.1 矩陣鍵盤部分4</p><p>  2.2.2 揚聲器接口電路部分5</p><p><b>  3 軟件設(shè)計6</b></p><p>  4 Proteus軟件仿真8</p><p>  5 課程設(shè)計體會9</p

6、><p><b>  參考文獻10</b></p><p>  附錄1 源程序代碼10</p><p>  附錄2系統(tǒng)原理圖18</p><p><b>  1 概述</b></p><p><b>  1.1 功能簡介</b></p>

7、<p>  電子琴是現(xiàn)代電子科技與音樂結(jié)合的產(chǎn)物,是一種新型的鍵盤樂器。它在現(xiàn)代音樂扮演著重要的角色,單片機具有強大的控制功能和靈活的編程實現(xiàn)特性,它已經(jīng)溶入現(xiàn)代人們的生活中,成為不可替代的一部分。</p><p>  本簡易電子琴的設(shè)計可實現(xiàn)的功能如下:程序中預(yù)存了一首音樂《月亮代表我的心》,通過一個獨立鍵盤可以實現(xiàn)對該音樂的播放和停止操作的控制。4*4矩陣鍵盤的16個按鍵分別對應(yīng)著16個不同的音符,

8、分為高、低兩個八度,當(dāng)按下某一按鍵,會發(fā)出相應(yīng)的音調(diào)。按下按鍵時,揚聲器會發(fā)出聲音,松開按鍵后,揚聲器停止發(fā)聲,按鍵的時間越長,發(fā)聲時間越久。連續(xù)按下不同的按鍵,可以實現(xiàn)樂曲的演奏。</p><p><b>  1.2 功能的實現(xiàn)</b></p><p>  功能的實現(xiàn)部分分為軟件和硬件兩部分來簡介。</p><p>  1.3 音樂產(chǎn)生原理&

9、lt;/p><p>  一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,當(dāng)然對于單片機來產(chǎn)生不同的頻率非常方便,我們可以利用單片機的定時/計數(shù)器T0來產(chǎn)生這樣方波頻率信號,因此,只需將一首歌的音階和頻率相對應(yīng)即可。</p><p>  若要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),再將此周期除以2,即為半周期的

10、時間。利用定時器計時半周期時間,每當(dāng)計時終止后就將P1.0反相,然后重復(fù)計時再反相。就可在P1.0引腳上得到此頻率的脈沖。</p><p>  利用AT89S52的內(nèi)部定時器使其工作計數(shù)器模式(MODE1)下,改變計數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法產(chǎn)生不同音階,例如,頻率為523Hz,其周期T=1/523=1912μs,因此只要令計數(shù)器計時956μs/1μs=956,每計數(shù)956次時將I/O反相,就可得到中

11、音DO(523Hz)。</p><p>  計數(shù)脈沖值與頻率的關(guān)系式(如式2-1所示)是:</p><p>  N=fi÷2÷fr 2-1</p><p>  式中,N是計數(shù)值;fi是機器頻率(晶體振蕩器為12MHz時,其頻率為1MHz);fr是想要產(chǎn)生的頻率。</p><p

12、>  其計數(shù)初值T的求法如下:</p><p>  T=65536-N=65536-fi÷2÷fr 2-2</p><p>  例如:設(shè)K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的計數(shù)值。</p><p>  T=65536-N=65536-fi÷2&

13、#247;fr=65536-1000000÷2÷fr=65536-500000/fr</p><p>  低音DO的T=65536-500000/262=63627</p><p>  中音DO的T=65536-500000/523=64580</p><p>  高音DO的T=65536-500000/1046=65059</p>

14、<p>  我們要為這個音符建立一個表格,單片機通過查表的方式來獲得相應(yīng)的數(shù)據(jù),音符表見附錄一。</p><p>  音樂的音拍,一個節(jié)拍為單位(C調(diào))(如表2-1所示)</p><p><b>  表2-1 曲調(diào)值表</b></p><p>  對于不同的曲調(diào)我們也可以用單片機的定時/計數(shù)器來完成。</p><

15、p>  程序流程圖如圖2.5。</p><p>  2 系統(tǒng)總體方案及硬件設(shè)計</p><p><b>  2.1 總體方案</b></p><p>  本設(shè)計采用4*4鍵盤控制通過程序產(chǎn)生高八度和低八度音律,要考慮到軟件和硬件的匹配以及硬件電路焊接時的排版問題,否則建會帶來不必要的焊接麻煩,在編程序時要注意仿真與實際電路中可能的不符,&

16、lt;/p><p><b>  2.2 硬件部分</b></p><p>  本設(shè)計硬件電路共由以下幾部分構(gòu)成:矩陣鍵盤部分;揚聲器部分;AT89S52主控電路部分;獨立按鍵部分。</p><p>  2.2.1 矩陣鍵盤部分</p><p>  設(shè)計中采用AT89S51的并行口P3接4×4矩陣鍵盤,以P3.0-P

17、3.3作輸入線,以P3.4-P3.7作輸出線。每個按鍵有它的行值和列值,行值和列值的組合就是識別這個按鍵的編碼。矩陣的行線和列線分別通過兩并行接口和CPU通信。每個按鍵的狀態(tài)同樣需變成數(shù)字量“0”和“1”,開關(guān)的一端(列線)通過電阻接VCC,而接地是通過程序輸出數(shù)字“0”實現(xiàn)的。鍵盤處理程序的任務(wù)是:確定有無鍵按下,判斷哪一個鍵按下,鍵的功能是什么;還要消除按鍵在閉合或斷開時的抖動。兩個并行口中,一個輸出掃描碼,使按鍵逐行動態(tài)接地,另一

18、個并行口輸入按鍵狀態(tài),由行掃描值和回饋信號共同形成鍵編碼而識別按鍵,通過軟件查表,查出該鍵的功能,在本程序中,當(dāng)程序檢測到有鍵按下時,將查表使按鍵值與預(yù)存數(shù)據(jù)表中數(shù)據(jù)對應(yīng),并調(diào)用發(fā)聲程序。</p><p>  圖2.1 矩陣鍵盤的連接</p><p>  2.2.2 揚聲器接口電路部分</p><p>  仿真中的揚聲器一段接CPU的P2^4口,另一端接高電平。當(dāng)P

19、2^4口有電平變化時,揚聲器被驅(qū)動發(fā)聲。而在實物制作中,這樣是難以實現(xiàn)功能的,需要增加模擬電路以除去多余的干擾信號。也可選用集成芯片LM386作為揚聲器的驅(qū)動芯片。若使用LM386驅(qū)動揚聲器,通過相應(yīng)的模擬電路的設(shè)計,還可以實現(xiàn)音量的調(diào)節(jié)。不過,在平時做實物時,我們一般用一個三極管作為放大器,這次我采用的是8050</p><p>  圖2.2揚聲器接口電路</p><p><b&g

20、t;  3 軟件設(shè)計</b></p><p>  本設(shè)計使用Protues仿真軟件進行仿真,在程序設(shè)計部分,包括鍵盤掃描程序,音樂發(fā)聲程序。程序見附錄1。</p><p>  4*4矩陣鍵盤是由CPU控制I/O口來實現(xiàn)掃描的。具體程序見附錄二主程序鍵盤掃描部分。鍵盤掃描程序流程圖如圖2.4。</p><p>  程序首先給P3口賦值,然后讀取P3的狀態(tài),

21、將讀取的狀態(tài)值同所賦值相比較,如果二者不相同,則說明有鍵按下,子程序?qū)存I值返回主程序;否則,說明沒有鍵按下,程序繼續(xù)進行下一次掃描。 </p><p>  本系統(tǒng)的軟件流程圖如下</p><p>  圖 2.3 系統(tǒng)主程序流程</p><p><b>  鍵盤掃描程序流程圖</b></p><p>  圖 2.4鍵盤掃

22、描程序流程圖</p><p><b>  音樂發(fā)聲程序</b></p><p>  圖 2.5音樂發(fā)聲程序流程圖</p><p>  4 Proteus軟件仿真</p><p><b>  仿真電路圖</b></p><p><b>  5 課程設(shè)計體會</b

23、></p><p>  將程序燒入芯片,調(diào)試成功后,可任意彈奏自己想要的旋律。本設(shè)計通過制作電子琴,將幾個模塊很好的融合,對使用單片機設(shè)計簡易電子琴進行了分析,并了解了基于單片機電子琴統(tǒng)硬件組成。利用單片機產(chǎn)生不同頻率來獲得我們要求的音階,最終可隨意彈奏想要表達的音樂。說明一首音樂是許多不同的音階組成的,而每個音階對應(yīng)著不同的頻率,這樣我們就可以利用不同的頻率的組合,即可構(gòu)成我們所想要的音樂了,于是我們可以

24、利用單片機的定時/計數(shù)器T0來產(chǎn)生這樣方波頻率信號,因此,我們只要把一首歌曲的音階對應(yīng)頻率關(guān)系弄正確即可,然后我們利用功放電路來將音樂聲音放大。</p><p>  遇到的問題:在剛剛焊接好后,程序燒入芯片后,發(fā)現(xiàn)并不發(fā)聲,經(jīng)檢查才發(fā)現(xiàn)是對鍵盤沒看清楚,將鍵盤接亂了,另外,在硬件電路修改好后,發(fā)現(xiàn)每次按鍵時會引起蜂鳴器一直響,再按鍵時有可能會消失,經(jīng)檢查后知道是再每按鍵件程序后蜂鳴器對應(yīng)參值沒有直接置零。<

25、/p><p>  總之,這是一次動手能力的鍛煉,也是一次單片機知識的再回顧,還是對自己細(xì)心以及耐心能力的考察。</p><p><b>  參考文獻</b></p><p>  [1] 賈立新、王涌.電子系統(tǒng)設(shè)計與實踐[M],清華大學(xué)出版社,2008年2月版; [2] 陶春鳴、陳享成、甕嘉民.單片機使用技術(shù)[M],人民郵電出版社,2008年4月版

26、; [3] 余發(fā)山.單片機原理及應(yīng)用技術(shù)[M],中國礦業(yè)大學(xué)出版社,2003年12月版; [4] 李光飛.單片機課程設(shè)計實例指導(dǎo)[M], 航空航天大學(xué)出版社,2004年9月版; [5] 余永權(quán).ATMEL89 系列單片機[M],北京航空航天大學(xué)出版社,2002年4 月版; [6] 胡宴如,耿蘇燕.模擬電子技術(shù)[M],高等教育出版社,2007年12月版; [7] 趙潤林,張迎輝.單片機原理與應(yīng)用教程[M],北京大學(xué)出版社,200

27、7年1月版; [8] 馬淑華、王鳳文.單片機原理與接口技術(shù)[M],北京郵電大學(xué)出版社,2005年10月版; [9] 李建忠.單片機原理及應(yīng)用[M],西安電子科技大學(xué)出版社,2002 年5月版; [10] 楊子文.單片機原理及應(yīng)用[M],西安電子科技大學(xué)出版社,2006 年4月版</p><p><b>  附錄1 源程序代碼</b></p><p>  #i

28、nclude<reg51.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  uint key,i,j,time,m,k;</p><p>  uchar temp;</p><p> 

29、 uchar STH0,STL0,STH1,STL1;</p><p>  sbit sw=P2^7;</p><p>  sbit speaker=P2^4;</p><p>  sbit P37=P3^7;</p><p>  sbit P36=P3^6;</p><p>  sbit P35=P3^5;</

30、p><p>  sbit P34=P3^4;</p><p>  //月亮代表我的心數(shù)據(jù)表</p><p>  code unsigned char sszymmh[]={ 0,2,1, 5,1,1, 1,2,3, 3,2,1, 5,2,3, 1,2,1, 7,1,3, </p><p>  3,2,1, 5,2,2, 0,2,1, 5,2,1,

31、 6,2,1, 7,2,2, 1,3,3, </p><p>  6,2,1, 6,2,1, 5,2,1, 5,2,5, 3,2,1, 2,2,1, 1,2,3, </p><p>  1,2,1, 1,2,2, 3,2,1, 2,2,1, 1,2,3, 1,2,1, 1,2,2, </p><p>  2,2,1, 3,2,1,2,2,2, 1,2,1,6,1,2

32、, 2,2,1, 3,2,1, 2,2,5, </p><p><b>  };</b></p><p>  // 音階頻率表高八位</p><p>  code unsigned char FREQH[]={</p><p>  0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, </p>

33、;<p>  0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i</p><p>  0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,</p><p>  0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,</p><p><b>  } ;

34、</b></p><p>  // 音階頻率表低八位</p><p>  code unsigned char FREQL[]={</p><p>  0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,</p><p>  0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1

35、,2,3,4,5,6,7,8,i</p><p>  0xEE,0x44, 0x6B,0xB4,0xF4,0x2D, </p><p>  0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,</p><p><b>  };</b></p><p>  unsigned int code tab[]=

36、{ 64103,64260,64400, 64524,64580,64684,64777,</p><p>  64820,64898,64968,65030, 65058,65110,65157,65178,65217};</p><p>  void key_music()</p><p><b>  {</b></p>&l

37、t;p>  unsigned char tmp;</p><p><b>  P3=0xff;</b></p><p><b>  P34=0;</b></p><p><b>  temp=P3;</b></p><p>  temp=temp&0x0f;<

38、;/p><p>  tmp = temp;</p><p>  if(temp!=0x0f)</p><p><b>  {</b></p><p>  for(i=50;i>0;i--)</p><p>  for(j=200;j>0;j--); </p><p>

39、;<b>  temp=P3;</b></p><p>  temp=temp&0x0f;</p><p>  //(temp!=0x0f)</p><p>  if(temp==tmp)</p><p><b>  {</b></p><p><b>  

40、temp=P3;</b></p><p>  temp=temp&0x0f;</p><p>  switch(temp)</p><p><b>  {</b></p><p>  case 0x0e:</p><p><b>  key=0;</b>&

41、lt;/p><p><b>  break;</b></p><p>  case 0x0d:</p><p><b>  key=1;</b></p><p><b>  break;</b></p><p>  case 0x0b:</p>

42、<p><b>  key=2;</b></p><p><b>  break;</b></p><p>  case 0x07:</p><p><b>  key=3;</b></p><p><b>  break;</b></p

43、><p><b>  }</b></p><p>  //speaker=~speaker;</p><p>  STH1=tab[key]/256;</p><p>  STL1=tab[key]%256;</p><p><b>  temp=P3;</b></p>

44、;<p>  temp=temp & 0x0f; </p><p>  while(temp!=0x0f)</p><p><b>  {TR0=1;</b></p><p><b>  temp=P3;</b></p><p>  temp=temp

45、& 0x0f; </p><p><b>  }</b></p><p><b>  TR0=0;</b></p><p>  speaker = 0;</p><p><b>  }</b></p><p><

46、b>  }</b></p><p><b>  P3=0xff;</b></p><p><b>  P35=0;</b></p><p><b>  temp=P3;</b></p><p>  temp=temp&0x0f;</p>

47、<p>  tmp = temp;</p><p>  if(temp!=0x0f)</p><p><b>  {</b></p><p>  for(i=50;i>0;i--)</p><p>  for(j=200;j>0;j--); </p><p><b>

48、;  temp=P3;</b></p><p>  temp=temp&0x0f;</p><p>  //(temp!=0x0f)</p><p>  if(temp==tmp)</p><p><b>  {</b></p><p><b>  temp=P3;&

49、lt;/b></p><p>  temp=temp&0x0f;</p><p>  switch(temp)</p><p><b>  {</b></p><p>  case 0x0e:</p><p><b>  key=4;</b></p>

50、<p><b>  break;</b></p><p>  case 0x0d:</p><p><b>  key=5;</b></p><p><b>  break;</b></p><p>  case 0x0b:</p><p>

51、;<b>  key=6;</b></p><p><b>  break;</b></p><p>  case 0x07:</p><p><b>  key=7;</b></p><p><b>  break;</b></p><

52、;p><b>  }</b></p><p>  //speaker=~speaker;</p><p>  STH1=tab[key]/256;</p><p>  STL1=tab[key]%256;</p><p><b>  temp=P3;</b></p><p&

53、gt;  temp=temp & 0x0f; </p><p>  while(temp!=0x0f)</p><p><b>  {TR0=1;</b></p><p><b>  temp=P3;</b></p><p>  temp=temp & 0x0

54、f; </p><p><b>  }</b></p><p><b>  TR0=0;</b></p><p>  speaker = 0;</p><p><b>  }</b></p><p><b>  }&

55、lt;/b></p><p><b>  P3=0xff;</b></p><p><b>  P36=0;</b></p><p><b>  temp=P3;</b></p><p>  temp=temp&0x0f;</p><p>

56、  tmp = temp;</p><p>  if(temp!=0x0f)</p><p><b>  {</b></p><p>  for(i=50;i>0;i--)</p><p>  for(j=200;j>0;j--); </p><p><b>  temp=P

57、3;</b></p><p>  temp=temp&0x0f;</p><p>  //(temp!=0x0f)</p><p>  if(temp==tmp)</p><p><b>  {</b></p><p><b>  temp=P3;</b>

58、</p><p>  temp=temp&0x0f;</p><p>  switch(temp)</p><p><b>  {</b></p><p>  case 0x0e:</p><p><b>  key=8;</b></p><p&g

59、t;<b>  break;</b></p><p>  case 0x0d:</p><p><b>  key=9;</b></p><p><b>  break;</b></p><p>  case 0x0b:</p><p><b>

60、;  key=10;</b></p><p><b>  break;</b></p><p>  case 0x07:</p><p><b>  key=11;</b></p><p><b>  break;</b></p><p>&

61、lt;b>  }</b></p><p>  //speaker=~speaker;</p><p>  STH1=tab[key]/256;</p><p>  STL1=tab[key]%256;</p><p><b>  temp=P3;</b></p><p>  te

62、mp=temp & 0x0f; </p><p>  while(temp!=0x0f)</p><p><b>  {</b></p><p><b>  TR0=1;</b></p><p><b>  temp=P3;</b></p&

63、gt;<p>  temp=temp & 0x0f; </p><p><b>  }</b></p><p><b>  TR0=0;</b></p><p>  speaker = 0;</p><p><b>  }</b>

64、;</p><p><b>  }</b></p><p><b>  P3=0xff;</b></p><p><b>  P37=0;</b></p><p><b>  temp=P3;</b></p><p>  temp=

65、temp&0x0f;</p><p>  tmp = temp;</p><p>  if(temp!=0x0f)</p><p><b>  {</b></p><p>  for(i=50;i>0;i--)</p><p>  for(j=100;j>0;j--); <

66、;/p><p><b>  temp=P3;</b></p><p>  temp=temp & 0x0f;</p><p>  //(temp!=0x0f)</p><p>  if(temp==tmp)</p><p><b>  {</b></p>&

67、lt;p><b>  temp=P3;</b></p><p>  temp=temp&0x0f;</p><p>  switch(temp)</p><p><b>  {</b></p><p>  case 0x0e:</p><p><b>

68、  key=12;</b></p><p><b>  break;</b></p><p>  case 0x0d:</p><p><b>  key=13;</b></p><p><b>  break;</b></p><p>  

69、case 0x0b:</p><p><b>  key=14;</b></p><p><b>  break;</b></p><p>  case 0x07:</p><p><b>  key=15;</b></p><p><b> 

70、 break;</b></p><p><b>  }</b></p><p>  //speaker=~speaker;</p><p>  STH1=tab[key]/256;</p><p>  STL1=tab[key]%256;</p><p><b>  temp

71、=P3;</b></p><p>  temp=temp & 0x0f; </p><p>  while(temp!=0x0f)</p><p><b>  {TR0=1;</b></p><p><b>  temp=P3;</b></p>

72、<p>  temp=temp & 0x0f; </p><p><b>  }</b></p><p><b>  TR0=0;</b></p><p>  speaker = 0;</p><p><b>  }</b>&l

73、t;/p><p><b>  }</b></p><p><b>  }</b></p><p>  void timer0(void) interrupt 1 using 0</p><p><b>  {</b></p><p><b>  i

74、f(sw==1)</b></p><p><b>  {</b></p><p><b>  TH0=STH1;</b></p><p><b>  TL0=STL1;</b></p><p><b>  }</b></p>&

75、lt;p><b>  else </b></p><p><b>  {</b></p><p><b>  TH0=STH0;</b></p><p><b>  TL0=STL0;</b></p><p><b>  }</b&

76、gt;</p><p>  speaker=~speaker;</p><p><b>  }</b></p><p>  void delay(unsigned char t)</p><p><b>  {</b></p><p>  unsigned char t1;

77、</p><p>  unsigned long t2;</p><p>  for(t1=0;t1<t;t1++)</p><p>  { </p><p>  for(t2=0;t2<8000;t2++)</p><p><b>  

78、{</b></p><p><b>  ;</b></p><p>  } </p><p><b>  }</b></p><p><b>  TR0=0;</b></p><p&g

79、t;<b>  }</b></p><p>  void song()</p><p><b>  {</b></p><p><b>  TH0=STH0;</b></p><p><b>  TL0=STL0;</b></p><p

80、><b>  TR0=1;</b></p><p>  delay(time);</p><p><b>  }</b></p><p>  void music(void)</p><p><b>  {</b></p><p>  unsign

81、ed int cnt;</p><p><b>  m=0;</b></p><p><b>  time=1;</b></p><p><b>  sw=1;</b></p><p>  cnt = sizeof(sszymmh)/sizeof(char);</p>

82、;<p>  while(time&&sw==0)</p><p><b>  {</b></p><p><b>  if(sw)</b></p><p>  {i=0;continue;}</p><p><b>  else</b></

83、p><p><b>  {</b></p><p>  k=sszymmh[m]+7*sszymmh[m+1]-1;</p><p>  STH0=FREQH[k];</p><p>  STL0=FREQL[k];</p><p>  time=sszymmh[m+2];</p>&l

84、t;p>  song();m=m+3;</p><p>  if(m > cnt) break;</p><p><b>  }</b></p><p><b>  }</b></p><p>  speaker = 0;</p><p><b>  }

85、</b></p><p>  void main()</p><p><b>  {</b></p><p>  TMOD=0x01;</p><p><b>  ET0=1;</b></p><p><b>  TF0 = 1;</b>&

86、lt;/p><p><b>  EA=1;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  if(sw==1)</b></p><p>  key_mus

溫馨提示

  • 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

提交評論