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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  單片機原理與應用</b></p><p>  課程設計(學年論文)</p><p><b>  說明書</b></p><p>  課題名稱: 電子音樂播放器 </p><p>  學生學號: ************

2、 </p><p>  專業班級: ******** </p><p>  學生姓名: ****** </p><p>  學生成績: </p><

3、p>  指導教師: ****** </p><p>  課題工作時間: 2014.12.29 至 2015.1.9 </p><p><b>  填寫說明:</b></p><p>  1. 一、二、三項由指導教師在課程設計(學年論文)開始前填寫并交由學生保管;&l

4、t;/p><p>  2. 四、五兩項由學生在完成課程設計后填寫,并將此表與課程設計一同裝訂成冊交給指導教師;</p><p>  3. 成績評定由指導教師按評定標準評分。</p><p>  4. 此表格填寫好后與正文一同裝訂成冊。</p><p>  課程設計評審標準(指導教師用)</p><p><b&g

5、t;  目 錄</b></p><p><b>  摘 要</b></p><p><b>  目 錄1</b></p><p><b>  第一章 緒論2</b></p><p>  1.1課程設計目的2</p><p>  1

6、.2課程設計任務2</p><p>  1.3課程設計要求2</p><p>  1.4課程設計的意義2</p><p>  第二章 設計原理及總體方案選擇3</p><p>  2.1 基本原理簡述3</p><p>  2.2 關于音樂的原理知識4</p><p>  第三章 音

7、樂播放器硬件電路的設計和調試6</p><p>  3.1 硬件原理電路的設計6</p><p>  3.1.1 時鐘與復位模塊6</p><p>  3.1.2 按鍵選擇模塊6</p><p>  3.1.3 數碼管顯示模塊7</p><p>  3.1.4 下載電路模塊7</p><

8、p>  3.1.5 US供電模塊8</p><p>  3.1.6 蜂鳴器模塊8</p><p>  3.1.7 整個原理圖9</p><p>  3.2 ATMEL 89C51簡介10</p><p>  3.2.1 AT89C51單片機10</p><p>  3.2.2 引腳介紹10</p

9、><p>  第四章 軟件編程設計與綜合測試11</p><p>  4.1 編程思路簡述11</p><p>  4.2 編程方案的設計13</p><p>  4.2.1 軟件功能選擇13</p><p>  4.2.2 程序流程圖13</p><p>  4.2.3 程序清單15

10、</p><p>  4.2.4 軟件調試15</p><p><b>  參考文獻20</b></p><p><b>  心得體會21</b></p><p><b>  第一章 緒論</b></p><p><b>  1.1課程設

11、計目的</b></p><p>  應用單片機,利用它的原理組成一個音樂播放器。利用按鍵進行音調選擇,即不同的按鍵產生不同的音調,蜂鳴器發出1234567音調,并在數碼管上顯示。編寫2支歌曲,并可進行選擇播放。</p><p><b>  1.2課程設計任務</b></p><p>  以單片機為核心部件組成一個音樂播放器。<

12、/p><p>  利用單片機的定時器產生樂譜的各種頻率方波,由蜂鳴器發出聲音。</p><p>  自行定義按鍵盤,每按一鍵,可以發出對應的音調,或者可選擇按鍵進行歌曲播放。</p><p>  在數碼管上顯示Do、Re、Mi、Fa、Sol、La、Si音調所對應的1、2、3、4、5、6、7。</p><p><b>  1.3課程設計要

13、求</b></p><p>  1)硬件電路的搭建是用采用AltiumDesigner6.9。</p><p>  2)采用單片機C語言進行編程。</p><p>  3)完成硬件與軟件調試綜合調試,實現預定功能,并寫出課程設計報告。</p><p>  1.4課程設計的意義</p><p>  通過自己動

14、手設計制作單片及組成的器件,深入了解了單片機的實際應用,能更深地理解課堂上所學的內容,使得單調的理論知識與實際聯系起來,幫助我們更好的理解。同時學會PCB制版的過程,熟悉AltiumDesigner6.9這個軟件。</p><p>  第二章 設計原理及總體方案選擇</p><p>  2.1 基本原理簡述</p><p>  聲音是通過振動產生的。單片機對某一引腳

