數(shù)字音樂盒的設(shè)計與實現(xiàn)_第1頁
數(shù)字音樂盒的設(shè)計與實現(xiàn)_第2頁
數(shù)字音樂盒的設(shè)計與實現(xiàn)_第3頁
數(shù)字音樂盒的設(shè)計與實現(xiàn)_第4頁
數(shù)字音樂盒的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、課 程 設(shè) 計 報 告課程設(shè)計名稱:微機系統(tǒng)綜合課程設(shè)計課程設(shè)計題目:數(shù)字音樂盒的設(shè)計與實現(xiàn)1 總體設(shè)計方案1.1 題目介紹與要求本次課程設(shè)計的任務(wù)是運用偉福Lab8000試驗箱和keil軟件設(shè)計并實現(xiàn)一個數(shù)字音樂盒,要求采用I/O產(chǎn)生一定頻率的方波,從而驅(qū)動蜂鳴器發(fā)出不同的音調(diào),演奏樂曲;并且需要采用七段數(shù)碼管顯示當前播放的歌曲序號和播放時間;還得通過數(shù)字鍵盤直接選擇樂曲,控制選擇上一曲和下一曲音樂,具有暫停和播放控制功能。1.2設(shè)計思路1.2.1音調(diào)的產(chǎn)生頻率的高低決定了音調(diào)的高低。音樂的十二平均率規(guī)定:每兩個八度音(如簡譜中的中音1和高音1)之間的頻率相差一倍。在兩個八度音之間又分為十二

2、個半音。另外,音名A(簡譜中的低音6)的頻率為440Hz,音名B到C之間、E到F之間為半音,其余為全音。由此可以計算出簡譜中從低音1到高音1之間每個音名對應(yīng)的頻率,所有不同頻率的信號都是從同一個基準頻率分頻得到的。要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時間。利用定時器計時這半個周期時間,每當計時到后就將輸出脈沖的I/O反相,然后重復計時此半周期時間再對I/O反相,就可在I/O腳上得到此頻率的脈沖。利用51單片機的內(nèi)部定時器使其工作在計數(shù)器模式MODE1下,改變計數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法。此外結(jié)束符和休止符可以分別用代碼00H和FFH來

3、表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。例如頻率為523Hz,其周期T=1/523=1912us,因此只要令計數(shù)器計時956us/1us=956,在每次技術(shù)956次時將I/O反相,就可得到中音DO(523Hz)。計數(shù)脈沖值與頻率的關(guān)系公式如下:N=Fi/2/FrN:計算值;Fi:內(nèi)部計時一次為1us,故其頻率為1MHz;其計數(shù)值的求法如下:初值T=65536-NC調(diào)各音符頻率與計數(shù)值T的對照表如表1.1所示。表1.1 C調(diào)各音符頻率與計數(shù)值T的對照表低音頻率N參數(shù)中音頻率N參數(shù)高音頻率N參數(shù)Do2621908229Do523956115Do10465

4、757Do#2771805217Do554903108Do11095454Re32941701204Re587852102Re11755151Re3111608193Re62280497Re12454848Mi3301515182Mi65975991Mi13184545Fa3491433172Fa69871686Fa13974343Fa3701351162Fa74067681Fa14804141So3921276153So78463877So15683838So4151205145So83160272So16613636La4401136136La88056868La17603434La464

5、1078129La93253664La18653232Si4941012121Si98850661Si197630301.2.2節(jié)拍的產(chǎn)生構(gòu)成音樂需要節(jié)拍,讓音樂具有旋律,而且可以調(diào)節(jié)各個音的快慢度。若1拍實0.5s,則1/4 拍為0.125s。至于1有多長時間,可以按照設(shè)計者來決定,只要好聽就行。音持續(xù)時間的長短即時值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。一首音樂是由許多不同的音符組成的,而每個音符對應(yīng)著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數(shù)對應(yīng)的延時,構(gòu)成音樂。節(jié)拍與節(jié)拍碼對照表如表1.2所示。表1.2節(jié)拍與節(jié)拍碼對照節(jié)拍碼節(jié)拍數(shù)節(jié)拍碼節(jié)拍數(shù)11/4拍11/8拍22/4拍21

