




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上微機(jī)原理與接口實(shí)驗(yàn)_電子琴一、設(shè)計(jì)目的通過(guò)課程設(shè)計(jì)使學(xué)生更進(jìn)一步掌握微機(jī)原理及應(yīng)用課程的有關(guān)知識(shí),提高應(yīng)用微機(jī)解決問(wèn)題的能力,加深對(duì)微機(jī)應(yīng)用的理解。通過(guò)查閱資料,結(jié)合所學(xué)知識(shí)進(jìn)行軟、硬件的設(shè)計(jì),使學(xué)生初步掌握應(yīng)用微機(jī)解決問(wèn)題的步驟及方法。為以后學(xué)生結(jié)合專(zhuān)業(yè)從事微機(jī)應(yīng)用設(shè)計(jì)奠定基礎(chǔ)。二、設(shè)計(jì)的原始資料及依據(jù)查閱定時(shí)器8254,可編程8255及音節(jié)的頻率范圍等資料。通過(guò)改變鍵盤(pán)輸入來(lái)改變8254輸出頻率,實(shí)現(xiàn)揚(yáng)聲器發(fā)音。三、設(shè)計(jì)的主要內(nèi)容及要求利用微機(jī)原理試驗(yàn)箱,設(shè)計(jì)簡(jiǎn)易電子琴,要求至少可以彈出7個(gè)音階。四、 設(shè)計(jì)完成后應(yīng)提交成果的種類(lèi)、數(shù)量、質(zhì)量等方面的要求;提交課程設(shè)
2、計(jì)說(shuō)明書(shū)一份。在說(shuō)明書(shū)中要有設(shè)計(jì)原理、硬件電路接線(xiàn)圖、設(shè)計(jì)的程序及必要注釋等。七、主要參考資料(文獻(xiàn))、微機(jī)原理與應(yīng)用大連理工大學(xué)出版社、微機(jī)原理與接口技術(shù)北京航空航天大學(xué)出版社、微型計(jì)算機(jī)原理與匯編語(yǔ)言電子工業(yè)出版社、匯編語(yǔ)言程序設(shè)計(jì)中央廣播電視大學(xué)出版社 中文摘要和關(guān)鍵詞本實(shí)驗(yàn)是利用微機(jī)原理試驗(yàn)箱、8255芯片、8254芯片、鍵盤(pán)、揚(yáng)聲器等硬件設(shè)備,設(shè)計(jì)簡(jiǎn)易電子琴。首先利用了編程程序,編輯了8255芯片控制字, 對(duì)其進(jìn)行初始化,使其工作在方式0,即基本輸入輸出狀態(tài),將8255的A端口設(shè)置為輸出,C端口進(jìn)行,經(jīng)CPU運(yùn)算后, 輸出到8254芯片的A端口中,由此實(shí)現(xiàn)對(duì)其的初始化。將8254芯片
3、設(shè)置為工作在方式3,即輸出對(duì)稱(chēng)方波狀態(tài)。A端口為輸入,“OUT”指令可將輸出對(duì)應(yīng)一定頻率的方波送到揚(yáng)聲器中,由此實(shí)現(xiàn)發(fā)聲。本實(shí)驗(yàn)通過(guò)頻率大小控制發(fā)出聲音的高低,通過(guò)對(duì)延時(shí)程序的調(diào)用控制發(fā)出聲音的長(zhǎng)短。并通過(guò)所編程序?qū)崿F(xiàn)對(duì)鍵盤(pán)的重復(fù)掃描,重而可以彈奏多個(gè)音符的試驗(yàn)?zāi)康摹jP(guān)鍵字: 編程、工作方式、運(yùn)算一、設(shè)計(jì)題目:簡(jiǎn)易電子琴設(shè)計(jì)二、設(shè)計(jì)內(nèi)容:利用微機(jī)原理試驗(yàn)箱,設(shè)計(jì)簡(jiǎn)易電子琴。三、設(shè)計(jì)目的:通過(guò)課程設(shè)計(jì)使學(xué)生更進(jìn)一步掌握微機(jī)原理及應(yīng)用課程的有關(guān)知識(shí),提高應(yīng)用微機(jī)解決問(wèn)題的能力,加深對(duì)微機(jī)應(yīng)用的理解。通過(guò)查閱資料,結(jié)合所學(xué)知識(shí)進(jìn)行軟、硬件的設(shè)計(jì),使學(xué)生初步掌握應(yīng)用微機(jī)解決問(wèn)題的步驟及方法。為以后學(xué)生
4、結(jié)合專(zhuān)業(yè)從事微機(jī)應(yīng)用設(shè)計(jì)奠定基礎(chǔ)。四、設(shè)計(jì)要求:1可以彈出7個(gè)音階。2彈奏簡(jiǎn)短音樂(lè)。3通過(guò)改變鍵盤(pán)輸入來(lái)改變8254輸出頻率,實(shí)現(xiàn)揚(yáng)聲器發(fā)音五、設(shè)計(jì)原理:音符與頻率的關(guān)系如表所示,而持續(xù)時(shí)間則取決于樂(lè)曲的速度和每個(gè)音符持續(xù)的長(zhǎng)短。在拍號(hào)為4/4的樂(lè)曲中,每小節(jié)包含拍,全音符持續(xù)拍,二分音符持續(xù)拍,四分音符持續(xù)拍,八分音符持續(xù)半拍等等。根據(jù)樂(lè)曲進(jìn)行速度,假設(shè)一個(gè)全音符分配S時(shí)間,則每拍持續(xù)時(shí)間為MS。如果持續(xù)時(shí)間的最小單位是MS,則相應(yīng)的拍長(zhǎng)時(shí)間數(shù)據(jù)為,該數(shù)據(jù)存放在BX寄存器中,從而可以確定每個(gè)音符的持續(xù)時(shí)間。音符123456712345671頻率131147165175196220247262
5、294330349392440494523六、元器件功能簡(jiǎn)介:18255引腳功能RESET:復(fù)位輸入線(xiàn),當(dāng)該輸入端外于高電平時(shí),所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。CS:片選信號(hào)線(xiàn),當(dāng)這個(gè)輸入引腳為低電平時(shí),表示芯片被選中,允許8255與CPU進(jìn)行通訊。RD:讀信號(hào)線(xiàn),當(dāng)這個(gè)輸入引腳為低電平時(shí),允許8255通過(guò)數(shù)據(jù)總線(xiàn)向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。WR:寫(xiě)入信號(hào),當(dāng)這個(gè)輸入引腳為低電平時(shí),允許CPU將數(shù)據(jù)或控制字寫(xiě)入8255。D0D7:三態(tài)雙向數(shù)據(jù)總線(xiàn),8255與CPU數(shù)據(jù)傳送的通道,當(dāng)CPU 執(zhí)行輸入輸出指令時(shí),通過(guò)它實(shí)現(xiàn)8
6、位數(shù)據(jù)的讀/寫(xiě)操作,控制字和狀態(tài)信息也通過(guò)數(shù)據(jù)總線(xiàn)傳送。PA0PA7:端口A輸入輸出線(xiàn),一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個(gè)8位的數(shù)據(jù)輸入鎖存器。PB0PB7:端口B輸入輸出線(xiàn),一個(gè)8位的I/O鎖存器, 一個(gè)8位的輸入輸出緩沖器。PC0PC7:端口C輸入輸出線(xiàn),一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個(gè)8位的數(shù)據(jù)輸入緩沖器。端口C可以通過(guò)工作方式設(shè)定而分成2個(gè)4位的端口, 每個(gè)4位的端口包含一個(gè)4位的鎖存器,分別與端口A和端口B配合使用,可作為控制信號(hào)輸出或狀態(tài)信號(hào)輸入端口。A1、A0:端口地址總線(xiàn),8255中有端口A、B、C和一個(gè)內(nèi)部控制字寄存器,共4個(gè)端口,由A0、A1輸入地址信號(hào)來(lái)尋址
7、。本實(shí)驗(yàn)用到的引腳有PA0-PA3、PC0-PC3、D0-D7、A0、A1、WR、RD、CS 、和GND 。 圖 1. 8255的控制字格式28254 可編程計(jì)數(shù)定時(shí)器芯片完成對(duì)外部脈沖信號(hào)的各種處理。8254芯片內(nèi)部具有三個(gè)獨(dú)立的16位計(jì)數(shù)器,它可用程序設(shè)置成多種工作方式,按十進(jìn)制計(jì)數(shù)或二進(jìn)制計(jì)數(shù),最高計(jì)數(shù)速率可達(dá)10MHz。8254的全部功能是由CPU編程設(shè)定的。CPU通過(guò)輸出指令給8254裝入控制字,從而設(shè)定其功能。8254控制字格式如下: D7 D6 D5 D4 D3 D2 D1 D0SC1SC0RL1RL0M2M1M0BCD 各位的功能見(jiàn)表1表4: 表1 SC1、SC0 計(jì)數(shù)器選擇S
8、C1 SC0選擇計(jì)數(shù)器0 0選擇0#0 1選擇1#1 0選擇2#1 1使用方法參見(jiàn)8254使用說(shuō)明 表2 RL1、RL0CPU讀寫(xiě)操作RL1 RL0操作類(lèi)型0 0計(jì)數(shù)器封鎖操作0 1讀寫(xiě)計(jì)數(shù)器低8位1 0讀寫(xiě)計(jì)數(shù)器高8位1 1先讀寫(xiě)低8位,后讀寫(xiě)高8位 表3 M2、M1、M0 工作方式選擇M3 M2 M1計(jì) 數(shù) 工 作 方 式0 0 0方 式 00 0 1方 式 10 1 0方 式 20 1 1方 式 31 0 0方 式 41 0 1方 式 5 表4 BCD計(jì)數(shù)方式選擇BCD數(shù) 碼 形 式0十六位二進(jìn)制計(jì)數(shù)1四位十進(jìn)制 ( BCD ) 碼計(jì)數(shù)七、設(shè)計(jì)原程序及注解程序代碼:MY8255_A EQ
9、U 0600HMY8255_B EQU 0602HMY8255_C EQU 0604H MY8255_MODE EQU 0606HMY8254_MODE EQU 06C6HMY8254_A EQU 06C0H ;進(jìn)行宏定義DATA SEGMENTFREQ_LIST DW 441D,495D,556D,589D,661D,742D,833D,882D,262D,294D,330D,373D,402D,450D,494D,-1DDATA ENDS;建立數(shù)據(jù)段CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AX ;實(shí)現(xiàn)段寄存器D
10、S的初始化 MOV DX,MY8255_MODEMOV AL,81HOUT DX,AL ;寫(xiě)8255芯片的控制字,實(shí) 現(xiàn)工作在方式0,A端口和B端口輸出,C端口輸入MOV DX,MY8254_MODEMOV AL,36HOUT DX,AL ;使8254工作在方式3,A 口輸入,運(yùn)用計(jì)數(shù)器0,二進(jìn)制方式BEGIN: CALL CCSCAN ;掃描JNZ INK1 ;有鍵按下時(shí)跳到INK1JMP BEGIN ;沒(méi)見(jiàn)按下時(shí)循環(huán)執(zhí)行 BEGIN;確定按下鍵的位置INK1: MOV CH,0FEH ;確定按下鍵在第一列 MOV CL,00H ;將CL清零COLUM: MOV AL,CH MOV DX,M
11、Y8255_A ;將8255的A口地址賦給DX OUT DX,AL ;將CPU中的AL值送到8255 的A口中,即送到x1、x2、 x3、x4中 MOV DX,MY8255_C ; 將8255的C口地址賦給DX IN AL,DX ;將C口的值送到AL中 L1: TEST AL,01H ;檢驗(yàn)按下鍵是否在L1 JNZ L2 ;不是L1則跳到L2 MOV AL,00H ;為了后面用來(lái)與FREQ_LIST 數(shù)據(jù)段中數(shù)對(duì)應(yīng) JMP KCODE ;強(qiáng)制跳轉(zhuǎn)到KCODEL2: TEST AL,02H ;檢驗(yàn)按下鍵是否在L2 JNZ L3 ;不是L2則跳到L3MOV AL,04H ;為了后面用來(lái)與FREQ_
12、LIST 數(shù)據(jù)段中數(shù)對(duì)應(yīng)。JMP KCODE ;強(qiáng)制跳轉(zhuǎn)到KCODEL3: TEST AL,04H ;檢驗(yàn)按下鍵是否在L23 JNZ L4 ;不是L3則跳到L4MOV AL,08H ;為了后面用來(lái)與FREQ_LIST 數(shù)據(jù)段中數(shù)對(duì)應(yīng)。JMP KCODE ;強(qiáng)制跳轉(zhuǎn)到KCODEL4: TEST AL,08H ;檢驗(yàn)按下鍵是否在L4 JNZ NEXT ;不是L4則跳到NEXTMOV AL,0CH ;為了后面用來(lái)與FREQ_LIST 數(shù)據(jù)段中數(shù)對(duì)應(yīng)。KCODE: ADD AL,CL ;實(shí)現(xiàn)AL與CL的無(wú)進(jìn)位加法 MOV DL,2D MUL DL ;將AL乘以2結(jié)果保存到AX中 PLAY: MOV S
13、I,OFFSET FREQ_LIST ;使SI指向 FREQ_LIST的首地址 ADD SI,AX ;通過(guò)SI加AX 實(shí)現(xiàn)指針SI的移動(dòng) MOV DX,0FH MOV AX,4240H ;被除數(shù)為0F4240H DIV WORD PTRSI ;除數(shù)為SI所指的數(shù)據(jù) MOV DX,MY8254_A ;將8255的A口地址賦給DX OUT DX,AL ;輸出商的低4位 MOV AL,AH OUT DX,AL ;輸出商的高4位 MOV CX,8D ;輸入計(jì)數(shù)值CX NEXT3: CALL DALLY ;調(diào)用延時(shí)子程序DALLYLOOP NEXT3 ;CX不為0重復(fù)執(zhí)行NEXT3 MOV DX,0FH
14、 MOV AX,4240H ;被除數(shù)為0F4240H MOV SI ,30D DIV WORD PTRSI ;除數(shù)為SI=30所指的數(shù)據(jù) MOV DX,MY8254_A ;將8255的A口地址賦給DX OUT DX,AL MOV AL,AH OUT DX,AL ;實(shí)現(xiàn)靜音,結(jié)束一個(gè)音符的發(fā)音 JMP BEGIN ;跳轉(zhuǎn)到BEGIN,重復(fù)掃描NEXT: INC CL ;使CL加1,為了后面用來(lái)與FREQ_LIST數(shù)據(jù)段中數(shù)對(duì)應(yīng) MOV AL,CH TEST AL,08H JZ KERR ;無(wú)鍵按下時(shí)跳轉(zhuǎn)到KERR ROL AL,1D ;向左移位 MOV CH,AL JMP COLUM ;強(qiáng)制跳轉(zhuǎn)
15、到COLUMKERR: JMP BEGIN ;跳到BEGIN重新開(kāi)始掃描;鍵盤(pán)掃描子程序CCSCAN: MOV AL,00H MOV DX,MY8255_A OUT DX,AL ;使8255芯片A端口輸出 為0,既使x1、x2、x3、 X4為0 MOV DX,MY8255_C IN AL,DX ;將從C端口輸入的y1、y2、y3、y4送到AL中NOT AL ;將AL取反 AND AL,0FH ;將AL前4位清零RET;延時(shí)子程序DALLY: PUSH CX ;將CX壓棧 MOV CX,000FH T1: MOV AX,0009FHT2: DEC AX ;使AX減1JNZ T2 ;AX不為0重復(fù)
16、T2LOOP T1 ;CX不為0重復(fù)T1POP CX ;將CX出棧RETCODEENDS ;代碼段定義結(jié)束END START ;程序結(jié)束八、程序流程圖:開(kāi)始程序初始化調(diào)用按鍵掃描程序是否有按鍵測(cè)試按鍵位置N播放Y九、程序接線(xiàn)圖:鍵 X1盤(pán) 數(shù) X4碼 管 Y1顯示 Y2單元PA0 D0PA3 D7PC0 A0PC3 A2 WR RD CS8255單元XD0 XD0XD7 XD7XA1 XA1XA2 XA2IOW IOWIOR IORIOY0 IOY3 CLK系統(tǒng)總線(xiàn)D0D7 GATE0A0A1 OUT0WRRDCSCLK08254單元電子發(fā)聲單 元 +5V右圖Y組對(duì)應(yīng)8255芯片的C口(Y值為
17、1)與+5V連 L1 L2 L3 L413141516910111256781234Y4Y3 X組對(duì)應(yīng)8255芯片的A口(X值為0)Y2當(dāng)有鍵按下時(shí)如5鍵,其對(duì)應(yīng)的Y值Y2為0,則8255芯片由C口輸入的數(shù) Y1值為1101給AL。 X1 X2 X3 X4 總 結(jié)本學(xué)期我們有一周的微機(jī)原理課設(shè),雖然時(shí)間不是很長(zhǎng),但對(duì)我而言收獲卻很多,也體會(huì)到了電子設(shè)計(jì)行業(yè)工作的辛苦,經(jīng)過(guò)老師細(xì)心的講解和我們的不懈努力,最終我組能夠把學(xué)到的知識(shí)運(yùn)用到實(shí)際中去,這讓我對(duì)本學(xué)科的學(xué)習(xí)產(chǎn)生了更加濃厚的興趣,但一切都是值得的。這次課程設(shè)計(jì)對(duì)我綜合運(yùn)用所學(xué)知識(shí)的能力的提高有不小的幫助,之前做的實(shí)驗(yàn)都是很簡(jiǎn)單的編程,跟硬件
18、結(jié)合也沒(méi)有這么復(fù)雜,實(shí)現(xiàn)的功能都比較簡(jiǎn)單,可是這次要實(shí)現(xiàn)的功能相對(duì)來(lái)說(shuō)比較復(fù)雜,要求掌握的知識(shí)比較綜合。經(jīng)過(guò)一周的實(shí)訓(xùn),匯編語(yǔ)言的一些編程設(shè)計(jì)等操作可以較為熟練,微機(jī)原理課程所涉及到的領(lǐng)域和應(yīng)用的范圍也得到了更多的了解,總的來(lái)說(shuō),實(shí)訓(xùn)的一周是豐富而有成功的。剛開(kāi)始學(xué)習(xí)匯編語(yǔ)言是相當(dāng)吃力的,許多內(nèi)容在以前沒(méi)有接觸過(guò),許多源代碼不能理解,實(shí)訓(xùn)的頭兩天就是很簡(jiǎn)單的試著操作這些內(nèi)容一點(diǎn)點(diǎn)的積累掌握,回去后不理解的地方趕緊詢(xún)問(wèn)其他同學(xué)以便在第二天上機(jī)時(shí)應(yīng)用好,經(jīng)過(guò)不懈的努力,終于將一個(gè)簡(jiǎn)單的電子琴程序設(shè)計(jì)完成。匯編語(yǔ)言是一門(mén)較難的計(jì)算機(jī)內(nèi)容,開(kāi)始學(xué)習(xí)的時(shí)候較為困難,但是平時(shí)的課堂的學(xué)習(xí)和這一次的集中的上機(jī)實(shí)訓(xùn),使我不但能夠較好的了解并掌握了一些匯編語(yǔ)言的知識(shí)和技能,相信在以后的社會(huì)生活中也可以得到應(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025新入職工安全培訓(xùn)考試試題附參考答案(輕巧奪冠)
- 2025廠(chǎng)里安全培訓(xùn)考試試題5A
- 2025公司、項(xiàng)目部、各個(gè)班組安全培訓(xùn)考試試題(考題)
- 知到智慧樹(shù)網(wǎng)課:病理生理學(xué)(南方醫(yī)大)章節(jié)測(cè)試滿(mǎn)分答案
- 2025跨境電商購(gòu)銷(xiāo)合同范本
- 2025租房合同標(biāo)準(zhǔn)范本
- 2025移動(dòng)應(yīng)用版本軟件授權(quán)合同樣書(shū)
- 2025精簡(jiǎn)版房屋裝修合同協(xié)議
- 2025購(gòu)方信貸合同示范文本
- 2025辦公室租賃合同范例
- 2023-2024學(xué)年滬科版(2019)高中信息技術(shù)必修一第三單元項(xiàng)目六《解決溫標(biāo)轉(zhuǎn)換問(wèn)題-認(rèn)識(shí)程序和程序設(shè)計(jì)語(yǔ)言》教學(xué)設(shè)計(jì)
- 《豬的傳染病》課件
- 非煤礦山安全生產(chǎn)作業(yè)指導(dǎo)書(shū)
- 《新媒體營(yíng)銷(xiāo)》課件-項(xiàng)目一 新媒體營(yíng)銷(xiāo)認(rèn)知
- 醫(yī)學(xué)倫理學(xué)的倫理原則
- 2025年春新人教PEP版英語(yǔ)三年級(jí)下冊(cè)課件 Revision Going to a school fair-第2課時(shí)
- 《健康進(jìn)課堂》2024年幼兒園家長(zhǎng)助教醫(yī)療版
- 《汽車(chē)涂裝》2024-2025學(xué)年第一學(xué)期工學(xué)一體化課程教學(xué)進(jìn)度計(jì)劃表
- 小學(xué)生涯回顧分享模板
- 機(jī)關(guān)財(cái)務(wù)課件
- 2025年冀教版七年級(jí)英語(yǔ)下冊(cè)教學(xué)工作計(jì)劃
評(píng)論
0/150
提交評(píng)論