15、以一定的頻率循環置1置0,該引腳便產生一定頻率的方波,方波通過放大,作用于一定的物理實件(蜂鳴器),就產生了一定頻率的聲音。若改變輸出方波的頻率,產生的聲音隨之改變。通過控制輸出方波的時間長短,聲音的長短也可以得到控制,因此,根據樂譜,以類似的音及同樣的節拍,單片機就可以產生電子音樂。音樂的播放模式及選擇可以通過按鍵的輸入得以實現。</p><p>  為簡便起見,以一定的頻率方波產生的音在其每個周期內高低幅值得

16、時間各占一半因此,輸出引腳在每個方波周期內要動作兩次:一次升高,一次降低。即輸出引腳的頻率是原音頻率的兩倍。</p><p>  方波的產生由定時器控制。定時器T0工作在定時方式1,改變TH0及TL0,產生不同的音頻頻率。必須考慮到中斷響應時間的影響,尤其在高音部分,若忽略中斷響應時間,會使音頻頻率比標準值低幾十Hz,相當于1/4音程,很容易聽出來,對低音部分影響不大。一般中斷響應時間為3~6個機器周期,經過反復

17、試驗取5個機器周期作為校正最為恰當,表1中所給的定時初值就是考慮中斷響應后的定時常數。另外,為避免T1中斷可能引起雜音,應將定時器T0中斷設為高優先級。這樣編寫出來的程序播放的音與標準音叉進行差頻校音,非常準確和諧。</p><p>  音樂播放器的基本硬件電路有六部分組成:單片機、時鐘與復位電路、選擇按鍵輸入電路、音頻發生器、蜂鳴器、數碼管顯示。音樂播放器硬件電路設計框圖如圖2.1所示。</p>

18、<p>  圖2.1 音樂播放器硬件電路設計框圖</p><p>  利用單片機內部定時器/計數器T0與P2.0引腳配合,構成音頻發生器,與外置電路組成音頻放大器,驅動蜂鳴器輸出。選擇按鍵通過P1.0 至P1.7。 </p><p>  2.2 關于音樂的原理知識</p><p>  在音樂中使用的各個固定頻率的音叫音級[1]。常用符號C、D、E、F、G

19、、A、B、c、d、e、……a1、b1、c2、d2……表示,它們對應于鋼琴上的白鍵。兩音之間音高的距離叫音程。在上述音級中,E與F、B與C之間音高的距離僅為其它相鄰音級之間距離的一半,稱它們之間的音程為半音音程,而稱其它相鄰各音之間的距離為全音音程。在這些全音音程之間又加入新的半音音級,用符號﹟C、﹟D、﹟F、﹟G、﹟A、﹟c、﹟d、﹟f、……表示,對應于鋼琴上的黑鍵。音持續時間的長短即時值,一般用拍數表示。休止符表示暫停發音。</

20、p><p>  表2.1 各音符及對應頻率</p><p>  每個音符分為簡譜碼和節拍碼。簡譜碼為D0-L到SI-H,節拍碼為1到16。對應的節拍表如表2.2所示。</p><p><b>  對應的拍子: </b></p><p>  2/2。。。。。。。。。。。以二分音符為一拍,每小節有兩拍(二分音符代表一拍)<

21、/p><p>  2/4。。。。。。。。。。。以四分音符為一拍,每小節有兩拍(四分音符代表一拍)</p><p>  3/4。。。。。。。。。。。以四分音符為一拍,每小節有三拍(四分音符代表一拍)</p><p>  4/4。。。。。。。。。。。以四分音符為一拍,每小節有四拍(四分音符代表一拍)</p><p><b>  表2.2 節

22、拍表</b></p><p>  第三章 音樂播放器硬件電路的設計和調試</p><p>  3.1 硬件原理電路的設計</p><p>  3.1.1 時鐘與復位模塊</p><p>  由電容,電位器,按鍵組成復位電路部分,該電路接于單片機的RESET端可以通過按鍵達到手動復位的效果,也可以通過電位器和電容組成上電復位電路。通

23、過復位電路使單片機回到初始狀態。</p><p>  圖 3.1 復位電路圖 3.2 晶振時鐘電路</p><p>  3.1.2 按鍵選擇模塊</p><p>  利用P1.0到P1.7與構成按鍵陣列,可以掃描十六個按鍵,但本次設計只用到九個按鍵。</p><p><b>  圖3.3矩陣

24、鍵盤</b></p><p>  3.1.3 數碼管顯示模塊 </p><p><b>  圖3.4數碼管</b></p><p>  3.1.4下載電路模塊</p><p><b>  圖3.5下載電路</b></p><p>  3.1.5 USB供電模塊&l

