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

下載本文檔

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

文檔簡介

1、<p>  單片機(jī)原理及系統(tǒng)課程設(shè)計</p><p>  專 業(yè): 自動控制 </p><p>  班 級: </p><p>  姓 名: </p><p>  學(xué) 號: </p><p>  2014 年 1

2、月 15 日</p><p> 評語:</p><p> 考勤10分守紀(jì)10分過程30分設(shè)計報告30分答辯20分總成績(100分)</p><p>  基于單片機(jī)的多音階電子琴的設(shè)計</p><p><b>  1 設(shè)計題目</b></p><p>  本次單片機(jī)原理與系統(tǒng)課程設(shè)計題目是基于單片機(jī)

3、的多音階電子琴。主要將十個音鍵制作成獨立鍵盤,并用數(shù)碼管進(jìn)行顯示。本設(shè)計還預(yù)先存放一段音樂程序在芯片內(nèi),整個設(shè)計既可以作電子琴用又可以作音樂盒用,且?guī)э@示功能。</p><p><b>  2 設(shè)計目的</b></p><p>  1、通過課程設(shè)計,使我們能夠深入理解單片機(jī)系統(tǒng)的工作原理,接口電路的設(shè)計及調(diào)試方法,培養(yǎng)綜合運用所學(xué)理論知識分析和解決實際問題的能力;&l

4、t;/p><p>  2、使用AT89C52芯片的串口功能,利用獨立式鍵盤和AT89C52單片機(jī)以及揚聲器實現(xiàn)樂曲的演奏;</p><p>  3、用keil軟件進(jìn)行編程與調(diào)試,利用Proteus 7 Professional軟件進(jìn)行繪制硬件電路圖且進(jìn)行仿真.</p><p><b>  3 設(shè)計方案及原理</b></p><p

5、>  3.1 總體設(shè)計方案</p><p>  采用AT89C52單片機(jī)作為主控芯片,設(shè)置鍵盤、蜂鳴器等外圍器件,另外還用到一些簡單器件如:四位數(shù)碼管和NPN型三極管及電阻等。利用按鍵實現(xiàn)音符和音調(diào)的輸入,兩位的數(shù)碼管進(jìn)行被操作的按鍵顯示,用NPN型三極管8550實現(xiàn)低音頻功率放大,最后用蜂鳴器發(fā)音。</p><p>  3.2系統(tǒng)原理及結(jié)構(gòu)</p><p>

6、  本系統(tǒng)基本結(jié)構(gòu)框圖如圖1所示。</p><p><b>  圖1 原理框圖</b></p><p><b>  4 硬件設(shè)計</b></p><p><b>  4.1時鐘電路 </b></p><p>  單片機(jī)內(nèi)部具有一個高增益反相放大器,用于構(gòu)成振蕩器。通常在引腳XT

7、ALl和XTAL2跨接石英晶體和兩個補(bǔ)償電容構(gòu)成自激振蕩器,如結(jié)構(gòu)圖2 中X1、C1、C2。</p><p><b>  圖 2 時鐘電路</b></p><p><b>  4.2復(fù)位電路 </b></p><p>  單片機(jī)系統(tǒng)常采用上電自動復(fù)位和手動按鍵復(fù)位兩種方式實現(xiàn)系統(tǒng)的復(fù)位操作。上電復(fù)位要求接通電源后,自動實現(xiàn)

8、復(fù)位操作。手動復(fù)位要求在電源接通的條件下,在單片機(jī)運行期間,用按鈕開關(guān)操作使單片機(jī)復(fù)位。其結(jié)構(gòu)如圖3所示。</p><p><b>  圖 3 復(fù)位電路</b></p><p><b>  4.3顯示部分</b></p><p>  本次課程設(shè)計的顯示電路采用兩位數(shù)碼管進(jìn)行顯示。如圖4所示。</p><

