小鍵盤實現(xiàn)電子琴實驗報告_第1頁
小鍵盤實現(xiàn)電子琴實驗報告_第2頁
小鍵盤實現(xiàn)電子琴實驗報告_第3頁
小鍵盤實現(xiàn)電子琴實驗報告_第4頁
小鍵盤實現(xiàn)電子琴實驗報告_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

小鍵盤實現(xiàn)電子琴實驗報告-PAGE1-小鍵盤實現(xiàn)電子琴實驗報告學生:13410801房皓;13410803張明;13410802張耀榮任課教師:李濟生實驗目的加強對8253和8255相關知識以及使用的方法的理解、掌握。掌握用軟件方法識別行列式鍵盤按鍵的原理和方法。鍛煉學生對相關知識的自學及研究能力。提高學生小組協(xié)調與配合的能力。實驗內容設計目標通過實驗箱上小鍵盤實現(xiàn)電子琴,具體的實現(xiàn)方法是按小鍵盤上的0、1、2、3、4、5、6、7這8個鍵控制實驗箱發(fā)出do、re、mi、fa、sol、la、si、do(高音),當按8鍵時播放《兩只老虎》。音階頻率設計每個音階都有其固定的頻率,個音階的頻率值如下:音階 12 3 4 5 6 7 1*低頻率(單位:Hz) 262 294 330 347 392 440 494 524高頻率(單位:Hz) 524 588 660 698 784 880 988 1048歌曲《兩只老虎》相對應的頻率表(高頻率)如下:兩只老虎:524,588,660,524,524,588,660,524,660,698,784,660,698,784具體設計方法8255的A口和B口分別連接小鍵盤的行線和列線;8255的C口控制揚聲器發(fā)聲,方法為Pc0直接接與門的A口,Pc1接8253的GATE0,8253的的OUT0接與門的B口,與門的Y口接揚聲器;8253的CLK0接1MHZ;8253和8255分別接地址譯碼的200H和210H;8253初始化為計時器0,工作在3方式,8255初始化為A口輸出,B輸入,C口輸出。連接圖設計8255與小鍵盤的連接設計圖1-18255與小鍵盤鏈接圖8255、8253及揚聲器的連接設計圖1-28255、8253及揚聲器的連接圖實驗流程圖圖1-3實驗流程圖實驗步驟根據(jù)原理圖正確連接實驗線路。正確理解實驗原理。編寫實驗程序,并上機調試,觀察實驗結果。實驗結果按小鍵盤上的0、1、2、3、4、5、6、7這8個鍵控制實驗箱發(fā)出do、re、mi、fa、sol、la、si、do(高音),當按8鍵時播放《兩只老虎》。實驗分析本實驗通過8255與小鍵盤連接,以軟件方法識別行列式鍵盤按鍵,其中包括了按鍵檢測、消除抖動、按鍵分析等過程,并通過分析出的按鍵數(shù)值查表獲得相應的音階的頻率,進而獲得計數(shù)初值寫入8253;通過8255的C口與8253的OUT0口控制揚聲器發(fā)聲;其中8255與小鍵盤的連接及小鍵盤按鍵的識別是本實驗的難點也是創(chuàng)意所在。通過實驗演示可觀察到實驗結果符合預期的效果。實驗體會房皓:通過本次實驗,我鍛煉了自己的操作能力,小組協(xié)調合作的能力,以及加強了對相關知識的研究、理解與掌握,包括加強了對8253以及8255使用方法的理解與掌握,加強了對以軟件方法識別小鍵盤按鍵的研究,特別是對小鍵盤按鍵檢測、消除抖動、按鍵分析等過程,做了多次調試才逐漸理解其中的原理與方法。張明:通過本次實驗,我進一步的理解與熟悉了8255和8253的工作方式,并全面掌握了8255和微機接口的連接方法以及8255的基本工作原理,真正做到實際與理論相結合。在本次實驗中,由于自由度大,因此更加考驗出對于接口的綜合性知識的理解水平,對遇到的困難,更加鍛煉了我的編程與動手能力,提高了對于處理這類困難的能力,并且明白了團隊協(xié)作的重要性。張耀榮:通過本次實驗,我對8255和8253的工作方式有了更深的了解。特別是對8253芯片的使用有了全面,詳細的認識。在確定實驗項目之前所做的準備工作使我對接口技術一學期以來所學的知識有了綜合性的認識。在做實驗的過程中讓我更加明白的團隊合作的重要性和集思廣益的巨大作用!附件:程序代碼.Modelsmall.386datasegmentio8255a equ210hio8255b equ211hio8255cequ212hio8255ctlequ213hio8253aequ200hio8253bequ203h;table dw524,588,660,698,784,880,988,1048;高音的table dw262,294,330,347,392,440,494,524 ;低音的Btabledw524,588,660,524,524,588,660,524,660,698,784,660,698,784msg db'Press1,2,3,4,5,6,7,8,ESC:',0dh,0ah,'$'led_cs equ220hledcode db7fh,5bh,6dh,6dhbzdb0hbuf dw?dataendscodesegmentassumecs:code,ds:datastart: movax,datamovds,ax ;8255初始化L1: movdx,io8255ctlmoval,82h ;82H=10000010B,A口輸出,B口輸入 outdx,al;輸出8255控制字 ;以下是獲得小鍵盤的鍵值 callreadkeymovbh,ah;AH=行線狀態(tài)movbl,al;AL=列線狀態(tài)calldelay;延時30mscallreadkey;再判斷一次,排除干擾cmpbl,aljnzL1cmpbh,ahjnzL1 callkeyup;等待鍵釋放后再處理 movax,bx callcmpoffset;求得鍵值 ;incal ;以上是獲得小鍵盤的鍵值,存儲在al中sing: cmpal,8 jzlzlh cmpal,0jlL1cmpal,7jgL1 ;若不在'1'-'8'之間轉sing;subal,31hshlal,1 ;轉為查表偏移量movbl,al ;保存偏移到bxmovbh,0movax,4240H ;計數(shù)初值=1000000/頻率,保存到AXmovdx,0FH divwordptr[table+bx]movbx,axmovdx,io8253b;設置8253計時器0方式3,先讀寫低字節(jié),再讀寫高字節(jié)moval,00110110Boutdx,almovdx,io8253amovax,bxoutdx,al ;寫計數(shù)初值低字節(jié)moval,ahoutdx,al ;寫計數(shù)初值高字節(jié) movdx,io8255ctl;設置8255C口輸出moval,10000000Boutdx,almovdx,io8255cmoval,03houtdx,al ;置Pc1Pc0=11(開揚聲器)calldelay ;延時movdx,io8255cmoval,00houtdx,al ;置Pc1Pc0=00(關揚聲器)jmpL1jmpL1lzlh: movbz,0movcx,14;subal,42hshlal,1;轉為查表偏移量movbl,al;保存偏移到bxmovbh,0b:movax,4240H;計數(shù)初值=1000000/頻率,保存到AXmovdx,0FHdivwordptr[Btable+bx]movbx,axmovdx,io8253b;設置8253計時器0方式3,先讀寫低字節(jié),再讀寫高字節(jié)moval,00110110Boutdx,almovdx,io8253amovax,bxoutdx,al;寫計數(shù)初值低字節(jié)moval,ahoutdx,al;寫計數(shù)初值高字節(jié) movdx,io8255ctl;設置8255C口輸出moval,10000000Boutdx,almovdx,io8255cmoval,03houtdx,al;置Pc1Pc0=11(開揚聲器)calldelay;延時calldelaycalldelaycalldelaycalldelaymovdx,io8255cmoval,00houtdx,al;置Pc1Pc0=00(關揚聲器)jmpL1 addbz,2movbl,bzmovbh,0 loopL2 jmpstart L2:calln1n1procnearjmpbretn1endpreadkeyprocmovah,0feh ;PA0=0scan:moval,ahmovdx,io8255a;輸出一行線為低outdx,almovdx,io8255binal,dx;輸入列線狀態(tài)oral,0f0h;高四位置1,低四位為列線狀態(tài)cmpal,0ffh;此行有鍵按下碼?jneexitkey;有鍵按下,退出rolah,1;沒有,檢查下一行jmpscanexitkey:retreadkeyendpkeyupprocnoup:moval,ahmovdx,io8255aoutdx,al;輸出行線movdx,io8255binal,dx;讀入列線oral,0f0hcmpal,0ffh;按鍵釋放了碼?jeexit;已釋放,退出jmpnoupexit:retkeyupendpcmpoffsetprocnotah;行值取反notal;列值取反movbh,00hmovbl,00hkk:shrah,1jcnext1addbh,4h;一行4列jmpkknext1:shral,1

溫馨提示

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

評論

0/150

提交評論