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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于單片機(jī)控制的mp3音樂(lè)播放器的設(shè)計(jì)-文庫(kù)吧資料

2024-12-10 14:36本頁(yè)面
  

【正文】 efine uchar unsigned chardefine uint unsigned intdefine LCDPORT P0unsigned int code tab[]={64021,64103,64260,64400, 64524,64580,64684,64777, 64820,64898,64968,65030, 65058,65110,65157,65178}。要想在競(jìng)爭(zhēng)異常激烈的現(xiàn)代社會(huì)立足,就必須有實(shí)力。 現(xiàn)在電子信息技術(shù)發(fā)展迅速,我們現(xiàn)在學(xué)的東西在社會(huì)上也許已經(jīng)或即將被淘汰。在實(shí)驗(yàn)中發(fā)現(xiàn),其實(shí)再難編寫(xiě)的程序都是由一些基礎(chǔ)程序模塊構(gòu)成的,很多的基礎(chǔ)模塊前人就已經(jīng)做好了,只要我們拼湊就行了,當(dāng)然拼湊的工作也不是很簡(jiǎn)單,最重要的還是要自己的基礎(chǔ)扎實(shí),同時(shí),自己的思路要非常的清晰。在做此畢業(yè)設(shè)計(jì)中遇到不少的難點(diǎn),有的原理,根本就不知道怎樣去實(shí)現(xiàn)。開(kāi)始函數(shù)初始化按鍵掃描計(jì)算并保存鍵值1次2次判斷模式轉(zhuǎn)換鍵鍵值手動(dòng)彈奏播放曲目彩燈伴奏彩燈伴奏顯示彈奏音符顯示曲目名稱(chēng)圖12 系統(tǒng)主程序框圖4 結(jié)論本設(shè)計(jì)以MSC51系列單片機(jī)為核心,充分利用了AT89C51芯片的I/O引腳,以獨(dú)立式鍵盤(pán)作為琴鍵輸入及曲目的選擇鍵,采用LCD1602對(duì)當(dāng)前曲目及音符進(jìn)行顯示,并利用發(fā)光二級(jí)管進(jìn)行音樂(lè)伴奏。 EA = 1。 TR0 = 0。 ET0 = 1。 TL1 = Sound_Temp_TL1。 // 計(jì)算TL1應(yīng)裝入的初值 (10ms的初裝值) Sound_Temp_TL1 = (65536(1/1200)*SYSTEM_OSC)%256。由于整個(gè)程序要用到定時(shí)器0和定時(shí)器1,所以初始化程序主要是對(duì)定時(shí)器相關(guān)內(nèi)容作說(shuō)明,程序的簡(jiǎn)單框圖如圖11所示。 mydelay(5)。x19。 mydelay(5)。z12。 WriteCMD(0x80+0x40)。 mydelay(5)。y7。整個(gè)顯示過(guò)程中的程序工作流程圖如圖10所示:程序如下:void lcd_display ( ) {WriteCMD(0x80)。}開(kāi)始是否x0x結(jié)束是否y0yyesnonoyes圖9 延時(shí)程序流程圖 LCD顯示子程序設(shè)計(jì)本設(shè)計(jì)中利用LCD1602顯示當(dāng)前播放曲目名稱(chēng)以及彈奏時(shí)的音符。y0。x0。程序如下:void delay_ms(uint xms)//延時(shí)函數(shù),有參函數(shù){ uint x,y。 } }} 1ms延時(shí)程序設(shè)計(jì)延時(shí)程序一般是通過(guò)一層或多層循環(huán)實(shí)現(xiàn),整個(gè)過(guò)程延時(shí)的時(shí)間是程序執(zhí)行的指令總條數(shù)乘以執(zhí)行每條指令所用的時(shí)間。//延時(shí),用于消抖動(dòng) if(key8==0)//延時(shí)后再次確認(rèn)按鍵按下 { xi=1。 while(!key7)。 } } if(key7==0)//key7為曲目7或la) { delay_ms(9)。//延時(shí),用于消抖動(dòng) if(key6==0)//延時(shí)后再次確認(rèn)按鍵按下 { suo=1。 while(!key5)。 } } if(key5==0)//key5為曲目5或fa) { delay_ms(9)。//延時(shí),用于消抖動(dòng) if(key4==0)//延時(shí)后再次確認(rèn)按鍵按下 { mi=1。 while(!key3)。 } } if(key3==0)//key3為曲目3或ruai) { delay_ms(9)。//延時(shí),用于消抖動(dòng) if(key2==0)//延時(shí)后再次確認(rèn)按鍵按下 { duo=1。 if(set==3) set=1。//延時(shí),用于消抖動(dòng) if(key1==0)//延時(shí)后再次確認(rèn)按鍵按下 { while(!key1)。一般把按鍵掃描程序設(shè)計(jì)成子程序,以便其他程序調(diào)用[6]。但如果在觸點(diǎn)抖動(dòng)期間檢測(cè)按鍵的通與斷狀態(tài),可能導(dǎo)致判斷出錯(cuò),即按鍵一次按下或釋放被錯(cuò)誤的認(rèn)為是多次操作,為克服按鍵點(diǎn)機(jī)械抖動(dòng)所致的檢測(cè)錯(cuò)誤,確保CPU對(duì)一次按鍵動(dòng)作只確認(rèn)一次按鍵,必須采取去抖動(dòng)的措施。開(kāi)始按鍵掃描計(jì)算模式轉(zhuǎn)換鍵按下次數(shù)自動(dòng)播放模式次數(shù)清零手動(dòng)彈奏模式次數(shù)清零判斷按鍵次數(shù)1次2次圖7 切換原理流程圖 音樂(lè)播放器軟件程序設(shè)計(jì) 按鍵掃描子程序設(shè)計(jì)本設(shè)計(jì)中采用的獨(dú)立式鍵盤(pán),按鍵的閉合與否直接反應(yīng)在口線的電平上,即口線的電平是呈現(xiàn)的高電平還是低電平。當(dāng)模式轉(zhuǎn)換按鍵按下一次時(shí),播放器為自動(dòng)播放模式;當(dāng)按鍵連續(xù)按下兩次時(shí),播放器為手動(dòng)彈奏模式。1/,假設(shè)1/4拍為 DELAY,則1拍為4 DELAY。求低音DO(26HZ),中音DO(523HZ),高音DO(1046HZ)的記數(shù)值。 其記數(shù)值的求法如:T=65536N=65536Fi/2/Fr。記數(shù)脈沖值與頻率的關(guān)系公式如:N=Fi/2/Fr。 設(shè)計(jì)的相關(guān)音樂(lè)說(shuō)明要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期時(shí)間。此外,結(jié)束符和休止符可以分別用代碼00H和FFH來(lái)表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。例如對(duì)1/4拍音符,相應(yīng)的時(shí)間常數(shù)為16(即10H);對(duì)3拍音符,相應(yīng)時(shí)間長(zhǎng)數(shù)為192(即C0H)。但是,由于T0的最大定時(shí)時(shí)間只能為131毫秒,因此不可能直接用改變T0的時(shí)間初值來(lái)實(shí)現(xiàn)不同節(jié)拍。音符的節(jié)拍我們可以用定時(shí)器T0來(lái)控制,送入不同的初值,就可以產(chǎn)生不同的定時(shí)時(shí)間。硬件電路較簡(jiǎn)單,如圖6所示。當(dāng)播放器發(fā)出duo音時(shí),D1亮;當(dāng)播放器發(fā)出ruai音時(shí),D2亮;當(dāng)播放器發(fā)出mi音時(shí),D3亮;當(dāng)播放器發(fā)出fa音時(shí),D4亮;當(dāng)播放器發(fā)出suo音時(shí),DD4亮;當(dāng)播放器發(fā)出la音時(shí),DD3亮;當(dāng)播放器發(fā)出xi音時(shí),DD4亮。圖5 LCD顯示電路 彩燈伴奏電路的設(shè)計(jì)根據(jù)設(shè)計(jì)要求,本設(shè)計(jì)中設(shè)計(jì)了彩燈伴奏電路,彩燈采用普通發(fā)光二級(jí)管。其中變位器是為調(diào)節(jié)LCD對(duì)比度而設(shè)計(jì)。我們選用的是工業(yè)字符型液晶顯示屏LCD1602,能同時(shí)顯示16*2即32個(gè)字符(16列2行)。因此,我們可以通過(guò)程序控制P22腳的電平來(lái)使蜂鳴器發(fā)出聲音和關(guān)閉。無(wú)源蜂鳴器發(fā)聲原理是電流通過(guò)電磁線圈,使電磁線圈產(chǎn)生磁場(chǎng)來(lái)驅(qū)動(dòng)振動(dòng)膜發(fā)聲的,因此需要一定的電流才能驅(qū)動(dòng)它,單片機(jī)IO引腳輸出的電流較小,單片機(jī)輸出的TTL電平基本上驅(qū)動(dòng)不了蜂鳴器,因此設(shè)計(jì)過(guò)程中增加一個(gè)由8050 NPN三極管組成的電流放大電路。圖3 按鍵輸入電路 揚(yáng)聲器播放模塊的設(shè)計(jì)揚(yáng)聲器播放模塊是由8050 NPN三極管和無(wú)源蜂鳴器組成,如圖4所示。如圖3所示,鍵盤(pán)輸入電路中共用到八個(gè)按鍵,S1鍵用于播放器模式的切換,在軟件中計(jì)算S1鍵按下的次數(shù),一次為播放模式,二次為自行彈奏模式;S2~S8鍵在播放器為自動(dòng)播放模式時(shí)為曲目選擇鍵,即七個(gè)按鍵依次對(duì)應(yīng)一首歌曲,按下其中一個(gè)鍵就播放對(duì)應(yīng)的歌曲。常見(jiàn)的去抖的方法有兩種:硬件方法和軟件方法。此外,上拉電阻保證了按鍵斷開(kāi)時(shí),I/O口線有確定的高電平。因在本系統(tǒng)中需要的按鍵并不多,單片機(jī)的I/O數(shù)完全可以滿(mǎn)足,所以采用了獨(dú)立式鍵盤(pán)設(shè)計(jì),如圖3所示。在單片機(jī)運(yùn)行期間,按下按鍵電容瞬間放電,RST引腳電位與VCC相同,系統(tǒng)復(fù)位;隨著按鍵的斷開(kāi),電容又開(kāi)始充電,RST引腳電位電位逐漸下降,系統(tǒng)開(kāi)始正常工作。一般只要保持正脈沖的寬度為10微秒,就可是單片機(jī)安全復(fù)位。而XTAL1端和XTAL2端將電容C5和C5與內(nèi)部的反相放大器連接起來(lái)組成并聯(lián)諧振電路,CC9取31pF,對(duì)頻率有微調(diào)作用。AT89S51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入和輸出端。 各硬件電路的具體設(shè)計(jì) AT89S52控制模塊的設(shè)計(jì)AT89S52控制模塊如圖2所示,由核心芯片AT89S52單片機(jī)、單片機(jī)復(fù)位電路及外接晶振組成。然后通過(guò)查詢(xún)電子琴所按下的按鍵,讀取電子琴輸入狀態(tài),跳轉(zhuǎn)到對(duì)應(yīng)的程序人口,實(shí)現(xiàn)自編歌曲。7個(gè)按鍵分別代表7個(gè)音符,包括中音段的全部音符。LCD1602驅(qū)動(dòng)電路簡(jiǎn)單,可以由單片機(jī)直接輸出命令驅(qū)動(dòng)[2]。該音樂(lè)播放系統(tǒng)設(shè)計(jì)上增加液晶顯示器,可為使用者提供曲目信息。LCD的特點(diǎn)是體積小、形狀薄、重量輕、耗能少(1~10微瓦/平方厘米)、低發(fā)熱、工作電壓低(~6伏)、無(wú)污染,無(wú)輻射、無(wú)靜電感應(yīng),尤其是視域?qū)?、顯示信息量大、無(wú)閃爍,并能直接與CMOS集成電路相匹配,同時(shí)還是真正的“平板”式顯示設(shè)備。使用時(shí)按規(guī)定使某些筆段上的發(fā)光二極管發(fā)光,即可組成0 ~ 9的一系列數(shù)字。我們知道,發(fā)光二極管(英文縮寫(xiě)為L(zhǎng)ED)是由半導(dǎo)體材料制成的、能將電信號(hào)轉(zhuǎn)換成光信號(hào)的結(jié)型電致發(fā)光器件。因此,必須選用8050 NPN三極管和電磁蜂鳴器則能滿(mǎn)足系統(tǒng)要求[1]。與LM386和喇叭的組合相比較,該播放模塊存在一定噪聲,音響效果較差。 播放模塊播放模塊是由8050 NPN三極管和電磁蜂鳴器組成。所以,從本系統(tǒng)設(shè)計(jì)的功能需求及成本考慮,51單片機(jī)性?xún)r(jià)比更高,
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1