9、p><b>  圖 4 數(shù)碼管電路</b></p><p>  4.4 按鍵與發(fā)音部分</p><p>  鍵盤設(shè)計:獨立式按鍵是直接用I/O口線構(gòu)成的單個按鍵電路,其特點是每個按鍵單獨占用一根I/O口線,每個按鍵的工作不會影響其它I/O口線的狀態(tài)。獨立式鍵盤如圖5所示。</p><p><b>  圖 5 獨立式鍵盤</

10、b></p><p>  發(fā)音部分設(shè)計:有一個按鍵和揚聲器組成。電路如圖6所示。</p><p>  圖 6 發(fā)音部分電路</p><p><b>  5 軟件設(shè)計</b></p><p><b>  5.1 系統(tǒng)分析</b></p><p>  系統(tǒng)的軟件組成:(1)

11、鍵盤掃描程序:檢測是否有按鍵按下,有按鍵按下則記錄按下鍵的鍵值,并跳轉(zhuǎn)至功能轉(zhuǎn)移程序,無按鍵按下,則返回鍵盤掃描程序繼續(xù)檢測。</p><p> ?。?)功能轉(zhuǎn)移程序:對檢測到的按鍵值進(jìn)行判斷,是琴鍵則跳轉(zhuǎn)至琴鍵處理程序,是功能鍵則跳轉(zhuǎn)至相應(yīng)的功能程序。</p><p> ?。?)琴鍵處理程序:根據(jù)檢測到的按鍵值,查詢音調(diào)表,給計時器賦值,使發(fā)出相應(yīng)頻率的聲音。</p>&l

12、t;p>  (4)自動播放歌曲程序:檢測到按鍵按下的是自動播放歌曲功能鍵后執(zhí)行該程序,電子琴會自動播放事先已經(jīng)存放的歌曲。</p><p>  系統(tǒng)總體流程圖見附錄1。</p><p><b>  5.2程序設(shè)計</b></p><p>  C編程語言程序見附錄2。</p><p>  6 系統(tǒng)仿真及實際調(diào)試<

13、;/p><p><b>  6.1 仿真結(jié)果</b></p><p>  仿真結(jié)果如圖7所示。</p><p><b>  圖7 系統(tǒng)仿真圖</b></p><p><b>  6.2結(jié)果分析</b></p><p>  根據(jù)仿真結(jié)果可知,本次課程設(shè)計能夠

14、準(zhǔn)確并徹底的完成設(shè)計要求。右側(cè)數(shù)碼管顯示0、1、2三種結(jié)果時,分別代表低音、中音和高音。右側(cè)數(shù)碼管顯示1、2、3、4、5、6、7七個數(shù)字時,分別代表DO、RE、MI、FA、SO、LA、SI七種音符。當(dāng)系統(tǒng)上電后,若按下低音鍵,則選定工作方式為低音模式。P0口連接數(shù)碼管段選端,右側(cè)數(shù)碼管顯示的3即代表MI。四位數(shù)碼管即代表低音MI。</p><p><b>  7 總結(jié)</b></p&g

15、t;<p>  本次課程設(shè)計主要涉及硬件和軟件兩方面的內(nèi)容,通過這些使我的硬件和軟件開發(fā)能力都獲得了提高。硬件方面,基本了解了電子產(chǎn)品的開發(fā)流程和所要做的工作。通過硬件搭建的過程,使我對52系列單片機(jī)的接口有了更深層次的理解,熟悉了一些單片機(jī)常用的外圍電路引腳和連接方法,如LED數(shù)碼管,鍵盤等。在軟件方面,我的能力比較差,為了很好地完成軟硬件結(jié)合,我努力學(xué)習(xí)52系列單片機(jī)內(nèi)部的寄存器和編程規(guī)則以及學(xué)習(xí)了如何控制外圍電路等內(nèi)

