




已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
基于AT89C51單片機(jī)的音樂盒的設(shè)計(jì)單片機(jī)原理及應(yīng)用是高校工程專業(yè)的一門專業(yè)基礎(chǔ)課,該門課程具有很強(qiáng)的實(shí)踐性。通過課程的學(xué)習(xí),使我能夠掌握基本概念、基本理論和基本技能,為今后從事相應(yīng)的生產(chǎn)設(shè)計(jì)和科研工作打下一定的基礎(chǔ)。因此,除了在課堂的理論學(xué)習(xí)和做實(shí)驗(yàn)外,課程設(shè)計(jì)也是一個(gè)重要的實(shí)踐學(xué)習(xí)環(huán)節(jié)。通過課程設(shè)計(jì),進(jìn)一步培養(yǎng)我們理論聯(lián)系實(shí)際的能力,學(xué)會正確地分析工程實(shí)際問題,善于查閱參考文獻(xiàn),準(zhǔn)確地選擇相應(yīng)的數(shù)據(jù)、參數(shù),具備全面地解決實(shí)際問題的素質(zhì),同時(shí)課程設(shè)計(jì)也為今后的畢業(yè)設(shè)計(jì)打下基礎(chǔ)。單片機(jī)自20世紀(jì)70年代問世以來,以其極高的性能價(jià)格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快。而51單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。本音樂播放器是利用89C51單片機(jī)結(jié)合內(nèi)部定時(shí)系統(tǒng),設(shè)計(jì)一個(gè)簡易的微電腦音樂盒。引 言單片機(jī)原理及應(yīng)用是高校工程專業(yè)的一門專業(yè)基礎(chǔ)課,該門課程具有很強(qiáng)的實(shí)踐性。通過課程的學(xué)習(xí),使我能夠掌握基本概念、基本理論和基本技能,為今后從事相應(yīng)的生產(chǎn)設(shè)計(jì)和科研工作打下一定的基礎(chǔ)。因此,除了在課堂的理論學(xué)習(xí)和做實(shí)驗(yàn)外,課程設(shè)計(jì)也是一個(gè)重要的實(shí)踐學(xué)習(xí)環(huán)節(jié)。通過課程設(shè)計(jì),進(jìn)一步培養(yǎng)我們理論聯(lián)系實(shí)際的能力,學(xué)會正確地分析工程實(shí)際問題,善于查閱參考文獻(xiàn),準(zhǔn)確地選擇相應(yīng)的數(shù)據(jù)、參數(shù),具備全面地解決實(shí)際問題的素質(zhì),同時(shí)課程設(shè)計(jì)也為今后的畢業(yè)設(shè)計(jì)打下基礎(chǔ)。單片機(jī)自20世紀(jì)70年代問世以來,以其極高的性能價(jià)格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快。而51單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。本音樂播放器是利用89C51單片機(jī)結(jié)合內(nèi)部定時(shí)系統(tǒng),設(shè)計(jì)一個(gè)簡易的微電腦音樂盒。1概述通過按鍵給單片機(jī)的P2口輸入低電平,進(jìn)而利用程序來判斷是否執(zhí)行某一播放功能。而利用單片機(jī)的定時(shí)器0中斷來控制播放樂曲。1.1 課題意義音樂盒的起源,可追溯至中世紀(jì)歐洲文藝復(fù)興時(shí)期。當(dāng)時(shí)為使教會的鐘塔報(bào)時(shí),而將大小的鐘表裝上機(jī)械裝置,被稱為“可發(fā)出聲音的組鐘”。音樂盒有著300多年的發(fā)展歷史,是人類文明發(fā)展的歷史見證。傳統(tǒng)的音樂盒多是機(jī)械音樂盒,其工作原理是通過齒輪帶動一個(gè)帶有鐵釘?shù)蔫F桶轉(zhuǎn)動,鐵桶上的鐵釘撞擊鐵片制成的琴鍵,從而發(fā)出聲音。但是,機(jī)械式的音樂盒體積比較大,比較笨重,且發(fā)音單調(diào)。水、灰塵等外在因素,容易使內(nèi)部金屬發(fā)音條變形,從而造成發(fā)音跑調(diào)。另外,機(jī)械音樂盒放音時(shí)為了讓音色穩(wěn)定,必須放平不能動搖,而且價(jià)格昂貴,不能實(shí)現(xiàn)大批量生產(chǎn)。本文設(shè)計(jì)的音樂盒,是基于單片機(jī)設(shè)計(jì)制作的電子式音樂盒。與傳統(tǒng)的機(jī)械式音樂盒相比更小巧,音質(zhì)更優(yōu)美且能演奏和弦音樂。電子式音樂盒動力來源是電池,制作工藝簡單,可進(jìn)行批量生產(chǎn),所以價(jià)格便宜?;趩纹瑱C(jī)制作的電子式音樂盒,控制功能強(qiáng)大,可根據(jù)需要選歌,使用方便。根據(jù)存儲容量的大小,可以盡可能多的存儲歌曲。另外,可以設(shè)計(jì)彩燈外觀效果,使音樂盒的功能更加豐富。1.2設(shè)計(jì)方案設(shè)計(jì)一個(gè)基于AT89C51系列單片機(jī)的音樂盒,利用按鍵切換演奏出不同的樂曲。1.3研究內(nèi)容1)電路工作模式:演奏音樂模式。演奏完整的一首的歌曲,隨著音樂變化,蜂鳴器隨著發(fā)出音樂聲。2)按下按鍵進(jìn)入演奏音樂模式,再按切換歌曲,共兩首歌曲。2 設(shè)計(jì)原理通過按鍵給單片機(jī)的P2口輸入低電平,進(jìn)而利用程序來判斷是否執(zhí)行某一播放功能。而利用單片機(jī)的定時(shí)器0中斷來控制播放樂曲。3 時(shí)鐘振蕩電路、復(fù)位電路利用12MHZ的晶振做外部時(shí)鐘,AT89C51中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體(陶瓷)諧振器一起構(gòu)成自然振蕩器。外接石英晶體及電容C1、C2接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。對外接電容C1,C2雖然沒有什么嚴(yán)格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。電路如下圖1。圖1 晶振電路、復(fù)位電路4 蜂鳴器電路利用NPN管(9012)放大驅(qū)動。基極接10K歐姆的電阻,發(fā)射極接蜂鳴器,集電極接電源。蜂鳴器電路連接如下圖2圖2 蜂鳴器電路5 控制電路本次設(shè)計(jì)中,按鍵有7個(gè).鍵分別接于7根I/O線(P2口),各按鍵在實(shí)物連接上相互獨(dú)立,彼此的工作狀態(tài)互不影響,單片機(jī)自帶上拉電阻因此無需外接上拉電阻,用查詢法可完成此按鍵功能。電路連接如下圖3圖3 鍵盤控制電路6 仿真調(diào)試及說明6.1調(diào)試結(jié)果圖4 仿真調(diào)試6.2性能分析用AT89C51單片機(jī)的I/O口產(chǎn)生一定頻率的方波,驅(qū)動蜂鳴器,發(fā)出不同的音調(diào),從而演奏樂曲。共有4支樂曲,每首樂曲都由相應(yīng)的按鍵控制,并且有開關(guān)鍵、暫停鍵、上一曲以及下一曲控制鍵。將源程序?qū)雴纹瑱C(jī)后,在proteus軟件中進(jìn)行仿真。我通過仿真發(fā)現(xiàn),按下按鍵時(shí),存在一定的延時(shí),不能立刻反應(yīng),當(dāng)按下按鍵時(shí),應(yīng)必須有足夠的時(shí)間。7 系統(tǒng)軟件設(shè)計(jì) 圖5 源程序流程圖7 音調(diào)、節(jié)拍以及編碼的確定方法一般說來,單片機(jī)演奏音樂基本都是單音頻率,它不包含相應(yīng)幅度的諧波頻率,也就是說不能像電子琴那樣能奏出多種音色的聲音。因此單片機(jī)奏樂只需弄清楚兩個(gè)概念即可,也就是“音調(diào)”和節(jié)拍表示一個(gè)音符唱多長的時(shí)間。7.1.1 音調(diào)的確定不同音高的樂音是用C、D、E、F、G、A、B來表示,這7個(gè)字母就是音樂的音名,它們一般依次唱成DO、RE、MI、FA、SO、LA、SI,即唱成簡譜的1、2、3、4、5、6、7,相當(dāng)于漢字“多來米發(fā)梭拉西”的讀音,這是唱曲時(shí)樂音的發(fā)音,所以叫“音調(diào)”,即Tone。把C、D、E、F、G、A、B這一組音的距離分成12個(gè)等份,每一個(gè)等份叫一個(gè)“半音”。兩個(gè)音之間的距離有兩個(gè)“半音”,就叫“全音”。在鋼琴等鍵盤樂器上,CD、DE、FG、GA、AB兩音之間隔著一個(gè)黑鍵,他們之間的距離就是全音;EF、BC兩音之間沒有黑鍵相隔,它們之間的距離就是半音。通常唱成1、2、3、4、5、6、7的音叫自然音,那些在它們的左上角加上號或者b號的叫變化音。叫升記號,表示把音在原來的基礎(chǔ)上升高半音,b叫降記音,表示在原來的基礎(chǔ)上降低半音。例如高音DO的頻率(1046Hz)剛好是中音DO的頻率(523Hz)的一倍,中音DO的頻率(523Hz)剛好是低音DO頻率(266 Hz)的一倍;同樣的,高音RE的頻率(1175Hz)剛好是中音RE的頻率(587Hz)的一倍,中音RE的頻率(587Hz)剛好是低音RE頻率(294 Hz)的一倍。1)要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)這半個(gè)周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對I/O反相,就可在I/O腳上得到此頻率的脈沖。2)利用AT89C51的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式MODE1下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法。此外結(jié)束符和休止符可以分別用代碼00H和FFH來表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。3)例如頻率為523Hz,其周期T=1/523=1912us,因此只要令計(jì)數(shù)器計(jì)時(shí)956us/1us=956,在每次技術(shù)956次時(shí)將I/O反相,就可得到中音DO(523Hz)。計(jì)數(shù)脈沖值與頻率的關(guān)系公式如下:N=Fi2FrN:計(jì)算值;Fi:內(nèi)部計(jì)時(shí)一次為1us,故其頻率為1MHz;4) 其計(jì)數(shù)值的求法如下:T=65536-N=65536-Fi2Fr例如:設(shè)K=65536,F(xiàn)=1000000=Fi=1MHz,球低音DO(261Hz)。中音DO(523Hz)。高音的DO(1046Hz)的計(jì)算值T=65536-N=65536-Fi2Fr=65536-10000002Fr=65536-500000/Fr低音DO的T=65536-500000/262=63627低音DO的T=65536-500000/523=64580低音DO的T=65536-500000/1047=650595) C調(diào)各音符頻率與計(jì)數(shù)值T的對照表如表4.1所示。表4.1 C調(diào)各音符頻率與計(jì)數(shù)值T的對照表7.1.2 節(jié)拍的確定若要構(gòu)成音樂,光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂具有旋律(固定的律動),而且可以調(diào)節(jié)各個(gè)音的快滿度?!肮?jié)拍”,即Beat,簡單說就是打拍子,就像我們聽音樂不自主的隨之拍手或跺腳。若1拍實(shí)0.5s,則1/4 拍為0.125s。至于1拍多少s,并沒有嚴(yán)格規(guī)定,就像人的心跳一樣,大部分人的心跳是每分鐘72下,有些人快一點(diǎn),有些人慢一點(diǎn),只要聽的悅耳就好。音持續(xù)時(shí)間的長短即時(shí)值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。一首音樂是由許多不同的音符組成的,而每個(gè)音符對應(yīng)著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數(shù)對應(yīng)的延時(shí),構(gòu)成音樂。了解音樂的一些基礎(chǔ)知識,我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂。對于單片機(jī)來說,產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機(jī)的定時(shí)/計(jì)數(shù)器來產(chǎn)生這樣的方波頻率信號。因此,需要弄清楚音樂中的音符和對應(yīng)的頻率,以及單片機(jī)定時(shí)計(jì)數(shù)的關(guān)系。表4.2節(jié)拍與節(jié)拍碼對照7.1.3 編碼do re mi fa so la si分別編碼為17,重音do編為8,重音re編為9,停頓編為0。播放長度以十六分音符為單位(在本程序中為165ms),一拍即四分音符等于4個(gè)十六分音符,編為4,其它的播放時(shí)間以此類推。音調(diào)作為編碼的高4位,而播放時(shí)間作為低4位,如此音調(diào)和節(jié)拍就構(gòu)成了一個(gè)編碼。以0xff作為曲譜的結(jié)束標(biāo)志。舉例1:音調(diào)do,發(fā)音長度為兩拍,即二分音符,將其編碼為0x18。舉例2:音調(diào)re,發(fā)音長度為半拍,即八分音符,將其編碼為0x22歌曲播放的設(shè)計(jì)。先將歌曲的簡譜進(jìn)行編碼,儲存在一個(gè)數(shù)據(jù)類型為unsigned char 的數(shù)組中。程序從數(shù)組中取出一個(gè)數(shù),然后分離出高4位得到音調(diào),接著找出相應(yīng)的值賦給定時(shí)器0,使之定時(shí)操作蜂鳴器,得出相應(yīng)的音調(diào);接著分離出該數(shù)的低4位,得到延時(shí)時(shí)間,接著調(diào)用軟件延時(shí)。表4.4 簡譜對應(yīng)的簡譜碼、T值、節(jié)拍數(shù)8 總結(jié)通過對單片機(jī)的學(xué)習(xí),發(fā)現(xiàn)對單片機(jī)的硬件設(shè)計(jì),軟件設(shè)計(jì)掌握的深度不夠,但通過此次課程設(shè)計(jì),卻改變了很多,首先對于硬件電路的工作原理有了進(jìn)一步的學(xué)習(xí),同樣就有了進(jìn)一步的認(rèn)識;其次軟件方面,在程序的設(shè)計(jì),程序的調(diào)試方面都學(xué)到了很多東西,這是第一次編寫單片機(jī)的大程序,很有成就感。在一個(gè)好的氛圍里才能踏下心來做東西,在這幾天課設(shè)的時(shí)間里,編程中出現(xiàn)問題時(shí),一定要戒驕戒躁,腳踏實(shí)地,認(rèn)真看書,仔細(xì)分析,仔細(xì)調(diào)試,就一定會發(fā)現(xiàn)錯(cuò)誤,克服困難,我也是這么做的,這在課設(shè)中十分重要。 在本次設(shè)計(jì)的過程中,我發(fā)現(xiàn)很多的問題,雖然以前沒有做過這樣的設(shè)計(jì)但通過這次設(shè)計(jì)我學(xué)會了很多東西,單片機(jī)課程設(shè)計(jì)重點(diǎn)就在于軟件算法的設(shè)計(jì),需要有很巧妙的程序算法,雖然以前寫過幾次程序,但我覺的寫好一個(gè)程序并不是一件簡單的事,比如寫一個(gè)程序看其功能很少認(rèn)為編寫程序簡單,但到編程的時(shí)候才發(fā)現(xiàn)一些細(xì)微的知識或低級錯(cuò)誤經(jīng)常犯做不到最后常常失敗,所以有些東西只有學(xué)精弄懂并且要細(xì)心才行,只學(xué)習(xí)理論有些東西是很難理解的,更談不上掌握。從這次的課程設(shè)計(jì)中,我真真正正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把所學(xué)的理論知識用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常的練習(xí)的過程中才能提高,我想這就是我在這次課程設(shè)計(jì)中的最大收獲。參考文獻(xiàn) 1 胡有彬.現(xiàn)代微機(jī)原理與接口技術(shù)M.北京:電子工業(yè)出版社,2002.2 張友德,趙志英,涂時(shí)亮.單片微型機(jī)原理.應(yīng)用與實(shí)驗(yàn)M.上海:復(fù)旦大學(xué)社,2003.3 張洪潤,張亞凡.單片機(jī)原理及應(yīng)用M.北京:清華大學(xué)出版社,2005.4 張靖武,周靈彬.單片機(jī)系統(tǒng)的Proteus設(shè)計(jì)與仿真M.北京:電子工業(yè)出社,2007. 5 何立明.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)M.北京:北京航空航天大學(xué)出版社,1990.6 凌玉華.單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)M.長沙:中南大學(xué)出版社,2006.7 張毅剛.MCS-51單片機(jī)應(yīng)用設(shè)計(jì)M.哈爾賓:哈爾賓工業(yè)大學(xué)出版社,1997. 8 譚浩強(qiáng).C程序設(shè)計(jì)M.北京:清華大學(xué)出版社,2009.9 王思明,張金敏,張鑫等.單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)M.北京:科學(xué)出版社,2012.附錄 源程序代碼#include #define uchar unsigned char#define uint unsigned intsbit BEEP = P14; /蜂鳴器sbit k0=P20;sbit k1=P21;sbit k2=P22;sbit k3=P23;sbit k4=P24;sbit k5=P25;sbit k6=P26;uint code Tone_Delay_Table= 64021,64103,64260,64400,64524,64580,64684,64777, 64820,64898,64968,65030,65058,65110,65157,65178 ;uchar code Song1_Tone=1, 1, 5, 5, 6, 6, 5,4, 4, 3 ,3, 2, 2, 1,5, 5, 4, 4, 3, 3, 2, 5, 5, 4, 4, 3, 3, 2,1,1, 5, 5, 6, 6 ,5,4 ,4, 3, 3, 2, 2, 1,0xff;uchar code Song1_Time=2,2,2,2,2,3,4,2,2,2,2,2,2,4,2,2,2,2,2,2,4,2,2,2,2,2,2,5,2,2,2,2,2,2,5,2,2,2,2,2,2,5,0xFF;uchar code Song2_Tone=1,2,3,1,1,2,3,1,3,4,5,3,4,5,5,6,5,4,3,1, 5,6,5,4,3,1 ,1,5,1,0xFF;uchar code Song2_Time=2,2,3,2,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,0xFF;uchar code Song3_Tone = 1,3,3,3,3,5,4,2,5,3,7,6,5,5,7,4,4,3,6,7,2,1,0xFF;uchar code Song3_Time = 2,1,1,2,1,1,1,2,1,1,3,2,1,1,2,4,1,1,2,1,1,1,0xFF; uchar code Song4_Tone = 8,9,2,3,7,6,2,3,10,11,1,2,3,1,2,3,3,4,5,6,5,3,5,6,5,3,5,3,2,1,1,2,3,0xFF; uchar code Song4_Time = 3,6,7,2,4,5,8,1,2,2,5,5,1,9,1,1,1,1,6,1,1,2,4,1,1,2,1,1,1,1,1,2,2,1,0xFF;uchar Song_Index = 0, Tone_Index = 0; /音樂片段索引,音符索引uchar *Song_Tone_Pointer, *Song_Time_Pointer; /音符指針,延時(shí)指針uchar i = 0; uchar j=0,k=0,m=0; /從當(dāng)前數(shù)組中取音符的位置void DelayMS(uint ms) /延時(shí) uchar t; while(ms-) for (t = 0; t 120; t+); void play0() /按鍵產(chǎn)生的INT0 ET0=1; TR0 = 0;k0=1; Song_Index = ( Song_Index + 1) % 4; /切換到下一音樂 switch (Song_Index) case 0: Song_Tone_Pointer = Song1_Tone; Song_Time_Pointer = Song1_Time; break; case 1: Song_Tone_Pointer = Song2_Tone; Song_Time_Pointer = Song2_Time; break; case 2: Song_Tone_Pointer = Song3_Tone; Song_Time_Pointer = Song3_Time; break;case 3: Song_Tone_Pointer = Song4_Tone; Song_Time_Pointer = Song4_Time; break; /從下一段音樂的第0個(gè)音符開始 i = 0; while (k0=1&k1=1&k2=1&k3=1&k4=1&k5=1&k6=1) Tone_Index = Song_Tone_Pointeri; if ( Tone_Index = 0xFF ) i = 0; DelayMS(2000); /每段音樂播放結(jié)束后停頓一段時(shí)間 continue; /繼續(xù)播放 TR0 = 1; DelayMS( Song_Time_Pointer Tone_Index * 240); TR0 = 0; i+; return; void play1() ET0=1; TR0 = 0;k1=1; Song_Index = ( Song_Index + 3) % 4; /切換到上一段音樂 switch (Song_Index) case 0: Song_Tone_Pointer = Song1_Tone; Song_Time_Pointer = Song1_Time; break; case 1: Song_Tone_Pointer = Song2_Tone; Song_Time_Pointer = Song2_Time; break; case 2: Song_Tone_Pointer = Song3_Tone; Song_Time_Pointer = Song3_Time; break;case 3: Song_Tone_Pointer = Song4_Tone; Song_Time_Pointer = Song4_Time; break; i = 0;/從上一段音樂的第0個(gè)音符開始 while (k0=1&k1=1&k2=1&k3=1&k4=1&k5=1&k6=1) Tone_Index = Song_Tone_Pointeri; if ( Tone_Index = 0xFF ) i = 0; DelayMS(2000); /每段音樂播放結(jié)束后停頓一段時(shí)間 continue; /繼續(xù)播放 TR0 = 1; DelayMS( Song_Time_Pointer Tone_Index * 240); TR0 = 0; i+; return; void play2() m=!m; TR0 = 0;k2=1;if(m=0) j=1; TR0=0; ET0=0; if(m=1) ET0=1; k=1;if(j=1) /播放被暫停的音樂 switch (Song_Index) case 0: Song_Tone_Pointer = Song1_Tone; Song_Time_Pointer = Song1_Time; break; case 1: Song_Tone_Pointer = Song2_Tone; Song_Time_Pointer = Song2_Time; break; case 2: Song_Tone_Pointer = Song3_Tone; Song_Time_Pointer = Song3_Time; break;case 3: Song_Tone_Pointer = Song4_Tone; Song_Time_Pointer = Song4_Time; break; /從本一段音樂的第i個(gè)音符開始 while (k0=1&k1=1&k2=1&k3=1&k4=1&k5=1&k6=1) Tone_Index = Song_Tone_Pointeri; if ( Tone_Index = 0xFF ) i = 0; DelayMS(2000); /每段音樂播放結(jié)束后停頓一段時(shí)間 Song_Index = ( Song_Index + 1) % 4; /播放下一首音樂 switch (Song_Index) case 0: Song_Tone_Pointer = Song1_Tone; Song_Time_Pointer = Song1_Time; break; case 1: Song_Tone_Pointer = Song2_Tone; Song_Time_Pointer = Song2_Time; break; case 2: Song_Tone_Pointer = Song3_Tone; Song_Time_Pointer = Song3_Time; break;case 3: Song_Tone_Pointer = Song4_Tone; Song_Time_Pointer = Song4_Time; break;continue; TR0 = 1; DelayMS( Song_Time_Pointer Tone_Index * 240); TR0 = 0; i+; if (j=0)j=1; Song_Tone_Pointer = Song1_Tone; /開始播放音樂 Song_Time_Pointer = Song1_Time; i = 0; while (k0=1&k1=1&k2=1&k3=1&k4=1&k5=1&k6=1) Tone_Index = Song_Tone_Pointeri; if ( Tone_Index = 0xFF ) i = 0; DelayMS(2000); /每段音樂播放結(jié)束后停頓一段時(shí)間 Song_Index = ( Song_Index + 1) % 4; /播放下一段音樂 switch (Song_Index) case 0: Song_Tone_Pointer = Song1_Tone; Song_Time_Pointer = Song1_Time; break; case 1: Song_Tone_Pointer = Song2_Tone; Song_Time_Pointer = Song2_Time; break; case 2: Song_Tone_Pointer = Song3_Tone; Song_Time_Pointer = Song3_Time; break;case 3: Song_Tone_Pointer = Song4_Tone; Song_Time_Pointer = Song4_Time; break; continue; TR0 = 1; DelayMS( Song_Time_Pointer Tone_Index * 240); TR0 = 0; i+; return; void play3() ET0=1; TR0 = 0; k3=1;/切換到第一段音樂 Song_Tone_Pointer = Song1_Tone; Song_Time_Pointer = Song1_Time; Song_Index=0; /從第一段音樂的第0個(gè)音符開始 i = 0; while (k0=1&k1=1&k2=1&k3=1&k4=1&k5=1&k6=1) Tone_Index = Song_Tone_Pointeri; if ( Tone_Index = 0xFF ) i = 0; DelayMS(2000); /每段音樂播放結(jié)束后停頓一段時(shí)間 continue; /繼續(xù)播放 TR0 = 1; DelayMS( Song_Time_Pointer Tone_Index * 240); TR0 = 0; i+; return; void play4() ET0=1; TR0 = 0;k4=1;Song_Tone_Pointer = Song2_Tone;/切換到第二段音樂 Song_Time_Pointer = Song2_Time; Song_Index=1 ; i=0; /從第二段音樂的第0個(gè)音符開始 while (k0=1&k1=1&k2=1&k3=1&k4=1&k5=1&k6=1) Tone_Index = Song_Tone_Pointeri; if ( Tone_Index = 0xFF ) i = 0; DelayMS(2000); /每段音樂播放結(jié)束后停頓一段時(shí)間 continue; /繼續(xù)播放 TR0 = 1; DelayMS( Song_Time_Pointer Tone_Index * 240); TR0 = 0; i+; return; void play5() ET0=1; TR0 = 0;k5=1;Song_Tone_Pointer = Song3_Tone; /切換到第三段音樂 Song_Time_Pointer = Song3_Time; Song_Index=2; /從第三段音樂的第0個(gè)音符開始 i = 0; while (k0=1&k1=1&k2=1&k3=1&k4=1&k5=1&k6=1) Tone_Index = Song_Tone_Pointeri; if ( Tone_Index = 0xFF ) i = 0; DelayMS(2000); /每段音樂播放結(jié)束后停頓一段時(shí)間 continue; /繼續(xù)播放 TR0 = 1; DelayMS( Song_Time_Pointer Tone_Index * 240); TR0 = 0; i+; return; void play6() ET0=1; TR0 = 0;k6=1; Song_Tone_Pointer = Song4_Tone;/切換到第四段音樂Song_Time_Pointer = Song4_Time; Song_Index=3; /從第四段音樂的第0個(gè)音符開始 i = 0; while (k0=1&k1=1&k2=1&k3=1&k4=1&k5=1&k6=1) Tone_Index = Song_Tone_Pointeri; if ( Tone_Index = 0xFF ) i = 0; DelayMS(2000); /每段音樂播放結(jié)束后停頓一段時(shí)間 continue; /繼續(xù)播放 TR0 = 1; DelayMS( Song_Time_Pointer Tone_Index * 240); TR0 = 0; i+; return; void Timer0_Play_Music() interrupt 1 / T0 定時(shí)器控制播放 TH0 = Tone_Delay_Table Tone_Index / 256; TL0 = Tone_Delay_Table Tone_Index % 256; BEEP = BEEP; void main() / 主程序 TMOD = 0x01; IE = 0x82; /許可 INTO 和 TO 中斷 TR0 = 0; while(1)if(k0=0&k=1) DelayMS(2000); play0();m=1;if(k1=0&k=1) DelayMS(2000); play1();m=1;if(k2=0) DelayMS(2000); play2();if(k3=0&k=1) DelayMS(2000); play3();m=1;if(k4=0&k=1) DelayMS(2000); play4();m=1;if(k5=0&k=1) DelayMS(2000); play5();m=1;if(k6=0&k=1) DelayMS(2000); play6();m=1; 設(shè)計(jì)題目指導(dǎo)教師綜合閱評意見平時(shí)成績020材料成績040指導(dǎo)教師a您好,為你提供優(yōu)秀的畢業(yè)論文參考資料,請您刪除以下內(nèi)容,O(_)O謝謝!AnationalsurveywasrecentlylaunchedtoevaluatetheeyehealthofChinesechildrenandteenagers.OnJune6,ChinasannualNationalDayforEyeCare,theChinaYouthDevelopmentServiceCenterandZhejiangMedicine,aleadinglistedChinesepharmaceuticalcompany,jointlyannouncedthekickoffofthesurvey.Inaboutonemonth,aquestionnairecompiledbytopeyecaremedicalexpertsinChinawillbedistributedthroughmultipleonlinepartners,includingH,aswellasthroughofflinesurveyeventsheldinuniversities,middleschoolsandprimaryschoolsacrossthecountry.Areportwillbereleasedbasedonthesurveystatisticsandanalysis,andmostimportantly,guidelinesforparentsandyouthonhowtocarefortheeyesandpreventmyopiaagrowingprobleminChinasdigitizedsociety,willalsobeattachedonthereport.Myopiaisnotonlyadiseasethatmakespeopleseethingsblurrily,butalsoleadstoseverecomplications,suchasglaucoma(increasedpressurewithintheeyeball),andcancauseblindness,saidZhouYuehua,anestablishedeyecarespecialistwithBeijingTongrenHospital.Itisveryimportantforparentsandchildrentoknowabouttheriskandcarefortheireyes.Thereareabout450millionmyopiapatientsinChina.AmongChinesemyopiapatients,30millionareseverepatients,accordingtoZhouTheprevalenceofmyopiaamonghighschoolandcollegestudentsismorethan70percent,andthesituationiscontinuouslyworsening,headded.SunZhu,directorwiththeChinaYouthDevelopmentServiceCenter,saidlonghoursofstudy,lackofexercise,especiallyoutdooractivities,andattachmenttoelectronicscreenaresomeofthetopreasonsbehindthewidespreadmyopiaproblems,andtheincreaseofyoungerpatients,althoughChinahasmadegreatprogressinimprovingthehardwarefacilitiesandlightingconditionsinschools.Hesaidhehopesthesurveywillalertpeopleonthethreateningsituation,andalsohelpmedicalexpertstobetterguidelineparentsandchildrensbehaviorstocareforeyes,basedonthetimelyandfactualstatisticsthesurveycollected.Aseriesoffollow-upeventswillalsobeheldinsixcities,includingJinaninShandongprovince,andChangshainHunanprovince,toeducatepeopleonhowtocareforeyesafterthesurveystarted. More and more Chinese are jogging to get and stay fit. Most joggers will run alone, but some will jog with friends or even coaches. The Beijing Olympic Forest Park is one of the most popular spots. It is packed with runners in the afternoon, usually after work, and at weekends. Jogging after a whole days work can be a way to unwind. It is true for He Wenjun, whose workplace is right near the forest park. She discovered her athletic aptitude at the age of seven, when she began playing tennis. Then she turned to jogging, and she has persevered with it for 10 years. I come to jog almost every day after work, whenever I have time. I think jogging is good for my health. And for me, a girl, it helps me to achieve to eternal goal, to keep slim, He said. He says she prefers jogging alone, so she can focus better. She loves jogging, even during Beijings smoggy days. If the smog is severe, Ill hold off jogging for a while. But if I really want to get away from work, Ill wear a mask, or just ignore the smog and go on jogging, she said. For those who are not so athletic, jogging also has its attractions. Wu Houbin started roughly two years ago, when he was severely obese. Within two months, his weight dropped from 82 kilograms to 64 kilograms. The success helped him recover health, and he has made friends. Jogging does not require speed, but stamina. If you want to stick to the game, you need to take it as a mission,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 特長學(xué)生玩出管理制度
- 豬場衛(wèi)生免疫管理制度
- 環(huán)保公司廠區(qū)管理制度
- 環(huán)保公司采購管理制度
- 環(huán)保節(jié)能教育管理制度
- 環(huán)衛(wèi)休息驛站管理制度
- 環(huán)衛(wèi)清潔服務(wù)管理制度
- 六年級英語下冊Unit1GreatcitiesinAsia教案牛津上海版一起
- 新課改瘦專用2025版高考物理一輪復(fù)習(xí)第四章第1節(jié)曲線運(yùn)動運(yùn)動的合成與分解學(xué)案含解析
- 現(xiàn)場設(shè)備衛(wèi)生管理制度
- 2025年通信工程與技術(shù)考試試卷及答案
- JG/T 100-1999塔式起重機(jī)操作使用規(guī)程
- 2024-2025學(xué)年下學(xué)期初中道德與法治七年級期末復(fù)習(xí)試卷(含答案)
- 2025年中國ORC低溫余熱發(fā)電系統(tǒng)行業(yè)市場現(xiàn)狀及未來發(fā)展前景預(yù)測報(bào)告
- 2025年江蘇南通市通州區(qū)八年級生物二模試卷
- 護(hù)理副高職稱評審要點(diǎn)解析
- 幼教財(cái)務(wù)培訓(xùn)
- 中國鐵路濟(jì)南局集團(tuán)招聘筆試真題2024
- 2024北京朝陽區(qū)六年級畢業(yè)考英語試題及答案
- PHPstorm激活碼2025年5月13日親測有效
- 膽石癥中西醫(yī)結(jié)合診療專家共識(2025年)解讀課件
評論
0/150
提交評論