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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  《硬件課程設(shè)計(jì)》</b></p><p>  課題名稱(chēng) 可存儲(chǔ)式電子琴</p><p><b>  院(系) </b></p><p><b>  班 級(jí) </b></p><p><b>  學(xué) 號(hào) </b>

2、;</p><p><b>  姓 名 </b></p><p><b>  摘要</b></p><p>  關(guān)鍵詞:可存儲(chǔ)式電子琴;8255;8253;門(mén)控信號(hào):匯編語(yǔ)言程序設(shè)計(jì)</p><p>  此次硬件課程設(shè)計(jì)是利用微機(jī)原理與接口技術(shù)課程中所學(xué)8253,8255芯片,設(shè)計(jì)可存儲(chǔ)式電

3、子琴。在匯編語(yǔ)言環(huán)境下,利用上述兩種芯片,編程讓8255通過(guò)識(shí)別鍵盤(pán)鍵值,8253識(shí)別發(fā)聲從而實(shí)現(xiàn)計(jì)算機(jī)按照的不同而發(fā)出不同頻率的聲音。我們利用學(xué)習(xí)的微機(jī)原理與接口技術(shù)這門(mén)課程課上我們學(xué)到的一些計(jì)算機(jī)硬件工作的基本原理,匯編語(yǔ)言程序設(shè)計(jì)方法,微型計(jì)算機(jī)接口技術(shù)建立了微型計(jì)算機(jī)系統(tǒng)的整體概念,初步形成了微機(jī)系統(tǒng)軟硬件開(kāi)發(fā)的能力??纱鎯?chǔ)式電子琴能夠?qū)崿F(xiàn)彈奏、演奏的功能,當(dāng)按下彈奏鍵時(shí),實(shí)現(xiàn)彈奏功能,發(fā)出音符對(duì)應(yīng)頻率的聲音,按下彈奏鍵時(shí),實(shí)現(xiàn)

4、演奏功能,播放預(yù)存音樂(lè),按下指定的音調(diào)選擇按鍵后,選擇低音,中音或者高音,則分別用低音,中音或者高音進(jìn)行彈奏或演奏??纱鎯?chǔ)式電子琴可用于設(shè)計(jì)小型發(fā)聲玩具,由于本電子琴設(shè)計(jì)簡(jiǎn)單,稍加修改便可用于其它地方,如報(bào)警防盜部件,音樂(lè)門(mén)鈴等,具有一定的商業(yè)價(jià)值。</p><p><b>  目錄</b></p><p>  1 設(shè)計(jì)任務(wù)與要求-------------------

5、------------------------------1</p><p>  1.1選題報(bào)告---------------------------------------------------1</p><p>  1.2提出問(wèn)題----------------------------------------------------1</p><p>  1

6、.3 設(shè)計(jì)思想---------------------------------------------------1</p><p>  2 需求分析-------------------------------------------------------1</p><p>  3 硬件方案-----------------------------------------------

7、--------2</p><p>  3.1設(shè)備器材----------------------------------------------------2</p><p>  3.2硬件的選擇以及芯片說(shuō)明--------------------------------------2</p><p>  3.2.1硬件選擇--------------------

8、----------------------------2</p><p>  3.2.2可編程計(jì)數(shù)器/定時(shí)器8253---------------------------------2</p><p>  3.2.3可編程外圍接口芯片8255----------------------------------3</p><p>  3.3硬件電路---------

9、--------------------------------------------4</p><p>  3.4實(shí)驗(yàn)連線(xiàn)圖---------------------------------------------------4</p><p>  4 軟件方案--------------------------------------------------------5</p

10、><p>  4.1功能模塊----------------------------------------------------5</p><p>  4.2系統(tǒng)各模塊程序流程圖 --------------------------------------5</p><p>  4.2.1主程序流程圖--------------------------------

11、------------5</p><p>  4.2.2高音子程序流程圖----------------------------------------6</p><p>  4.2.3中音子程序流程圖----------------------------------------7</p><p>  4.2.4低音子程序流程圖-----------------

12、-----------------------8</p><p>  4.2.5播放預(yù)定音樂(lè)子程序流程----------------------------------8</p><p>  4.2.6彈奏子程序流程圖----------------------------------------9</p><p>  4.2.7發(fā)音子程序流程圖---------

