微機(jī)原理課程設(shè)計(jì)---電子琴設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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><b>  一、設(shè)計(jì)目的</b></p><p>  通過(guò)這一次的課程設(shè)計(jì),使學(xué)生能夠掌握微機(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é)合專業(yè)從

2、事微機(jī)應(yīng)用設(shè)計(jì)奠定基礎(chǔ)。</p><p>  二、設(shè)計(jì)的原始資料及依據(jù)</p><p>  查閱定時(shí)器8254,可編程8255及音節(jié)的頻率范圍等資料。</p><p>  通過(guò)改變鍵盤輸入來(lái)改變8254輸出頻率,實(shí)現(xiàn)揚(yáng)聲器發(fā)音。</p><p>  三、設(shè)計(jì)的主要內(nèi)容及要求</p><p>  利用微機(jī)原理試驗(yàn)箱,設(shè)計(jì)

3、簡(jiǎn)易電子琴,要求至少可以彈出7個(gè)音階。</p><p>  四、 設(shè)計(jì)完成后應(yīng)提交成果的種類、數(shù)量、質(zhì)量等方面的要求;</p><p>  提交課程設(shè)計(jì)說(shuō)明書(shū)一份。在說(shuō)明書(shū)中要有設(shè)計(jì)原理、硬件電路接線圖、設(shè)計(jì)的程序及必要注釋等。</p><p>  七、主要參考資料(文獻(xiàn))</p><p> ?。薄ⅰ段C(jī)原理與應(yīng)用》大連理工大學(xué)出版社<

4、/p><p>  2、《微機(jī)原理與接口技術(shù)》北京航空航天大學(xué)出版社</p><p> ?。场ⅰ段⑿陀?jì)算機(jī)原理與匯編語(yǔ)言》電子工業(yè)出版社</p><p> ?。?、《8088/8086匯編語(yǔ)言程序設(shè)計(jì)》中央廣播電視大學(xué)出版社</p><p><b>  中文摘要和關(guān)鍵詞</b></p><p>  本實(shí)驗(yàn)

5、是利用微機(jī)原理試驗(yàn)箱、8255芯片、8254芯片、鍵盤、揚(yáng)聲器等硬件設(shè)備,設(shè)計(jì)簡(jiǎn)易電子琴。</p><p>  首先利用了編程程序,編輯了8255芯片控制字, 對(duì)其進(jìn)行初始化,使其工作在方式0,即基本輸入輸出狀態(tài),將8255的A端口設(shè)置為輸出,C端口進(jìn)行,經(jīng)CPU運(yùn)算后, 輸出到8254芯片的A端口中,由此實(shí)現(xiàn)對(duì)其的初始化。</p><p>  將8254芯片設(shè)置為工作在方式3,即輸出對(duì)稱

6、方波狀態(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ì)鍵盤的重復(fù)掃描,重而可以彈奏多個(gè)音符的試驗(yàn)?zāi)康摹?lt;/p><p>  關(guān)鍵字: 編程、工作方式、運(yùn)算</p><p><b>  一、設(shè)計(jì)題目:</b></p>&l

7、t;p><b>  簡(jiǎn)易電子琴設(shè)計(jì)</b></p><p><b>  二、設(shè)計(jì)內(nèi)容:</b></p><p>  利用微機(jī)原理試驗(yàn)箱,設(shè)計(jì)簡(jiǎn)易電子琴。</p><p><b>  三、設(shè)計(jì)目的:</b></p><p>  通過(guò)課程設(shè)計(jì)使學(xué)生更進(jìn)一步掌握微機(jī)原理及應(yīng)用課

8、程的有關(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é)合專業(yè)從事微機(jī)應(yīng)用設(shè)計(jì)奠定基礎(chǔ)。</p><p><b>  四、設(shè)計(jì)要求:</b></p><p>  1.可以彈出7個(gè)音階。</p><p><b>  2.彈奏簡(jiǎn)短

