單片機(jī)音樂播放器課程設(shè)計(jì)報告_第1頁
已閱讀1頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  單片機(jī)課程設(shè)計(jì)</b></p><p>  課題:帶數(shù)碼管顯示的跑馬燈音樂播放器</p><p><b>  目錄</b></p><p>  1.課程設(shè)計(jì)的任務(wù)功能及其要</p><p><b>  2.硬件系統(tǒng)概述</b></p>

2、<p><b>  3.軟件系統(tǒng)概述</b></p><p><b>  4.安裝調(diào)試說明</b></p><p><b>  5.總結(jié)與體會</b></p><p><b>  6.附錄</b></p><p>  一設(shè)計(jì)任務(wù)功能及其要求&l

3、t;/p><p><b>  1.1 任務(wù)</b></p><p>  設(shè)計(jì)一個具有特定功能的音樂播放器。該音樂播放器上電或按鍵復(fù)位后能自動顯示系統(tǒng)提示符“P.”,進(jìn)入準(zhǔn)備工作狀態(tài)。該音樂播放器可以播放多首音樂,曲目選擇可以由鍵盤控制,曲目名稱可以顯示在顯示器上。</p><p>  1.2 功能要求說明</p><p>

4、;  設(shè)有四個按鍵,其中兩個能實(shí)現(xiàn)多首音樂的選擇,另一個能實(shí)現(xiàn)開始功能和單曲重播的功能,最后一個能實(shí)現(xiàn)復(fù)位和關(guān)閉歌曲的功能。設(shè)有一位數(shù)碼管,每選擇一首曲子能在數(shù)碼管上顯示當(dāng)前的曲目(只是數(shù)字)。設(shè)有八位二極管,能隨歌曲頻率閃爍。</p><p>  1.3 總體方案介紹及工作原理說明</p><p>  1.3.1 總體方案介紹</p><p>  作為單片機(jī)的

5、重要硬件資源之一,利用定時器可以產(chǎn)生各種固定頻率的方波信號,也可以產(chǎn)生包括“Do“、“Re“、“Me“--等音階在內(nèi)的各種頻率聲音。在此設(shè)計(jì)中我們采用12MHz的晶振,產(chǎn)生的頻率信號即音樂信號由P3.7口輸出,信號經(jīng)過放大后由喇叭發(fā)出聲音。</p><p>  樂曲中,每一音符對應(yīng)著確定的頻率,我們可以參照給出的各音符頻率及其相應(yīng)的時間常數(shù)來編寫程序,根據(jù)表中所提供的常數(shù),將其16進(jìn)制代碼送入芯片里,可以奏出音符

6、。音符的節(jié)拍我們可以用定時器T0來控制,送入不同的初值,就可以產(chǎn)生不同的定時時間。便如某歌曲的節(jié)奏為每分鐘94拍,即一拍為0.64秒。其它節(jié)拍與時間的對應(yīng)關(guān)系也可以從兩者關(guān)系表中得到。</p><p>  定時器T0工作在定時方式1,改變TH0及TL0,產(chǎn)生不同的音頻頻率。要編寫的樂譜按要求以音符字節(jié)數(shù)據(jù)表的形式存放在程序中,改變樂曲就是通過改變該數(shù)據(jù)表的內(nèi)容來實(shí)現(xiàn)的。主程序的任務(wù)是按順序讀取數(shù)據(jù)表中的字節(jié),根據(jù)

7、情況調(diào)用音級子程序和音長子程序,啟動定時器T0進(jìn)行工作。</p><p>  1.3.2 工作原理說明</p><p> ?。?) 要生產(chǎn)音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時間.利用定時器計(jì)時這個半周期時間,每當(dāng)計(jì)時到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時此半周期時間再對I/O反相,就可在I/O腳上得到此頻率的脈沖.</p>