16、容。通過此次設(shè)計我發(fā)現(xiàn)自己對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,因此也利用圖書館、網(wǎng)絡(luò)資源查閱了大量文獻(xiàn)資料,也請教了老師和同學(xué)。本次課程設(shè)計是我學(xué)到了很多,一方面,將自己的理論知識與實踐相結(jié)合起來,進(jìn)一步鞏固了專業(yè)基礎(chǔ)知識和相關(guān)專業(yè)課程知識;另一方面,更培養(yǎng)了自己獨立自主、綜合分析的思維與創(chuàng)新能力。</p><p>  最后,衷心的感謝各位老師和同學(xué)的精心指導(dǎo),使我能夠順利地完成本次課程設(shè)計。<

17、;/p><p><b>  參考文獻(xiàn)</b></p><p>  [1]蘇家健,曹柏榮,汪志鋒. 單片機(jī)原理及應(yīng)用技術(shù). 北京:高等教育出版社,2003</p><p>  [2]李朝青. 單片機(jī)原理及接口技術(shù). 北京:北京航天航空大學(xué)出版色,2001</p><p>  [3]胡漢才. 單片機(jī)原理及其接口技術(shù). 北京:清華

18、大學(xué)出版社,2004.</p><p>  [4]潭浩強(qiáng). C語言程序設(shè)計. 北京:清華大學(xué)出版社,2005</p><p>  [5]王思明,張金敏,張鑫等,單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計[M].北京:科學(xué)出版社,2012.</p><p>  附錄1 系統(tǒng)總體流程圖</p><p>  附錄 2 源程序代碼</p><p

19、>  #include<reg52.h> </p><p>  #define uchar unsigned char</p><p>  void Run(void);</p><p>  void KeyScan(void); </p><p>  void PlayKey(void); </p><

20、p>  void delay_1ms(uchar i); </p><p>  void PlayMusic(void); </p><p>  void DisPlay(void);</p><p>  sbit Beep=P3^7; </p><p>  uchar Th0,Tl0; //TH0,TL

21、0 </p><p>  uchar flag=0xff; //模式,0表示音樂,ff表示按鍵</p><p>  uchar key=0; //按鍵代號 </p><p>  uchar a; uchar gaodi=0; //音樂音符 </p><p>  

22、uchar code MusicCode[]={0XFc,0X44,0XFc,0Xac,0XFd,0X09,0XFd,0X34, </p><p>  0XFD,0X82,0XFD,0Xc8,0XFD,0X06,0XFb,0X04, </p><p>  0Xfb,0X90,0Xfc,0X0c,0Xfe,0X22,0Xf9,0X5b,0Xfa,0x15 };

23、 //月亮代表我的心 </p><p>  uchar code Music[]={</p><p>  0X02,0X82, </p><p>  0X16,0X32,0X54,0X02,0X52, </p><p>  0XA6,0X32,0X54,0X02,0X52,</p><p>

24、  0X64,0X74,0XB6,0X64,</p><p>  0X52,0X5C,0X32,0X22, </p><p>  0X16,0X12,0X14,0X32,0X22, </p><p>  0X16,0X12,0X14,0X22,0X32, </p><p>  0X26,0X12,0X94,0X22,0X32, </p&

25、gt;<p><b>  0X2C, </b></p><p>  0X32,0X52, </p><p>  0X36,0X22,0X14,0X54, </p><p>  0XAC,0X92,0XA2,</p><p>  0X96,0X0A2,0X96,0X82, </p><p&

26、gt;  0X3C,0X54,</p><p>  0X36,0X22,0X14,0X54, </p><p>  0XAC,0X92,0XA2,</p><p>  0X16,0X12,0X14,0X22,0X32, </p><p>  0X2C,0X02,0X82, </p><p>  0X16,0X32,0X

27、56,0X12, </p><p>  0XA6,0X32,0X56,0X52,</p><p>  0X66,0X72,0XB6,0X62,</p><p>  0X62,0X52,0X58,0X32,0X22,</p><p>  0X16,0X12,0X14,0X32,0X22,</p><p>  0X16,0