9、音樂(lè)。</b></p><p>  3.通過(guò)改變鍵盤輸入來(lái)改變8254輸出頻率,實(shí)現(xiàn)揚(yáng)聲器發(fā)音</p><p><b>  五、設(shè)計(jì)原理:</b></p><p>  音符與頻率的關(guān)系如表所示,而持續(xù)時(shí)間則取決于樂(lè)曲的速度和每個(gè)音符持續(xù)的長(zhǎng)短。在拍號(hào)為4/4的樂(lè)曲中,每小節(jié)包含4拍,全音符持續(xù)4拍,二分音符持續(xù)2拍,四分音符持續(xù)1拍

10、,八分音符持續(xù)半拍等等。根據(jù)樂(lè)曲進(jìn)行速度,假設(shè)一個(gè)全音符分配1S時(shí)間,則每拍持續(xù)時(shí)間為250MS。如果持續(xù)時(shí)間的最小單位是10MS,則相應(yīng)的拍長(zhǎng)時(shí)間數(shù)據(jù)為25,該數(shù)據(jù)存放在BX寄存器中,從而可以確定每個(gè)音符的持續(xù)時(shí)間。</p><p>  六、元器件功能簡(jiǎn)介:</p><p>  1.8255引腳功能</p><p>  RESET:復(fù)位輸入線,當(dāng)該輸入端外于高電平

11、時(shí),所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成輸入方式。</p><p>  CS:片選信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),表示芯片被選中,允許8255與CPU進(jìn)行通訊。</p><p>  RD:讀信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),允許8255通過(guò)數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。</p><p>  WR:寫(xiě)

12、入信號(hào),當(dāng)這個(gè)輸入引腳為低電平時(shí),允許CPU將數(shù)據(jù)或控制字寫(xiě)入8255。</p><p>  D0~D7:三態(tài)雙向數(shù)據(jù)總線,8255與CPU數(shù)據(jù)傳送的通道,當(dāng)CPU 執(zhí)行輸入輸出指令時(shí),通過(guò)它實(shí)現(xiàn)8位數(shù)據(jù)的讀/寫(xiě)操作,控制字和狀態(tài)信息也通過(guò)數(shù)據(jù)總線傳送。</p><p>  PA0~PA7:端口A輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個(gè)8位的數(shù)據(jù)輸入鎖存器。</p>

13、<p>  PB0~PB7:端口B輸入輸出線,一個(gè)8位的I/O鎖存器, 一個(gè)8位的輸入輸出緩沖器。</p><p>  PC0~PC7:端口C輸入輸出線,一個(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)輸入端口。</p><

14、p>  A1、A0:端口地址總線,8255中有端口A、B、C和一個(gè)內(nèi)部控制字寄存器,共4個(gè)端口,由A0、A1輸入地址信號(hào)來(lái)尋址。</p><p>  本實(shí)驗(yàn)用到的引腳有PA0-PA3、PC0-PC3、D0-D7、A0、A1、WR、RD、CS 、和GND 。</p><p>  圖 1. 8255的控制字格式</p><p>  2.8254 可編程計(jì)數(shù)/定

15、時(shí)器</p><p>  芯片完成對(duì)外部脈沖信號(hào)的各種處理。8254芯片內(nèi)部具有三個(gè)獨(dú)立的16位計(jì)數(shù)器,它可用程序設(shè)置成多種工作方式,按十進(jìn)制計(jì)數(shù)或二進(jìn)制計(jì)數(shù),最高計(jì)數(shù)速率可達(dá)10MHz。</p><p>  8254的全部功能是由CPU編程設(shè)定的。CPU通過(guò)輸出指令給8254裝入控制字,從而設(shè)定其功能。8254控制字格式如下:</p><p>  D7 D

16、6 D5 D4 D3 D2 D1 D0</p><p>  各位的功能見(jiàn)表1~表4:</p><p>  表1 SC1、SC0 - 計(jì)數(shù)器選擇</p><p>  表2 RL1、RL0-CPU讀/寫(xiě)操作</p><p>  表3 M2、M1、M0 -工作方式選擇</p><p&g