8、<p> ?。?) 利用8051的內(nèi)部定時器使用其工作在計(jì)數(shù)器模式MODE1下,改變計(jì)數(shù)值THO及TLO以產(chǎn)生不同頻率的方法.</p><p>  (3) 例如頻率為523Hz,其周期T=1/523=1912us,因此只要令計(jì)數(shù)器計(jì)時956us/1us=956,在每次計(jì)數(shù)956次時將I/O反相,就可得到中音DO (523Hz).    </p><p>  計(jì)數(shù)脈沖值與頻率

9、的關(guān)系公式如下: </p><p>  N=Fi÷2÷Fr……………………………………………1.1</p><p>  N: 計(jì)算值; Fi: 內(nèi)部計(jì)時一次為1us, 故其頻率為1MHz;</p><p> ?。?) 其計(jì)數(shù)值的求法如下: </p><p>  T=65536-N=65536-Fi÷2

10、47;Fr ……………………………1.2 </p><p>  例如: 設(shè)K=65536, F=1000000=Fi=1MHz, 求低音DO(261Hz).中音DO (523Hz). 高音的DO (1046Hz)的計(jì)算值. T=65536-N=65536-Fi÷2÷Fr=65536-1000000÷2÷Fr=65536-500000/Fr。低音DO的 T=65536-500

11、000/262=63627,中音DO的T=65536-500000/523=64580,高音DO的 T=65536-500000/1047=65059</p><p> ?。?) C調(diào)各音符頻率與計(jì)數(shù)值T的對照表如表1所示.</p><p>  表1.1 C調(diào)各音符頻率與計(jì)數(shù)值T的對照表</p><p> ?。?) 每個音符使用1個字節(jié),字節(jié)的高4位代表音符

12、的高低,低4位代表音符的節(jié)拍,表2為節(jié)拍與節(jié)拍碼的對照.如果1拍為0.4秒,1/4拍是0.1秒,只要設(shè)定延遲時間就可求得節(jié)拍的時間.假設(shè)1/4拍為1DELAY,則1拍應(yīng)為4DELAY,以此類推.所以只要求得1/4拍的DELAY時間,其余的節(jié)拍就是它的倍數(shù),如表3為1/4和1/8節(jié)拍的時間設(shè)定. </p><p><b>  二硬件系統(tǒng)概述</b></p><p>  

13、2.1 硬件系統(tǒng)各模塊功能簡要介紹</p><p>  2.1.1 單片機(jī)最小系統(tǒng)</p><p> ?。?) 時鐘源電路 </p><p>  單片機(jī)內(nèi)部具有一個高增益反相放大器,用于構(gòu)成振蕩器。通常在引腳XTALl和XTAL2跨接石英晶體和兩個補(bǔ)償電容構(gòu)成自激振蕩器,結(jié)構(gòu)如圖2.1??梢愿鶕?jù)情況選擇6MHz、12MHz或24MHz等頻率的石英晶體,補(bǔ)償電容

14、通常選擇22pF左右的瓷片電容。 </p><p> ?。?) 復(fù)位電路 </p><p>  單片機(jī)小系統(tǒng)采用上電自動復(fù)位和手動按鍵復(fù)位兩種方式實(shí)現(xiàn)系統(tǒng)的復(fù)位操作。上電復(fù)位要求接通電源后,自動實(shí)現(xiàn)復(fù)位操作。手動復(fù)位要求在電源接通的條件下,在單片機(jī)運(yùn)行期間,用按鈕開關(guān)操作使單片機(jī)復(fù)位。其結(jié)構(gòu)如圖2.1。上電自動復(fù)位通過電容C3充電來實(shí)現(xiàn)。手動按鍵復(fù)位是通過按鍵將電阻R1與VCC接通來實(shí)現(xiàn)

