音樂倒數(shù)定時(shí)器課程設(shè)計(jì)_第1頁
已閱讀1頁,還剩7頁未讀 繼續(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>  單片機(jī)課程設(shè)計(jì)與制作說明書</p><p><b>  電子工程系</b></p><p>  單片機(jī)課程設(shè)計(jì)任務(wù)書</p><p>  專業(yè):電子信息工程技術(shù)      年級(jí):2011 級(jí)</p><p>  音樂倒數(shù)定時(shí)器課程設(shè)計(jì)</p><p><b>  一

2、 設(shè)計(jì)原理</b></p><p>  1利用單片機(jī)板程序可移植性,運(yùn)用單片機(jī)軟件寫一個(gè)音樂倒計(jì)時(shí)軟件,在程序里利用延遲的不同來確定音的頻率,利用節(jié)拍決定音符的長(zhǎng)短.</p><p>  2蜂鳴器(P1.2端口)產(chǎn)生音樂的原理</p><p>  音樂聲的產(chǎn)生是有定時(shí)器來產(chǎn)生固定頻率的方波信號(hào)推動(dòng)壓電喇叭,發(fā)出旋律。而定時(shí)器原先已利用設(shè)計(jì)時(shí)間計(jì)時(shí)處理了,

3、怎么能在設(shè)計(jì)來做音樂旋律的控制?在此設(shè)計(jì)定義一個(gè)音樂演奏標(biāo)志,若音樂演奏標(biāo)志為0則執(zhí)行中斷程序中計(jì)時(shí)程序的部分程序,若音樂演奏標(biāo)志為1則執(zhí)行音樂發(fā)生控制程序。因此只要適當(dāng)?shù)倪\(yùn)用程序設(shè)計(jì)技巧,計(jì)時(shí)中斷程序中可以做許多種不同的工作,而這些工作是需要特定一段時(shí)間久必須要被觸發(fā)而被執(zhí)行的程序。</p><p><b>  3計(jì)數(shù)器原理</b></p><p>  定時(shí)器設(shè)計(jì)時(shí)

4、間計(jì)時(shí)處理,其時(shí)分秒控制,定時(shí)器0計(jì)時(shí)中斷程序每個(gè)5ms中斷一次當(dāng)做一個(gè)計(jì)數(shù),每中斷一次則計(jì)數(shù)加1,當(dāng)計(jì)數(shù)200次時(shí),表示1s到了,秒變量加1,同理再判斷是否9鐘到了,若計(jì)數(shù)到了則將相關(guān)變量清除為0。通過對(duì)時(shí)間進(jìn)行/10(求整,求出整數(shù)位溫度),%10(求余,求出個(gè)位數(shù)溫度),把最后的溫度整數(shù)位和個(gè)位賦值給P0口通過1602顯示出來。當(dāng)時(shí)間為0是,關(guān)閉定時(shí)中斷T0,并打開音樂定時(shí)中斷T1通過P1.2導(dǎo)通蜂鳴器播放音樂。</p>

5、;<p><b>  二 設(shè)計(jì)目的</b></p><p>  1 通過該設(shè)計(jì)提高分析解決問題的能力。</p><p>  2 了解模擬電路及數(shù)字電路的相關(guān)知識(shí)。</p><p>  3 學(xué)習(xí)單片機(jī)定時(shí)器時(shí)間計(jì)時(shí)處理,按鍵掃描,LCD顯示及音樂演奏的設(shè)計(jì)方法。</p><p>  三 設(shè)計(jì)過程和硬件需要&l

6、t;/p><p>  用單片機(jī)的仿真軟件測(cè)試程序的可用性,測(cè)試好了再把程序輸進(jìn)單片機(jī)板,再在接口處接上蜂鳴器.在這過程中可能會(huì)遇到LCD板不顯示或者出現(xiàn)白條,解決辦法是調(diào)節(jié)屏幕對(duì)比度再重置或者重新載入程序.</p><p>  四 部分硬件方案論述 </p><p>  1 LCD1602顯示方式</p><p><b>  五 程序解

7、析</b></p><p>  #include<reg51.h></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>  sbit lcde=P2^6; //確定位地址<

8、;/p><p>  sbit lcdrs=P2^4;</p><p>  sbit lcdw=P2^5;</p><p>  sbit speaker=P1^2; //蜂鳴器接口</p><p>  uchar code table[]="0432 00/00/00";</p><p&

9、gt;  uchar code table1[]=" 00:00:09";</p><p>  uchar count,s1num;</p><p>  static char miao=9,shi=0,fen=0;</p><p>  //生日快樂歌的音符頻率表,不同頻率由不同的延時(shí)來決定</p><p>  uc

10、har code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159,</p><p>  212,212,106,126,159,169,190,119,119,126,159,142,159,0};</p><p>  //uchar code SONG_TONE[]={212,212,190,212,159,169

11、,0};</p><p>  //生日快樂歌節(jié)拍表,節(jié)拍決定每個(gè)音符的演奏長(zhǎng)短</p><p>  uchar code SONG_LONG[]={9,3,12,12,12,24,9,3,12,12,12,24,</p><p>  9,3,12,12,12,12,12,9,3,12,12,12,24,0};</p><p>  //ucha

12、r code SONG_LONG[]={9,3,12,12,12,24,0};</p><p><b>  //延時(shí)</b></p><p>  void delay(uint z)</p><p><b>  {</b></p><p><b>  uint x,y;</b>