13、-------------------------------9</p><p>  4.2.8錄音子程序流程圖----------------------------------------9</p><p>  4.2.9鍵盤(pán)檢測(cè)子程序流程圖------------------------------------10</p><p>  5 源程序清單和注釋--

14、---------------------------------------------11</p><p>  6 運(yùn)行結(jié)果-------------------------------------------------------17</p><p>  7 問(wèn)題分析與解決方案---------------------------------------------18</p

15、><p>  7.1實(shí)驗(yàn)設(shè)計(jì)前的問(wèn)題與解決方案----------------------------------18</p><p>  7.2實(shí)驗(yàn)過(guò)程中的問(wèn)題與解決方案---------------------------------18</p><p>  8 結(jié)論與體會(huì)-----------------------------------------------

16、-------18</p><p>  8.1結(jié)論-------------------------------------------------------18</p><p>  8.2體會(huì)-------------------------------------------------------19</p><p>  參考文 --------------

17、------------------------------------------19</p><p><b>  1設(shè)計(jì)任務(wù)與要求</b></p><p><b>  1.1選題報(bào)告</b></p><p>  此次硬件課程選題為可存儲(chǔ)式電子琴。在微機(jī)原理與接口技術(shù)這門(mén)課程課上,學(xué)到了一些計(jì)算機(jī)硬件工作的基本原理,匯編

18、語(yǔ)言程序設(shè)計(jì)方法,微型計(jì)算機(jī)接口技術(shù)等,建立了微型計(jì)算機(jī)系統(tǒng)的整體概念,初步形成了微機(jī)系統(tǒng)軟硬件開(kāi)發(fā)的能力。這是一個(gè)很好的課題,實(shí)現(xiàn)這一課題的過(guò)程中充滿(mǎn)趣味性,并且這一課題具有一定難度,實(shí)現(xiàn)起來(lái)很有挑戰(zhàn)性。</p><p><b>  1.2提出問(wèn)題</b></p><p>  問(wèn)題一:如何產(chǎn)生聲音?</p><p>  問(wèn)題二:如何發(fā)出不同頻

19、率表的聲音?</p><p>  問(wèn)題三:如何播放預(yù)定音樂(lè)?</p><p>  問(wèn)題四:如何播放彈奏的音符?</p><p>  問(wèn)題五:如何發(fā)出不同音階的音?</p><p><b>  1.3設(shè)計(jì)思想</b></p><p>  本次硬件課程設(shè)計(jì)是要銅鼓給予8255A芯片和8253芯片上的電

20、路設(shè)計(jì)和電路接通并通過(guò)對(duì)它們進(jìn)行編程,實(shí)現(xiàn)一個(gè)具有可存儲(chǔ)音樂(lè)等功能的電子琴小器件。該器件不僅具有基本的彈奏功能(輸入不同的鍵能發(fā)出不同頻率的聲音即音符),還具有播放預(yù)定音樂(lè),高低中音轉(zhuǎn)換的功能。預(yù)想功能為:按1-8位彈奏功能;按A選擇高音,按B選擇中音,按C選擇低音;按E錄音、D重播剛按下的音符</p><p><b>  2需求分析</b></p><p>  本次

21、硬件課程設(shè)計(jì)實(shí)驗(yàn)的任務(wù)和要求是通過(guò)居于8255和8253芯片上的電路設(shè)計(jì)和電路連接并通過(guò)對(duì)它們進(jìn)行編程實(shí)現(xiàn)一個(gè)電子琴的基本功能的小器件。該器件具有基本的彈奏功能(就是按下不同的鍵就會(huì)發(fā)出不同頻率的聲音),并且當(dāng)還能夠?qū)崿F(xiàn)高低音轉(zhuǎn)換,最終能夠使音準(zhǔn)最好,最好是能夠播放一段完整的音樂(lè)。</p><p>  電子琴在音樂(lè)愛(ài)好者群體中,擁有非常寬廣的市場(chǎng)需求;還可用于設(shè)計(jì)小型發(fā)聲玩具。由于本電子琴設(shè)計(jì)簡(jiǎn)單,稍加修改便可用