15、。</p><p>  2.1.2 發(fā)光二極管</p><p>  當(dāng)接通電源,單片機(jī)運(yùn)行時,八個二極管隨著不同的調(diào)子閃爍,增加美感。</p><p>  2.1.3 一位數(shù)碼管</p><p>  再此,由于圖片是網(wǎng)上找的故與實(shí)物剛好相反,實(shí)物為共陽極接法,我手里所擁有的數(shù)碼管為共陽極數(shù)碼管,故在此特別說明,在軟件部分要將數(shù)碼表改成共

16、陽極的,所以再此要特別注意!?。。。?!</p><p>  2.1.4 蜂鳴器發(fā)聲</p><p>  利用單片機(jī)的P3.7口產(chǎn)生不同音調(diào)所對應(yīng)的方波來使蜂鳴器發(fā)聲,使用PNP三級管來驅(qū)動。</p><p>  2.1.5 按鍵</p><p>  按下AGAIN鍵可播放重復(fù)的曲子也可開啟播放,按下FORM鍵可播放上一曲,按下NE

17、XT鍵可播放下一曲。</p><p>  2.2 電路原理圖</p><p>  2.3 元器件清單</p><p>  Bill of Material for 音樂播放器.Bom</p><p>  Used Part Type Designator Footprint Description </p

18、><p>  ==== =============== ========== ========== ================== </p><p>  9 10K R1 R2 R3 AXIAL-0.4 Resistor </p><p>  R4 R5 R6

19、 </p><p>  R7 R8 R20 </p><p>  1 12MHZ Y1 XTAL-1 Crystal Oscillator </p><p>  1 22uF C2 RB-.2/.4

20、 Bi-Polar Capacitor </p><p>  2 30pF C3 C4 RAD-0.1 Capacitor </p><p>  8 300k R9 R10 R11 AXIAL-0.4 </p><p>  R12 R

21、13 </p><p>  R14 R15 </p><p>  R16 </p><p>  1 DIODE D1 L

22、ED Diode </p><p>  8 LED D2 D3 D4 LED </p><p>  D5 D6 D7 </p><p>  D8 D9

23、 </p><p>  1 RESET S1 SW </p><p>  1 SPEAKER LS1 SIP-2 </p><p>  1

24、USB J2 USB Connector</p><p><b>  三軟件系統(tǒng)概述</b></p><p>  3.1 使用單片機(jī)資源的情況</p><p>  通用寄存器R5,R4,R0,R1,R3,R2</p><p>  用戶RAM區(qū)30H,31H</

25、p><p>  專用寄存器A,B,DPTR,</p><p>  位尋址區(qū)21H,20H</p><p>  3.2 軟件系統(tǒng)各模塊功能簡要介紹</p><p>  初始化程序:初始化定時器</p><p>  唱歌程序:從表格中取出數(shù)據(jù),利用中斷程序產(chǎn)生不同頻率的方波,同時調(diào)延時程序產(chǎn)生不同的節(jié)拍</p>

26、<p>  中斷程序:定時時間到,產(chǎn)生方波</p><p>  判鍵程序:判斷哪個鍵按下,轉(zhuǎn)向相應(yīng)的子程序執(zhí)行相應(yīng)的動作</p><p>  音符表:用于產(chǎn)生曲調(diào)</p><p>  按鍵程序:分別執(zhí)行選歌,開啟,重復(fù)的功能</p><p>  3.3 軟件系統(tǒng)程序流程框圖</p><p><b&g

27、t;  Y</b></p><p>  N 3.4 軟件系統(tǒng)程序清單</p><p><b>  ORG 0000H</b></p><p>  AJMP LOOOOP</p><p><b>  ORG 000BH</b></p><p>

28、<b>  AJMP TIM0</b></p><p><b>  ORG 001BH</b></p><p><b>  RETI</b></p><p>  ORG 0023H </p><p>  LOOOOP:MOVA,#01H</p><p>

29、;  LOOOP: MOV P2,#0C0H </p><p><b>  MOV P1,A</b></p><p><b>  RL A</b></p><p>  MOV R2,#0FFH</p><p>  DELAY0:MOV R3,#0FFH</p><p>&

