版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、微機(jī)實(shí)驗(yàn)及課程設(shè)計(jì)報(bào)告 微機(jī)實(shí)驗(yàn)及課程設(shè)計(jì)課程設(shè)計(jì)報(bào)告電子琴姓 名: * 學(xué) 號(hào): * 專(zhuān) 業(yè): * 實(shí) 驗(yàn) 室: 電工電子實(shí)驗(yàn)中心 103 設(shè)計(jì)時(shí)間: 2009年 5 月 30日 2009年 6 月 4日評(píng)定成績(jī): 審閱教師: 目 錄一實(shí)驗(yàn)簡(jiǎn)介3二基本設(shè)計(jì)思想3三程序流程和程序?qū)崿F(xiàn)3四測(cè)試方案和測(cè)試結(jié)果10五分析與總結(jié)10一實(shí)驗(yàn)簡(jiǎn)介 目的: 檢驗(yàn)和提高我在原理與接口綜合應(yīng)用方面分析問(wèn)題與解決問(wèn)題的能力,同時(shí)也給我提供更多、更好的訓(xùn)練機(jī)會(huì)。根據(jù)設(shè)計(jì)要求,盡可能完成設(shè)計(jì)要求的功能,選擇最合適的器件,構(gòu)成最有效的硬件電路來(lái)完成。 基本實(shí)驗(yàn)要求:構(gòu)造一模擬/數(shù)字電子琴、選擇利用實(shí)驗(yàn)儀揚(yáng)聲器/pc機(jī)內(nèi)
2、8253驅(qū)動(dòng)內(nèi)揚(yáng)聲器與鍵盤(pán)1、2、3、4、5、6、7、8設(shè)計(jì)一個(gè)電子琴,通過(guò)按數(shù)字鍵響相應(yīng)的樂(lè)符1、2、3、4、5、6、7、i,使能演奏簡(jiǎn)單的樂(lè)曲。按18數(shù)字鍵同時(shí)點(diǎn)亮相應(yīng)的8個(gè)led燈,使具有聲、光效果;2、 利用實(shí)驗(yàn)儀dac和喇叭,軟件控制上述功能。選擇機(jī)內(nèi)還是實(shí)驗(yàn)儀由開(kāi)關(guān)設(shè)置,課隨時(shí)切換;3、在8*8點(diǎn)陣上表示音節(jié)高低;4、精確顯示從第一個(gè)鍵按下后的時(shí)間(單位秒,要求精確到0.1秒,顯示到秒)。 進(jìn)一步設(shè)計(jì)要求:1.、能準(zhǔn)確記錄開(kāi)始演奏到結(jié)束演奏的時(shí)間,在八段碼上顯示;2、 數(shù)字、模擬合奏,能同時(shí)指示音階;3、自動(dòng)錄音,并具有回放功能(分兩種水平、難易不等、即記錄按鍵,同時(shí)記錄按鍵和時(shí)間
3、。 實(shí)現(xiàn)情況:實(shí)現(xiàn)基本實(shí)驗(yàn)要求的13。二基本設(shè)計(jì)思想1、先分別設(shè)計(jì)機(jī)內(nèi)電子琴和實(shí)驗(yàn)儀電子琴。機(jī)內(nèi)電子琴參照實(shí)驗(yàn)五8253計(jì)數(shù)器/定時(shí)器的選做與探索中使用pc機(jī)內(nèi)8253驅(qū)動(dòng)聲音接口;實(shí)驗(yàn)儀電子琴參照實(shí)驗(yàn)中演示實(shí)驗(yàn)的電子琴流程圖;2、再把兩者結(jié)合起來(lái),用一個(gè)高低電平作開(kāi)關(guān)控制是機(jī)內(nèi)還是實(shí)驗(yàn)儀,可通過(guò)8255a口輸入,判斷10(二進(jìn)制)則實(shí)驗(yàn)儀dac,00則機(jī)內(nèi)喇叭;3、點(diǎn)陣顯示。根據(jù)輸入的數(shù)字判斷應(yīng)顯示點(diǎn)陣的哪一行。具體可先把點(diǎn)陣的8列全選通,輸入為1某個(gè)數(shù)字時(shí),判斷顯示相應(yīng)的行;、led燈顯示。同樣,根據(jù)輸入的數(shù)字判斷應(yīng)顯示哪一個(gè)led燈。具體可設(shè)置8255b口為輸出,根據(jù)輸入的數(shù)字,輸出控制
4、led燈相應(yīng)燈亮。三程序流程和程序?qū)崿F(xiàn)1、機(jī)內(nèi)電子琴開(kāi)始流程圖:鍵盤(pán)讀入一個(gè)字符是esc鍵嗎?ynn返回dos是數(shù)字18鍵嗎?y求出音階值保存賦相應(yīng)頻率值延時(shí)程序:dseg segment freq dw 262,294,330,349,392,440,494,523 ;揚(yáng)聲器發(fā)聲各頻率值msg db press 1,2,3,4,5,6,7,8,esc:,0dh,0ah,$tim dw 400num db ?dseg endssseg segment stack dw 256 dup(?)sseg endscseg segment assume cs:cseg,ds:dsegstart: mo
5、v ax,dseg mov ds,ax mov dx,offset msg mov ah,9 int 21h ;顯示提示信息sss: mov ah,7 int 21h ;等待從鍵盤(pán)接收字符,不回顯al=asc碼 cmp al,1bh je exit;若為esc鍵,則轉(zhuǎn)exit退出 cmp al,31h jl sss ;小于31h cmp al,38h ;大于38h jg sss ;不在1-8之間轉(zhuǎn)sss sub al,31h mov num,al ;num求出相應(yīng)的時(shí)間常數(shù)的序號(hào)jinei: mov al,num add al,al mov ah,00h mov si,axagain: mov
6、 di,freqsi mov bx,tim call gen jmp sssexit: mov ah,4ch int 21hgen proc near mov al,0b6h ;設(shè)置8253通道2方式3二進(jìn)制計(jì)數(shù) out 43h,al mov dx,12h mov ax,12928; dx ax=896*533h=18*65536+12928=1.19m div di out 42h,al ;8253通道2口設(shè)置初值 mov al,ah out 42h,al in al,61h ;讀8255pb口 mov ah,al or al,3 out 61h,alwait1: mov cx,0hdela
7、y3: mov ax,10 ;延時(shí)子程序delay2: nop dec ax jnz delay2 loop delay3 dec bx jnz wait1 mov al,ah out 61h,al retgen endp cseg endsend start2、實(shí)驗(yàn)儀電子琴流程圖:實(shí)驗(yàn)電路:程序:data segmentioportequ 0d400h-0280hio8253aequ ioport+280hio8253bequ ioport+283hio8255aequ ioport+288hio8255bequ ioport+28bhio0832aequ ioport+290hdata1
8、db 80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh db 0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h db 80h,66h,4eh,38h,25h,15h,09h,04h db 00h,04h,09h,15h,25h,38h,4eh,66h;正弦波數(shù)據(jù)time db 120,106,94,89,79,70,63,59;發(fā)不同音時(shí)8253的計(jì)數(shù)器初值msg db press 1,2,3,4,5,6,7,8,esc:,0dh,0ah,$num db ?;num為8253計(jì)數(shù)器初值的序號(hào)data endscode segment ass
9、ume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,offset msgmov ah,9int 21h ;顯示提示信息sss:mov ah,7int 21h ;從鍵盤(pán)接收字符,不回顯cmp al,1bhje exit ;若為esc鍵,則轉(zhuǎn)exitcmp al,31hjl ssscmp al,38hjg sss ;若不在1-8之間轉(zhuǎn)ssssub al,31hmov num,al ;求出相應(yīng)的時(shí)間常數(shù)的序號(hào)mov cx,60 ;取60次32個(gè)正弦波數(shù)據(jù)ddd:mov si,0lll:mov al,data1si ;取正弦波數(shù)據(jù)mov dx,io0
10、832aout dx,al ;放音call delay ;調(diào)延時(shí)子程序inc sicmp si,32 ;是否取完32個(gè)數(shù)據(jù)jl lll ;若沒(méi)有,則繼續(xù)loop ddd ;總循環(huán)次數(shù)60是否完,沒(méi)有,則繼續(xù)jmp sssexit:mov ah,4chint 21hdelay proc near ;延時(shí)子程序ccc:mov bx,offset timemov dx,io8253b ;置8253通道0為方式0工作mov al,10hout dx,almov dx,io8255b ;設(shè)8255a口輸入mov al,9bhout dx,almov al,num ;取相應(yīng)的時(shí)間常數(shù)xlatmov dx,
11、io8253aout dx,al ;向8253通道0輸出kkk:mov dx,io8255ain al,dx ;從8255a口讀一字節(jié)test al,01 ;判pa0口是否為1jz kkk ;若不為1,則轉(zhuǎn)kkkret ;子程序返回delay endpcode endsend start3.電子琴總設(shè)計(jì)流程圖:開(kāi)始鍵盤(pán)讀入一個(gè)字符y是esc鍵嗎?nn是數(shù)字18鍵嗎?返回dosy點(diǎn)亮點(diǎn)陣y點(diǎn)亮led燈n是機(jī)內(nèi)嗎?60個(gè)正弦波完了嗎?yn求出音階值保存正弦波個(gè)數(shù)計(jì)數(shù)器賦值60每個(gè)正弦波數(shù)據(jù)個(gè)數(shù)計(jì)數(shù)器賦初值取正弦波數(shù)據(jù)送dac0832求出音階值保存y賦相應(yīng)頻率值一個(gè)正弦波完了嗎?n延時(shí)延時(shí)電路圖:
12、8個(gè)led燈pb7pb0 pa0pa1 csclk0gate0 out0cs 8253 82551mhz+5v dac0832cs280h k0開(kāi)關(guān) 288h 290h程序:data segmentioportequ 0c800h-0280hio8253aequ ioport+280h;8253通道0地址io8253bequ ioport+283h;8253控制字寄存器地址io8255aequ ioport+288h ;8255a口地址io8255bequ ioport+289h ;8255b口地址io8255dequ ioport+28bh;8255控制字寄存器地址io0832aequ io
13、port+290hproth equ ioport+2a8h ;點(diǎn)陣行選的地址protlr equ ioport+2b0h ;點(diǎn)陣列選的地址data1 db 80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh db 0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h db 80h,66h,4eh,38h,25h,15h,09h,04h db 00h,04h,09h,15h,25h,38h,4eh,66h;正弦波數(shù)據(jù)time db 120,106,94,89,79,70,63,59;發(fā)不同音時(shí)8253的計(jì)數(shù)器初值banquan db 0dh,0a
14、hdb*,0dh,0ahdb* *,0dh,0ahdb* welcome to use dianziqin *,0dh,0ahdb* this programme is desighed by *,0dh,0ahdb* zhouqiuping 61007204 *,0dh,0ahdb* *,0dh,0ahdb*,0dh,0ah db press 1,2,3,4,5,6,7,8,esc:,0dh,0ah,$num db ? ;num為8253計(jì)數(shù)器初值的序號(hào)freq dw 262,294,330,349,392,440,494,523 ;揚(yáng)聲器發(fā)聲各頻率值tim dw 400data endss
15、tack segment stack dw 256 dup(?)stack endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov dx,offset banquan ; 版權(quán)顯示 mov ah,9 int 21h ;顯示提示信息sss: mov ah,7 int 21h ;等待從鍵盤(pán)接收字符,不回顯al=asc碼 cmp al,1bh je exit ;若為esc鍵,則轉(zhuǎn)exit推出 cmp al,31h jl sss ;小于31h cmp al,38h ;大于38h jg sss ;不在1-8之間轉(zhuǎn)ss
16、s sub al,31h mov num,al ;num求出相應(yīng)的時(shí)間常數(shù)的序號(hào)dianzhen: mov al,0ffh ;點(diǎn)陣板的列全部選通 mov dx,proth out dx,al mov al,00000001 :點(diǎn)陣的行賦初值 shl al,num ;根據(jù)輸入的數(shù)字,左移相應(yīng)位數(shù),即點(diǎn)陣亮相應(yīng)行 mov num,al ;如輸入3,則num為2,左移兩位,第三行亮 mov dx,prothl out dx,alled: mov dx,io8255d mov al,99h ;設(shè)置8255a口入b口出 mov dx,io8255b out dx,num ;根據(jù)移位后的num點(diǎn)亮相應(yīng)le
17、d燈kaiguan: mov dx,io8255a ;判斷機(jī)內(nèi)機(jī)外 in al,dx ;從8255b口讀一字節(jié) test al,10b ;判斷pa0口是否為10(二進(jìn)制) jz jiwai ;是的話(huà)轉(zhuǎn)實(shí)驗(yàn)儀 jmp nei ;否則轉(zhuǎn)機(jī)內(nèi);-jiwaijiwai:mov cx,60 ;取60次32個(gè)正弦波數(shù)據(jù)ddd:mov si,0lll:mov al,data1si ;取正弦波數(shù)據(jù)mov dx,io0832aout dx,al ;放音call delay ;調(diào)延時(shí)子程序inc sicmp si,32 ;是否取完32個(gè)數(shù)據(jù)jl lll ;若沒(méi)有,則繼續(xù)loop ddd ;總循環(huán)次數(shù)60是否完,沒(méi)
18、有,則繼續(xù)jmp sssexit: mov ah,4chint 21hdelay proc near ;延時(shí)子程序ccc: mov bx,offset timemov dx,io8253b ;置8253通道0為方式0工作mov al,10hout dx,almov al,num ;取相應(yīng)的時(shí)間常數(shù)xlatmov dx,io8253aout dx,al ;向8253通道0輸出kkk:mov dx,io8255ain al,dx ;從8255a口讀一字節(jié)test al,01 ;判pa0口是否為1jz kkk ;若不為1,則轉(zhuǎn)kkkret ;子程序返回delay endp;-機(jī)內(nèi)部分jinei: m
19、ov al,num add al,al mov ah,00h mov si,axagain: mov di,freqsi mov bx,tim call gen jmp sss gen proc near mov al,0b6h ;設(shè)置8253通道2方式3二進(jìn)制計(jì)數(shù) out 43h,al mov dx,12h mov ax,12928 ; dx ax=896*533h=18*65536+12928=1.19m div di out 42h,al ;8253通道2口設(shè)置初值 mov al,ah out 42h,al in al,61h ;讀8255pb口 mov ah,al or al,3 ou
20、t 61h,alwait1: mov cx,0hdelay3: mov ax,10 ;延時(shí)子程序delay2: nop nop dec ax jnz delay2 loop delay3 dec bx jnz wait1 mov al,ah out 61h,al retgen endp code endsend start四測(cè)試方案和測(cè)試結(jié)果 測(cè)試方案 測(cè)試結(jié)果啟動(dòng)程序,出現(xiàn)按鍵提示,按下18鍵機(jī)內(nèi)/實(shí)驗(yàn)儀發(fā)出相應(yīng)的音階同時(shí)led和點(diǎn)陣板亮相應(yīng)的燈和行改變開(kāi)關(guān)狀態(tài)(可隨時(shí)任意改變),按18鍵對(duì)應(yīng)發(fā)出相應(yīng)的音階“彈琴”發(fā)出優(yōu)美旋律按下esc鍵退出程序 五分析與總結(jié) 問(wèn)題分析:關(guān)于開(kāi)關(guān)改變發(fā)聲源為機(jī)內(nèi)或機(jī)外和led燈的點(diǎn)亮,原來(lái)想用前面學(xué)過(guò)的簡(jiǎn)單輸入輸出實(shí)驗(yàn),用74ls273做輸出,到led上驅(qū)動(dòng)led燈亮;用74ls244做輸入,把開(kāi)關(guān)值輸入控制發(fā)聲源。后來(lái)發(fā)現(xiàn)這樣很麻煩,雖然在程序上沒(méi)有太繁雜,但是這樣就加了兩個(gè)地址,而且對(duì)于電路來(lái)說(shuō),就很復(fù)雜。因此,后來(lái)想到直接用8255做輸入輸出,設(shè)a口為輸入,b口輸出,這樣用一個(gè)片子即可完成幾個(gè)功能。 關(guān)于點(diǎn)亮點(diǎn)陣板,原來(lái)想將num逐個(gè)與07比較,來(lái)判斷亮哪一行,后來(lái)這樣寫(xiě)代碼時(shí)比較繁雜,就改成移位來(lái)實(shí)現(xiàn),給點(diǎn)陣的行賦初值00000001,然后再左移num位,即可亮相應(yīng)的
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度油氣田打井工程設(shè)計(jì)與施工總承包合同4篇
- 2025年度水塔供水工程進(jìn)度與質(zhì)量保證合同4篇
- 2024節(jié)能燈購(gòu)買(mǎi)合同
- 2024版權(quán)購(gòu)買(mǎi)合同模板
- 2024版工程安全生產(chǎn)許可證協(xié)議
- 2025年度新型綠色建筑材料出口買(mǎi)賣(mài)合同4篇
- 2024版廣告公司承包經(jīng)營(yíng)合同
- 2025年靜電場(chǎng)治療儀項(xiàng)目投資可行性研究分析報(bào)告
- 2024版模特隱私保密協(xié)議書(shū)范本
- 2024年起重機(jī)安裝與安全教育培訓(xùn)合同范本3篇
- 割接方案的要點(diǎn)、難點(diǎn)及采取的相應(yīng)措施
- 2025年副護(hù)士長(zhǎng)競(jìng)聘演講稿(3篇)
- 2025至2031年中國(guó)臺(tái)式燃?xì)庠钚袠I(yè)投資前景及策略咨詢(xún)研究報(bào)告
- 原發(fā)性腎病綜合征護(hù)理
- (一模)株洲市2025屆高三教學(xué)質(zhì)量統(tǒng)一檢測(cè) 英語(yǔ)試卷
- 第三章第一節(jié)《多變的天氣》說(shuō)課稿2023-2024學(xué)年人教版地理七年級(jí)上冊(cè)
- 2025年中國(guó)電科集團(tuán)春季招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年度建筑施工現(xiàn)場(chǎng)安全管理合同2篇
- 建筑垃圾回收利用標(biāo)準(zhǔn)方案
- 2024年考研英語(yǔ)一閱讀理解80篇解析
- 樣板間合作協(xié)議
評(píng)論
0/150
提交評(píng)論