22、于其它地方,如報(bào)警防盜器部件,音樂(lè)門(mén)鈴等,具有一定的商業(yè)價(jià)值。</p><p><b>  3硬件方案</b></p><p><b>  3.1設(shè)備方案</b></p><p>  所用設(shè)備:試驗(yàn)箱一臺(tái);8253芯片,9255A芯片</p><p>  方案:用試驗(yàn)箱上的鍵盤(pán)數(shù)字對(duì)應(yīng)電子琴的8個(gè)琴

23、鍵和4個(gè)功能鍵;8255A和8253配合構(gòu)成音頻發(fā)聲器。8255A的PC1口施加控制信號(hào)給與門(mén)用來(lái)控制揚(yáng)聲器的開(kāi)關(guān)狀態(tài),再利用設(shè)置不用的計(jì)數(shù)值,使8254輸出不同頻率的波形,來(lái)控制揚(yáng)聲器的發(fā)聲頻率;8255A門(mén)控信號(hào)與8253的頻率控制信號(hào)經(jīng)與門(mén)后驅(qū)動(dòng)揚(yáng)聲器發(fā)出各種音頻和音長(zhǎng)信息。</p><p>  3.2硬件的選擇以及芯片說(shuō)明</p><p>  3.2.1硬件選擇:</p>

24、;<p>  8255和8254芯片,4*4鍵盤(pán),喇叭單元。</p><p>  3.2.2可編程計(jì)數(shù)器/定時(shí)器8253</p><p>  圖3-1 8253的內(nèi)部結(jié)構(gòu)</p><p>  圖3-2 8253的引腳信號(hào)</p><p>  本設(shè)計(jì)中8253的功能:使用8253的通道0計(jì)數(shù)初值的設(shè)置來(lái)控制發(fā)音。當(dāng)某一時(shí)刻按下一個(gè)

25、鍵的時(shí),可以通過(guò)和各鍵的寄存器值比較來(lái)判斷按下鍵。每個(gè)音階都有一個(gè)確定的頻率。計(jì)數(shù)初值N=時(shí)鐘頻率/音階頻率。</p><p><b>  表3.1音符頻率表</b></p><p>  3.2.3可編程外圍接口芯片8255</p><p>  圖3-3 8255內(nèi)部結(jié)構(gòu)</p><p>  本設(shè)計(jì)中8255的功能:使用

26、8255芯片的鍵盤(pán)控制器,通過(guò)查看寄存器,讀出分別按下不同的鍵時(shí)對(duì) 應(yīng)的寄存器值。當(dāng)某一時(shí)刻按下一個(gè)鍵時(shí),可以通過(guò)和各鍵的寄存器值比較來(lái)判斷所按下鍵。</p><p>  表3.2鍵盤(pán)按鍵對(duì)應(yīng)的鍵值</p><p><b>  3.3硬件電路</b></p><p><b>  圖3-4 硬件電路</b></p>

27、;<p><b>  3.4實(shí)驗(yàn)連線(xiàn)圖</b></p><p><b>  圖3-5實(shí)驗(yàn)連線(xiàn)圖</b></p><p><b>  4軟件模塊</b></p><p><b>  4.1功能模塊</b></p><p><b> 

28、 圖4-1功能模塊圖</b></p><p>  4.2系統(tǒng)各模塊程序流程圖</p><p>  4.2.1主程序流程圖</p><p>  圖4-2主程序流程圖</p><p>  4.2.2高音子程序流程圖</p><p>  圖4-3高音子程序流程圖</p><p>  4.2

29、.3中音子程序流程圖</p><p>  圖4-4中音子程序流程圖</p><p>  4.2.4低音子程序流程圖 </p><p>  圖4-5低音子程序流程圖</p><p>  4.2.5播放預(yù)定音樂(lè)子程序流程圖</p><p>  圖4-6播放預(yù)定音樂(lè)子程序流程圖</p>

30、<p>  4.2.6彈奏子程序流程圖</p><p>  圖4-7彈奏子程序流程圖</p><p>  4.2.7發(fā)音子程序流程圖</p><p>  圖4-8發(fā)音子程序流程圖</p><p>  4.2.8錄音子程序流程圖</p><p>  圖4-9錄音子程序流程圖</p><p&g