30、lt;b>  DJNZ R3,$</b></p><p>  MOV R4,#0FFH</p><p><b>  DJNZ R4,$</b></p><p>  DJNZ R2,DELAY0</p><p>  JNBP3.3,START</p><p>  LJMP LOO

31、OP</p><p>  START: MOV P2,#0F9H</p><p>  MOV R5,#00H ;初始化</p><p>  MOV TMOD,#00010001B </p><p>  MOV IE,#10101010B</p><p>  MOV

32、DPTR,#TAB2 ;裝第一首歌</p><p>  MOV 30H,DPL ;DPTR低8位送30H暫存</p><p>  MOV 31H,DPH ;DPTR高8位送31H暫存</p><p>  START1: INC R4

33、 ;產(chǎn)生8位隨機(jī)數(shù)</p><p>  MOV A,#01010101B</p><p><b>  MOV B,R4</b></p><p>  MUL AB ;8位隨機(jī)數(shù)由P1口輸出</p><p><b>  MOV P1,A</b></p

34、><p>  MOV DPL,30H</p><p>  MOV DPH,31H </p><p>  MOV A,#00H</p><p>  MOVC A,@A+DPTR ;查表</p><p>  MOV R0,A ;音符數(shù)據(jù)送R0嶄存&

35、lt;/p><p>  MOV A,#00H</p><p><b>  INC DPTR</b></p><p>  MOVC A,@A+DPTR ;查表</p><p>  MOV R1,A ;節(jié)拍數(shù)據(jù)送R1嶄存</p><p>

36、<b>  INC DPTR</b></p><p>  MOV 30H,DPL</p><p>  MOV 31H,DPH</p><p>  CJNE A,#01H,ELECT ;一首歌沒結(jié)束轉(zhuǎn)ELECT</p><p>  INC R5 ;結(jié)束歌曲計(jì)數(shù)器加1</

37、p><p>  LJMP KEYWORK ;結(jié)束歌曲計(jì)數(shù)器加1</p><p>  ELECT: JZ START ;所有歌曲結(jié)束轉(zhuǎn)START循環(huán)</p><p><b>  MOV A,R0</b></p><p><b>  JNZ SING&

38、lt;/b></p><p><b>  CLR TR0</b></p><p><b>  SETB P3.7</b></p><p>  LOOP1: ACALL DELAY ;調(diào)用延時子程序</p><p>  DJNZ R1,LOOP1</p>

39、<p>  SJMP START1</p><p>  SING: MOV DPTR,#TAB1 ;音符表首址送DPTR</p><p>  DEC R0 ;計(jì)算音符</p><p><b>  MOV A,R0</b></p><p>  MOV B

40、,#02H </p><p><b>  MUL AB</b></p><p><b>  MOV R0,A</b></p><p>  MOVC A,@A+DPTR ;查表</p><p><b>  MOV 21H,A<

41、/b></p><p><b>  INC DPTR</b></p><p><b>  MOV A,R0</b></p><p>  MOVC A,@A+DPTR</p><p><b>  MOV 20H,A</b></p><p>  MOV

42、 TL0,20H </p><p>  MOV TH0,21H</p><p>  SETB TR0 ;開T0定時器</p><p>  LOOP2: ACALL DELAY</p><p>  DJNZ R1,LOOP2</p><p>  AJMP

43、 START1</p><p>  TIM0: MOV TL0,20H</p><p>  MOV TH0,21H</p><p><b>  CPL P3.7</b></p><p>  RETI ;中斷返回</p><p>  DELAY: MOV

44、 R2,#70</p><p>  DELAY1: MOV R3,#252</p><p><b>  DJNZ R3,$</b></p><p>  JNB P3.3,AGAIN ;重復(fù)正播放的曲子</p><p>  JNB P3.4,FORM ;上一曲開關(guān)按下轉(zhuǎn)FORM<