17、t;  表4 BCD-計(jì)數(shù)方式選擇</p><p>  七、設(shè)計(jì)原程序及注解</p><p><b>  程序代碼:</b></p><p>  MY8255_A EQU 0600H</p><p>  MY8255_B EQU 0602H</p><p>  MY8255_C

18、 EQU 0604H </p><p>  MY8255_MODE EQU 0606H</p><p>  MY8254_MODE EQU 06C6H</p><p>  MY8254_A EQU 06C0H ;進(jìn)行宏定義</p>

19、<p>  DATA SEGMENT</p><p>  FREQ_LIST DW 441D,495D,556D,589D,661D,742D,833D,882D,</p><p>  262D,294D,330D,373D,402D,450D,494D,-1D</p><p>  DATA ENDS;建立數(shù)據(jù)段</p><

20、;p>  CODE SEGMENT</p><p>  ASSUME CS:CODE,DS:DATA</p><p>  START: MOV AX,DATA</p><p>  MOV DS,AX ;實(shí)現(xiàn)段寄存器DS的初始化</p><p>  MOV DX,MY8255_MODE

21、</p><p>  MOV AL,81H</p><p>  OUT DX,AL ;寫(xiě)8255芯片的控制字,實(shí) </p><p>  現(xiàn)工作在方式0,A端口和B端口輸出,C端口輸入</p><p>  MOV DX,MY8254_MODE</p><p>  MO

22、V AL,36H</p><p>  OUT DX,AL ;使8254工作在方式3,A</p><p>  口輸入,運(yùn)用計(jì)數(shù)器0,二進(jìn)制方式</p><p>  BEGIN: CALL CCSCAN ;掃描</p><p>  JNZ INK1

23、 ;有鍵按下時(shí)跳到INK1</p><p>  JMP BEGIN ;沒(méi)見(jiàn)按下時(shí)循環(huán)執(zhí)行</p><p><b>  BEGIN</b></p><p><b>  ;確定按下鍵的位置</b></p><p>

24、  INK1: MOV CH,0FEH ;確定按下鍵在第一列</p><p>  MOV CL,00H ;將CL清零</p><p>  COLUM: MOV AL,CH</p><p>  MOV DX,MY8255_A ;將8

25、255的A口地址賦給DX</p><p>  OUT DX,AL ;將CPU中的AL值送到8255</p><p>  的A口中,即送到x1、x2、</p><p><b>  x3、x4中</b></p><p>  MOV DX,MY8255_C

26、 ; 將8255的C口地址賦給DX</p><p>  IN AL,DX ;將C口的值送到AL中 </p><p>  L1: TEST AL,01H ;檢驗(yàn)按下鍵是否在L1</p><p>  JNZ L2

27、 ;不是L1則跳到L2</p><p>  MOV AL,00H ;為了后面用來(lái)與FREQ_LIST</p><p><b>  數(shù)據(jù)段中數(shù)對(duì)應(yīng)</b></p><p>  JMP KCODE ;強(qiáng)制跳轉(zhuǎn)到KCODE</p

28、><p>  L2: TEST AL,02H ;檢驗(yàn)按下鍵是否在L2 </p><p>  JNZ L3 ;不是L2則跳到L3</p><p>  MOV AL,04H ;為了后面用來(lái)與FREQ_LIST</p><p

29、><b>  數(shù)據(jù)段中數(shù)對(duì)應(yīng)。</b></p><p>  JMP KCODE ;強(qiáng)制跳轉(zhuǎn)到KCODE</p><p>  L3: TEST AL,04H ;檢驗(yàn)按下鍵是否在L23</p><p>  JNZ L4

30、 ;不是L3則跳到L4</p><p>  MOV AL,08H ;為了后面用來(lái)與FREQ_LIST</p><p><b>  數(shù)據(jù)段中數(shù)對(duì)應(yīng)。</b></p><p>  JMP KCODE ;強(qiáng)制跳轉(zhuǎn)到KCODE</p><p&

