2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩19頁未讀, 繼續(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><b>  物理與信息工程系</b></p><p>  課 程 設(shè) 計(jì) 報(bào) 告 </p><p>  課程名稱 專 業(yè) 綜 合 </p><p>  課題名稱 簡(jiǎn)易電子琴設(shè)計(jì) </p><p>  專 業(yè) 電子信息科學(xué)與技

2、術(shù) </p><p>  年 班 級(jí) 08級(jí)電科二班 </p><p>  學(xué) 號(hào) </p><p>  姓 名 </p><p>  指導(dǎo)教師

3、 </p><p>  2011年 5月 20 日</p><p><b>  目 錄</b></p><p>  1、設(shè)計(jì)任務(wù)................................................................. .....................

4、....1</p><p>  1.1 設(shè)計(jì)目的................................................. ...................................... 1</p><p>  1.2設(shè)計(jì)指標(biāo)及要求...................................... ......................

5、................ 1 </p><p>  2、設(shè)計(jì)思路與總體框圖............................. ....................... . ....................2</p><p>  2.1 電子琴系統(tǒng)的設(shè)計(jì)思想. ................... . ............................

6、...............2</p><p>  2.2軟件總體方案及設(shè)計(jì)流程. . ................... . ...........................................3</p><p>  2.3總體框架....................................... ...........................

7、.......... ........... ..4</p><p>  2.3.1、程序簡(jiǎn)易流程圖........................................ .........................................4</p><p>  2.3.2、彈奏程序流程圖.......................................

8、 ......................................5</p><p>  3、系統(tǒng)硬件電路的設(shè)計(jì)……………………...............………………………….6</p><p>  3.1、芯片介紹....................................... ..................................... ..

9、......... .6</p><p>  3.2、硬件接圖....................................... ..................................... ...........7</p><p>  3.3音頻放大電路設(shè)計(jì)....................................... .............

10、............................7</p><p>  3.4復(fù)位電路設(shè)計(jì)....................................... ..............................................8</p><p>  3.5電路設(shè)計(jì)圖....................................... .

11、.................................................9</p><p>  4、系統(tǒng)設(shè)計(jì)仿真…………………………...............………………………………..10</p><p>  注:提供系統(tǒng)仿真軟件和源程序</p><p>  5、總結(jié)與體會(huì)…………………………...............………………

12、…………….18</p><p>  6、參考文獻(xiàn)………………………………...............…………………………18</p><p><b>  1、設(shè)計(jì)任務(wù)</b></p><p><b>  1.1設(shè)計(jì)目的</b></p><p> ?。?)掌握MCS-51單片機(jī)定時(shí)器、計(jì)數(shù)器及中斷

13、的綜合應(yīng)用;</p><p> ?。?)掌握單片機(jī)演奏音樂的原理和編程方法;</p><p> ?。?)能夠?qū)﹄娮釉骷?、印制電路板等方面的知識(shí)有進(jìn)一步的認(rèn)識(shí),獨(dú)立對(duì)其進(jìn)行測(cè)試與檢查。</p><p>  1.2設(shè)計(jì)指標(biāo)及有求</p><p><b>  指標(biāo):</b></p><p> ?。?)

14、設(shè)計(jì)一個(gè)(4×4)的鍵盤,并將16個(gè)鍵設(shè)計(jì)成16個(gè)音;</p><p> ?。?)可彈奏想要表達(dá)的音樂;</p><p> ?。?)該電子琴包含1首示例音樂,接通電源可播放示例音樂。</p><p><b>  要求:</b></p><p> ?。?)按設(shè)計(jì)指標(biāo)進(jìn)行電路設(shè)計(jì);</p><p

15、> ?。?)列出音階與單片機(jī)定時(shí)器輸出頻率關(guān)系表格;</p><p> ?。?)制作符合設(shè)計(jì)指標(biāo)的硬件電路。</p><p>  2、設(shè)計(jì)思路與總體框圖</p><p>  2.1 電子琴系統(tǒng)的設(shè)計(jì)思想</p><p>  關(guān)于聲音的處理,第一種方法是使用匯編語言,利用定時(shí)器來控制頻率,而每個(gè)音符的符號(hào)只是存在我自己定義的表中。音符的

