資源描述:
《微機(jī)原理課程設(shè)計(jì)--電子琴設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、課程設(shè)計(jì)說(shuō)明書(shū)題目姓名專(zhuān)業(yè)班級(jí)系(部)指導(dǎo)老師34目錄摘要11設(shè)計(jì)任務(wù)及要求22工作原理22.18253簡(jiǎn)介32.28255簡(jiǎn)介43設(shè)計(jì)思路43.1程序功能描述43.2程序流程圖53.3DOS/BIOS功能調(diào)用63.3.1INT16H(鍵盤(pán)I/O中斷)63.3.2INT10H(屏幕及顯示器中斷)73.3.3INT21H(DOS系統(tǒng)功能調(diào)用)84方案比較及論證85程序源代碼及注釋86運(yùn)行結(jié)果分析117調(diào)試過(guò)程記錄128課程設(shè)計(jì)小結(jié)13參考文獻(xiàn)14附錄1534摘要本文通過(guò)8255和8253來(lái)實(shí)現(xiàn)電子琴模擬,主要可以分成兩部分,分別為輸入部分和發(fā)音部分
2、。輸入部分主要是由8255和8個(gè)常開(kāi)型開(kāi)關(guān)來(lái)完成。發(fā)音部分由CUP通過(guò)對(duì)定時(shí)器8253的通道2進(jìn)行編程,使其I/O寄存器接收一個(gè)控制聲音頻率的16位計(jì)數(shù)值,端口61H的最低位控制通道2門(mén)控的開(kāi)斷,以產(chǎn)生特殊的音響。本文用到的是8253的方式3——方波發(fā)生器。在程序設(shè)計(jì)中,為了避免過(guò)于頻繁的調(diào)用中斷顯示字符串,應(yīng)用了宏定義;還通過(guò)子程序調(diào)用,有效的解決了跳轉(zhuǎn)和轉(zhuǎn)移過(guò)多的問(wèn)題;再加上合理的DOS和BIOS功能調(diào)用,以及各種指令的綜合,最終作出了漂亮的電子琴界面,并實(shí)現(xiàn)了電子琴演奏高、中、低音,以及播放預(yù)存樂(lè)曲的功能。關(guān)鍵詞:電子琴8253定時(shí)器825
3、5DOS調(diào)用宏定義341設(shè)計(jì)任務(wù)及要求初始條件:用匯編語(yǔ)言設(shè)計(jì)一個(gè)電子琴,在屏幕上顯示出來(lái),界面要美觀,功能上模擬現(xiàn)實(shí)電子琴功能。要求完成的主要任務(wù):1.實(shí)現(xiàn)彈奏功或演奏。其中彈奏:用戶(hù)每按一琴鍵彈奏相應(yīng)音符;演奏:按下某鍵后自動(dòng)彈奏預(yù)存琴譜功能;還可以附加變調(diào)2.界面要美觀。2工作原理PC機(jī)揚(yáng)聲器電路以及相關(guān)接口電路如圖2-1。圖2-1PC機(jī)揚(yáng)聲器電路及相關(guān)接口電路通過(guò)8255和8253來(lái)實(shí)現(xiàn)電子琴模擬,主要可以分成兩部分,分別為輸入部分和發(fā)音部分。輸入部分:主要是由8255和8個(gè)常開(kāi)型開(kāi)關(guān)來(lái)完成。發(fā)音部分:CUP通過(guò)對(duì)定時(shí)器的通道2進(jìn)行編程,
4、使其I/O寄存器接收一個(gè)控制聲音頻率的16位計(jì)數(shù)值,端口61H的最低位控制通道2門(mén)控的開(kāi)斷,以產(chǎn)生特殊的音響。當(dāng)通道2用于發(fā)聲時(shí),采用的是方式3,在方式3下,輸出線為“1”和為“034”的時(shí)間各占計(jì)數(shù)時(shí)間的一半,因而產(chǎn)生一系列間隔均勻的脈沖。從定時(shí)器輸出的方波信號(hào),經(jīng)功率放大和濾波后驅(qū)動(dòng)揚(yáng)聲器。送到揚(yáng)聲器的信號(hào)還受到了從并行接口芯片8255(端口地址為61H)來(lái)的雙重控制,端口61H的最低位控制通道2的門(mén)控開(kāi)斷,以產(chǎn)生特殊的音頻信號(hào),端口61H的PB1位和定時(shí)器的輸出信號(hào)同時(shí)作為與門(mén)的輸入,PB0和PB1位可由程序決定為0還是為1。顯然只有PB0
5、和PB1都是1時(shí),才能使揚(yáng)聲器發(fā)出聲音??刂埔糸L(zhǎng)的時(shí)間可以簡(jiǎn)單地通過(guò)反復(fù)執(zhí)行指令來(lái)得到。2.18253簡(jiǎn)介8253芯片是常用的可編程計(jì)數(shù)器,在微機(jī)中有著極其重要的作用。常用于事件計(jì)數(shù)器,單穩(wěn)態(tài)觸發(fā)器,分頻器,方波發(fā)生器,硬件觸發(fā)的單脈沖發(fā)生器等。計(jì)數(shù)器/定時(shí)器8253包括3個(gè)獨(dú)立的16位計(jì)數(shù)器通道,而每個(gè)計(jì)數(shù)器都有6種工作方式,可以按二進(jìn)制或十進(jìn)制(BCD碼)進(jìn)行計(jì)數(shù)。本文用到的是8253的方式3——方波發(fā)生器來(lái)實(shí)現(xiàn)了簡(jiǎn)易電子琴的設(shè)計(jì)。8253的方式控制字如圖2-2所示。圖2-28253的方式控制字8253的工作方式3——方波發(fā)生器:它的特點(diǎn)是:
6、(1)輸出為周期性的方波。若計(jì)數(shù)值為N,則輸出方波的周期是N個(gè)CLK脈沖的寬度。34(2)寫(xiě)入控制字后,輸出將變?yōu)楦唠娖剑?dāng)寫(xiě)入計(jì)數(shù)初值后,就開(kāi)始計(jì)數(shù),輸出仍為高電平;當(dāng)計(jì)數(shù)到初值的一半時(shí),輸出變?yōu)榈碗娖剑敝劣?jì)數(shù)到0,輸出又變?yōu)楦唠娖?,重新開(kāi)始計(jì)數(shù)。(3)若計(jì)數(shù)值為偶數(shù),則輸出對(duì)稱(chēng)方波;如果計(jì)數(shù)值為奇數(shù),則前(N+1)/2個(gè)CLK脈沖期間輸出為高電平,后(N-1)/2個(gè)CLK脈沖期間輸出為低電平。(4)GATE信號(hào)能使計(jì)數(shù)過(guò)程重新開(kāi)始,GATE=1允許計(jì)數(shù),GATE=0禁止計(jì)數(shù)。停止后OUT將立即變高電平,當(dāng)GATE再次變高以后,計(jì)數(shù)器將自動(dòng)裝
7、入計(jì)數(shù)初值,重新開(kāi)始計(jì)數(shù)。2.28255簡(jiǎn)介按功能可把8255分為三個(gè)邏輯電路部分,即:口電路、總線接口電路和控制邏輯電路。8255共有三個(gè)8位口,其中A口和B口是單純的數(shù)據(jù)口,供數(shù)據(jù)I/O使用。而C口則既可以作數(shù)據(jù)口,又可以作控制口使用,用于實(shí)現(xiàn)A口和B口的控制功能。8255A的方式控制字如圖2-3所示。圖2-38255A的方式控制字3設(shè)計(jì)思路343.1程序功能描述程序開(kāi)始,顯示電子琴界面和提示信息,對(duì)緩存區(qū)初始化。按鍵掃描,接著調(diào)用發(fā)音子程序把a(bǔ)l送緩存區(qū),發(fā)出與按鍵相對(duì)應(yīng)頻率的聲音,從而實(shí)現(xiàn)計(jì)算機(jī)鋼琴功能:鍵盤(pán)按鍵“q、w、e、r、t、y、
8、u”實(shí)現(xiàn)音調(diào)的高音輸入;鍵盤(pán)按鍵“a、s、d、f、g、h、j”實(shí)現(xiàn)音調(diào)的中音輸入;鍵盤(pán)按鍵“z、x、c、v、b、n、m”實(shí)現(xiàn)音調(diào)的低音輸