31、t;  4.2.9鍵盤(pán)檢測(cè)子程序流程圖</p><p>  圖4-10鍵盤(pán)檢測(cè)子程序</p><p><b>  5源程序清單和注釋</b></p><p>  ;*******************************; </p><p>  ;* 電子琴實(shí)驗(yàn) *; </p

32、><p>  ;*******************************; </p><p>  ;此實(shí)驗(yàn)接線(xiàn)如下: </p><p>  ;8254 CLK0接1MHZ時(shí)鐘,GATE0接8255的PC1,OUT0接與門(mén)輸入端1,CS接280H~287H, </p><p>  ;8255 PC0接與門(mén)輸入端2,CS接288H~28FH,

33、</p><p>  ;與門(mén)輸出端接 'LB .JD3用跳線(xiàn)端子接好 </p><p>  data segment</p><p>  io8253a equ 280h</p><p>  io8253ctr equ 283h</p><p>  port_A equ 288h</p>&l

34、t;p>  port_B equ 289h</p><p>  port_C equ 28ah</p><p>  port_ctrl equ 28bh </p><p>  ; 0 1 2 3 4 5 6 7</p><p>  ; do re

35、 mi fa so la si do</p><p>  table db 77H, 7BH, 7DH, 7EH, 0B7H,0BBH,0BDH,0BEH</p><p>  ; 8 9 A B C D E F</p><p>  ; 離開(kāi) 離開(kāi) 高音 中音 低音

36、小星星 錄音 播放</p><p>  db 0D7H,0DBH,0DDH,0DEH,0E7H,0EBH,0EDH,0EEH</p><p>  table_high dw 524,588,660,698,784,880,988,1048;高音頻率</p><p>  table_mid dw 262,294,330,347,392,440,494,524;中音頻

37、率</p><p>  table_low dw 131,147,165,175,196,220,247,262 ;低音低音頻率</p><p><b>  ;稻香</b></p><p>  song1 dw 347,392,440, 440,440,440, 440,440,440,440, 440,440,440,440, 330

38、,347,330,294</p><p>  dw 294,330,347, 347,347,347,347, 347,347,347,347, 330,347,294,494</p><p>  dw 494,294,294,294, 294,294,294, 330,330,330, 294,330,347</p><p>  dw 347, 26

39、2,347,347,392</p><p>  ;.........................................................</p><p>  song_save dw 20 dup(?)</p><p>  ;mov dx,song_save</p><p><b>  mov bx,0&

40、lt;/b></p><p>  mov dx:[bx],ax</p><p>  song13 dw 262,262,392,392,440,440,392</p><p>  dw 347,347,330,330,294,294,262</p><p>  dw 392,392,347,347,330,330,294</p&g

41、t;<p>  dw 392,392,347,347,330,330,294</p><p>  dw 262,262,392,392,440,440,392</p><p>  dw 347,347,330,330,294,294,262</p><p><b>  ;用于存儲(chǔ)</b></p><p> 

42、 song2 dw 10 dup(0)</p><p><b>  data ends</b></p><p><b>  ;代碼段</b></p><p>  code segment</p><p>  assume cs:code, ds:data</p><p> 

43、 start:mov si,offset song2</p><p>  call skim ;掃描鍵盤(pán)</p><p>  cmp al,0ddh ;按鍵為A,轉(zhuǎn)高音子程序</p><p>  jz highsound</p><p>  cmp al,0deh ;按鍵為B,轉(zhuǎn)中音子程序</p><p>  jz m

44、idsound</p><p>  cmp al,0ebh ;按鍵為D,播放預(yù)定音樂(lè)《稻香》</p><p><b>  jz music</b></p><p>  cmp al,0edh ;按鍵為E,存儲(chǔ)</p><p><b>  jz memory</b></p><p&

45、gt;  cmp al,0eeh ;按鍵為F,播放錄音</p><p>  jz memory_music</p><p>  cmp al,0e7h ;按鍵為C,轉(zhuǎn)低音子程序</p><p>  jz lowsound</p><p>  music:call music1</p><p><b>  jm