31、gt;  L4: TEST AL,08H ;檢驗(yàn)按下鍵是否在L4 </p><p>  JNZ NEXT ;不是L4則跳到NEXT</p><p>  MOV AL,0CH ;為了后面用來(lái)與FREQ_LIST</p><p><b

32、>  數(shù)據(jù)段中數(shù)對(duì)應(yīng)。</b></p><p>  KCODE: ADD AL,CL ;實(shí)現(xiàn)AL與CL的無(wú)進(jìn)位加法</p><p>  MOV DL,2D </p><p>  MUL DL ;將AL乘以2結(jié)果保存到

33、AX中</p><p>  PLAY: MOV SI,OFFSET FREQ_LIST ;使SI指向 FREQ_LIST的首地址</p><p>  ADD SI,AX ;通過(guò)SI加AX 實(shí)現(xiàn)指針SI的移動(dòng)</p><p>  MOV DX,0FH </p>

34、;<p>  MOV AX,4240H ;被除數(shù)為0F4240H</p><p>  DIV WORD PTR[SI] ;除數(shù)為SI所指的數(shù)據(jù)</p><p>  MOV DX,MY8254_A ;將8255的A口地址賦給DX</p><p>  OUT DX

35、,AL ;輸出商的低4位</p><p><b>  MOV AL,AH</b></p><p>  OUT DX,AL ;輸出商的高4位</p><p>  MOV CX,8D ;輸入計(jì)數(shù)值CX</p>

36、<p>  NEXT3: CALL DALLY ;調(diào)用延時(shí)子程序DALLY</p><p>  LOOP NEXT3 ;CX不為0重復(fù)執(zhí)行NEXT3 </p><p>  MOV DX,0FH </p><p>  MOV AX,424

37、0H ;被除數(shù)為0F4240H</p><p>  MOV SI ,30D </p><p>  DIV WORD PTR[SI] ;除數(shù)為SI=30所指的數(shù)據(jù)</p><p>  MOV DX,MY8254_A ;將8255的A口地址

38、賦給DX</p><p>  OUT DX,AL </p><p>  MOV AL,AH </p><p>  OUT DX,AL ;實(shí)現(xiàn)靜音,結(jié)束一個(gè)音符的發(fā)音</p><p>  JMP BEGIN

39、 ;跳轉(zhuǎn)到BEGIN,重復(fù)掃描</p><p>  NEXT: INC CL ;使CL加1,為了后面用來(lái)與</p><p>  FREQ_LIST數(shù)據(jù)段中數(shù)對(duì)應(yīng)</p><p>  MOV AL,CH </p><p&g

40、t;  TEST AL,08H </p><p>  JZ KERR ;無(wú)鍵按下時(shí)跳轉(zhuǎn)到KERR</p><p>  ROL AL,1D ;向左移位</p><p><b>  MOV CH,AL</b>

41、</p><p>  JMP COLUM ;強(qiáng)制跳轉(zhuǎn)到COLUM</p><p>  KERR: JMP BEGIN ;跳到BEGIN重新開(kāi)始掃描</p><p><b>  ;鍵盤掃描子程序</b></p><p&g

42、t;  CCSCAN: MOV AL,00H</p><p>  MOV DX,MY8255_A </p><p>  OUT DX,AL ;使8255芯片A端口輸出</p><p>  為0,既使x1、x2、x3、 </p><p><b>  X4為0</b>

43、</p><p>  MOV DX,MY8255_C </p><p>  IN AL,DX ;將從C端口輸入的y1、y2、y3、y4送到AL中</p><p>  NOT AL ;將AL取反</p><p>  AND

44、AL,0FH ;將AL前4位清零</p><p><b>  RET</b></p><p><b>  ;延時(shí)子程序</b></p><p>  DALLY: PUSH CX ;將CX壓棧</p>

45、;<p>  MOV CX,000FH </p><p>  T1: MOV AX,0009FH</p><p>  T2: DEC AX ;使AX減1</p><p>  JNZ T2