6、/4拍33/4拍33/8拍41拍42/1拍51又1/4拍55/8拍61又1/2拍63/4拍82拍81拍A2又1/2拍A1又1/4拍C3拍C1又1/2拍F3又3/4拍每個音符使用1個字節(jié),字節(jié)的高4位代表音符的高低,低4位代表音符的節(jié)拍。如果1拍為0.4秒,1/4拍為0.1秒,只要設(shè)定延遲時間就可求得節(jié)拍的時間。假設(shè)1/4拍的延遲時間為1,則1拍的延遲時間應(yīng)為4,以此類推。所以只要求得1/4拍的延遲時間,其余的節(jié)拍就是它的倍數(shù)。表1.3所示。表1.31/4和1/8節(jié)拍的時間設(shè)定曲調(diào)值DELAY曲調(diào)值DELAY調(diào)4/4125毫秒調(diào)4/462毫秒調(diào)3/4187毫秒調(diào)3/494毫秒調(diào)2/4250毫秒調(diào)

7、2/4125毫秒2硬件電路設(shè)計2.1系統(tǒng)原理數(shù)字音樂盒的核心主要分為三個方面,分別是七段數(shù)碼管、鍵盤和蜂鳴器。用定時器中斷的方式來控制蜂鳴器和掃描4*4鍵盤,在程序中用顯示函數(shù)讓數(shù)碼管顯示,需要顯示出歌曲序號和播放時間,并且能用鍵盤控制播放的音樂。原理框圖如圖2.1所示。圖2.1系統(tǒng)原理框圖2.2單片機8051單片機是在課堂上學習的單片機型號,也是這次課程設(shè)計的核心器件,它是8位的單片機,具有品種全、兼容性強、性能價格比高等特點。8051單片機具有很多的I/O口,其中P2.4、P2.5、P2.6連接74LS138譯碼器,而譯碼器則可以控制片選信號和位選信號;P0的八個I/O口要與譯碼器74HC

8、374相連,然后在與鍵盤連接,從而能確認數(shù)碼管的段選信號,此次課程設(shè)計的位選碼為0x8002。段選碼是0x8004;P1.1口則控制的是蜂鳴器。單片機電路圖如圖2.2所示。圖2.2 單片機電路圖2.3主要電路器件2.3.1 蜂鳴器蜂鳴器是整個電路中重要的輸出部分之一,沒有了蜂鳴器就不會響起悅耳的音樂,本次課程設(shè)計,運用了單片機I/O口中的P1.1口,當程序中的play變量等于1時,蜂鳴器響,反之,若play等于0,則停止響聲。端口輸出的方波經(jīng)放大濾波后,驅(qū)動蜂鳴器發(fā)聲,蜂鳴器的電路圖如圖2.3所示。圖2.3蜂鳴器電路圖2.3.2 鍵盤Lab8000實驗箱內(nèi)的鍵盤是4*6的鍵盤,但是這次課程設(shè)計

9、只用到了前四列,所以也就只掃描了四列按鍵,鍵盤的主要功能就是用戶的輸入,也是實現(xiàn)程序現(xiàn)象的重要部分,當用戶想播放哪首歌曲就在鍵盤中輸入哪個按鍵。實驗箱內(nèi)的鍵盤還連接了一個ULN2003芯片,這個芯片的特點是電流增益高、工作電壓高、溫度范圍寬、帶負載能力強等特點,適應(yīng)于要求高速大功率驅(qū)動的系統(tǒng)。鍵盤的電路圖如圖2.4所示。圖2.4鍵盤電路圖2.3.3 數(shù)碼管此次課程設(shè)計運用了六的數(shù)碼管,第一個顯示了歌曲的序號,第二個是空位,第三和第四個顯示了分鐘的計時,第五和第六個顯示了秒鐘的計時。數(shù)碼管的主要作用就是顯示出當前程序運行時的現(xiàn)象,數(shù)碼管的位選位與ULN2003相連后再接到鍵盤上,段選位則是連到7