25、t;/p><p>  圖3.6 USB供電電路</p><p>  3.1.6 蜂鳴器模塊</p><p><b>  圖3.7 蜂鳴器</b></p><p>  3.1.7 整個原理圖</p><p>  綜合以上功能模塊,連接于單片機,繪制原理圖如圖3.8所示。</p><

26、p>  圖 3.8 音樂播放器電路原理圖</p><p><b>  PCB完成版:</b></p><p>  3.2 ATMEL 89C51簡介</p><p>  3.2.1 AT89C51單片機</p><p>  AT89C51是美國ATMEL公司推出的系列單片機,將多種功能的8位CPU與FPEROM(快

27、閃可編程/擦除只讀存儲器)結合在一個芯片上,是一種低功耗、高性能的CMOS控制器,為很多嵌入式控制應用提供了非常靈活而又價格適宜的方案,其性能價格比遠高于同類芯片。它與MCS-51指令系統兼容,片內FPEROM允許對程序存儲器在線重復編程,也可用常規的EPROM編程器編程,可循環寫入/擦除1000次。89C51內含4KB的FPEROM,一般的EEPROM的字節擦除時間和寫入時間基本上均為10ms,對于任一個實時控制系統來說,這樣長的時間

28、是不可能在線修改程序的。</p><p>  3.2.2 引腳介紹</p><p><b>  圖3.7 引腳圖</b></p><p>  第四章 軟件編程設計與綜合測試</p><p>  4.1 編程思路簡述</p><p>  要產生音頻信號,只要算出某一音頻的周期(頻率的倒數),將此

29、周期除以2即為半周期的時間,利用定時器計時此半周期時間,計時到后取反輸出,重復此過程即得到此頻率的聲音信號。此信號從P2.0腳輸出。</p><p>  定時器T0工作在定時方式1,改變TH0及TL0,產生不同的音頻頻率。必須考慮到中斷響應時間的影響,尤其在高音部分,若忽略中斷響應時間,會使音頻頻率比標準值低幾十Hz,相當于1/4音程,很容易聽出來,對低音部分影響不大。一般中斷響應時間為3~6個機器周期,經過反復

30、試驗取5個機器周期作為校正最為恰當,表2.1中所給的定時初值就是考慮中斷響應后的定時常數。另外,為避免T1中斷可能引起雜音,應將定時器T0中斷設為高優先級。這樣編寫出來的程序播放的音與標準音叉進行差頻校音,非常準確和諧。本設計中單片機晶振頻率為11.0592MHz。</p><p>  每個音符使用兩個字節。低位字節(偶地址)代表音級,00H表示不發音(休止符),01H~30H依次表示的音級為c、﹟c、d、﹟d、

31、e、f、……a3、﹟a3、b3 ,詳見表2.1。高位字節(奇地址)代表音符的時值(拍數),00H~0FH依次表示拍數為1/8拍(0.10s)~8拍(6.40s),見表2.2。樂曲的結束標志是兩個字節:0FFH,0FFH。</p><p>  設計延時程序50ms,來控制節拍,改變延時程序的延遲時間,即可實現歌曲的快慢演奏。</p><p>  主程序的任務是按順序讀取數據表中的字節,根據情

32、況調用音級子程序和演唱子程序,啟動定時器T0;通過延時控制節拍,并循環回音級子程序,等待演唱完畢。</p><p>  要編寫的樂譜按要求以音符字節數據表的形式存放在程序中,改變樂曲就是通過改變該數據表的內容來實現的。</p><p>  定時器T0的中斷服務程序任務是取反P2.0輸出產生方波,重新為TH0,TL0送初值。</p><p>  蜂鳴器產生音樂的2個關

33、鍵參數是頻率和音長。一個節拍的時間大概是400-500ms之間。用定時器定時50ms,8個定時時間就是一個節拍,即為Rhythm。</p><p><b>  音調頻率如下表:</b></p><p>  根據表中的頻率計算出周期T=1/f;則T/2就是電平的持續時間;得到的T/2再除以15us就可以得到帶參延時函數delay_15us的入口參數,即為Tone:<

34、;/p><p>  依次按照音調,節拍,音調,節拍的順序寫入到數組中,并在結尾處加入休止符0即可完成整個音樂的播放。</p><p>  4.2 編程方案的設計</p><p>  4.2.1 軟件功能選擇</p><p>  1)對于九個按鍵的功能設計,按鍵0~7控制Do、Re、Mi、Fa、Sol、La、Si,其余按鍵8和按鍵9對應兩首歌曲。九

