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

正文內(nèi)容

畢業(yè)設(shè)計-基于單片機控制的mp3音樂播放器的設(shè)計(留存版)

2025-01-31 14:36上一頁面

下一頁面
  

【正文】 eme.Key words: multi function。LCD顯示模塊利用LCD1602對當(dāng)前播放的歌曲名稱進行顯示。 顯示模塊LED數(shù)碼管是一種數(shù)顯器件。如圖2所示,電容CC9和12M晶振與單片機引腳XTAL1和XTAL2相連構(gòu)成外接晶振電路。而在播放器為自行彈奏模式時,七個鍵就對應(yīng)著七個音符,即按下某一按鍵,播放器就發(fā)出對應(yīng)音符的節(jié)奏[3]。圖6 彩燈伴奏電路3 軟件設(shè)計 單片機發(fā)聲的基本原理我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單處機某個口線的高電平或低電平,則在該口線上就能產(chǎn)生一定頻率形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制高 、低電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào)。 每個音符使用1個音節(jié),字節(jié)的高四位代表音符的高低,低四位代表音符的節(jié)拍。 while(!key2)。 } } if(key8==0)//key8為曲目8或xi) { delay_ms(9)。y++) {WriteData(name[y])。 // 計算TH1應(yīng)裝入的初值 TH1 = Sound_Temp_TH1。因此在學(xué)校要學(xué)的不僅是書本上的東西,更重要的是自學(xué)的能力、獨立思考的能力和動手的能力。 //音符定時器初值暫存unsigned char Sound_Temp_TH1,Sound_Temp_TL1。 //新的頻率表 unsigned char i,j。 // 讀出第一個音符和它時時值 LDiv0 = 12000/Speed。 //加12是對中斷延時的補償 }SLen=LengthTab[Length%10]。TL1=Sound_Temp_TL1。sbit LCDRS=P3^7。}void WriteData(uchar dat) { Delay()。}void mydelay(int x){ int i,y。//模式轉(zhuǎn)換按鍵選擇模式 } } if(key2==0)//key2為曲目2或音符duo) { delay_ms(9)。//延時,用于消抖動 if(key7==0)//延時后再次確認(rèn)按鍵按下 { la=1。 mydelay(5)。與我一同工作的同志對本研究所做的任何貢獻均以在論文中作了說明并表示謝意。WriteCMD(0x80+0x40)。 } } if(key6==0)//key6為曲目6或suo) { delay_ms(9)。//********************鍵盤掃描*************// void key_scan(){ if(key1==0)//key1為模式轉(zhuǎn)換鍵) { delay_ms(9)。WriteCMD(0x38)。 //再輸出命令。 Length=Sound[Point+1]。for(i=LDiv1。//計算計數(shù)器初值 Sound_Temp_TH0 = Temp_T/256。 while(Sound[SoundLength] != 0x00) //計算歌曲長度 {SoundLength+=2。}void BeepTimer0(void) interrupt 1 //音符發(fā)生中斷{BeepIO = !BeepIO。unsigned int code FreTab[12] = { 262,277,294,311,330,349,369,392,415,440,466,494 }。最后通過自己仔細(xì)查資料,一點一點的就慢慢懂了。}}開始液晶初始化寫指令選擇第一行數(shù)據(jù)地址指針LCD專用延時時間FOR循環(huán)將顯示數(shù)據(jù)逐位寫入顯示在第一行寫指令選擇第二行數(shù)據(jù)地址指針LCD專用延時時間FOR循環(huán)將顯示數(shù)據(jù)逐位寫入顯示在第二行返回圖10 LCD顯示子程序流程圖 函數(shù)初始化子程序設(shè)計函數(shù)初始化程序即把在主函數(shù)內(nèi)對某些參數(shù)和標(biāo)記位賦初值編寫成一個函數(shù),這樣使程序更具有條理化,清晰易懂。LCD開始工作是靠軟件來實現(xiàn)的[8]。 while(!key6)。 set++。N:記數(shù)值;Fi:內(nèi)部計時依次為1us,故其頻率為1 MHZ;Fr:要產(chǎn)生的頻率。播放器工作時,發(fā)光二級管根據(jù)音樂節(jié)拍閃亮。在設(shè)計鍵盤的時候,還要考慮去抖問題。通過軟硬件設(shè)計,模式轉(zhuǎn)換按鍵觸發(fā)外部中斷,中斷使程序跳轉(zhuǎn),實現(xiàn)模式轉(zhuǎn)換,啟動電子琴。AT89S52輸出高電平控制信號,啟動8050 NPN三極管使信號放大,從而啟動電磁蜂鳴器。整個硬件電路是由中心控制、播放、選曲、顯示、電子琴和彩燈等模塊組成,中心控制模塊采用AT89S52單片機,播放模塊是由8550 NPN三極管和電磁蜂鳴器組成,采用LCD1602顯示模塊,電子琴設(shè)有8個按鍵,其中7個作為音符輸入,另外1個作為模式轉(zhuǎn)換按鍵,實現(xiàn)用戶自彈作曲。本設(shè)計是采用單片機為核心設(shè)計的數(shù)字音樂播放器。而品質(zhì)的提高,功能的更新,可靠性的增強,品種的變化無不與產(chǎn)品的核心控制部分水平的提高密不可分。51系列的單片機的另一個優(yōu)點便是具備了乘法和除法指令,其中八位除以八位的除法指令商為八位,精度顯得有些不足,因此在應(yīng)用方面不是很多,但八位乘以八位的乘法指令積為十六位,這樣的精度已經(jīng)足以滿足大部分應(yīng)用的要求了,更為重要的是,直接具備了乘法與除法指令,這就使得在實際應(yīng)用時,使用者不必額外編寫相應(yīng)的子程序以備調(diào)用,與其他系列單片機相比,51系列的單片機在編程操作方面的簡便與實用性無疑上了一個新臺階。LCD的特點是體積小、形狀薄、重量輕、耗能少(1~10微瓦/平方厘米)、低發(fā)熱、工作電壓低(~6伏)、無污染,無輻射、無靜電感應(yīng),尤其是視域?qū)?、顯示信息量大、無閃爍,并能直接與CMOS集成電路相匹配,同時還是真正的“平板”式顯示設(shè)備。一般只要保持正脈沖的寬度為10微秒,就可是單片機安全復(fù)位。因此,我們可以通過程序控制P22腳的電平來使蜂鳴器發(fā)出聲音和關(guān)閉。例如對1/4拍音符,相應(yīng)的時間常數(shù)為16(即10H);對3拍音符,相應(yīng)時間長數(shù)為192(即C0H)。開始按鍵掃描計算模式轉(zhuǎn)換鍵按下次數(shù)自動播放模式次數(shù)清零手動彈奏模式次數(shù)清零判斷按鍵次數(shù)1次2次圖7 切換原理流程圖 音樂播放器軟件程序設(shè)計 按鍵掃描子程序設(shè)計本設(shè)計中采用的獨立式鍵盤,按鍵的閉合與否直接反應(yīng)在口線的電平上,即口線的電平是呈現(xiàn)的高電平還是低電平。//延時,用于消抖動 if(key4==0)//延時后再次確認(rèn)按鍵按下 { mi=1。程序如下:void delay_ms(uint xms)//延時函數(shù),有參函數(shù){ uint x,y。z12。 TR0 = 0。unsigned char code num[]=200711111111 。 TL1 = Sound_Temp_TL1。i++) // 根據(jù)調(diào)號及升降八度來生成新的頻率表 {j = i + Signature。while(Point SoundLength) {SL=Tone%10。 if(XG!=1) if(XG==0) //算出普通音符的演奏長度 if (SLen=4) LDiv1=LDivLDiv4。i0。}void WriteCMD(uchar Command) { Delay()。 LCDRW=0。y)。 while(!key3)。 } }}//**********顯示歌曲模塊*********// WriteCMD(0x01)。 } Play(Music_Two,0,3,360)。 } }}致謝衷心感謝我的指導(dǎo)老師胡新新老師在論文的寫作過程中對我的悉心指導(dǎo),她嚴(yán)謹(jǐn)精細(xì)的治學(xué)態(tài)度,淵博的知識,孜孜不倦的工作熱忱和誨人不倦的精神我將銘記在心!感謝物電系的老師對我成長的關(guān)心和幫助。for(y=0。//延時,用于消抖動 if(key4==0)//延時后再次確認(rèn)按鍵按下 { mi=1。unsigned char key。 //再輸出數(shù)據(jù)。 LCDE=1。TH1=Sound_Temp_TH1。 else LDiv1=LDiv/2。 //計算出高低音 SH=Tone/100。 NewFreTab[i] = FreTab[j]*2。 ET0 = 1。unsigned char code tab2[]=TWO BUFFER。 EA = 1。 mydelay(5)。x0。 } } if(key5==0)//key5為曲目5或fa) { delay_ms(9)。但如果在觸點抖動期間檢測按鍵的通與斷狀態(tài),可能導(dǎo)致判斷出錯,即按鍵一次按下或釋放被錯誤的認(rèn)為是多次操作,為克服按鍵點機械抖動所致的檢測錯誤,確保CPU對一次按鍵動作只確認(rèn)一次按鍵,必須采取去抖動的措施。此外,結(jié)束符和休止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。我們選用的是工業(yè)字
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1