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

下載本文檔

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

文檔簡介

小鍵盤實(shí)現(xiàn)電子琴實(shí)驗(yàn)報(bào)告-PAGE1-小鍵盤實(shí)現(xiàn)電子琴實(shí)驗(yàn)報(bào)告學(xué)生:13410801房皓;13410803張明;13410802張耀榮任課教師:李濟(jì)生實(shí)驗(yàn)?zāi)康募訌?qiáng)對8253和8255相關(guān)知識以及使用的方法的理解、掌握。掌握用軟件方法識別行列式鍵盤按鍵的原理和方法。鍛煉學(xué)生對相關(guān)知識的自學(xué)及研究能力。提高學(xué)生小組協(xié)調(diào)與配合的能力。實(shí)驗(yàn)內(nèi)容設(shè)計(jì)目標(biāo)通過實(shí)驗(yàn)箱上小鍵盤實(shí)現(xiàn)電子琴,具體的實(shí)現(xiàn)方法是按小鍵盤上的0、1、2、3、4、5、6、7這8個(gè)鍵控制實(shí)驗(yàn)箱發(fā)出do、re、mi、fa、sol、la、si、do(高音),當(dāng)按8鍵時(shí)播放《兩只老虎》。音階頻率設(shè)計(jì)每個(gè)音階都有其固定的頻率,個(gè)音階的頻率值如下:音階 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歌曲《兩只老虎》相對應(yīng)的頻率表(高頻率)如下:兩只老虎:524,588,660,524,524,588,660,524,660,698,784,660,698,784具體設(shè)計(jì)方法8255的A口和B口分別連接小鍵盤的行線和列線;8255的C口控制揚(yáng)聲器發(fā)聲,方法為Pc0直接接與門的A口,Pc1接8253的GATE0,8253的的OUT0接與門的B口,與門的Y口接揚(yáng)聲器;8253的CLK0接1MHZ;8253和8255分別接地址譯碼的200H和210H;8253初始化為計(jì)時(shí)器0,工作在3方式,8255初始化為A口輸出,B輸入,C口輸出。連接圖設(shè)計(jì)8255與小鍵盤的連接設(shè)計(jì)圖1-18255與小鍵盤鏈接圖8255、8253及揚(yáng)聲器的連接設(shè)計(jì)圖1-28255、8253及揚(yáng)聲器的連接圖實(shí)驗(yàn)流程圖圖1-3實(shí)驗(yàn)流程圖實(shí)驗(yàn)步驟根據(jù)原理圖正確連接實(shí)驗(yàn)線路。正確理解實(shí)驗(yàn)原理。編寫實(shí)驗(yàn)程序,并上機(jī)調(diào)試,觀察實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)結(jié)果按小鍵盤上的0、1、2、3、4、5、6、7這8個(gè)鍵控制實(shí)驗(yàn)箱發(fā)出do、re、mi、fa、sol、la、si、do(高音),當(dāng)按8鍵時(shí)播放《兩只老虎》。實(shí)驗(yàn)分析本實(shí)驗(yàn)通過8255與小鍵盤連接,以軟件方法識別行列式鍵盤按鍵,其中包括了按鍵檢測、消除抖動、按鍵分析等過程,并通過分析出的按鍵數(shù)值查表獲得相應(yīng)的音階的頻率,進(jìn)而獲得計(jì)數(shù)初值寫入8253;通過8255的C口與8253的OUT0口控制揚(yáng)聲器發(fā)聲;其中8255與小鍵盤的連接及小鍵盤按鍵的識別是本實(shí)驗(yàn)的難點(diǎn)也是創(chuàng)意所在。通過實(shí)驗(yàn)演示可觀察到實(shí)驗(yàn)結(jié)果符合預(yù)期的效果。實(shí)驗(yàn)體會房皓:通過本次實(shí)驗(yàn),我鍛煉了自己的操作能力,小組協(xié)調(diào)合作的能力,以及加強(qiáng)了對相關(guān)知識的研究、理解與掌握,包括加強(qiáng)了對8253以及8255使用方法的理解與掌握,加強(qiáng)了對以軟件方法識別小鍵盤按鍵的研究,特別是對小鍵盤按鍵檢測、消除抖動、按鍵分析等過程,做了多次調(diào)試才逐漸理解其中的原理與方法。張明:通過本次實(shí)驗(yàn),我進(jìn)一步的理解與熟悉了8255和8253的工作方式,并全面掌握了8255和微機(jī)接口的連接方法以及8255的基本工作原理,真正做到實(shí)際與理論相結(jié)合。在本次實(shí)驗(yàn)中,由于自由度大,因此更加考驗(yàn)出對于接口的綜合性知識的理解水平,對遇到的困難,更加鍛煉了我的編程與動手能力,提高了對于處理這類困難的能力,并且明白了團(tuán)隊(duì)協(xié)作的重要性。張耀榮:通過本次實(shí)驗(yàn),我對8255和8253的工作方式有了更深的了解。特別是對8253芯片的使用有了全面,詳細(xì)的認(rèn)識。在確定實(shí)驗(yàn)項(xiàng)目之前所做的準(zhǔn)備工作使我對接口技術(shù)一學(xué)期以來所學(xué)的知識有了綜合性的認(rèn)識。在做實(shí)驗(yàn)的過程中讓我更加明白的團(tuán)隊(duì)合作的重要性和集思廣益的巨大作用!附件:程序代碼.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;延時(shí)30mscallreadkey;再判斷一次,排除干擾cmpbl,aljnzL1cmpbh,ahjnzL1 callkeyup;等待鍵釋放后再處理 movax,bx callcmpoffset;求得鍵值 ;incal ;以上是獲得小鍵盤的鍵值,存儲在al中sing: cmpal,8 jzlzlh cmpal,0jlL1cmpal,7jgL1 ;若不在'1'-'8'之間轉(zhuǎn)sing;subal,31hshlal,1 ;轉(zhuǎn)為查表偏移量movbl,al ;保存偏移到bxmovbh,0movax,4240H ;計(jì)數(shù)初值=1000000/頻率,保存到AXmovdx,0FH divwordptr[table+bx]movbx,axmovdx,io8253b;設(shè)置8253計(jì)時(shí)器0方式3,先讀寫低字節(jié),再讀寫高字節(jié)moval,00110110Boutdx,almovdx,io8253amovax,bxoutdx,al ;寫計(jì)數(shù)初值低字節(jié)moval,ahoutdx,al ;寫計(jì)數(shù)初值高字節(jié) movdx,io8255ctl;設(shè)置8255C口輸出moval,10000000Boutdx,almovdx,io8255cmoval,03houtdx,al ;置Pc1Pc0=11(開揚(yáng)聲器)calldelay ;延時(shí)movdx,io8255cmoval,00houtdx,al ;置Pc1Pc0=00(關(guān)揚(yáng)聲器)jmpL1jmpL1lzlh: movbz,0movcx,14;subal,42hshlal,1;轉(zhuǎn)為查表偏移量movbl,al;保存偏移到bxmovbh,0b:movax,4240H;計(jì)數(shù)初值=1000000/頻率,保存到AXmovdx,0FHdivwordptr[Btable+bx]movbx,axmovdx,io8253b;設(shè)置8253計(jì)時(shí)器0方式3,先讀寫低字節(jié),再讀寫高字節(jié)moval,00110110Boutdx,almovdx,io8253amovax,bxoutdx,al;寫計(jì)數(shù)初值低字節(jié)moval,ahoutdx,al;寫計(jì)數(shù)初值高字節(jié) movdx,io8255ctl;設(shè)置8255C口輸出moval,10000000Boutdx,almovdx,io8255cmoval,03houtdx,al;置Pc1Pc0=11(開揚(yáng)聲器)calldelay;延時(shí)calldelaycalldelaycalldelaycalldelaymovdx,io8255cmoval,00houtdx,al;置Pc1Pc0=00(關(guān)揚(yáng)聲器)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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論