10、4HC374譯碼器上,實驗箱的數(shù)碼管為共陰極,顯示方式為動態(tài)顯示。由電路圖得知,位選信號為1時有效。數(shù)碼管示意圖如圖2.5所示。圖2.5數(shù)碼管示意圖3程序設(shè)計3.1 系統(tǒng)功能該軟件具有多種功能,系統(tǒng)功能圖如圖3.1所示。 圖3.1系統(tǒng)功能圖3.2主要函數(shù)介紹3.2.1總體流程程序的第一步是變量的初始化,定義了flag、time、sec等變量,并且設(shè)置了各個音調(diào)對應(yīng)的十六進制碼,然后開中斷,對定時器進行模式的選擇和初值的計算,接著調(diào)用LED顯示函數(shù)使數(shù)碼管按照程序設(shè)計的方式運行,其中掃描鍵盤是用定時器中斷的方法,設(shè)置每隔3ms中斷一次,即掃描一次鍵盤。流程圖如圖3.2所示。圖3.2總體流程圖3.

11、2.2數(shù)碼管顯示函數(shù)數(shù)碼管的顯示在這里用的是動態(tài)顯示方法,并且通過電路圖得知,為了讓74HC138芯片和74HC573芯片有效,計算出段控制口和位控制口分別為0x8004和0x8002。流程圖如圖3.3所示。圖3.3數(shù)碼管顯示函數(shù)流程圖3.2.3鍵盤掃描掃描鍵盤主要用的是unsigned char GetKey()函數(shù),而且還是用定時器中斷的方法,設(shè)置每隔3毫秒中斷一次,在一秒中大約會產(chǎn)生中斷333次,就是說在一秒鐘掃描鍵盤333次。在掃描鍵盤的過程中,先是掃描哪一個的按鍵別按下,把第幾列記錄下來后,再掃描是哪一行的按鍵,記錄是哪一行;最后根據(jù)公式“鍵值 = 列 x 4 + 行”,就能計算出是

12、哪一個按鍵被按下。如圖3.4所示。圖3.4鍵盤掃描函數(shù)流程圖3.2.4 計時函數(shù)為了對歌曲進行計時,所以設(shè)計了一個計時函數(shù)jishi()。分鐘和秒鐘分別用兩個數(shù)碼管來顯示,當歌曲響起時開始計時,若秒鐘個位加到10時,則十位加一,并且個位清零;秒鐘的十位加到5時,分鐘個位加一,并且將秒鐘清零,分鐘的十位同理,最后通過緩沖區(qū)在數(shù)碼管中顯示。計時函數(shù)如圖3.5所示。圖3.5 計時函數(shù)流程圖3.2.5 音樂函數(shù)音樂函數(shù)song()是使蜂鳴器響起音樂的核心,一共有六首歌曲,分別用0x010x06控制著六首歌曲,通過用switch語句控制判斷選擇的是哪首歌曲,選擇歌曲的序號后,調(diào)用相對應(yīng)的并且儲存了用十六

13、進制數(shù)表示歌曲的數(shù)組,若在鍵盤中選擇了1,就會調(diào)用tiger,則蜂鳴器就會按照tiger數(shù)組中存儲的十六進制碼產(chǎn)生的頻率響起音樂,播放結(jié)束后就會繼續(xù)播放序號為2的歌曲。如圖3.6所示。圖3.6 音樂函數(shù)流程圖4 實驗現(xiàn)象與問題4.1操作說明與實驗現(xiàn)象“1”按鍵:歌曲1,兩只老虎“2”按鍵:歌曲2,小青蛙“3”按鍵:歌曲3,千年之戀“4”按鍵:歌曲4,七子之歌“5”按鍵:歌曲5,找朋友“6”按鍵:歌曲6,寂寞沙洲嶺“A”按鍵:播放上一首歌曲“B”按鍵:播放下一首歌曲“C”按鍵:暫停鍵數(shù)碼管的第一位顯示當前正在播放的歌曲序號,第三四位顯示歌曲的分鐘計時,第五六位顯示歌曲的秒鐘計時。在鍵盤中選擇“1