16、頻率是通過查表得到的(見表2-1)。</p><p>  本次設(shè)計(jì)中單片機(jī)晶振為12MHZ,那么定時(shí)器的計(jì)數(shù)周期為1MHZ,假如選擇工作方式1,那T值便為T= 216--5﹡105/相應(yīng)的頻率 ,那么根據(jù)不同的頻率計(jì)算出應(yīng)該賦給定時(shí)器的計(jì)數(shù)值,列出不同音符與單片機(jī)計(jì)數(shù)T0相關(guān)的計(jì)數(shù)值如下表所示:</p><p><b>  表2-1</b></p>&l

17、t;p>  采用查表程序進(jìn)行查表時(shí),可以為這個(gè)音符建立一個(gè)表格,有助于單片機(jī)通過查表的方式來獲得相應(yīng)的數(shù)據(jù):TABLE DB 64580,64684,64777,64820,64898,64968,65030</p><p>  此外,結(jié)束符和體止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子終了,若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。</p><p>  

18、關(guān)于聲音的處理,第二種方法是使用一個(gè)8位的二進(jìn)制數(shù)來作為音符,高位的前兩位用來判斷音符是高音低音還是中音,后面六位判斷的是Do還是Xi等音符。設(shè)D7D6=01為低音區(qū),D7D6=10為中音區(qū),D7D6=11為高音。此方法與第一種方法比較起來較簡(jiǎn)單,所以在該系統(tǒng)的音符設(shè)計(jì)中采用的就是第二種方法。</p><p>  2.2軟件總體方案及設(shè)計(jì)流程</p><p>  (1)鍵盤掃描程序:<

19、;/p><p>  檢測(cè)是否有鍵按下,有鍵按下則記錄按下鍵的鍵值,并跳轉(zhuǎn)至功能轉(zhuǎn)移程序;無鍵按下,則返回鍵盤掃描程序繼續(xù)檢測(cè)</p><p> ?。?)功能轉(zhuǎn)移程序:</p><p>  對(duì)檢測(cè)到得按鍵值進(jìn)行判斷,是琴鍵則跳轉(zhuǎn)至琴鍵處理程序,是功能鍵則跳轉(zhuǎn)至相應(yīng)的功能程序,我們?cè)O(shè)計(jì)的功能程序有兩種,即音色調(diào)節(jié)功能和自動(dòng)播放樂曲功能</p><p>

20、; ?。?)琴鍵處理程序:</p><p>  根據(jù)檢測(cè)到得按鍵值,查詢音律表,給計(jì)時(shí)器賦值,使發(fā)出相應(yīng)頻率的聲音</p><p> ?。?)自動(dòng)播放歌曲程序:</p><p>  檢測(cè)到按鍵按下的是自動(dòng)播放歌曲功能鍵后執(zhí)行該程序,電子琴會(huì)自動(dòng)播放事先已經(jīng)存放好的歌曲,歌曲播放完畢之后自動(dòng)返回至鍵盤掃描程序,繼續(xù)等待是否有鍵按下。</p><p&

21、gt;<b>  系統(tǒng)結(jié)構(gòu)圖</b></p><p><b>  2.3總體框架</b></p><p>  2.3.1程序簡(jiǎn)易流程圖</p><p><b>  否</b></p><p><b>  是</b></p><p>

22、<b>  否</b></p><p><b>  是</b></p><p>  2.3.2彈奏程序流程圖</p><p>  3、系統(tǒng)硬件電路的設(shè)計(jì)</p><p><b>  3.1芯片介紹:</b></p><p>  AT89C52:

23、AT89C52是一個(gè)低電壓,高性能CMOS8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲(chǔ)單元,AT89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。</p><p>  主要性能:與MCS-51單片機(jī)產(chǎn)品兼容、8K字節(jié)在