45、/p><p>  JNB P3.5,NEXT 下一曲開關(guān)按下轉(zhuǎn)NEXT</p><p>  DJNZ R2,DELAY1</p><p><b>  RET</b></p><p>  AGAIN: JNB P3.3,$ ;等待鍵釋放</p><p>  

46、LJMP KEYWORK</p><p>  FORM: CLR EA ;關(guān)中斷</p><p>  JNB P3.4,$ ;等待鍵釋放</p><p>  CJNE R5,#00H,ZERO ;不是第一首歌曲轉(zhuǎn)ZER0</p><p>  MOV R5

47、,#04H </p><p>  SJMP KEYWORK</p><p>  ZERO: DEC R5 ;歌曲向上進(jìn)一首</p><p>  SJMP KEYWORK</p><p>  NEXT: CLR EA</p><p>  JNB P

48、3.5,$</p><p>  CJNE R5,#04H,LAST</p><p>  MOV R5,#00H</p><p>  LJMP KEYWORK</p><p>  LAST: INC R5 ;歌曲下翻一首</p><p>  LJMP KEYWORK

49、 </p><p>  KEYWORK: MOV DPTR,#TAB ;將歌曲排列表裝入DPTR</p><p>  MOV A,R5 ;將R5的內(nèi)容送A</p><p>  RL A </p><p>  SETB

50、EA ;開中斷</p><p>  JMP @A+DPTR ;根據(jù)A的內(nèi)容轉(zhuǎn)向不同歌曲</p><p>  TAB: AJMP MUSIC2</p><p>  AJMP MUSIC3</p><p>  AJMP MUSIC4</p><p&

51、gt;  AJMP MUSIC5</p><p>  MUSIC2: MOV DPTR,#TAB2 ;第2首歌曲首址送DPTR</p><p>  MOV P2,#0F9H</p><p>  GONG: MOV 30H,DPL</p><p>  MOV 31H,DPH</p><p>

52、  AJMP START1</p><p>  MUSIC3: MOV DPTR,#TAB3</p><p>  MOV P2,#0A4H</p><p><b>  SJMP GONG</b></p><p>  MUSIC4: MOV DPTR,#TAB4</p><p>  MOV P2,#

53、0BOH</p><p><b>  SJMP GONG</b></p><p>  MUSIC5: MOV DPTR,#TAB5</p><p>  MOV P2,#99H</p><p><b>  SJMP GONG</b></p><p>  ;***********

54、*********(音符表)**********************;</p><p>  TAB1: DW 64021,64185,64331,64400,64524,64632,64732</p><p>  DW 64777,64860,64934,64968,65030,65085,65134</p><p>  DW 65157,65198,65235

55、,65252,65283,65310,65335</p><p>  ;*********************(蘭花草)***********************;</p><p>  TAB2: DW 0608H,0A08H,0A08H,0A08H,0A18H,0908H,0808H,0908H</p><p>  DW 0808H,0708H,0620H

56、,0D08H,0D08H,0D08H,0D08H,0D18H</p><p>  DW 0C08H,0A08H,0C08H,0C08H,0B08H,0A20H,0A08H,0D08H</p><p>  DW 0D08H,0C08H,0A18H,0908H,0808H,0908H,0808H,0708H</p><p>  DW 0610H,0310H,0308H,

57、0808H,0808H,0708H,0618H,0A08H</p><p>  DW 0908H,0808H,0708H,0508H,0620H,0908H,0808H,0708H</p><p>  DW 0508H,0640H,0001H</p><p>  ;**********************(梁祝)*************************

58、;</p><p>  TAB3: DW 0A10H,0C08H,0D04H,0F08H,1004H,0D04H,0F04H,0C08H</p><p>  DW 1308H,1504H,1404H,1304H,1104H,1304H,1018H,1008H</p><p>  DW 1004H,1104H,0E08H,0D04H,0C08H,0D04H,0F08H