46、p start</b></p><p>  leave1:call exit_qin</p><p>  highSound:</p><p>  begin1:call skim</p><p>  next_try1:cmp al,table[bx]</p><p><b>  jz sing

47、1</b></p><p>  cmp al,0deh</p><p>  jz midSound</p><p>  cmp al,0e7h</p><p>  jz lowSound</p><p>  cmp al,0ebh</p><p><b>  jz musi

48、c</b></p><p>  cmp al,0edh</p><p><b>  jz memory</b></p><p><b>  dec bx</b></p><p>  jns next_try1</p><p>  sing1:mov al,bl&l

49、t;/p><p>  shl al,1 ;轉(zhuǎn)為查表偏移量</p><p>  mov bl,al ;保存偏移到bx</p><p><b>  mov bh,0</b></p><p>  mov ax,4240H ;計(jì)數(shù)初值 = 1000000 / 頻率, </p><p>  mov dx,0FH

50、</p><p>  div word ptr[table_high+bx]</p><p><b>  mov bx,ax</b></p><p>  call sound</p><p>  jmp begin1</p><p>  memory:call mem</p><

51、;p>  memory_music:call mem_memory</p><p><b>  midSound:</b></p><p>  begin2: call skim</p><p>  next_try2:cmp al, table[bx]</p><p><b>  jz sing2<

52、;/b></p><p>  cmp al,0ddh</p><p>  jz highSound</p><p>  cmp al,0e7h</p><p>  jz lowSound</p><p>  cmp al,0ebh</p><p><b>  jz music&l

53、t;/b></p><p>  cmp al,0edh</p><p><b>  jz memory</b></p><p><b>  dec bx</b></p><p>  jns next_try2</p><p>  sing2:mov al,bl</

54、p><p>  shl al,1 ;轉(zhuǎn)為查表偏移量</p><p>  mov bl,al ;保存偏移到bx</p><p><b>  mov bh,0</b></p><p>  mov ax,4240H ;計(jì)數(shù)初值 = 1000000 / 頻率, 保存到AX </p><p>  mov dx,

55、0FH</p><p>  div word ptr[table_mid+bx]</p><p><b>  mov bx,ax</b></p><p>  call sound</p><p>  jmp begin2</p><p><b>  lowSound:</b>

56、</p><p>  begin3: call skim</p><p>  next_try3:cmp al, table[bx]</p><p><b>  jz sing3</b></p><p>  cmp al,0ddh</p><p>  jz highSound</p>

57、<p>  cmp al,0deh</p><p>  jz midSound</p><p>  cmp al,0edh</p><p><b>  jz memory</b></p><p><b>  dec bx</b></p><p>  jns nex

58、t_try3</p><p>  sing3:mov al,bl</p><p>  shl al,1 ;轉(zhuǎn)為查表偏移量</p><p>  mov bl,al ;保存偏移到bx</p><p><b>  mov bh,0</b></p><p>  mov ax,4240H ;計(jì)數(shù)初值 = 1

59、000000 / 頻率,</p><p>  mov dx,0FH</p><p>  div word ptr[table_low+bx]</p><p><b>  mov bx,ax</b></p><p>  call sound</p><p>  jmp begin3</p>

60、;<p><b>  ;存儲(chǔ)功能實(shí)現(xiàn)</b></p><p>  mem proc near</p><p>  begin4:call skim</p><p>  next_try4:</p><p>  cmp al,0eeh ;按鍵為F,播放錄音</p><p>  jz m

61、emory_music</p><p>  cmp al,table[bx]</p><p><b>  jz sing4</b></p><p><b>  dec bx</b></p><p>  jns next_try4</p><p>  sing4:mov al,

62、bl</p><p>  shl al,1 ;轉(zhuǎn)為查表偏移量</p><p>  mov bl,al ;保存偏移到bx</p><p><b>  mov bh,0</b></p><p>  mov ax,[table_mid+bx]</p><p>  mov [si],ax</p>

63、;<p><b>  inc si</b></p><p><b>  inc si</b></p><p>  mov ax,4240H ;計(jì)數(shù)初值 = 1000000 / 頻率, 保存到AX </p><p>  mov dx,0FH</p><p>  div word ptr