24、系統(tǒng)可編程Flash存儲(chǔ)器、1000次擦寫周期、全靜態(tài)操作:0Hz~33Hz 、 三級(jí)加密程序存儲(chǔ)器 、32個(gè)可編程I/O口線 、三個(gè)16位定時(shí)器/計(jì)數(shù)器八個(gè)中斷源、全雙工UART串行通道、低功耗空閑和掉電模式、掉電后中斷可喚醒、看門狗定時(shí)器、雙數(shù)據(jù)指針、掉電標(biāo)識(shí)符。</p><p><b>  LM386:</b></p><p&

25、gt;  LM386是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的音頻功率放大器,主要應(yīng)用于低電壓消費(fèi)類產(chǎn)品。為使外圍元件最少,電壓增益內(nèi)置為20。但在1腳和8腳之間增加一只外接電阻和電容,便可將電壓增益調(diào)為任意值,直至200。輸入端以地位參考,同時(shí)輸出端被自動(dòng)偏置到電源電壓的一半,在6V電源電壓下,它的靜態(tài)功耗僅為24mW,使得LM386特別適用于電池供電的場(chǎng)合。</p><p>  其主要特性有以下幾點(diǎn):</p>

26、<p>  靜態(tài)功耗低,約為4mA,可用于電池供電。 </p><p>  工作電壓范圍寬,4-12V or 5-18V。 </p><p><b>  外圍元件少。 </b></p><p>  電壓增益可調(diào),20-200。 </p><p><b>  3.2硬件接線:</b><

27、/p><p> ?。?)利用P1口為按鍵接入口,形成4×4組成16個(gè)按鍵矩陣,設(shè)計(jì)成16個(gè)音,下圖所示:</p><p>  (2)p3.0口音頻輸出,接一個(gè)喇叭。</p><p>  (3)復(fù)位電路我們本來在方案選擇的時(shí)候有兩種選擇的,上電復(fù)位和按扭復(fù)位,上電復(fù)位是利用電容充電來實(shí)現(xiàn)的,而按扭復(fù)位是電源對(duì)外節(jié)電容的充電使RST為高電平,復(fù)位松開后,電容通過下

28、拉電阻放電,使RST恢復(fù)低電平。為了制作軟件的方便我們還是選擇用按扭復(fù)位,因?yàn)樗容^直觀。</p><p>  3.3音頻放大電路設(shè)計(jì)</p><p>  LM386是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的音頻功率放大器,主要應(yīng)用于低電壓消費(fèi)類產(chǎn)品。為使外圍元件最少,電壓增益內(nèi)置為20。但在1腳和8腳之間增加一只外接電阻和電容,便可將電壓增益調(diào)為任意值,直至200。輸入端以地位參考,同時(shí)輸出端被自動(dòng)偏置

29、到電源電壓的一半,在6V電源電壓下,它的靜態(tài)功耗僅為24mW,使得LM386特別適用于電池供電的場(chǎng)合。LM386的封裝形式有塑封8引線雙列直插式和貼片式。其追求的主要目標(biāo)是在失真許可的限度內(nèi),高效率地為終端負(fù)載提供盡可能大的輸出功率。該系統(tǒng)中音頻放大電路的設(shè)計(jì)如圖所示:</p><p>  3.4復(fù)位電路設(shè)計(jì):</p><p>  復(fù)位是單片機(jī)的初始化操作,其主要功能是把PC初始化為000

30、0H,使單片機(jī)從0000H單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,也需按復(fù)位鍵以重新啟動(dòng)。RST引角是復(fù)位信號(hào)的輸入端,復(fù)位信號(hào)是高電平有效,其有效時(shí)間應(yīng)持續(xù)24個(gè)振蕩脈沖周期以上。整個(gè)復(fù)位電路包括芯片內(nèi)外兩部分。外部電路產(chǎn)生的復(fù)位信號(hào)(RST)施密特觸發(fā)器,再由片內(nèi)復(fù)位電路在每個(gè)機(jī)器周期的S5P2時(shí)刻對(duì)施密特觸發(fā)器的輸出進(jìn)行采樣。然后才得到內(nèi)部復(fù)位操作所需要的信號(hào)。

