資源描述:
《電子琴設計(微機原理課程設計)》由會員上傳分享,免費在線閱讀,更多相關內容在工程資料-天天文庫。
1、微機原理課程設計電子琴設計一、設計內容編寫一實現(xiàn)電子琴的程序,并實現(xiàn)若干擴展功能。基本功能:用鍵盤輸入對應的七個音階,通過實驗箱的喇叭發(fā)出聲音,并通過七段數(shù)碼管顯示輸入音階;擴展功能:1、在程序中可預設多首曲目,按一鍵可以進入預設子菜單,對要播放的曲目進行選擇,并實現(xiàn)播放該曲目。2、程序運行時有友好的用戶介面。3.當彈奏不同音階時,雙色點陣LED顯示器顯示不同的圖案二、元件與儀器1.計時器82532.并行控制器8255A3.實驗臺三、設計原理、思路及流程圖1、設計原理(1)對于一個特定的D/A轉換接口電路,CPU執(zhí)行一條輸出指令將數(shù)據送入D/A,即可在其輸出端得
2、到一定的電壓輸出。給D/A轉換器輸入按正弦規(guī)律變化的數(shù)據,在其輸出端即可產生正弦波。對于音樂,每個音階都有確定的頻率。各音階標稱頻率值:(2)產生一個正弦波的數(shù)據可取32個(小于亦可),不同頻率的區(qū)別,可通過調節(jié)向D/A轉換器輸出數(shù)據的時間間隔,例如:發(fā)"1"頻率為261。1HZ,周期為1/261.1=3.83ms,輸出數(shù)據的時間間隔為3.83ms/32=0.12ms.定時時間可以由8253配合8255來實現(xiàn)。按下某鍵后發(fā)音時間的長短可以由發(fā)出的正弦波的個數(shù)多少來控制。本程序中設置默認長度為60個正弦波。(3)實驗臺上的七段數(shù)碼管為共陰型,段碼采用同相驅動,輸入
3、端加高電平,選中的數(shù)碼管亮,位碼加反相驅動器,位碼輸入端高電平選中。(4)點陣LED顯示器是將許多LED類似矩陣一樣排列在一起組成的顯示器件,雙色點陣LED是在每一個點陣的位置上有紅綠或紅黃或紅白兩種不同顏色的發(fā)光二極管。當微機輸出的控制信號使得點陣中有些LED發(fā)光,有些不發(fā)光,即可顯示出特定的信息,包括漢字、圖形等。車站廣場由微機控制的點陣LED大屏幕廣告宣傳牌隨處可見。(5)實驗儀上設有一個共陽極8×8點陣的紅黃兩色LED顯示器,其點陣結構如圖所示。該點陣對外引出24條線,其中8條行線,8條紅色列線,8條黃色列線。若使某一種顏色、某一個LED發(fā)光,只要將與其
4、相連的行線加高電平,列線加低電平即可。例如欲顯示漢字“年”,采用逐列循環(huán)發(fā)光。首先由“年”的點陣輪廓,確定點陣代碼(如圖所示)根據“年”的點陣代碼,確定逐列循環(huán)發(fā)光的順序如下:①行代碼輸出44H;紅色列代碼輸01H;第一列2個紅色LED發(fā)光。②行代碼輸出54H;紅色列代碼輸02H;第二列3個紅色LED發(fā)光。③行代碼輸出54H;紅色列代碼輸04H;第三列3個紅色LED發(fā)光。④行代碼輸出7FH;紅色列代碼輸08H;第四列7個紅色LED發(fā)光。⑤行代碼輸出54H;紅色列代碼輸10H;第五列3個紅色LED發(fā)光。⑥行代碼輸出DCH;紅色列代碼輸20H;第六列5個紅色LED發(fā)
5、光。⑦行代碼輸出44H;紅色列代碼輸40H;第七列2個紅色LED發(fā)光。⑧行代碼輸出24H;紅色列代碼輸80H;第八列2個紅色LED發(fā)光。1、電路連接圖如下:(1)8253和8255連接如下(2).實驗儀上的點陣LED及驅動電路的行代碼、紅色列代碼、黃色列代碼各用一片74LS273鎖存。行代碼輸出的數(shù)據通過行驅動器7407加至點陣的8條行線上,紅和黃列代碼的輸出數(shù)據通過驅動器DS75452反相后分別加至紅和黃的列線上。行鎖存器片選信號為CS1,紅色列鎖存器片選信號為CS2,黃色列鎖存器片選信號為CS3。分別接上298h,2a0h,2a8h.3.設計思路在本次課程設
6、計中,根據復雜程序設計思想——模塊化程序設計,分析和確定程序總體設計目標:電子琴基本功能及部分擴展功能后,將總體目標劃分為若干模塊(子程序,具體可見下)。程序設計的思路按以下順序進行:1.分析與確定程序總體設計目標2.將總體目標劃分為若干模塊3.定義每個模塊的具體任務,明確它與其他模塊間的通信方式1.編寫源程序,進行調試,包括:簡單電子琴主程序結合實驗指導書的兩程序,將其分為若干個子程序,實現(xiàn)簡單的播放和顯示音階的功能。發(fā)音子程序本子程序實現(xiàn)放音功能。首先從鍵盤讀出鍵碼,判斷,如果鍵碼不是1-8(9除外)即仍然處于音階輸入準備狀態(tài),如果是,即求出相應的時間常數(shù)的
7、序號,取60次32個正弦波數(shù)據,播放32個數(shù)據,組成一個正弦波。播放60次后,然后判斷是否有按鍵,如果有就進入死循環(huán),直到下次按鍵為止。放歌子程序本子程序實現(xiàn)播放預置在程序中的歌曲,并加上一個選擇子程序段,可通過選擇進入不同曲目,進而實現(xiàn)播放不同的歌曲,播放時直接調用放音子程序Led顯示子程序本程序實現(xiàn)從鍵盤輸入一位十進制數(shù)字(0~9),在七段數(shù)碼管上顯示出來。顯示廣告版子程序本子程序實現(xiàn)在廣告板上在輸入不同音階時有我們自行設計的圖案顯示。輸入不同圖案相關的代碼,然后調用圖案顯示判斷程序段。對其進行判斷,然后進入圖案顯示代碼,最終顯示不同的圖案。源程序整體程序開
8、始,顯示提示信息,接著調