64、[table_mid+bx]</p><p><b>  mov bx,ax</b></p><p>  call sound</p><p>  jmp begin4</p><p><b>  mem endp</b></p><p>  delay1 proc near

65、 ;延時(shí)子程序</p><p><b>  push cx</b></p><p><b>  push ax</b></p><p><b>  mov ax,40</b></p><p>  loop1: mov cx,0ffffh</p><p>

66、  loop2: dec cx</p><p><b>  jnz loop2</b></p><p><b>  dec ax</b></p><p><b>  jnz loop1</b></p><p><b>  pop ax</b></p&

67、gt;<p><b>  pop cx</b></p><p><b>  ;保存到AX</b></p><p><b>  ret</b></p><p>  delay1 endp</p><p>  sound proc near ;發(fā)音子程序</p&

68、gt;<p>  mov dx,io8253ctr ;8253初始化設(shè)置8253計(jì)時(shí)器0方式3</p><p>  mov al,00110110B</p><p><b>  out dx,al</b></p><p>  mov dx,io8253a</p><p><b>  mov ax,

69、bx</b></p><p>  out dx,al ;寫(xiě)計(jì)數(shù)初值低字節(jié)</p><p><b>  mov al,ah</b></p><p>  out dx,al ;寫(xiě)計(jì)數(shù)初值高字節(jié)</p><p>  mov dx,port_ctrl ;8255初始化,設(shè)置8255 C口輸出</p>&

70、lt;p>  mov al,10000000B</p><p><b>  out dx,al</b></p><p>  mov dx,port_C</p><p>  mov al,03h</p><p>  out dx,al ;置PC1PC0 = 11(開(kāi)揚(yáng)聲器)</p><p> 

71、 call delay1 ;延時(shí)</p><p><b>  mov al,0h</b></p><p>  out dx,al ;置PC1PC0 = 00(關(guān)揚(yáng)聲器)</p><p><b>  ret</b></p><p>  sound endp</p><p>  

72、music1 proc near ;音樂(lè)1播放子程序</p><p><b>  mov cl,0</b></p><p>  ad1:inc cl</p><p>  cmp cl,15 ;primary 15</p><p>  je return1</p><p>  mov al,cl

73、 </p><p>  sub al,1 ;取偏移量</p><p><b>  shl al,1</b></p><p>  mov bl,al ;保存偏移量</p><p><b>  mov bh,0</b></p><p>  mov ax,4240H ;計(jì)數(shù)初值

74、 = 1000000 / 頻率, 保存到AX 4240</p><p>  mov dx,0FH</p><p>  div word ptr[song13+bx];primary song1+bx</p><p><b>  mov bx,ax</b></p><p>  call sound</p>&

75、lt;p><b>  jmp ad1</b></p><p>  return1:ret</p><p>  music1 endp</p><p>  mem_memory proc near ;音樂(lè)1播放子程序</p><p><b>  mov cl,0</b></p>&

76、lt;p>  ad2:inc cl</p><p><b>  cmp cl,15</b></p><p>  je return2</p><p>  mov al,cl </p><p>  sub al,1 ;取偏移量</p><p><b>  shl al,1&l

77、t;/b></p><p>  mov bl,al ;保存偏移量</p><p><b>  mov bh,0</b></p><p>  mov ax,4240H ;計(jì)數(shù)初值 = 1000000 / 頻率, 保存到AX</p><p>  mov dx,0FH</p><p>  div

78、word ptr[song2+bx]</p><p><b>  mov bx,ax</b></p><p>  call sound</p><p><b>  jmp ad2</b></p><p>  return2:ret</p><p>  mem_memory e

79、ndp</p><p>  exit_qin proc near</p><p>  mov ax,4c00h</p><p>  exit_qin endp</p><p>  skim proc near</p><p>  mov ax,data</p><p><b>  mo

80、v ds,ax</b></p><p>  ;初始化8255A,方式0,A口作輸出,B口和C口作輸入</p><p>  mov dx,port_ctrl</p><p><b>  ;指向控制口</b></p><p>  mov al,10000010B ;控制字</p><p>

81、<b>  out dx,al</b></p><p><b>  ;向所有行輸0</b></p><p>  mov dx,port_a</p><p>  mov al,00H</p><p>  out dx,al ;向A口各位輸出0</p><p>  

