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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于單片機(jī)控制的mp3音樂(lè)播放器的設(shè)計(jì)-wenkub.com

2024-11-28 14:36 本頁(yè)面
   

【正文】 與我一同工作的同志對(duì)本研究所做的任何貢獻(xiàn)均以在論文中作了說(shuō)明并表示謝意。要特別感謝我的家人,他們是支持我前進(jìn)的動(dòng)力;他們的關(guān)愛(ài)使我對(duì)生活充滿信心,勇敢地面對(duì)生活、學(xué)習(xí)中的各種壓力;是他們才使我安心完成學(xué)業(yè)。mydelay(5)。 mydelay(5)。WriteCMD(0x80+0x40)。y16。 while(!key8)。//延時(shí),用于消抖動(dòng) if(key7==0)//延時(shí)后再次確認(rèn)按鍵按下 { la=1。 } } if(key6==0)//key6為曲目6或suo) { delay_ms(9)。 while(!key4)。//延時(shí),用于消抖動(dòng) if(key3==0)//延時(shí)后再次確認(rèn)按鍵按下 { ru=1。//模式轉(zhuǎn)換按鍵選擇模式 } } if(key2==0)//key2為曲目2或音符duo) { delay_ms(9)。//********************鍵盤(pán)掃描*************// void key_scan(){ if(key1==0)//key1為模式轉(zhuǎn)換鍵) { delay_ms(9)。unsigned char k,y,m,x,z,i,j。y0。}void mydelay(int x){ int i,y。WriteCMD(0x38)。 LCDE=0。 LCDRS=1。}void WriteData(uchar dat) { Delay()。 //再輸出命令。 //然后把LCD改為寫(xiě)入命令狀態(tài)。uiCount++)。sbit LCDRS=P3^7。 Length=Sound[Point+1]。TL1 = Sound_Temp_TL1。 for(i=LDiv2。TL1=Sound_Temp_TL1。for(i=LDiv1。 //算出頓音的演奏長(zhǎng)度 else LDiv1=LDiv。 //算出連音音符演奏的長(zhǎng)度(多少個(gè)10ms) if (FD==1) LDiv=LDiv+LDiv/2。 //加12是對(duì)中斷延時(shí)的補(bǔ)償 }SLen=LengthTab[Length%10]。//計(jì)算計(jì)數(shù)器初值 Sound_Temp_TH0 = Temp_T/256。 //計(jì)算出是否升半 CurrentFre = NewFreTab[SignTab[SL1]+SH]。TR1 = 1。 // 讀出第一個(gè)音符和它時(shí)時(shí)值 LDiv0 = 12000/Speed。 while(Sound[SoundLength] != 0x00) //計(jì)算歌曲長(zhǎng)度 {SoundLength+=2。 } else NewFreTab[i] = FreTab[j]。i12。 //新的頻率表 unsigned char i,j。}void BeepTimer0(void) interrupt 1 //音符發(fā)生中斷{BeepIO = !BeepIO。 ET1 = 0。 // 計(jì)算TH1應(yīng)裝入的初值 TH1 = Sound_Temp_TH1。 //音符定時(shí)器初值暫存unsigned char Sound_Temp_TH1,Sound_Temp_TL1。unsigned int code FreTab[12] = { 262,277,294,311,330,349,369,392,415,440,466,494 }。unsigned char code tab3[]=THE TONE IS。unsigned char code name[]=1234567 。因此在學(xué)校要學(xué)的不僅是書(shū)本上的東西,更重要的是自學(xué)的能力、獨(dú)立思考的能力和動(dòng)手的能力。最后通過(guò)自己仔細(xì)查資料,一點(diǎn)一點(diǎn)的就慢慢懂了。} 系統(tǒng)主程序設(shè)計(jì)播放器工作時(shí),程序工作流程圖如圖12所示,先對(duì)在程序過(guò)程中所需的各種標(biāo)記位及參數(shù)進(jìn)行初始化賦值,再執(zhí)行按鍵掃描子程序并計(jì)算及保存鍵值,根據(jù)其中的模式轉(zhuǎn)換鍵的按鍵次數(shù)進(jìn)行模式判斷,按鍵次數(shù)為1時(shí)播放器處于自動(dòng)播放模式,揚(yáng)聲器播放模塊開(kāi)始工作,同時(shí)彩燈伴奏模塊隨著單片機(jī)端口高低電平的變換閃爍達(dá)到伴奏的效果,另一方面顯示模塊進(jìn)入工作狀態(tài)對(duì)當(dāng)前曲目的曲目名進(jìn)行顯示;按鍵次數(shù)為2時(shí)播放器處于手動(dòng)彈奏模式,再次對(duì)按鍵進(jìn)行掃描,對(duì)按下的鍵值進(jìn)行分析,單片機(jī)輸出相應(yīng)的音符,彩燈伴奏模塊也伴隨音符閃亮,同時(shí)LCD顯示模塊對(duì)當(dāng)前音符進(jìn)行顯示。 ET1 = 0。 // 計(jì)算TH1應(yīng)裝入的初值 TH1 = Sound_Temp_TH1。}}開(kāi)始液晶初始化寫(xiě)指令選擇第一行數(shù)據(jù)地址指針LCD專(zhuān)用延時(shí)時(shí)間FOR循環(huán)將顯示數(shù)據(jù)逐位寫(xiě)入顯示在第一行寫(xiě)指令選擇第二行數(shù)據(jù)地址指針LCD專(zhuān)用延時(shí)時(shí)間FOR循環(huán)將顯示數(shù)據(jù)逐位寫(xiě)入顯示在第二行返回圖10 LCD顯示子程序流程圖 函數(shù)初始化子程序設(shè)計(jì)函數(shù)初始化程序即把在主函數(shù)內(nèi)對(duì)某些參數(shù)和標(biāo)記位賦初值編寫(xiě)成一個(gè)函數(shù),這樣使程序更具有條理化,清晰易懂。 }for(x=0。for(z=0。y++) {WriteData(name[y])。LCD開(kāi)始工作是靠軟件來(lái)實(shí)現(xiàn)的[8]。x) for(y=110。由于該系統(tǒng)的晶振選用的是12M,所以執(zhí)行每條指令所所用時(shí)間為2us,程序執(zhí)行流程如圖9所示[7]。 } } if(key8==0)//key8為曲目8或xi) { delay_ms(9)。 while(!key6)。//延時(shí),用于消抖動(dòng) if(key5==0)//延時(shí)后再次確認(rèn)按鍵按下 { fa=1。 } } if(key4==0)//key4為曲目4或mi) { delay_ms(9)。 while(!key2)。 set++。軟件中去抖動(dòng)的措施即在第一次檢測(cè)到有鍵按下時(shí),執(zhí)行一段延時(shí)10ms的子程序,然后再次檢測(cè)該鍵的電平狀態(tài),如果該鍵電平仍保持閉合狀態(tài)電平,則確認(rèn)為真正有鍵按下[5]。在軟件中的流程圖大致如圖7所示。 每個(gè)音符使用1個(gè)音節(jié),字節(jié)的高四位代表音符的高低,低四位代表音符的節(jié)拍。N:記數(shù)值;Fi:內(nèi)部計(jì)時(shí)依次為1us,故其頻率為1 MHZ;Fr:要產(chǎn)生的頻率。為了產(chǎn)生手彈的節(jié)奏感,在某些音符(例如兩個(gè)相同音符)音插入一個(gè)時(shí)間單位的頻率略有不同的音符[4]。我們可以用T0來(lái)產(chǎn)生10毫秒的時(shí)間基準(zhǔn),然后設(shè)置一個(gè)中斷計(jì)數(shù)器,通過(guò)判別中斷計(jì)數(shù)器的值來(lái)控制節(jié)拍時(shí)間的長(zhǎng)短。圖6 彩燈伴奏電路3 軟件設(shè)計(jì) 單片機(jī)發(fā)聲的基本原理我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來(lái)控制單處機(jī)某個(gè)口線的高電平或低電平,則在該口線上就能產(chǎn)生一定頻率形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制高 、低電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào)。播放器工作時(shí),發(fā)光二級(jí)管根據(jù)音樂(lè)節(jié)拍閃亮。硬件連接如圖5所示。如圖所示,蜂鳴器的負(fù)極直接接地,蜂鳴器的正極接到三極管的發(fā)射極E上,三極管的基級(jí)B經(jīng)過(guò)限流電阻R9后由單片機(jī)的P22引腳控制,當(dāng)P22輸出高電平時(shí),三極管 Q1截止,沒(méi)有電流流過(guò)線圈,蜂鳴器不發(fā)聲;當(dāng)P22輸出低電平時(shí),三極管導(dǎo)通,這樣蜂鳴器的電流形成回路,發(fā)出聲音。而在播放器為自行彈奏模式時(shí),七個(gè)鍵就對(duì)應(yīng)著七個(gè)音符,即按下某一按鍵,播放器就發(fā)出對(duì)應(yīng)音符的節(jié)奏[3]。在設(shè)計(jì)鍵盤(pán)的時(shí)候,還要考慮去抖問(wèn)題。圖2 AT89S52最小系統(tǒng) 按鍵模塊的設(shè)計(jì)鍵盤(pán)在系統(tǒng)中作用在于手動(dòng)切換播放器模式、音樂(lè)彈奏時(shí)音符的輸入以及曲目的選擇。AT89S51單片機(jī)有一個(gè)復(fù)位引腳,復(fù)位條件是:在時(shí)鐘電路工作后,當(dāng)外部電路在RST引腳施加持續(xù)2個(gè)機(jī)器周期以上的高電平時(shí),使系統(tǒng)復(fù)位。如圖2所示,電容CC9和12M晶振與單片機(jī)引腳XTAL1和XTAL2相連構(gòu)成外接晶振電路。通過(guò)軟硬件設(shè)計(jì),模式轉(zhuǎn)換按鍵觸發(fā)外部中斷,中斷使程序跳轉(zhuǎn),實(shí)現(xiàn)模式轉(zhuǎn)換,啟動(dòng)電子琴。由于LED數(shù)碼管只能顯示數(shù)字而無(wú)法顯示其他中英文字符,從設(shè)計(jì)的成本及功能的角度考慮,采用LCD1602顯示模塊,它可以顯示每首曲目的英文名字。液晶顯示器,簡(jiǎn)稱(chēng)LCD(Liquid Crystal Display),是一種液晶利用光調(diào)制的受光型顯示器件。 顯示模塊LED數(shù)碼管是一種數(shù)顯器件。AT89S52輸出高電平控制信號(hào),啟動(dòng)8050 NPN三極管使信號(hào)放大,從而啟動(dòng)電磁蜂鳴器。由此可見(jiàn),較高的價(jià)格、較低的適用性,這兩點(diǎn)便是AVR單片機(jī)進(jìn)行市場(chǎng)推廣所存在的最大制約。51系列的單片機(jī)優(yōu)點(diǎn)之一在于,它從內(nèi)部硬件到軟件有著一套完整的按位操作系統(tǒng),即位處理器,也稱(chēng)布爾處理器,它的處理對(duì)象不是字或字節(jié),而是位,這就意味著它不僅能對(duì)片內(nèi)某些特殊功能寄存器的某位進(jìn)行處理,例如傳送、置位、清零、測(cè)試等,還能進(jìn)行位的邏輯運(yùn)算,這一點(diǎn)使其他種類(lèi)單片機(jī)很難實(shí)現(xiàn)的。LCD顯示模塊利用LCD1602對(duì)當(dāng)前播放的歌曲名稱(chēng)進(jìn)行顯示。整個(gè)硬件電路是由中心控制、播放、選曲、顯示、電子琴和彩燈等模塊組成,中心控制模塊采用AT89S52單片機(jī),播放模塊是由8550 NPN三極管和電磁蜂鳴器組成,采用LCD1602顯示模塊,電子琴設(shè)有8個(gè)按鍵
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1