28、X12,0X14,0X22,0X32, </p><p><b>  0X1C,</b></p><p><b>  0XFF};</b></p><p><b>  //按鍵音符</b></p><p>  uchar code KeyCode[]={0XFF,0XFF, &

29、lt;/p><p>  0xF8,0x8B,0xF9,0x5B,0xFA,0x14,0xFA,0x66,0xFB,0x03,0xFB,0x8F,0xFC,0x0B,//低音 </p><p>  0xFC,0x43,0xFC,0xAB,0xFD,0x08,0xFD,0x33,0xFD,0x81,0xFD,0xC7,0xFE,0x05,//中音 </p><p>  0x

30、FE,0x21,0xFE,0x55,0xFE,0x84,0xFE,0X99,0XFE,0xC0,0xFE,0xE3,0xFF,0x02,//高音</p><p><b>  }; </b></p><p>  void main(void) </p><p><b>  {</b></p><p>

31、  P1=0XFF; //初始化 </p><p><b>  P0=0XFF; </b></p><p><b>  P2=0;</b></p><p>  TMOD=0X01; </p><p><b>  IT0=1;</b>&

32、lt;/p><p><b>  TR0=0; </b></p><p><b>  EX0=1; </b></p><p><b>  ET0=1; </b></p><p><b>  EA=1; </b></p><p> 

33、 while(1) </p><p><b>  { </b></p><p>  KeyScan(); //按鍵掃描 </p><p>  Run(); //運行 </p><p>  DisPlay();

34、 //顯示 </p><p><b>  }</b></p><p><b>  }</b></p><p>  void Run(void) //運行 </p><p><b>  {</b></p>&

35、lt;p>  if(flag==0) </p><p>  PlayMusic(); </p><p>  else PlayKey();</p><p><b>  } </b></p><p>  void KeyScan(void) //按鍵掃描 </p><p

36、>  { if(P1==0XFE) //第一按鍵按下 </p><p>  { delay_1ms(12); //延時12MS </p><p>  if(P1==0XFE) //確定按下 </p><p>  {key=1; a=key;</p><p

37、><b>  }</b></p><p><b>  } </b></p><p>  else if(P1==0XFD)</p><p><b>  { </b></p><p>  delay_1ms(12);</p><p>  if(P1

38、==0XFD) </p><p>  {key=2; a=key;} </p><p><b>  } </b></p><p>  else if(P1==0XFB) </p><p><b>  { </b></p><p>  delay_1ms(12);

39、</p><p>  if(P1==0XFB) </p><p><b>  {key=3; </b></p><p><b>  a=key;}</b></p><p><b>  } </b></p><p>  else if(P1==0X

40、F7) </p><p><b>  {</b></p><p>  delay_1ms(12);</p><p>  if(P1==0XF7)</p><p><b>  {key=4; </b></p><p><b>  a=key;}</b>

41、</p><p><b>  } </b></p><p>  else if(P1==0XEF) </p><p><b>  {</b></p><p>  delay_1ms(12);</p><p>  if(P1==0XEF)</p><p>

42、;<b>  {key=5; </b></p><p><b>  a=key;}</b></p><p><b>  }</b></p><p>  else if(P1==0XDF)</p><p><b>  {</b></p><

43、;p>  delay_1ms(12);</p><p>  if(P1==0XDF)</p><p><b>  {key=6;</b></p><p><b>  a=key;}</b></p><p><b>  }</b></p><p> 

44、 else if(P1==0XBF)</p><p><b>  {</b></p><p>  delay_1ms(12);</p><p>  if(P1==0XBF)</p><p><b>  {key=7;</b></p><p><b>  a=key;

45、}</b></p><p><b>  }</b></p><p>  else if(P0==0XFE) //低音模式鍵按下</p><p>  { delay_1ms(12); </p><p>  if(P0==0XFE)</p><p><b