31、</p><p>  復(fù)位電路的基本功能是系統(tǒng)上電時(shí)提供復(fù)位信號(hào)直至系統(tǒng)電源穩(wěn)定后撤銷復(fù)位信號(hào)為可靠起見電源穩(wěn)定后還要經(jīng)一定的延時(shí)才撤銷復(fù)位信號(hào)以防電源開關(guān)或電源插頭分-合過程中引起的抖動(dòng)而影響復(fù)位.</p><p>  復(fù)位操作有上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位兩種方式。上電自動(dòng)復(fù)位是通過外部復(fù)位電路的電容充電來實(shí)現(xiàn)的.這樣只要電源的上升時(shí)間不超過1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位,即接通電源就完

32、成了系統(tǒng)的復(fù)位初始化.本設(shè)計(jì)采用按鍵手動(dòng)復(fù)位方式。而該方式又分為電平方式和脈沖方式。其中按鍵電平方式是通過使復(fù)位端經(jīng)電阻與電源接通而實(shí)現(xiàn)的。而按鍵脈沖復(fù)位則是利用RC微分電路產(chǎn)生的正脈沖來實(shí)現(xiàn)的。本設(shè)計(jì)采用按鍵電平復(fù)位方式,具體電路圖如下:</p><p>  3.5電路設(shè)計(jì)圖如下:</p><p><b>  4、系統(tǒng)設(shè)計(jì)仿真</b></p><

33、p><b>  設(shè)計(jì)源程序:</b></p><p>  BUFF EQU 30H</p><p>  STH0 EQU 31H</p><p>  STL0 EQU 32H</p><p>  TEMP EQU 33H</p><p&g

34、t;<b>  ORG 00H</b></p><p>  LJMP START</p><p><b>  ORG 0BH</b></p><p>  LJMP INT_T0</p><p>  ORG 001BH</p><p>  LJMP TIM1<

35、/p><p>  START: MOV TMOD,#01H ;設(shè)置T0工作方式</p><p><b>  SETB ET0</b></p><p>  SETB EA ;啟動(dòng)T0</p><p><b>  MAIN: </b></p><p

36、>  MOV P1,#0FFH ;P1全置1</p><p>  CLR P1.4 ;開始掃描第一行</p><p><b>  MOV A,P1</b></p><p>  ANL A,#0FH ;屏蔽高四位</p><p>  XRL A,#0F

37、H ;低位 有”0”則有鍵按下,否則無</p><p>  JZ KKEY1 ; 判斷有無鍵按下,有則繼續(xù),沒有則轉(zhuǎn)移到KKEY1</p><p>  LCALL DELY10MS ;調(diào)用延時(shí)程序</p><p>  MOV A,P1 ;重新開始判斷有無鍵按下</p><p>  A

38、NL A,#0FH</p><p>  XRL A,#0FH</p><p>  JZ KKEY1</p><p><b>  MOV A,P1</b></p><p>  ANL A,#0FH ;求鍵值</p><p>  CJNE A,#0EH,CKK1 ;相等說明該行

39、第一列有鍵按下,不等則轉(zhuǎn)移</p><p>  MOV BUFF,#0 ;該鍵值為0</p><p>  LJMP NDK1 ;跳到NDK1執(zhí)行相應(yīng)的功能程序</p><p>  CKK1: CJNE A,#0DH,KK2;相等說明該行第二列有鍵按下,不等則轉(zhuǎn)移</p><p>  MOV BUFF,

40、#1;該鍵值為1</p><p>  LJMP NDK1;跳到NDK1執(zhí)行相應(yīng)的功能程序</p><p>  KK2: CJNE A,#0BH,KK3;相等說明該行第三列有鍵按下,不等則轉(zhuǎn)移</p><p>  MOV BUFF,#2;該鍵值為2</p><p>  LJMP NDK1;跳到NDK1執(zhí)行相應(yīng)的功能