13、</p><p>  for(x=z;x>0;x--)</p><p>  for(y=110;y>0;y--);</p><p><b>  }</b></p><p>  void write_com(uchar x) </p><p><b> 

14、 {P0=x;</b></p><p><b>  lcdrs=0;</b></p><p><b>  lcdw=0;</b></p><p><b>  lcde=1;</b></p><p><b>  delay(2);</b><

15、;/p><p><b>  lcde=0;</b></p><p><b>  lcdw=0;</b></p><p><b>  }</b></p><p>  void write_date(uchar x)</p><p><b>  {&l

16、t;/b></p><p><b>  lcdrs=1;</b></p><p><b>  lcdw=0;</b></p><p><b>  P0=x;</b></p><p>  //delay(5);</p><p><b> 

17、 lcde=1;</b></p><p><b>  delay(2);</b></p><p><b>  lcde=0;</b></p><p><b>  }</b></p><p>  void write_sfm(uchar add,uchar date)

18、 //時(shí)間函數(shù)</p><p><b>  {</b></p><p>  uchar shi,ge;</p><p>  shi=date/10;</p><p>  ge=date%10;</p><p>  write_com(0x80+0x40+add);</p><

19、p>  write_date(0x30+shi);</p><p>  write_date(0x30+ge);</p><p><b>  }</b></p><p><b>  //播放函數(shù)</b></p><p>  void PlayMusic()</p><p&g

20、t;  { uint i=0,j,k;</p><p>  while(SONG_LONG[i]!=0||SONG_TONE[i]!=0)</p><p>  { //播放各個(gè)音符,SONG_LONG為拍子長(zhǎng)度</p><p>  for(j=0;j<SONG_LONG[i]*20;j++)</p><p><b>  {&

21、lt;/b></p><p>  speaker=~speaker;</p><p>  //SONG_TONE延時(shí)表決定了每個(gè)音符的頻率</p><p>  for(k=0;k<SONG_TONE[i]/3;k++);</p><p><b>  }</b></p><p>  de

22、lay(10);</p><p><b>  i++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void init()</p><p><b>  {</b><

23、;/p><p>  uchar num;</p><p>  write_com(0x38);</p><p>  write_com(0x0c);</p><p>  write_com(0x06);</p><p>  write_com(0x01);</p><p>  write_com(0

24、x80);</p><p>  for(num=0;num<15;num++)</p><p><b>  {</b></p><p>  write_date(table[num]);</p><p><b>  delay(5);</b></p><p><b

25、>  }</b></p><p>  write_com(0x80+0x40);</p><p>  for(num=0;num<12;num++)</p><p><b>  {</b></p><p>  write_date(table1[num]);</p><p>

26、;<b>  delay(5);</b></p><p><b>  }</b></p><p>  TMOD=0x01; //工作在0方式</p><p>  TH0=(65536-50000)/256; //計(jì)數(shù)初值</p><p>  TL0=(65536-50000)%256;<

27、/p><p><b>  EA=1;</b></p><p><b>  ET0=1;</b></p><p>  TR0=1; //中斷溢出</p><p><b>  }</b></p><p>  void main()</p>&l

28、t;p><b>  {init();</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  if(miao==0&&fen==0&&shi==0)</p><p><

29、b>  {TR0=0;</b></p><p>  PlayMusic();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void tim

30、er0() interrupt 1 //中斷一 讀取時(shí)間</p><p><b>  {</b></p><p>  TH0=(65536-50000)/256;</p><p>  TL0=(65536-50000)%256;</p><p><b>  count++;</b></p&g

31、t;<p>  if(count==18)</p><p><b>  {count=0;</b></p><p><b>  miao--;</b></p><p>  if(miao==-1)</p><p><b>  {miao=59;</b></p

32、><p><b>  fen--;</b></p><p>  if(fen==-1)</p><p><b>  {fen=59;</b></p><p><b>  shi--;</b></p><p>  if(shi==-1)</p>

33、<p><b>  {</b></p><p><b>  shi=23;</b></p><p><b>  }</b></p><p>  write_sfm(4,shi);</p><p><b>  }</b></p>&l

34、t;p>  write_sfm(7,fen);</p><p><b>  }</b></p><p>  write_sfm(10,miao);</p><p><b>  }</b></p><p><b>  }</b></p><p>&l

35、t;b>  六 總結(jié)</b></p><p>  音樂倒計(jì)時(shí)設(shè)計(jì)完成了,但是功能比較少,能夠做出來的音樂比較少,定時(shí)在程序里面完成,顯得比較繁瑣.所以相對(duì)一個(gè)好的系統(tǒng)來說存在著幾點(diǎn)不足:</p><p>  1 需要在程序里面完成定時(shí).</p><p><b>  2 音樂體裁較少.</b></p><p&

36、gt;<b>  設(shè)計(jì)體會(huì):</b></p><p>  1 查閱資料和閱讀相關(guān)文獻(xiàn)的重要性,查閱相關(guān)文獻(xiàn)可以帶來技術(shù)性的指導(dǎo)和突破.</p><p>  2 對(duì)待任何事情都要有耐心和恒心,遇到問題要冷靜地思考,積極找出癥結(jié)所在,逐個(gè)解決。 </p><p>  3通過本次課程設(shè)計(jì),我更深刻的認(rèn)識(shí)到了教學(xué)實(shí)踐在大學(xué)課程中的重要性,同時(shí)也發(fā)覺到了

溫馨提示

  • 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)論