35、個按鍵通過P1口八條引腳構成行列掃描結構,對用戶的按鍵位置進行判斷。</p><p>  2)通過以上的分析思考,我們看到想實現音樂的輸出是并不困難。這也就基本上完成了我們既定的基本方案??墒侨绾巫寯荡a管同步顯示1、2、3、4、5、6、7。在用戶按鍵之后由按鍵控制模塊判斷選擇的歌曲,通過CPU控制顯示程序中已有的歌曲或者音調和數碼管顯示。</p><p>  4.2.2 程序流程圖<

36、/p><p><b> ?。ú僮?)</b></p><p><b>  N </b></p><p><b>  Y</b></p><p>  圖 4.1 音樂播放器程序流程圖</p><p>  4.2.3 程序清單</p><p&

37、gt;  主程序(main.c):</p><p>  #include<reg51.h></p><p>  #include"PlayMusic.h"</p><p>  #include"KeyScan.h"</p><p>  #define SegPorts P0//數碼管接口&l

38、t;/p><p>  unsigned char nTimes;</p><p>  unsigned char Seg_Code[]=</p><p><b>  {</b></p><p>  0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0xff,0xff</p><p>

39、;  };//1-7的共陽極段碼顯示</p><p>  int main(void)</p><p><b>  {</b></p><p>  char KeyTemp;</p><p>  TH0 =(65536-50000)/256;</p><p>  TL0 =(65536-50000

40、)%256;</p><p>  TMOD=0x01;</p><p><b>  ET0 =1;</b></p><p><b>  EA =1;</b></p><p><b>  TR0 =1;</b></p><p><b>  wh