41、程序</p><p>  KK3: CJNE A,#07H,KK4;相等說明該行第四列有鍵按下,不等則轉(zhuǎn)移</p><p>  MOV BUFF,#3;該鍵值為2</p><p>  LJMP NDK1;跳到NDK1執(zhí)行相應(yīng)的功能程序</p><p>  KK4: NOP</p><

42、p>  NDK1: MOV A,BUFF </p><p>  MOV DPTR,#TABLE</p><p>  MOV C A,@A+DPTR</p><p>  MOV P0,A</p><p>  MOV A,BUFF</p><p>  MOV B,#2<

43、/p><p><b>  MUL AB</b></p><p>  MOV TEMP,A</p><p>  MOV DPTR,#TABLE1</p><p>  MOV C A,@A+DPTR</p><p>  MOV STH0,A</p><p>  

44、MOV TH0,A</p><p>  INC TEMP</p><p>  MOV A,TEMP</p><p>  MOV C A,@A+DPTR</p><p>  MOV STL0,A</p><p>  MOV TL0,A</p><p>  SETB TR

45、0</p><p>  NDK1A: MOV A,P1</p><p>  ANL A,#0FH</p><p>  XRL A,#0FH</p><p><b>  JNZ NDK1A</b></p><p><b>  CLR TR0</b></p>

46、;<p><b>  KKEY1: </b></p><p>  MOV P1,#0FFH ;開始掃描第二行</p><p><b>  CLR P1.5</b></p><p><b>  MOV A,P1</b></p><p>  ANL A,

47、#0FH</p><p>  XRL A,#0FH</p><p><b>  JZ KKEY2</b></p><p>  LCALL DELY10MS</p><p><b>  MOV A,P1</b></p><p>  ANL A,#0FH</p>&

48、lt;p>  XRL A,#0FH</p><p><b>  JZ KKEY2</b></p><p><b>  MOV A,P1</b></p><p>  ANL A,#0FH</p><p>  CJNE A,#0EH,KK5</p><p>  MOV BU

49、FF,#4</p><p><b>  LJMP NDK2</b></p><p>  KK5: CJNE A,#0DH,KK6</p><p>  MOV BUFF,#5</p><p><b>  LJMP NDK2</b></p><p>  KK6:

50、 CJNE A,#0BH,KK7</p><p>  MOV BUFF,#6</p><p><b>  LJMP NDK2</b></p><p>  KK7: CJNE A,#07H,KK8</p><p>  MOV BUFF,#7</p><p><b>

51、  LJMP NDK2</b></p><p>  KK8: NOP</p><p><b>  NDK2: </b></p><p>  MOV A,BUFF</p><p>  MOV DPTR,#TABLE</p><p>  MOVC A,@A+DPTR&l

52、t;/p><p><b>  MOV P0,A</b></p><p>  MOV A,BUFF</p><p><b>  MOV B,#2</b></p><p><b>  MUL AB</b></p><p>  MOV TEMP,A</p&g

53、t;<p>  MOV DPTR,#TABLE1</p><p>  MOVC A,@A+DPTR</p><p>  MOV STH0,A</p><p><b>  MOV TH0,A</b></p><p><b>  INC TEMP</b></p><p&

54、gt;  MOV A,TEMP</p><p>  MOVC A,@A+DPTR</p><p>  MOV STL0,A</p><p><b>  MOV TL0,A</b></p><p><b>  SETB TR0</b></p><p>  NDK2A:

55、 MOV A,P1</p><p>  ANL A,#0FH</p><p>  XRL A,#0FH</p><p><b>  JNZ NDK2A</b></p><p><b>  CLR TR0</b></p><p><b>  KKEY2:</b

56、></p><p>  MOV P1,#0FFH ;開始掃描第三行</p><p><b>  CLR P1.6</b></p><p><b>  MOV A,P1</b></p><p>  ANL A,#0FH</p><p>  XRL A,#0FH<

57、/p><p><b>  JZ KKEY3</b></p><p>  LCALL DELY10MS</p><p><b>  MOV A,P1</b></p><p>  ANL A,#0FH</p><p>  XRL A,#0FH</p><p>