14、”“6”按鍵,就會播放相應(yīng)的歌曲,六首歌曲循環(huán)播放,若當前播放的是第一首,選擇“A”按鍵播放上一首歌曲就會播放第六首,若當前播放的是第六首,選擇“B”按鍵播放下一首歌曲就會播放第一首,選擇“C”按鍵時,歌曲和計時都會暫停,再按一次則繼續(xù)播放音樂。4.2 問題與解決方法問題1:六個數(shù)碼管中所有的段位都會發(fā)生很嚴重的閃爍現(xiàn)象,導致看不清數(shù)碼管顯示的數(shù)字,但運行的結(jié)果是正確的。解決:經(jīng)過測試發(fā)現(xiàn),試驗箱連錯了I/O口,連的是P3.7口,該口的功能是讀寫,改成連接P1.1口,閃爍消失。問題2:運行時數(shù)碼管計數(shù)不穩(wěn)定,有微弱的閃爍現(xiàn)象。解決:調(diào)整中斷時間,將中斷一次的時間3ms改成2ms,在1秒內(nèi)產(chǎn)生5

15、00次中斷,數(shù)碼管變的更穩(wěn)定。問題3:音樂跑調(diào)解決:音調(diào)的產(chǎn)生是根據(jù)聲音產(chǎn)生的頻率,再用公式計算出定時器的初值,計算錯誤導致音樂跑調(diào)。參考文獻1 張毅剛,劉杰. 單片機原理及應(yīng)用(第三版). 哈爾濱:哈爾濱工業(yè)大學出版社,2015.4.2張仁彥,高正中,黃鶴松. 單片機原理及應(yīng)用. 北京:機械工業(yè)出版社,2016.33付先成,,高恒強,蔡紅娟. 單片機原理與C語言程序設(shè)計. 武漢:華中科技大學出版社,2015.84張校珩. 單片機C語言編程100例. 北京:中國電力出版社,2014.15 唐穎. 單片機綜合設(shè)計實例與實驗. 北京:電子工業(yè)出版社,2015.1附錄(關(guān)鍵部分程序清單)#inclu

16、de #define uchar unsigned char #define uint unsignedint#define LEDLen 6xdata unsigned char OUTBIT _at_ 0x8002; / 位控制口xdata unsigned char OUTSEG _at_ 0x8004; / 段控制口xdata unsigned char IN _at_ 0x8001; / 鍵盤讀入口unsigned char LEDBufLEDLen; / 顯示緩沖sbitfm=P11;/蜂鳴器uchar u=0,num=0,num1=0;uchartimeh,timel;uchar

17、 min0=0,min1=0,sec0=0,sec1=0;uchar play=0;uchar flag1=0;uint flag=0;void delay1(uint z);/延時1msvoid delay(uint z); /延時165ms即十六分音符void song(); /簡譜音調(diào)對應(yīng)的定時器初值適合11.0592M的晶振uchar code chuzhi= 0xff,0xff,/占位停頓 0xFC,0x8E,/中音1-7 0xFC,0xED, 0xFD,0x43, 0xFD,0x6A, 0xFD,0xB3, 0xFD,0xF3, 0xFE,0x2D, 0xFE,0x47, /高音1

18、-7 0xFE,0x76, 0xFE,0xA1, 0xFE,0xC7, 0xFE,0xD9, 0xFE,0xF9, 0xFF,0x16 ; code unsigned char LEDMAP = / 八段管顯示碼 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71;uchar code tiger=/兩只老虎0x14,0x24,0x34,0x14,0x14,0x24,0x34,0x14,0x34,0x44,0x58,0x34,0x44,0x58,0x52,0