82、;讀列,查看所有鍵是否均松開(kāi)</p><p>  mov dx,port_b</p><p>  wait_open:IN al,dx</p><p>  and al,0FH ;只查低4位(列值)</p><p>  cmp al,0FH ;是否都為1(各鍵松開(kāi))</p><p>  jne wait_o

83、pen</p><p>  ;各鍵均已松開(kāi),再查列是否有0,即是否有鍵壓下</p><p>  wait_pres:in al,dx ;讀B口</p><p>  and al,0FH ;只查低四位</p><p>  cmp al,0FH ;是否有鍵壓下</p><p>  je wait_pr

84、es ;無(wú),等待</p><p>  ;有鍵壓下,延時(shí)20ms,消除等待</p><p>  mov cx,16EAH</p><p>  delay:loop delay</p><p>  ;再查列,看鍵是否仍被壓著</p><p><b>  in al,dx</b></p>

85、<p>  and al,0FH</p><p>  cmp al,0FH</p><p>  je wait_pres ;已松開(kāi),轉(zhuǎn)出等待壓鍵</p><p>  ;鍵仍被壓著,確定哪一個(gè)鍵被壓著</p><p>  mov al,0FEH ;先使D0=0</p><p> 

86、 mov cl,al ;cl=11111110B</p><p>  next_row:mov dx,port_a</p><p>  out dx,al ;向一行輸出低電平</p><p>  mov dx,port_b;</p><p>  in al,dx ;讀入B口狀態(tài)</p&g

87、t;<p>  and al,0FH ;只截取列值</p><p>  cmp al,0FH ;是否均為1</p><p>  jne endcode ;否,表示有鍵壓下,轉(zhuǎn)去編碼</p><p>  rol cl,01 ;均為1,使下行輸出0</p><p><b> 

88、 mov al,cl</b></p><p>  jmp next_row ;查看下行</p><p>  ;已找到有一行為低電平,對(duì)壓鍵的行列值編碼</p><p>  endcode:mov bx,000FH ;建立地址指針,先指向F鍵對(duì)應(yīng)的地址</p><p>  in al,dx ;從B

89、口讀入行列號(hào)</p><p><b>  ret</b></p><p><b>  skim endp</b></p><p><b>  code ends</b></p><p>  end start </p><p><b>  6

90、運(yùn)行結(jié)果</b></p><p>  7問(wèn)題分析與解決方案</p><p>  7.1實(shí)驗(yàn)設(shè)計(jì)前的問(wèn)題與解決方案</p><p> ?。?)如何產(chǎn)生聲音:由硬件的連接形式可知,揚(yáng)聲器的開(kāi)斷是由8255的PC0和PC1以及8253通道0同時(shí)控制的,PC0和PC1同時(shí)為高電平時(shí),揚(yáng)聲器開(kāi),發(fā)出聲音。</p><p>  (2)如何發(fā)出

91、不同頻率的聲音:計(jì)數(shù)初值N=時(shí)鐘頻率/音階頻率,時(shí)鐘頻率為1.19318MHZ=1234DCH,可以將相應(yīng)音調(diào)對(duì)應(yīng)的時(shí)鐘頻率存入內(nèi)存單元,當(dāng)選擇相應(yīng)的音調(diào)時(shí),計(jì)算計(jì)數(shù)初值時(shí),采用對(duì)應(yīng)的時(shí)鐘頻率值。</p><p>  (3)如何讓播放預(yù)定音樂(lè):調(diào)用音樂(lè)播放子程序,音樂(lè)播放需用到循環(huán)結(jié)構(gòu),首先將計(jì)數(shù)器清零,接著計(jì)數(shù)器自增1,求得偏移量,然后通過(guò)查表的到相應(yīng)的頻率,再計(jì)算計(jì)數(shù)初值,將計(jì)數(shù)初值送人8253計(jì)數(shù)通道,調(diào)用