58、<b>  JZ KKEY3</b></p><p><b>  MOV A,P1</b></p><p>  ANL A,#0FH</p><p>  CJNE A,#0EH,KK9</p><p>  MOV BUFF,#8</p><p><b>  LJMP

59、 NDK3</b></p><p>  KK9: CJNE A,#0DH,KK10</p><p>  MOV BUFF,#9</p><p><b>  LJMP NDK3</b></p><p>  KK10: CJNE A,#0BH,KK11</p><p&

60、gt;  MOV BUFF,#10</p><p><b>  LJMP NDK3</b></p><p>  KK11: CJNE A,#07H,KK12</p><p>  MOV BUFF,#11</p><p><b>  LJMP NDK3</b></p><

61、;p>  KK12: NOP</p><p><b>  NDK3:</b></p><p>  MOV A,BUFF</p><p>  MOV DPTR,#TABLE</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A&l

62、t;/b></p><p>  MOV A,BUFF</p><p><b>  MOV B,#2</b></p><p><b>  MUL AB</b></p><p>  MOV TEMP,A</p><p>  MOV DPTR,#TABLE1</p>

63、;<p>  MOVC A,@A+DPTR</p><p>  MOV STH0,A</p><p><b>  MOV TH0,A</b></p><p><b>  INC TEMP</b></p><p>  MOV A,TEMP</p><p>  MO

64、VC A,@A+DPTR</p><p>  MOV STL0,A</p><p><b>  MOV TL0,A</b></p><p><b>  SETB TR0</b></p><p>  NDK3A: MOV A,P1</p><p>  ANL A,#

65、0FH</p><p>  XRL A,#0FH</p><p><b>  JNZ NDK3A</b></p><p><b>  CLR TR0</b></p><p><b>  KKEY3:</b></p><p>  MOV P1,#0FFH;

66、開始掃描第四行</p><p><b>  CLR P1.7</b></p><p><b>  MOV A,P1</b></p><p>  ANL A,#0FH</p><p>  XRL A,#0FH</p><p><b>  JZ KKEY4</b&

67、gt;</p><p>  LCALL DELY10MS</p><p><b>  MOV A,P1</b></p><p>  ANL A,#0FH</p><p>  XRL A,#0FH</p><p><b>  JZ KKEY4</b></p>&l

68、t;p><b>  MOV A,P1</b></p><p>  ANL A,#0FH</p><p>  CJNE A,#0EH,KK13</p><p>  MOV BUFF,#12</p><p><b>  LJMP NDK4</b></p><p>  KK1

69、3: CJNE A,#0DH,KK14</p><p>  MOV BUFF,#13</p><p><b>  LJMP NDK4</b></p><p>  KK14: CJNE A,#0BH,KK15</p><p>  MOV BUFF,#14</p><p>&l

70、t;b>  LJMP NDK4</b></p><p>  KK15: CJNE A,#07H,KK16</p><p>  MOV BUFF,#15</p><p><b>  LJMP NDK4</b></p><p>  KK16: NOP</p><p>&

71、lt;b>  NDK4: </b></p><p>  MOV A,BUFF</p><p>  MOV DPTR,#TABLE</p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p>  MOV A,BUFF

72、</p><p><b>  MOV B,#2</b></p><p><b>  MUL AB</b></p><p>  MOV TEMP,A</p><p>  MOV DPTR,#TABLE1</p><p>  MOVC A,@A+DPTR</p>&

73、lt;p>  MOV STH0,A</p><p><b>  MOV TH0,A</b></p><p><b>  INC TEMP</b></p><p>  MOV A,TEMP</p><p>  MOVC A,@A+DPTR</p><p>  MOV ST

74、L0,A</p><p><b>  MOV TL0,A</b></p><p><b>  SETB TR0</b></p><p>  NDK4A: MOV A,P1</p><p>  ANL A,#0FH</p><p>  XRL A,#0FH</