46、>  {gaodi=0;</b></p><p><b>  a=gaodi;}</b></p><p><b>  } </b></p><p>  else if(P0==0XFD) //中音模式鍵按下 </p><p><b>  {

47、 </b></p><p>  delay_1ms(12);</p><p>  if(P0==0XFD)</p><p>  {gaodi=1; </p><p><b>  a=gaodi;}</b></p><p><b>  } </b></p>

48、;<p>  else if(P0==0XFB) //高音模式鍵按下 </p><p><b>  { </b></p><p>  delay_1ms(12);</p><p>  if(P0==0XFB)</p><p>  {gaodi=2; </p>

49、<p><b>  a=gaodi;}</b></p><p><b>  }</b></p><p>  else return;</p><p><b>  } </b></p><p>  void PlayKey(void)

50、 //響應(yīng)按鍵</p><p><b>  { </b></p><p>  if(key==0)</p><p><b>  return;</b></p><p><b>  else</b></p><p><b>  {<

51、;/b></p><p>  Th0=KeyCode[gaodi*14+key*2];</p><p>  Tl0=KeyCode[gaodi*14+key*2+1];</p><p>  TR0=1; delay_1ms(187);</p><p>  TR0=0; key=0;</p><p><

52、;b>  }</b></p><p><b>  }</b></p><p>  time0() interrupt 1 //定時器0中斷</p><p><b>  { </b></p><p><b>  TH0=Th0;<

53、;/b></p><p><b>  TL0=Tl0;</b></p><p>  Beep=~Beep;</p><p><b>  }</b></p><p>  void interrupt0() interrupt 0 //外部中斷0</p>&l

54、t;p><b>  {</b></p><p>  flag=~flag;</p><p>  if(flag==0)</p><p><b>  {</b></p><p><b>  a=8;</b></p><p><b>  P2

55、=0;</b></p><p><b>  } </b></p><p><b>  }</b></p><p>  void delay_1ms(uchar i) //延時 </p><p><b>  {</b></p&g

56、t;<p>  uchar j,k;</p><p>  for(j=0;j<i;j++)</p><p>  for(k=0;k<148;k++)</p><p><b>  ; </b></p><p><b>  }</b></p><p> 

57、 void PlayMusic(void) //播放音樂</p><p>  { uchar yinfu,jiepai;</p><p>  uchar i,j;</p><p>  for(i=0;Music[i]!=0XFF;i++)</p><p><b>  {</b>&l

58、t;/p><p>  yinfu=(Music[i]>>4);</p><p>  jiepai=(Music[i]&0X0F);</p><p>  if(yinfu==0)</p><p><b>  continue;</b></p><p>  Th0=MusicCode[

59、(yinfu-1)*2];</p><p>  Tl0=MusicCode[(yinfu-1)*2+1];</p><p><b>  TR0=1;</b></p><p>  for(j=jiepai;j>0;--j)</p><p><b>  {</b></p><p

60、>  delay_1ms(250);</p><p><b>  }</b></p><p><b>  TR0=0;</b></p><p>  if(flag!=0)</p><p><b>  break;</b></p><p><b

61、>  }</b></p><p><b>  }</b></p><p>  void DisPlay(void) //顯示</p><p><b>  {</b></p><p><b>  switch(a)</b>

62、</p><p><b>  { </b></p><p>  case 0: P2= 0X3F;break;</p><p>  case 1: P2= 0X06;break;</p><p>  case 2: P2= 0X5B;break;</p><p>  case 3: P2= 0X4

63、F;break; </p><p>  case 4: P2= 0X66;break;</p><p>  case 5: P2= 0X6D;break;</p><p>  case 6: P2= 0X7D;break;</p><p>  case 7: P2= 0X07;break;</p><p>  defa

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論