41、ile(1)</b></p><p><b>  {</b></p><p>  KeyTemp=KeyScan();//暫存按鍵值</p><p>  if(KeyTemp ==-1||(KeyTemp<=15&&KeyTemp>=9)) continue;</p><p>

42、;  //當按鍵值等于返回值-1或者按到按鍵矩陣上未用到的按鍵,則不往下執行!</p><p>  SegPorts=Seg_Code[KeyTemp];</p><p>  //如果按鍵值與按鍵矩陣相對應,則往下執行并顯示相對應的音調</p><p>  MusicPlayer(KeyTemp);</p><p><b>  //

43、相對應的音樂</b></p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  void Tone_Long()interrupt 1</p><p

44、><b>  {</b></p><p>  TH0 =(65536-50000)/256; //50ms的定時,對應相應節拍,查資料知道一個節拍對應400ms~500ms</p><p>  TL0 =(65536-50000)%256;</p><p><b>  nTimes++;</b></p>

45、;<p><b>  }</b></p><p><b>  按鍵掃描程序</b></p><p>  頭文件(KeyScan.h):</p><p>  #include<reg51.h></p><p>  #define KeyPorts P1 //鍵盤接口</

46、p><p>  char KeyScan(void);//按鍵掃描函數</p><p>  extern void delay_15us(unsigned char n);//延時時間計算T=(15*n)us</p><p>  C文件(KeyScan.c):</p><p>  #include"KeyScan.h"<

47、/p><p>  char KeyScan()</p><p><b>  {</b></p><p>  char KeyValue;</p><p>  KeyPorts=0x0f; //行掃描</p><p>  while(KeyPorts != 0x0f)<

48、;/p><p><b>  {</b></p><p>  delay_15us(100);</p><p>  while(KeyPorts !=0x0f)</p><p><b>  {</b></p><p>  switch(KeyPorts)</p>&l

49、t;p><b>  {</b></p><p>  case 0x0e: KeyValue=0; break;</p><p>  case 0x0d: KeyValue=1; break;</p><p>  case 0x0b: KeyValue=2; break;</p><p>  case 0x07: K

50、eyValue=3; break;</p><p>  default:break;</p><p><b>  }</b></p><p>  KeyPorts=0xf0;//列掃描</p><p>  delay_15us(100);</p><p>  switch(KeyPorts)<

51、;/p><p><b>  {</b></p><p>  case 0xe0: KeyValue=KeyValue*4; break;</p><p>  case 0xd0: KeyValue=KeyValue*4+1;break;</p><p>  case 0xb0: KeyValue=KeyValue*4+2;

52、break;</p><p>  case 0x70: KeyValue=KeyValue*4+3;break;</p><p>  default:break;</p><p><b>  }</b></p><p>  while(KeyPorts!=0xf0);//松手檢測</p><p>

53、  return KeyValue;</p><p><b>  }</b></p><p><b>  }</b></p><p>  return -1;</p><p><b>  }</b></p><p>  void delay_15us(

54、unsigned char n) //n*15+8=T/2,用來設置音調的</p><p><b>  {</b></p><p>  unsigned char x,y;</p><p><b>  x=n;</b></p><p>  while(x!=0)</p><p

55、><b>  {</b></p><p><b>  y=4;</b></p><p>  while(y!=0)</p><p><b>  {</b></p><p><b>  y--;</b></p><p>

56、<b>  }</b></p><p><b>  x--;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  音樂播放程序</b></p><p&

57、gt;  頭文件(PlayMusic.h):</p><p>  #include<reg51.h></p><p>  #include"KeyScan.h"</p><p>  sbit Voice=P2^0; //蜂鳴器接口</p><p>  extern unsigned cha

58、r nTimes; //全局變量</p><p>  voidMusicPlayer(char Music_Channel);</p><p>  C文件(PlayMusic.c):</p><p>  #include"PlayMusic.h"</p><p>  unsigned char Do[] ={127,1

59、0,0}; //對應{音調n,節拍,停止}</p><p>  unsigned char Re[] ={113,10,0};</p><p>  unsigned char Mi[] ={101,10,0};</p><p>  unsigned char Fa[] ={95,10,0};</p><p>  unsigned c

60、har Sol[]={85,10,0};</p><p>  unsigned char La[] ={75,10,0};</p><p>  unsigned char Si[] ={67,10,0};</p><p>  unsigned char code Music_1[]={</p><p>  31,28,37,4,31,2

61、8,42,24,37,4,42,4,37,36,31,28,37,4,</p><p>  31,28,42,4,42,20,37,4,42,4,37,4,37,32,37,12,33,4,</p><p>  31,4,25,8,38,4,31,4,33,4,37,4,33,4,37,4,33,16,42,12,</p><p>  37,4,33,4,28,4,

62、31,4,33,4,37,4,42,4,37,4,42,4,37,16,</p><p>  37,12,33,4,31,4,25,4,28,4,31,4,33,4,37,4,33,4,37,4,</p><p>  33,16,42,12,37,4,33,4,28,4,31,4,33,4,25,8,31,8,28,8,</p><p>  37,8,25,4,28

63、,4,31,4,28,4,37,16,25,18,31,8,28,16,21,4,</p><p>  25,4,33,8,31,8,31,4,33,4,37,8,16,4,31,4,28,8,42,8,</p><p>  19,4,21,4,25,20,28,4,31,8,28,8,25,4,28,4,25,4,28,4,</p><p>  21,4,21,3

64、2,0</p><p>  }; //小蘋果</p><p>  unsigned char code Music_2[]={</p><p>  56,4,50,2,42,6,37,4,56,4,50,2,42,6,37,4,50,8,56,8,</p><p>  63,16,37,12,42,8,50,4,56,4,50,

65、4,56,4,63,2,50,18,</p><p>  56,4,50,2,46,2,37,8,56,4,50,2,42,6,37,4,50,4,56,4,</p><p>  50,4,56,4,63,16,37,12,42,8,50,4,56,4,50,4,56,4,63,2,</p><p>  50,18,56,4,50,2,42,6,37,4,56,4,

66、50,6,37,4,50,4,56,4,</p><p>  50,4,42,4,63,12,37,12,42,8,50,4,56,2,50,4,56,2,63,16,</p><p>  50,2,42,4,50,2,42,4,50,4,37,8,50,4,56,4,63,4,37,4,63,4,</p><p>  42,4,50,16,37,12,42,4,3

67、7,8,25,4,31,4,28,16,42,4,37,4,</p><p>  21,4,25,6,37,4,28,12,31,4,33,4,42,4,28,4,25,4,31,12,</p><p>  28,4,25,4,28,6,31,4,28,4,31,4,21,4,19,4,25,16,42,4,37,4,</p><p>  21,4,25,6,19,

68、4,28,12,31,4,3,4,42,4,28,4,25,3,31,8,37,4,</p><p>  25,4,31,4,31,2,37,6,25,4,31,8,37,8,31,12,0</p><p>  }; //清明雨上</p><p>  void MusicPlayer(char Music_Channel)</p><p