19、x61,0x52,0x41,0x34,0x14,0x52,0x61,0x52,0x41,0x34,0x14, 0x14,0xb4,0x18,0x14,0xb4,0x18,0xff,; uchar code xqw=/小青蛙0x52,0x32,0x32,0x32,0x52,0x32,0x32,0x32,0x54,0x61,0x52,0x32,0x42,0x24,0x42,0x22,0x22,0x22,0x42,0x22,0x22,0x22,0x44,0x51,0x42,0x22,0x32,0x18,;uchar code qnzl= /千年之戀0x12,0x22,0x34,0x84,0x74,0

20、x54,0x38,0x42,0x32,0x22,0x42,0x34,0x84,0x72,0x82,0x94,0xA8,0x08,0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62, 0x32,0x31,0x21,0x32,0x82,0x71,0x81,0x71,0x51,0x32,0x22, 0x32,0x31,0x21,0x32,0x52,0x32,0x31,0x21,0x32,0x62, 0x32,0x31,0x21,0x32,0x83,0x82,0x71,0x72,0x02, 0x63,0xA1,0xA2,0x62,0x92,0x82,0x

21、52, 0x31,0x51,0x63,0x51,0x63,0x51,0x63,0x51,0x62,0x82,0x7C,0x02, 0x61,0x71,0x82,0x71,0x62,0xA2,0x71,0x76, 0x61,0x71,0x82,0x71,0x62,0x52,0x31,0x36, 0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53, 0x42,0x63,0x83,0x83,0x91,0x91, 0x61,0x71,0x82,0x71,0x62,0x0A2,0x71,0x76, 0x61,0x71,0x82,0x71,0x62,0x52,0x31

22、,0x36, 0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53, 0x42,0x82,0x88,0x02,0x74,0x93,0x89,0xff;uchar code qizige= /七子之歌0x54,0x32,0x52,0x32,0x54,0x62,0x52,0x32,0x62,0x54,0x14,0x12,0x22,0x34,0x52,0x32,0x02,0x32,0x58,0x52,0x52,0x62,0x52,0x32,0x54,0x52,0x62,0x52,0x82,0x62,0x58,0x14,0x52,0x32,0x22,0x12,0x2

23、4,0x32,0x54,0x2,0x22,0x34,0x1f,0x18,0x04,0x54,0xa4,0x92,0x81,0x62,0x52,0x54,0x62,0x64,0x52,0x62,0x81,0xa2,0x82,0x9c,0x02,0x52,0xa4,0x92,0x81,0x62,0x52,0x54,0x62,0x64,0x52,0x64,0xa2,0x92,0x9f,0xa4,0x92,0x81,0x62,0x52,0x54,0x84,0x62,0x52,0x32,0x22,0x14,0x04,0x22,0x32,0x58,0x58,0x04,0x52,0x62,0x8f,0xff

24、, ;char code zpy=/找朋友0x14,0x14,0x14,0x24,0x34,0x54,0x58,0x54,0x64,0x54,0x34,0x24,0x34,0x24,0x34,0x14,0x18,0x54,0x34,0x28,0x14,0x24,0x34,0x54,0x24,0x34,0x14,;uchar code jmszl= /寂寞沙洲冷0x12,0x12,0x22,0x32,0x31,0x22,0x21,0x22,0x21,0x31,0x51,0x52,0x31,0x52,0x61,0x15,0x14,0x51,0x52,0x31,0x52,0x62,0x13,0x11

25、,0x13,0x32,0x28,0x08,0x28,0x31,0x32,0x31,0x32,0x11,0x21,0x51,0x52,0x51,0x52,0x51,0x51,0x31,0x32,0x31,0x32,0x81,0x72,0x63,0x62,0x71,0x81,0x72,0x61,0x61,0x52,0x31,0x21,0x32,0x51,0x54,0x22,0x12,0x11,0x12,0x11,0x12,0x12,0x14,0x26,0x32,0x26,0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51

