版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 音樂提示定時(shí)器--課程設(shè)計(jì)
- 音樂提示定時(shí)器--單片機(jī)課程設(shè)計(jì)
- 30秒定時(shí)器課程設(shè)計(jì)報(bào)告
- 微機(jī)原理課程設(shè)計(jì)—— 定時(shí)器系統(tǒng)
- 可編程定時(shí)器課程設(shè)計(jì)--- 寬范圍可編程定時(shí)器
- 數(shù)顯定時(shí)器課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)--秒表定時(shí)器
- 單片機(jī)課程設(shè)計(jì)--定時(shí)器實(shí)驗(yàn)
- 單片機(jī)課程設(shè)計(jì)---加熱定時(shí)器
- 單片機(jī)課程設(shè)計(jì)智能定時(shí)器
- 音樂提示定時(shí)器單片機(jī)原理與應(yīng)用課程設(shè)計(jì)
- 數(shù)電實(shí)驗(yàn)課程設(shè)計(jì)--數(shù)字定時(shí)器
- 30秒定時(shí)器 非常詳細(xì) 論文 課程設(shè)計(jì)
- 單片機(jī)經(jīng)典數(shù)字定時(shí)器課程設(shè)計(jì)
- 基于單片機(jī)匯編編程的音樂提示定時(shí)器課程設(shè)計(jì)報(bào)告
- 使用定時(shí)器延時(shí)單片機(jī)課程設(shè)計(jì)報(bào)告
- 電子定時(shí)器-單片機(jī)原理及應(yīng)用課程設(shè)計(jì)
- 課程設(shè)計(jì)說明書-洗衣機(jī)定時(shí)器
- arm課程設(shè)計(jì)報(bào)告--使用中斷定時(shí)器設(shè)計(jì)時(shí)鐘
- 基于單片機(jī)的9h定時(shí)器課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論