69、><b>  {</b></p><p>  unsigned char *p; </p><p>  unsigned char Tone,Rhythm;</p><p>  switch(Music_Channel)</p><p><b>  {</b></p><

70、p>  case 0: p=Do; break;</p><p>  case 1: p=Re; break;</p><p>  case 2: p=Mi; break;</p><p>  case 3: p=Fa; break;</p><p>  case 4: p=Sol;break;</p><p>

71、  case 5: p=La; break;</p><p>  case 6: p=Si; break;</p><p>  case 7: p=Music_1; break;</p><p>  case 8: p=Music_2; break; //指向不同的數組,播放不同的音樂</p><p>  default :return;

72、</p><p><b>  }</b></p><p>  Tone=*p; //音調</p><p><b>  p++;</b></p><p>  Rhythm=*p; //節拍</p><p><b>  p++;

73、</b></p><p>  while(Tone != 0)</p><p><b>  { </b></p><p>  //0x00作為休止符</p><p><b>  nTimes=0;</b></p><p>  while(nTimes != Rh

74、ythm)</p><p><b>  {</b></p><p>  Voice=~Voice;</p><p>  delay_15us(Tone);</p><p><b>  }</b></p><p>  Tone=*(p++);</p><

75、;p>  Rhythm=*(p++);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  4.2.4軟件調試</b></p><p>  調試過程主要是在Keil4軟件中進行Debug,查找語法錯誤。首先測試矩陣

76、鍵盤程序是否正常,按下按鍵看能否顯示正確的數值。測試正常后加入音樂播放模塊,按下1-7聽到Do,Re,Mi,Fa,Sol,La,Si的音調。最后再按下8或9和并和原始音樂對比。</p><p><b>  參考文獻</b></p><p>  [1] 楊恢先,黃輝先.單片機原理及應用[M].北京:人民郵電出版社,2006.</p><p>  

77、[2] 胡洪波.單片機原理及應用實驗教程[M].湖南:湘潭大學出版社,2009.</p><p>  [3] 陳海燕.51單片機原理及應用[M].北京:北京航空航天大學出版社,2010.</p><p>  [4] 郭天祥.新概念51單片機C語言教程[M].北京:電子工業出版社,2009.</p><p><b>  心得體會</b></

78、p><p>  首先感謝***老師。在這個星期中,我遇到了許多的困難和挑戰,在***老師的精心指導和同學的幫助下,完成了課程設計的任務。</p><p>  課程設計的同時,我也發現了一些自己在學習和實踐中存在的一些問題。剛開始課設的時候,還是顯得有些茫然。但隨著時間推移,自己在對問題的理解方面更加深入。盡管遇到了各種各樣的問題,但最終還是在不懈努力下得以解決。</p><

79、p>  忙碌了一個星期,在大家的共同努力下,我總算實現了最初的設計方案。這其中有遭遇難題的痛苦思考,也有調試成功的喜悅。這樣的一段經歷,相信在我的一生回憶中都會有重要的位置。</p><p>  課程設計的時間盡管略顯短暫,但是通過自己設計原理,編寫程序,調試硬件,并最終完成設計。設計的題目雖然簡單,但是卻體現了一個完整的設計流程的所有內容,進一步鞏固了課內所學的知識,進一步培養了我們親身實踐的能力,這對我

80、們將來的工作和研究都是大有好處的。我想這也是課程設計的真正目的所在。</p><p>  通過本次實訓,對單片機的一系列知識,進行了一次系統的復習,熟悉了一些簡單的程序,如延時程序,并溫習了一些原來的東西,如按鍵的掃描及去抖動等。</p><p>  在本次試驗中,學會了從程序的主體功能考慮要達到一個什么樣的要求,從而,將程序分成各個子程序,逐個寫出,分布細化,從而減少程序出錯機率,并且易

81、于檢查各部分程序,根據任務功能所要達到的要求來進行檢查,看到哪個模塊所對應的程序不對,就檢查哪個模塊,提高了檢查效率。同時可以使程序條理清晰,方便改錯。為了提高程序可讀性,可以加注釋對程序的功能加以解釋說明,并且在各個子程序之間以獨立來分隔。</p><p>  在這里,因為我們的音樂播放是以查表的方式進行,所以首先我們要根據晶振的頻率將音樂樂譜轉化為自己做的表格,對照音樂簡譜把代碼寫出來,完成音樂的播放,音樂播

溫馨提示

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

評論

0/150

提交評論