92、發(fā)音子程序,若計(jì)數(shù)器的值大于歌曲長(zhǎng)度,則返回。</p><p> ?。?)如何回放彈奏的音符:當(dāng)按鍵為數(shù)字1-8時(shí),選擇彈奏功能,通過(guò)對(duì)按鍵的判斷,求得其偏移地址,然后通過(guò)查表得其相應(yīng)頻率值,再由上述計(jì)算計(jì)數(shù)初值的方法求得計(jì)數(shù)初值,然后將計(jì)數(shù)初值送人8253的通道0,最后調(diào)用發(fā)音子程序即實(shí)現(xiàn)彈奏功能。</p><p> ?。?)如何發(fā)出不同音階的音:揚(yáng)聲器發(fā)音的頻率是由8253產(chǎn)生方波的頻

93、率決定的,而方波頻率又是由通道的 計(jì)數(shù)初值來(lái)決定的,因此可以通過(guò)改變通道的計(jì)數(shù)初值來(lái)實(shí)現(xiàn)變調(diào)功能。</p><p>  7.2實(shí)驗(yàn)設(shè)計(jì)中的問(wèn)題與解決方案</p><p>  (1)按下按鍵,發(fā)出相應(yīng)頻率的音階,但一直發(fā)聲,無(wú)法停下來(lái)</p><p>  解決方案:延時(shí)一段時(shí)間后,給8253的GATE0門(mén)輸入0值</p><p> ?。?)由于

94、編寫(xiě)的源代碼過(guò)長(zhǎng),跳轉(zhuǎn)語(yǔ)句JE,不能順利跳轉(zhuǎn)</p><p>  解決方案:利用二次跳轉(zhuǎn),JE先跳轉(zhuǎn)到一個(gè)中間標(biāo)簽,再用JMP跳轉(zhuǎn)</p><p>  (3)如何實(shí)現(xiàn)存儲(chǔ):建立一個(gè)數(shù)組</p><p><b>  8結(jié)論與體會(huì)</b></p><p><b>  8.1結(jié)論</b></p>

95、;<p>  這次實(shí)驗(yàn),我們使用8254、8255A等芯片來(lái)實(shí)現(xiàn)可存儲(chǔ)式電子琴的以下功能: (1)基本的彈奏功能:輸入不同的鍵(1~8)能發(fā)出不同頻率的聲音即音符。 </p><p>  (2)播放預(yù)定音樂(lè)功能:在輸入指定的鍵(D)后,可以播放出預(yù)先指定的音樂(lè)。(3)高低音轉(zhuǎn)換功能:按下A鍵,輸出高音;按下B鍵,輸出中音;按下C鍵,輸出低音。</p><p><b>

96、;  8.2體會(huì)</b></p><p>  這次課程設(shè)計(jì),我們的題目聽(tīng)起來(lái)不太復(fù)雜,但是實(shí)際操作起來(lái),也并不容易,在通過(guò)何種方式存放彈奏的音符這個(gè)問(wèn)題上困擾了很久,用什么樣的方法更簡(jiǎn)單效果更好,在老師的耐心指導(dǎo)和同學(xué)的細(xì)心幫助下,同時(shí)自己也查閱了資料的情況下順利解決了。這次設(shè)計(jì),采用總體思想為化總體為部分,部分到最后再合成,便于各個(gè)功能的實(shí)現(xiàn)。 </p><p>  本次

97、設(shè)計(jì),我收獲很大。我熟悉了課程設(shè)計(jì)的過(guò)程,并深刻地掌握了微機(jī)原理與接口的基本知識(shí)。最主要的是我體會(huì)到了課程設(shè)計(jì)的方法。雖然老師總是對(duì)我們講要把整體問(wèn)題化為部分問(wèn)題來(lái)解決會(huì)更容易找出解決方案,但是如果你不去試驗(yàn)將會(huì)永遠(yuǎn)不了解。本次試驗(yàn)就讓我深刻地感悟到這一點(diǎn)。對(duì)問(wèn)題的處理,方法是最重要的。我們不僅完成了任務(wù),也使自己的專(zhuān)業(yè)知識(shí)又得到了提升,還考驗(yàn)了我們的獨(dú)立思考的能力。通過(guò)這次設(shè)計(jì),我覺(jué)得自己對(duì)軟硬件結(jié)合有了新的認(rèn)識(shí),鞏固了原來(lái)所學(xué)的知識(shí)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論