26、,0x02,0x32,0x81,0x81,0x81,0x81,0x62,0x52,0x34,0x31,0x81,0x81,0x81,0x61,0x91,0x82,0x51,0x51,0x51,0x51,0x31,0x61,0x53,0x21,0x11,0x21,0x11,0x22,0x11,0x21,0x26,0x32,0x61,0x51,0x51,0x31,0x31,0x21,0x31,0x51,0x61,0x51,0x31,0x51,0x52,0x31,0x31,0x81,0x81,0x81,0x61,0x91,0x81,0x61,0x31,0x56,0x32,0x32,0x81,0x81

27、,0x81,0x81,0x91,0x81,0x61,0x81,0x61,0x51,0x31,0x51,0x34,0x21,0x31,0x51,0x31,0x21,0x11,0x61,0x21,0x16,0xff;voidInit()LEDBuf0 = 0x00;LEDBuf1 = 0x00;LEDBuf2 = 0x3f;LEDBuf3 = 0x3f;LEDBuf4 = 0x3f;LEDBuf5 = 0x3f;void Delay4(unsigned char CNT)unsigned char i;while (CNT- !=0)for (i=100; i !=0; i-);voidDispl

28、ayLED()unsigned char i;unsigned char Pos;unsigned char LED;Pos = 0x20; / 從左邊開始顯示for (i = 0; i= 1; / 顯示下一位 OUTBIT=Pos; OUTSEG=0; OUTBIT=0; code unsigned char KeyTable = / 鍵碼定義 0x16, 0x15, 0x14, 0xff, 0x13, 0x12, 0x11, 0x10, 0x0d, 0x0c, 0x0b, 0x0a, 0x0e, 0x03, 0x06, 0x09, 0x0f, 0x02, 0x05, 0x08, 0x00,

29、 0x01, 0x04, 0x07;unsigned char TestKey() / 測試有沒有按鍵 OUTBIT = 0; / 輸出線置為0 return (IN & 0x0f); / 讀入鍵狀態(tài)(高四位不用)unsigned char GetKey() / 得到的是哪個按鍵unsigned char Pos;unsigned char i;unsigned char k;i = 6;Pos = 0x20; / 找出按鍵所在列do OUTBIT = Pos;Pos= 1; k = IN & 0x0f; while (-i != 0) & (k = 0);/ 鍵值 = 列 x 4 + 行if

30、 (k != 0) i *= 4;if (k & 2)i += 1;else if (k & 4)i += 2;else if (k & 8)i += 3; OUTBIT = 0; return(KeyTablei); / 取出鍵碼 else return(0xff);void timer1() interrupt 3 /用于產(chǎn)生各種音調(diào)T1 TH1=timeh; TL1=timel; fm=fm; void delay(uint z)/延時165ms,即十六分音符uintx,y;for(x=z;x0;x-)for(y=38;y0;y-)DisplayLED();void delay1(uin

31、t z)/顯示延時1ms uintx,y;for(x=z;x0;x-)for(y=60;y0;y-); voidjishi()if(play=1)sec0+;if(sec0=10) sec0=0;sec1+;if(sec1=6) sec1=0;min0+;if(min0=9)min1+; LEDBuf2=LEDMAPmin1;LEDBuf3=LEDMAPmin0;LEDBuf4=LEDMAPsec1;LEDBuf5=LEDMAPsec0;void time0() interrupt 1 TH0=62536/256; TL0=62536%256; if(TestKey()num=GetKey()

32、&0x0f; /取低四位if(num=0&num=6)flag=0;flag1=0;num1=num;Init();LEDBuf0=LEDMAPnum1;min0=0,min1=0,sec0=0,sec1=0;play=1;u=0; if(num=0x0a)flag=0;flag1=0;Init();if(num1=0)num1=5;elsenum1-;LEDBuf0=LEDMAPnum1; min0=0,min1=0,sec0=0,sec1=0; u=0; if(num=0x0b)flag=0;flag1=0;Init();if(num1=5)num1=0;elsenum1+;LEDBuf0

33、=LEDMAPnum1; min0=0,min1=0,sec0=0,sec1=0; u=0; if(num=0x0c)if(play=1)play=0;elseplay=1; flag+;if(flag=333)jishi();flag=0; void song()uint temp;/temp歌調(diào)ucharjp; /jp是簡譜while(1)DisplayLED();if(play=0) TR1=0;fm=1;return; switch(num1)case 0x01:temp=tigeru;break;case 0x02:temp=xqwu;break;case 0x03:temp=qnz

34、lu;break;case 0x04:temp=qizigeu;break;case 0x05:temp=zpyu;break;case 0x06:temp=jmszlu;break;if(temp=0xff)num1+;flag=0;LEDBuf0=LEDMAPnum1;min0=0,min1=0,sec0=0,sec1=0;u=0;return;jp=temp/16; / 取高4位,存的音符if(jp!=0)timeh=chuzhijp*2;/ 初值timel=chuzhijp*2+1;elseTR1=0;/停止T0工作fm=1;/關(guān)蜂鳴器delay(temp%16); / 取低4位,存停

35、頓的時間TR1=0; /唱完一個音停10msfm=1; DisplayLED();TR1=1; u+;TR1=0;fm=1;void main()EA=1;/ 開總中斷EX0=1;TMOD=0x11;/T0工作在方式1TH1=0;TL1=0;ET0=1; /開定時器T0ET1=1;TH0=62536/256;TL0=62536%256; TR0=1;Init();while(1)DisplayLED();if(play=1)song(); 真正好的朋友,從來不需要這些表面功夫。走在這漫漫俗塵,形如微塵的我們,每天忙碌的像只螻蟻,哪有時間去整那些虛假的表面文章。那些沉淀在歲月里的真情實意,哪一個

36、不是無事各自忙,有事時,卻又從不問回報幾何的真心相助?至于那些平日里看上去可以一起打鬧,一起吃喝,一起廝混,看似好成一片的人,或許,只是你在多少次的四目相對之時,動了真心,存了真義,是你默默認定對方可稱朋友,有困難的時候是你愿意伸以援手,但未必對方一樣。多少看似熱情的人,內(nèi)心是薄情的。而多少看似淡漠的人,內(nèi)心實則一片溫熱。那些表面熱誠的人,總是相安無事各自好,一旦你有事需要援助,別說大事,就是小事需代勞,你都會發(fā)現(xiàn)原來不過情比紙薄,對方遠比你自己想的要現(xiàn)實的多。有些人,自從與你接近,內(nèi)心就存有一份自己的打算。定是你于他而言,多少有些可用之處。正所謂無事獻殷勤,非奸即盜。在這個功利心彌漫的世態(tài)下

37、,沒有哪一份意外的熱情不無所圖。不僅是職場如此,男人如此,就連女人也不能免俗。接孩子的時候,被困高層電梯下不來,一個電話打來,希望能幫忙照看一下放學的孩子。實在的人總是把別人毫不見外的信任,當作是一種榮幸,于是想都不用想就能一口答應(yīng)??僧斈阌惺滦枰獙Ψ街皇谴P簽個字這樣的舉手之勞時,對方都能各種不情愿各種推脫,至此你終是發(fā)現(xiàn),原來人與人之間真不是一杯換一盞的事兒。關(guān)鍵時刻,還是得找那些看似平時不聯(lián)系,但一開口能力范圍之內(nèi)就愿意為你想辦法的人。多少人天真的以為,認識的人越多,人脈就越廣,自己就越厲害,其實,那些所謂的人脈,不過廉價。倘若你沒有同等的利用價值,誰會與你建立起所謂的交際?最是談錢傷感情,也最是感情不值錢。別結(jié)識了比自己優(yōu)秀比自己有能力的人,就覺得有了依靠有了光環(huán),自己不足夠

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論