59、,1008H</p><p>  DW 0A08H,0F08H,0D04H,0C04H,0D04H,0F04H,0C18H,1108H</p><p>  DW 1304H,0E08H,1008H,0D04H,0F04H,0C08H,0C10H,0A08H</p><p>  DW 0C02H,0A08H,0C08H,0D02H,0E04H,1004H,0D18H,

60、0C04H</p><p>  DW 0D04H,0F08H,1004H,1308H,1108H,1008H,1104H,1004H</p><p>  DW 0F08H,0D04H,0C04H,0A10H,0F10H,0D08H,0F02H,0D04H</p><p>  DW 0C04H,0A04H,0C04H,0D04H,0F04H,0C38H,0001H&l

61、t;/p><p>  ;*****************(讓我們蕩起雙槳)*********************;</p><p>  TAB4: DW 0608H,0808H,0908H,0A18H,0C08H,0A08H,0808H,0910H</p><p>  DW 0620H,0008H,0808H,0908H,0A08H,0C18H,0001H,0C0

62、8H</p><p>  DW 0D10H,0910H,0A30H,0001H,0A08H,0C08H,0D20H,0C18H</p><p>  DW 0D08H,0F08H,0E04H,0D04H,0C08H,0D08H,0A10H,0004H</p><p>  DW 0808H,0908H,0A18H,0C08H,0810H,0610H,0808H,0908

63、H</p><p>  DW 0A08H,0D08H,0C30H,0010H,0A20H,0D18H,0001H,0D08H</p><p>  DW 0C08H,0B08H,0A10H,0001H,0920H,0A18H,0C08H,0608H</p><p>  DW 0808H,0910H,0010H,0808H,0908H,0A10H,0C0BH,0001H

64、</p><p>  DW 0C04H,0D10H,0F10H,0E08H,0D08H,0C08H,0A08H,0D40H</p><p><b>  DW 0001H</b></p><p>  ;*********************(童年)****************************;</p><p&g

65、t;  TAB5: DW 0A08H,0C08H,0C10H,0C08H,0A08H,0D08H,0D08H,0E08H</p><p>  DW 0D08H,0D08H,0D08H,0D08H,0C08H,0F10H,0F08H,0F08H</p><p>  DW 0F08H,0D08H,0F08H,0D08H,0C40H,0A08H,0C08H,0C10H</p>&l

66、t;p>  DW 0C08H,0A08H,0D08H,0D08H,0E08H,0D08H,0D08H,0D08H</p><p>  DW 0D08H,0C08H,0F10H,0F08H,0F08H,0F08H,0D08H,0D08H</p><p>  DW 0F08H,1040H,1308H,1308H,1310H,1310H,1108H,1008H</p><

67、;p>  DW 0F08H,0F10H,0D08H,0D08H,0F08H,0D08H,0F08H,1008H</p><p>  DW 1008H,1008H,1008H,1008H,0F08H,1108H,1008H,1040H</p><p>  DW 1108H,1110H,1108H,1108H,1008H,1010H,0F08H,0F10H</p><

68、p>  DW 0F08H,1008H,0F08H,0D08H,0C08H,0C08H,0C10H,0C08H</p><p>  DW 0D08H,0C08H,1008H,1108H,0F40H,0001H,0000H</p><p><b>  END</b></p><p>  四安裝調(diào)試說明2011-12-27</p>

69、<p>  本播放器分為4個部分,分別為:單片機(jī)最小系統(tǒng)、按鍵模塊、彩燈模塊及其數(shù)碼管顯示模塊。</p><p>  其中,第一最小系統(tǒng)是一塊單片機(jī)芯片,我所用的是AT89S51,在其P0口要外接一排上拉電阻,其第九引腳接復(fù)位電路,第十八、十九兩腳接時鐘電路。在此我用的為12M晶振組成的時鐘電路,用于產(chǎn)生內(nèi)部時鐘信號,第四十腳接+5V電源,第二十腳接地(GND)。第二彩燈系統(tǒng),由八個彩色的發(fā)光二極管構(gòu)