46、 ;AX不為0重復(fù)T2</p><p>  LOOP T1 ;CX不為0重復(fù)T1</p><p>  POP CX ;將CX出棧</p><p><b>  RET</b></p>

47、<p>  CODEENDS ;代碼段定義結(jié)束</p><p>  END START ;程序結(jié)束</p><p><b>  八、程序流程圖:</b></p><p><b>  九、程序接線圖:

48、</b></p><p>  右圖Y組對(duì)應(yīng)8255芯片的C口(Y值為1)與+5V連 L1 L2 L3 L4</p><p><b>  Y4</b></p><p>  Y3 X組對(duì)應(yīng)8255芯片的A口(X值為0)</p><p>  Y2當(dāng)有鍵按下時(shí)如5鍵,其對(duì)應(yīng)的Y值</p&

49、gt;<p>  Y2為0,則8255芯片由C口輸入的數(shù) Y1</p><p>  值為1101給AL。</p><p>  X1 X2 X3 X4 </p><p><b>  總 結(jié)</b></p><p>  本學(xué)期我們有一周的微機(jī)原理課設(shè),雖然時(shí)間不是

50、很長(zhǎng),但對(duì)我而言收獲卻很多,也體會(huì)到了電子設(shè)計(jì)行業(yè)工作的辛苦,經(jīng)過(guò)老師細(xì)心的講解和我們的不懈努力,最終我組能夠把學(xué)到的知識(shí)運(yùn)用到實(shí)際中去,這讓我對(duì)本學(xué)科的學(xué)習(xí)產(chǎn)生了更加濃厚的興趣,但一切都是值得的。</p><p>  這次課程設(shè)計(jì)對(duì)我綜合運(yùn)用所學(xué)知識(shí)的能力的提高有不小的幫助,之前做的實(shí)驗(yàn)都是很簡(jiǎn)單的編程,跟硬件結(jié)合也沒(méi)有這么復(fù)雜,實(shí)現(xiàn)的功能都比較簡(jiǎn)單,可是這次要實(shí)現(xiàn)的功能相對(duì)來(lái)說(shuō)比較復(fù)雜,要求掌握的知識(shí)比較綜合

51、。</p><p>  經(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)的積累掌握,回去后不理解的地方趕緊詢問(wèn)其他同學(xué)以便在第二天上機(jī)時(shí)應(yīng)用好,經(jīng)過(guò)不懈的努力,終于將一個(gè)簡(jiǎn)單的電子琴程序

52、設(shè)計(jì)完成。</p><p>  匯編語(yǔ)言是一門較難的計(jì)算機(jī)內(nèi)容,開(kāi)始學(xué)習(xí)的時(shí)候較為困難,但是平時(shí)的課堂的學(xué)習(xí)和這一次的集中的上機(jī)實(shí)訓(xùn),使我不但能夠較好的了解并掌握了一些匯編語(yǔ)言的知識(shí)和技能,相信在以后的社會(huì)生活中也可以得到應(yīng)用。</p><p>  在最后的答辯前,我對(duì)幾天來(lái)在對(duì)幾個(gè)程序的編排和改進(jìn)上所遇到的問(wèn)題又進(jìn)行了認(rèn)真的總結(jié),使我對(duì)整個(gè)程序都有了很深的了解,而且也可以熟練的操作和應(yīng)用

53、到程序中去,也順利的通過(guò)了答辯。</p><p>  這是一次成功的實(shí)訓(xùn),也是應(yīng)值得遠(yuǎn)記住的一次實(shí)訓(xùn),在這次實(shí)訓(xùn)中我充分感受到了集體的力量,在我組組員的共同努力下,我們的電子琴程序從無(wú)到有、功能從弱到強(qiáng),一步步的走向成功,這段經(jīng)歷將成為我生活中一段寶貴的精神財(cái)富。</p><p><b>  參考文獻(xiàn):</b></p><p> ?。薄ⅰ叮福埃?/p>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論