75、p><p><b>  JNZ NDK4A</b></p><p><b>  CLR TR0</b></p><p>  KKEY4: MOV A,#0FFH</p><p><b>  MOV P2,A </b></p><p><b>

76、  MOV A,P2</b></p><p>  JB ACC.0, KKEY5</p><p>  LCALL DELY10MS</p><p><b>  MOV A,P2</b></p><p>  JB ACC.0, KKEY5</p><p>  MOV BUFF,#16&l

77、t;/p><p>  LJMP START22</p><p>  START22: MOV A,BUFF</p><p>  CJNE A,#16,KKEY5</p><p>  LJMP START2</p><p>  KKEY5: LJMP MAIN </p><p>  STAR

78、T2: MOV TMOD,#10H ;設(shè)T1在M1 </p><p>  MOV IE,#88H ;中斷使能 </p><p>  START0: MOV 30H,#00 ;取簡(jiǎn)譜碼指針 </p><p>  NEXT: MOV A,30H ;簡(jiǎn)譜碼指針載入A </p><p>  MOV DPTR,#TAB ;至TAB取簡(jiǎn)譜碼 <

79、;/p><p>  MOVC A,@A+DPTR ;</p><p>  MOV R2,A ;渠道的簡(jiǎn)譜碼暫存于R2 </p><p>  JZ END0 ;是否渠道00(結(jié)束碼) </p><p>  ANL A,#0FH ;不是,則取低4位(節(jié)拍碼) </p><p>  MOV R5,A ;將節(jié)拍碼存入R5 <

80、/p><p>  MOV A,R2 ;將取到的簡(jiǎn)譜碼再載入A </p><p>  SWAP A ;高低4位交換 </p><p>  ANL A,#0FH ;取低4位(音符碼) </p><p>  JNZ SING ;取到的音符碼是否為0? </p><p>  CLR TR1 ;開始,則不發(fā)音 </p>

81、<p>  SJMP D1 ;跳至D1 </p><p>  SING: DEC A ;取到的音符碼減1(不含0) </p><p>  MOV 22H,A ;存入(22H) </p><p><b>  RL A ;乘2 </b></p><p>  MOV DPTR,#TAB1 ;至TABLE

82、1取相對(duì)的高位字節(jié)計(jì)數(shù)值 </p><p>  MOVC A,@A+DPTR ; </p><p>  MOV TH1,A ;取到的高位字節(jié)存入TH0 </p><p>  MOV 21H,A ;取到的高位字節(jié)存入(21H) </p><p>  MOV A,22H ;在載入取到的音符碼 </p><p><b&

83、gt;  RL A ;乘2 </b></p><p>  INC A ;加1 </p><p>  MOVC A,@A+DPTR ;至TABLE1取相對(duì)的低位字節(jié)計(jì)數(shù)值 </p><p>  MOV TL1,A ;取到的低位字節(jié)存入TL0 </p><p>  MOV 20H,A ;取到的低位字節(jié)存入(20H) </p>

84、;<p>  SETB TR1 ;啟動(dòng)TIMER0</p><p>  D1: LCALL DELAY ;其本單位時(shí)間1/4拍187毫秒 </p><p>  INC 30H ;取簡(jiǎn)譜碼指針加1 </p><p>  JMP NEXT ;取下一個(gè)簡(jiǎn)譜碼 </p><p>  END0: CLR TR1 ;停止TI

85、MER0 </p><p>  LJMP MAIN ;重復(fù)循環(huán) </p><p>  TIM1: PUSH ACC ;將A的值暫存于堆棧 </p><p>  PUSH PSW ;將PSW的值暫存于堆棧 </p><p>  MOV TL1,20H ;重設(shè)計(jì)數(shù)值 </p><p>  MOV TH1,21H

86、 ; </p><p>  CPL P3.0 ;將P1.0位反相,控制蜂鳴器發(fā)聲 </p><p>  POP PSW ;至堆棧取回PSW的值 </p><p>  POP ACC ;至堆棧取回A的值 </p><p><b>  RETI </b></p><p>  DELAY:MOV R7,