70、成,其功能是實(shí)現(xiàn)電源接通的無限循環(huán),和播放音樂是的跑馬燈效果 ,在此將這些發(fā)光二極管正極通過驅(qū)動電阻連接到+5V的電源上,另一腳分別接到p1口的p1.0—平p1.7上,第三按鍵模塊由3個按鍵組成,一個為開始,重復(fù)按鍵,此按鍵接p3.3口,一個為上一曲,此按鍵接p3.4口,還有一個是下一曲按鍵,此按鍵接到單片機(jī)p3.5口,最后一個部分是數(shù)碼管顯示,此處用一位數(shù)碼管,接到p2口,在接通電源時,實(shí)現(xiàn)數(shù)碼管顯示為0,按下開始按鍵時數(shù)碼管顯示1開

71、始播放音樂,按下一曲或者上一曲時,數(shù)碼管顯示的書對應(yīng)加1或者減1。</p><p>  各部分硬件電路連接完成,認(rèn)真檢查,即可寫出相應(yīng)的程序?qū)⑵渚幾g連接裝載,成生成16進(jìn)制文件即.hex然后燒錄到單片機(jī)(此處用DIP40)中然后放到各電路模塊組成的整機(jī)中,進(jìn)行調(diào)試,必要時先用Multisim進(jìn)行仿真,仿真成功,在進(jìn)行電路板焊接及程序裝載,調(diào)試。</p><p><b>  五總結(jié)

72、和體會</b></p><p>  通過本次實(shí)訓(xùn),我學(xué)會了自主動手,對單片機(jī)的一系列知識,進(jìn)行了一次系統(tǒng)的復(fù)習(xí),熟悉了一些簡單的程序,如:延時程序,并學(xué)習(xí)了一些新的東西,如隨機(jī)數(shù)的產(chǎn)生,按鍵的掃描,和去抖動等。</p><p>  在本次試驗(yàn)中,學(xué)會了從程序的主體功能考慮要達(dá)到一個什么樣的要求,從而,將程序分成各個子程序,逐個寫出,分布細(xì)化,從而減少程序出錯機(jī)率,并且易于檢查各

73、部分程序,根據(jù)任務(wù)功能,所要達(dá)到的要求,來進(jìn)行檢查,看到那個模塊所對應(yīng)的程序不對,就檢查那個模塊,提高了檢查的效果效率,同時也,可以使程序條理清晰,不至于在發(fā)現(xiàn)程序出錯時,進(jìn)行改正錯誤的過程中,越改越錯,真正的錯誤改不了,把對的反而改錯了。為了提高程序可讀性,可以加注釋對程序的功能加以解釋說明,并且在各個子程序之間以空行來分隔。</p><p>  在這里,因?yàn)槲覀兊囊魳凡シ攀且圆楸淼姆绞竭M(jìn)行,所以首先我們要根據(jù)

74、晶振的頻率將,音樂樂譜轉(zhuǎn)化為16進(jìn)制的代碼表,在這里的表有兩種形式,一種是以DB來開頭的另一種是以DW開頭的,這兩種形式的表區(qū)別是,DW表有高位和低位4個數(shù)字或字母組成,二DB表,只有低位,沒有高位,一般是兩位數(shù)字或字母組成。所以在運(yùn)用查表程序是應(yīng)該注意,上文程序規(guī)定的是什么的表,有高位的下面的表就必須用DW形式的,如果沒有高位只有低位則下面的表必須用DB形式的表,否則程序無法按照正常的查表方法查詢下去,即不能正常播放音樂,大多情況為不

溫馨提示

  • 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

提交評論