freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機的電子琴的設(shè)計_課程設(shè)計說明書(完整版)

2024-08-26 17:21上一頁面

下一頁面
  

【正文】 綽有余。使用兩個按鍵,一個用來切換到自動播放歌曲并 LED 閃爍,另一個 在自動演奏和奏樂的過程中按停止鍵則中斷演奏 。 關(guān)鍵詞: 電子琴; AT89S52 單片機;數(shù)碼管; LED 燈;音調(diào);節(jié)拍。 小小的 電子琴 可以給人們帶來美好的回憶,提高人們的精神文化享受 同時能具有音樂盒的播放功能 。可以用它來彈奏和播放樂曲。 設(shè)計任務(wù)要求 主要研究內(nèi)容為 設(shè)計一 個多功能 電子琴, 要求如下: ( 1) 通過按鍵 能夠發(fā)出 相應(yīng)的 音符 并播放產(chǎn)生樂音,實現(xiàn)演奏 ; ( 2) 演奏的同時可數(shù)字顯示當前的音調(diào),利于培養(yǎng)樂感 ; ( 3) 可以選定播放固定樂曲自動演奏,演奏時 LED 進行節(jié)拍指示 ; ( 4) 在自動演奏和奏樂的過程中按停止鍵則中斷演奏 ; ( 5) 可以選擇調(diào)節(jié)音量大或小。但是 LED 點陣使用相對復雜,需要的外圍電路多一些。 綜上所列我們選擇了方案一作為聲音的播放電路方案,雖然增加課些許的成本,但是其產(chǎn)生的效果卻是物超所值的。片上 Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī) 編程器。為使外圍元件最少,電壓增益內(nèi)置為 20。 LED 有單個 LED 和八段 LED 之分,也有共陰和共陽兩種。 圖 34 AT89S52 控制電路 時鐘振蕩電路設(shè)計 AT89S52 中有一個用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳 XTAL1 和XTAL2 分別是該放大器的輸入端和輸出端。 圖 39 聲音播放電路 復位電路的設(shè)計 復位后 PC= 0000H,使單片機從第 — 個單元取指令。 若要構(gòu)成音樂,光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂具有旋律(固定的律動),而且可以調(diào)節(jié)各個音的快滿度。 按鍵子程序流程圖如下所示: N Y 開始 定時器 初始化 開啟外部中斷 主程序 循環(huán)檢測按鍵 LED 燈指示 播放聲音 數(shù)碼管顯示 K11 鍵按下 K12 鍵按下 K13 鍵按下 LED 燈、數(shù)碼管、低音 DO LED 燈、數(shù)碼管、低音 RE LED 燈、數(shù)碼管、低音 MI 13 圖 42 鍵盤掃描框圖 K14 鍵按下 K21 鍵按下 K22 鍵按下 K23 鍵按下 K24 鍵 按下 K31 鍵按下 K32 鍵按下 K33 鍵按下 K34 鍵按下 K41 鍵按下 K42 鍵按下 K43 鍵按下 K44 鍵按下 LED 燈、數(shù)碼管、低音 FA LED 燈、數(shù)碼管、低音 SO LED 燈、數(shù)碼管、低音 LA LED 燈、數(shù)碼管、低音 SI LED 燈、數(shù)碼管、高音 DO LED 燈、數(shù)碼管、高音 DO LED 燈、數(shù)碼管、高音 SI LED 燈、數(shù)碼管、高音 LA LED 燈、數(shù)碼管、高音 SO LED 燈、數(shù)碼管、高音 FA LED 燈、數(shù)碼管、高音 MI LED 燈、數(shù)碼管、高音 RE LED 燈、數(shù)碼管、高音 DO 14 程序編寫 程序開頭以及參數(shù)定義 include include define unint unsigned int define unchar unsigned char void check_key()。 //數(shù)碼管 unchar code Table3[] = {0xFE,0xFC,0xF8,0xF0, 0xE0,0xC0,0x80,0x00, 0x00,0x01,0x03,0x07, 0x0F,0x1F,0x3F,0x7F}。 /*****15ms 延時子程序,用于節(jié)拍 *****/ void delay(void) { unsigned char n=15。 EX0=1。 } void int_0() interrupt 0 { TR0=~TR0。 unsigned char a=1。 tone2=yinfu[2*a1]。 } } 主程序 主程序中對鍵盤的掃描運用 WHILE 程序不斷進行。0x0f。tone1=0xfb。tone1=0xfc。tone1=0xfc。tone1=0xfc。 Temp = Tempamp。 Temp = P2。EA=1。EA=1。EA=1。EA=1。 P1=Table3[Key]。0x0f。TR0=0。TR0=0。TR0=0。TR0=0。 //掃描第 4 行鍵盤 Temp = P2。 switch(Temp) { case 0x77: Key = 12。 //41 被按下 case 0x7b: Key = 13。 //42 被按下 case 0x7d: Key = 14。 //43 被按下 21 case 0x7e: Key = 15。 //44 被按下 } P0 = Table1[Key]。 例如:復位電路是否設(shè)計正確;揚聲器模塊是否連接正確; LED 燈是否連接正確,避免反接等問題。 專業(yè)設(shè)計的過程中有成功的喜悅,有問題的困惱,讓我更明白了這一過程的彌足珍貴,還有“付出就有收獲”這句箴言。將所有程序組織起來,在軟件環(huán)境下運行,檢查程序是否正確。 Temp = Tempamp。tone1=0xfb。tone1=0xfc。tone1=0xfc。tone1=0xfc。0x0f。 //34 被按下 } P0 = Table1[Key]。 //33 被按下 case 0xbe: Key = 11。 //32 被按下 case 0xbd: Key = 10。 20 //31 被按下 case 0xbb: Key = 9 。 switch(Temp) { case 0xb7: Key = 8 。 //掃描第 3 行鍵盤 Temp = P2。TR0=0。TR0=0。TR0=0。TR0=0。0x0f。 P1=Table3[Key]。EA=1。EA=1。EA=1。EA=1。 //延時一段時間在進行檢測,以消除鍵盤抖動現(xiàn)象 Temp = P2。 ET0=1。 z++。 unsigned char l=1。 } void delay1 (unint v) { while(v!=0) v。 //定時器 0,工作方式 1 TH0=tone1。 for(i=0。 /*****生日快樂歌音調(diào)表 *****/ unsigned char code shengri_tone[]= { 1,0,1,2,1,4,3,0, 1,0,1,2,1,5,4,0, 1,0,1,8,6,4,3,2,0, 15 7,0,7,6,4,5,4,0 //0 代表不發(fā)聲,即停頓;數(shù)字即為音 }。 sbit SPEAKER= P3^5 。節(jié)拍實際上就是音持續(xù)時間的長短,在單片機系統(tǒng)中可以用延時來實現(xiàn),如果 1/4 拍的延時是 秒,則 1 拍的延時是 秒,只要知道 1/4 拍的延時時間,其余的節(jié)拍延
點擊復制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1