87、#02 </p><p>  D2: MOV R4,#187 </p><p>  D3: MOV R3,#248 </p><p>  DJNZ R3,$ </p><p>  DJNZ R4,D3 </p><p>  DJNZ R7,D2 </p><p><b>  RET &

88、lt;/b></p><p><b>  DELY10MS:</b></p><p>  MOV R6,#10</p><p>  D10: MOV R7,#248</p><p><b>  DJNZ R7,$</b></p><p>  DJNZ R6

89、,D10</p><p><b>  RET</b></p><p><b>  INT_T0:</b></p><p>  MOV TH0,STH0</p><p>  MOV TL0,STL0</p><p><b>  CPL P3.0</b>&l

90、t;/p><p><b>  RETI</b></p><p>  TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H</p><p>  DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H</p><p>  TABLE1: DW 64021,64103,64

91、260,64400</p><p>  DW 64524,64580,64684,64777</p><p>  DW 64820,64898,64968,65030</p><p>  DW 65058,65110,65157,65178</p><p>  TAB1: ;決定節(jié)拍 </p><p>  DW 64

92、260,64400,64521,64580 </p><p>  DW 64684,64777,64820,64898 </p><p>  DW 64968,65030,65058,65110 </p><p>  DW 65157,65178,65217 </p><p>  TAB: ;樂曲名稱《梁祝》 </p><

93、;p>  DB 02H,82H,62H,52H,48H,02H,52H,32H,22H,18H </p><p>  DB 83H,91H,72H,62H,51H,61H,71H,61H,83H,61H </p><p>  DB 81H,51H,61H,71H,61H,51H,46H,82H,32H,52H </p><p>  DB 22H,42H,16H

94、,21H,41H,18H,0E4H,13H,21H,43H </p><p>  DB 51H,21H,41H,12H,83H,81H,61H,81H,58H,53H </p><p>  DB 61H,31H,22H,13H,21H,42H,52H,0E2H,42H,21H </p><p>  DB 11H,91H,41H,18H,63H,81H,32H,52

95、H,21H,41H </p><p>  DB 16H,0E4H,11H,21H,31H,51H,26H,11H,21H,43H </p><p>  DB 51H,82H,62H,52H,61H,51H,42H,21H,11H,0E4H </p><p>  DB 44H,21H,41H,21H,11H,0E1H,11H,21H,41H,18H </p>

96、;<p>  DB 61H,81H,51H,61H,51H,41H,32H,21H,41H,18H </p><p>  DB 08H,0H,04H ;曲子最后靜音5拍長(zhǎng)的時(shí)間 </p><p>  DB 00H ;樂曲結(jié)束 </p><p><b>  END</b></p><p><b&g

97、t;  5、總結(jié)與體會(huì)</b></p><p>  這次設(shè)計(jì)從軟件方面來講不是很難,程序相對(duì)長(zhǎng)一點(diǎn),但都是書本上所學(xué)的知識(shí),主要是中端及其服務(wù)程序的編寫。在protues上仿真,則起到很好的效果,因?yàn)樵骷际抢硐霠顟B(tài)的,但做出實(shí)物來卻不是那么簡(jiǎn)單啦。經(jīng)過多次調(diào)試、修改才得以出結(jié)果。將程序燒入芯片,調(diào)試成功后,可任意彈奏自己想要的旋律。同時(shí)可以播放一首示例歌曲,但是也有不足之處的,聲音雜音時(shí)而有點(diǎn)大,

98、不穩(wěn)定。</p><p>  經(jīng)過本次課程設(shè)計(jì),我們比較好的把理論知識(shí)與實(shí)踐相結(jié)合,而我們?cè)谝脖敬卧O(shè)計(jì)中收獲不少。設(shè)計(jì)過程中,首先,對(duì)于匯編語言多了一層了解,其次,還有硬件的接線,還有8051芯片的引腳方面,都讓我們收獲不少。加強(qiáng)了自身的動(dòng)手能力。</p><p><b>  6、參考文獻(xiàn)</b></p><p>  [1]周美娟 肖來勝 《單

溫馨提示

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