【正文】
the choice of songs and display the song name, most players without such as random play music rhythm, music and other functions. But as people living standard rise ceaselessly, SCM control is one of the goals that people pursue. For the modern life of work, to provide better and more convenient service needs from proceed toward the SCM technology, all digital control, intelligent control direction.This design is the use of singlechip microputer as the core design of the digital music player. The design in the implementation of music playing and the song name display and other basic functions based on the expansion, adding lights acpaniment, play button, display the beat of the music and other functions.This paper gives a system scheme, hardware establishment detailed circuit design and software program. And through the software and hardware of simultaneous debugging, verify the feasibility of the design scheme.Key words: multi function。目 錄1引言 12硬件設計 2 2 2 2 3 4 4 5 AT89S52控制模塊的設計 5 6 7 LCD顯示電路的設計 7 83軟件設計 9 9 9 10 10 10 1ms延時程序設計 14 LCD顯示子程序設計 15 16 174結論 19參考文獻 20附錄一 硬件原理圖 21附錄二 軟件主程序 22致謝 32摘 要目前流行的MP3播放器的音質(zhì)已相當好,但略感遺憾的是除了選擇歌曲和顯示歌名外,絕大部分播放器沒有諸如隨意彈奏樂曲、樂曲節(jié)奏跳動等功能。 MP3 music player。例如,就目前市場上的MP3的功能越來越強大體積卻越來越小,價格也逐漸便宜,被大多數(shù)人所能接受。彩燈伴奏模塊則是LED通過控制模塊的控制伴隨音樂節(jié)奏閃亮。所以,從本系統(tǒng)設計的功能需求及成本考慮,51單片機性價比更高,AT89S52是擁有2個外部中斷,2個16位定時器,2個可編程串行UART的單片機。我們知道,發(fā)光二極管(英文縮寫為LED)是由半導體材料制成的、能將電信號轉換成光信號的結型電致發(fā)光器件。LCD1602驅(qū)動電路簡單,可以由單片機直接輸出命令驅(qū)動[2]。AT89S51單片機內(nèi)部有一個用于構成振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入和輸出端。因在本系統(tǒng)中需要的按鍵并不多,單片機的I/O數(shù)完全可以滿足,所以采用了獨立式鍵盤設計,如圖3所示。圖3 按鍵輸入電路 揚聲器播放模塊的設計揚聲器播放模塊是由8050 NPN三極管和無源蜂鳴器組成,如圖4所示。其中變位器是為調(diào)節(jié)LCD對比度而設計。音符的節(jié)拍我們可以用定時器T0來控制,送入不同的初值,就可以產(chǎn)生不同的定時時間。 設計的相關音樂說明要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期時間。1/,假設1/4拍為 DELAY,則1拍為4 DELAY。一般把按鍵掃描程序設計成子程序,以便其他程序調(diào)用[6]。 } } if(key3==0)//key3為曲目3或ruai) { delay_ms(9)。 while(!key5)。//延時,用于消抖動 if(key8==0)//延時后再次確認按鍵按下 { xi=1。y0。 mydelay(5)。x19。 TL1 = Sound_Temp_TL1。開始函數(shù)初始化按鍵掃描計算并保存鍵值1次2次判斷模式轉換鍵鍵值手動彈奏播放曲目彩燈伴奏彩燈伴奏顯示彈奏音符顯示曲目名稱圖12 系統(tǒng)主程序框圖4 結論本設計以MSC51系列單片機為核心,充分利用了AT89C51芯片的I/O引腳,以獨立式鍵盤作為琴鍵輸入及曲目的選擇鍵,采用LCD1602對當前曲目及音符進行顯示,并利用發(fā)光二級管進行音樂伴奏。要想在競爭異常激烈的現(xiàn)代社會立足,就必須有實力。unsigned char code tab4[]=LOW SO LOW LA LOW TI MID DO MID RE MIN MI MIN FA MID SO MID LA MID TI HIG DO HIG RE HIG MI HIG FA HIG SO HIG LA。 //音長定時器初值暫存//**************************************************************************//void InitialSound(void){ BeepIO = 0。 TR0 = 0。 int Point,LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre,Temp_T,SoundLengt。 if(Octachord == 1) NewFreTab[i]=2。 // 算出1分音符的長度(幾個10ms) LDiv4 = LDiv0/4。 //查出對應音符的頻率 if(SL!=0) {if (SM==1) CurrentFre = 2。 //算出是幾分音符 XG=Length/10%10。 if(SL==0) LDiv1=0。TF1=0。TF1=0。void Delay(){uint uiCount。 LCDRS=0。 //先延時。 //最后顯示數(shù)據(jù)。 for(i=x。unsigned char counter。//延時,用于消抖動 if(key2==0)//延時后再次確認按鍵按下 { duo=1。 } } if(key5==0)//key5為曲目5或fa) { delay_ms(9)。 while(!key7)。y++) { WriteData(tab1[y])。 } for(x=0。最后感謝圖書館、電子閱覽室為我提供查找資料的場所和優(yōu)質(zhì)的服務。據(jù)我所知,除文中加以標注和致謝的地方外,論中不包含其他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得內(nèi)江師范學院或其他教育機構的學位證書而使用過的材料。x++) {WriteCMD(0x18)。 } mydelay(2)。//延時,用于消抖動 if(key8==0)//延時后再次確認按鍵按下 { xi=1。 while(!key5)。 } } if(key3==0)//key3為曲目3或ruai) { delay_ms(9)。 inicry()。i) for(y=255。LCDE=0。 //然后把LCD改為寫入數(shù)據(jù)狀態(tài)。 LCDPORT=Command。uiCount Tone=Sound[Point]。 BeepIO=0。 //算出不發(fā)音的長度 if (SL!=0) { TR0=1。 LDiv=LDiv0/SLen。 //高音 Temp_T = 65536(50000/CurrentFre)*10/(12000000/SYSTEM_OSC)。 // 普通音最長間隔標準 TR0 = 0。 } SoundLength = 0。 for(i=0。 EA = 1。 // 計算TL1應裝入的初值 (10ms的初裝值) Sound_Temp_TL1 = (65536(1/1200)*SYSTEM_OSC)%256。//********************************************************************////********************************************************************//ifndef __SOUNDPLAY_H_REVISION_FIRST__define __SOUNDPL