




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一、摘要 本設(shè)計(jì)是采用單片機(jī)為核心設(shè)計(jì)的數(shù)字音樂(lè)盒。它可以實(shí)現(xiàn)音樂(lè)的播放,可以通過(guò)功能鍵來(lái)選擇樂(lè)曲,播放或暫停,并且可以通過(guò)LCD屏幕顯示正在播放的歌曲的序號(hào),及樂(lè)曲播放時(shí)間,開(kāi)機(jī)時(shí)有英文歡迎提示字符,本音樂(lè)盒可以播放十首音樂(lè)。 本設(shè)計(jì)是以AT89C51芯片的電路為基礎(chǔ),利用KEIL和PROTEUS仿真軟件設(shè)計(jì)出來(lái)的一個(gè)多功能音樂(lè)盒。音樂(lè)盒主要是由四大模塊構(gòu)成,包括AT89C51芯片、蜂鳴器、晶振復(fù)位電路和1602顯示器。有開(kāi)機(jī)鍵、暫停鍵、播放鍵、上一曲、下一曲及十個(gè)用來(lái)選擇歌曲的鍵。此外用戶可以按照自己的喜好選擇音樂(lè)并將其轉(zhuǎn)化成機(jī)器碼存入單片機(jī)的存儲(chǔ)器中。對(duì)于不同型號(hào)的單片機(jī)只需要相應(yīng)的改變
2、一下地址即可。該軟、硬件系統(tǒng)具有很好的通用性,很高的實(shí)際使用價(jià)值。 關(guān)鍵字:AT89C51;Keil;1602液晶顯示器;計(jì)時(shí);音樂(lè)盒二、設(shè)計(jì)原理2.1 芯片AT89C51的介紹AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸
3、出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及引腳排列如圖2.1所示 圖2.1 AT89C51引腳排列圖2.2 LCD1602液晶顯示屏 1602共16個(gè)管腳,但是編程用到的主要管腳不過(guò)三個(gè),分別為:RS(數(shù)據(jù)命令選擇端),R/W(讀寫(xiě)選擇端),E(使能信號(hào));以后編程便主要圍繞這三個(gè)管腳展開(kāi)進(jìn)行初始化,寫(xiě)命令,寫(xiě)數(shù)據(jù)。以下具體闡述這三個(gè)管腳: RS為寄存器選擇,高電平選擇數(shù)據(jù)寄存器,低電平選擇指令寄存器。 R/W
4、為讀寫(xiě)選擇,高電平進(jìn)行讀操作,低電平進(jìn)行寫(xiě)操作。 E端為使能端,后面和時(shí)序聯(lián)系在一起。除此外,D0D7分別為8位雙向數(shù)據(jù)。讀取狀態(tài)字時(shí),注意D7位,D7=1,禁止讀寫(xiě)操作;D7=0,允許讀寫(xiě)操作;所以對(duì)控制器每次進(jìn)行讀寫(xiě)操作前,必須進(jìn)行讀寫(xiě)檢測(cè)。(即后面的讀忙子程序)2.3 音調(diào)的產(chǎn)生頻率的高低決定了音調(diào)的高低。音樂(lè)的十二平均率規(guī)定:每?jī)蓚€(gè)八度音(如簡(jiǎn)譜中的中音1和高音1)之間的頻率相差一倍。在兩個(gè)八度音之間又分為十二個(gè)半音。另外,音名A(簡(jiǎn)譜中的低音6)的頻率為440Hz,音名B到C之間、E到F之間為半音,其余為全音。由此可以計(jì)算出簡(jiǎn)譜中從低音1到高音1之間每個(gè)音名對(duì)應(yīng)的頻率,所有不同頻率的
5、信號(hào)都是從同一個(gè)基準(zhǔn)頻率分頻得到的。 1、要產(chǎn)生音頻脈沖,只要算出某一音頻的周期(1/頻率),然后將此周期除以2,即為半周期的時(shí)間。利用定時(shí)器計(jì)時(shí)這半個(gè)周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì)I/O反相,就可在I/O腳上得到此頻率的脈沖。 2、利用AT89C51的內(nèi)部定時(shí)器使其工作在計(jì)數(shù)器模式MODE1下,改變計(jì)數(shù)值TH0及TL0以產(chǎn)生不同頻率的方法。 此外結(jié)束符和休止符可以分別用代碼00H和FFH來(lái)表示,若查表結(jié)果為00H,則表示曲子終了;若查表結(jié)果為FFH,則產(chǎn)生相應(yīng)的停頓效果。 3、例如頻率為523Hz,其周期T=1/523=1912us,因此只要令計(jì)
6、數(shù)器計(jì)時(shí)956us/1us=956,在每次技術(shù)956次時(shí)將I/O反相,就可得到中音DO(523Hz)。 計(jì)數(shù)脈沖值與頻率的關(guān)系公式如下: N=Fi÷2÷Fr N:計(jì)算值; Fi:內(nèi)部計(jì)時(shí)一次為1us,故其頻率為1MHz; 4、其計(jì)數(shù)值的求法如下: 初值T=65536-N=65536-Fi÷2÷Fr 例如:設(shè)K=65536,F(xiàn)=1000000=Fi=1MHz,球低音DO(261Hz)。中音DO(523Hz)。高音的DO(1046Hz) 的計(jì)算值 T=65536-N=65536-Fi÷2÷Fr=65536-1000000÷2
7、247;Fr=65536-500000/Fr 低音DO的T=65536-500000/262=63627 低音DO的T=65536-500000/523=64580 低音DO的T=65536-500000/1047=65059 5、 C調(diào)各音符頻率與計(jì)數(shù)值T的對(duì)照表如表2.1所示C調(diào)各音符頻率與計(jì)數(shù)值T的對(duì)照表2.4 節(jié)拍的確定若要構(gòu)成音樂(lè),光有音調(diào)是不夠的,還需要節(jié)拍,讓音樂(lè)具有旋律(固定的律動(dòng)),而且可以調(diào)節(jié)各個(gè)音的快滿度。“節(jié)拍”,即Beat,簡(jiǎn)單說(shuō)就是打拍子,就像我們聽(tīng)音樂(lè)不自主的隨之拍手或跺腳。若1拍實(shí)0.5s,則1/4 拍為0.125s。至于1拍多少s,并沒(méi)有嚴(yán)格規(guī)定,就像人的心跳
8、一樣,大部分人的心跳是每分鐘72下,有些人快一點(diǎn),有些人慢一點(diǎn),只要聽(tīng)的悅耳就好。音持續(xù)時(shí)間的長(zhǎng)短即時(shí)值,一般用拍數(shù)表示。休止符表示暫停發(fā)音。 一首音樂(lè)是由許多不同的音符組成的,而每個(gè)音符對(duì)應(yīng)著不同頻率,這樣就可以利用不同的頻率的組合,加以與拍數(shù)對(duì)應(yīng)的延時(shí),構(gòu)成音樂(lè)。了解音樂(lè)的一些基礎(chǔ)知識(shí),我們可知產(chǎn)生不同頻率的音頻脈沖即能產(chǎn)生音樂(lè)。對(duì)于單片機(jī)來(lái)說(shuō),產(chǎn)生不同頻率的脈沖是非常方便的,利用單片機(jī)的定時(shí)/計(jì)數(shù)器來(lái)產(chǎn)生這樣的方波頻率信號(hào)。因此,需要弄清楚音樂(lè)中的音符和對(duì)應(yīng)的頻率,以及單片機(jī)定時(shí)計(jì)數(shù)的關(guān)系。每個(gè)音符使用1個(gè)字節(jié),字節(jié)的高4位代表音符的高低,低4位代表音符的節(jié)拍,表2.41為節(jié)拍碼的對(duì)照。
9、如果1拍為0.4秒,1/4拍實(shí)0.1秒,只要設(shè)定延遲時(shí)間就可求得節(jié)拍的時(shí)間。假設(shè)1/4拍為1DELAY,則1拍應(yīng)為4DELAY,以此類推。所以只要求得1/4拍的DELAY時(shí)間,其余的節(jié)拍就是它的倍數(shù)。2.4.1節(jié)拍與節(jié)拍碼對(duì)照2.4.2 1/4和1/8的時(shí)間設(shè)定2.5 音符的編碼do re mi fa so la si分別編碼為17,重音do編為8,重音re編為9,停頓編為0。播放長(zhǎng)度以十六分音符為單位(在本程序中為165ms),一拍即四分音符等于4個(gè)十六分音符,編為4,其它的播放時(shí)間以此類推。音調(diào)作為編碼的高4位,而播放時(shí)間作為低4位,如此音調(diào)和節(jié)拍就構(gòu)成了一個(gè)編碼。以0xff作為曲譜的結(jié)束
10、標(biāo)志。 舉例1:音調(diào)do,發(fā)音長(zhǎng)度為兩拍,即二分音符,將其編碼為0x18 舉例2:音調(diào)re,發(fā)音長(zhǎng)度為半拍,即八分音符,將其編碼為0x22 歌曲播放的設(shè)計(jì)。先將歌曲的簡(jiǎn)譜進(jìn)行編碼,儲(chǔ)存在一個(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í)。 三、程序設(shè)計(jì)與硬件電路3.1 設(shè)計(jì)思路程序設(shè)計(jì)部分主要有:字模部分、LCD1602顯示、簡(jiǎn)譜音調(diào)及節(jié)拍、計(jì)時(shí)部分。實(shí)驗(yàn)控制流程圖如下:硬件設(shè)計(jì)圖如下: 3.2 程序設(shè)計(jì)見(jiàn)附件四、仿真調(diào)試及
11、操作說(shuō)明1、按下開(kāi)機(jī)鍵LCD顯示如下 2、 按下歌曲按鈕播放所選歌曲3、 操作說(shuō)明一共13個(gè)按鈕,按下對(duì)應(yīng)的歌曲選擇按鈕鍵,會(huì)播放對(duì)應(yīng)的歌曲。第一首,揮著翅膀的女孩 ;第二首,同一首歌 ;第三首,兩只蝴蝶 ;第四首,母親 ;第五首,世上只有媽媽好 ;第六首,瀏陽(yáng)河 ;第七首,同桌的你 ;第八首,茉莉花 第九首,梁祝 ;第十首,生日快樂(lè)其中還有,暫停鍵、繼續(xù)鍵、上一曲、下一曲。五、心得體會(huì)其實(shí),在開(kāi)始單片機(jī)課程設(shè)計(jì)之前,我是很擔(dān)心的。因?yàn)閱纹瑱C(jī)這一課程還有很多沒(méi)學(xué)懂的地方,很多命令都還不怎么會(huì)使用。以前幾乎每次試驗(yàn)都要搞好久,很不熟練。當(dāng)拿到課程設(shè)計(jì)的任務(wù)時(shí),我很開(kāi)心,因?yàn)橄鄬?duì)來(lái)說(shuō),數(shù)字音樂(lè)盒的
12、設(shè)計(jì)比較簡(jiǎn)單,而且我個(gè)人也比較喜歡音樂(lè)。所以,之后做起來(lái)也很有干勁。通過(guò)此次課程設(shè)計(jì),首先對(duì)于硬件電路的工作原理有了進(jìn)一步的學(xué)習(xí),同時(shí)有了一個(gè)提升;軟件方面,在程序的設(shè)計(jì),程序的調(diào)試方面都有了很大的進(jìn)步。 在設(shè)計(jì)過(guò)程中我遇到了許多問(wèn)題。比如說(shuō),1、有時(shí)會(huì)出現(xiàn)程序一點(diǎn)錯(cuò)誤也沒(méi)有,但就是不能正常運(yùn)行的現(xiàn)象,最后我們發(fā)行是因?yàn)槌绦蛑杏械闹噶顣?shū)寫(xiě)得不規(guī)范導(dǎo)致的,例如有的RET返回指令一定要按正確格式書(shū)寫(xiě)或在兩行指令間最好不要留空行。2、編程時(shí)要注意,在程序開(kāi)始時(shí),要寫(xiě)入各定時(shí)器中斷的入口地址。3、編程前要加流程圖,這樣會(huì)使思路清晰,例如數(shù)字音樂(lè)盒的設(shè)計(jì)思路完全可以按著MP3的工作方式列寫(xiě)流程圖。等等。
13、還有很多小細(xì)節(jié)的問(wèn)題,通過(guò)問(wèn)同學(xué),或是通過(guò)上網(wǎng)查詢,我不僅是獲得了答案,更多的是獲得知識(shí)的開(kāi)心和成就感。當(dāng)聽(tīng)到一首首歌響起的時(shí)候,那種無(wú)語(yǔ)倫比的開(kāi)心,充斥了我整個(gè)大腦。 這次的課程設(shè)計(jì)在一定程度上改變了我學(xué)習(xí)單片機(jī)這門(mén)課程的態(tài)度,從最初的認(rèn)為學(xué)它沒(méi)有什么實(shí)際意義,到如今愛(ài)上單片機(jī)學(xué)習(xí),并希望能將理論運(yùn)用到實(shí)踐,設(shè)計(jì)出更好更完整的系統(tǒng)。我明白了一個(gè)人要 想 做 好一件 事,就 必 須 具 備 自 信 心,耐 心,還 要 有 毅 力,要 膽 大心 細(xì),要 勇 于嘗試,要手腦并用,最后才能交出一份令人滿意的答卷。對(duì)我而言,知識(shí)上的收獲重要,精神上的豐收更加。讓我知道了學(xué)無(wú)止境的道理。我們每一個(gè)人永遠(yuǎn)
14、不能滿足于現(xiàn)有的成就,人生就像在爬山,一座山峰的后面還有更高的山峰在等著你。挫折是一份財(cái)富,經(jīng)歷是一份擁有。這次課程設(shè)計(jì)必將成為為我人生旅途上一個(gè)非常美好的回憶。六、參考文獻(xiàn)1 譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)(第二版)M,北京:清華大學(xué)出版社,1991. 2 曾屹.單片機(jī)原理與應(yīng)用(第一版)M,中南大學(xué)出版社,2009.3 美妙的音樂(lè)盒-家庭電子1994年05期附件:#include<reg51.h>#include <intrins.h>#include"source.h"#define SYSTEM_OSC 12000000/11059200/定義晶振頻
15、率12000000HZ #define SOUND_SPACE 4/5 /定義普通音符演奏的長(zhǎng)度分率,/每4分音符間隔 #define uchar unsigned char#define uint unsigned int#define delayNOP(); _nop_();_nop_();_nop_();_nop_();uchar code tab1="ZENGYAN "uchar code tab2="2010043127"uchar code tab3="Welcome ! "uchar code tab4="SE
16、LECT:"uchar code tab5="0123456789: "sbit BeepIO=P14;/定義輸出管腳 sbit key0=P20;sbit key1=P21;sbit key2=P22;sbit key3=P23;sbit key4=P24;sbit key5=P25;sbit key6=P26;sbit key7=P27;sbit key8=P30;sbit key9=P31;sbit key10=P34;sbit key11=P35;sbit key12=P36;sbit key13=P37;sbit LCD_EN=P17;sbit LCD_
17、RS=P15;sbit LCD_RW=P16;sbit led=P13;uchar count;uint Point;uint *temp;unsigned char *Sound;unsigned int code FreTab12 = 262,277,294,311,330,349,369,392,415,440,466,494 ; /原始頻率表 unsigned char code SignTab7 = 0,2,4,5,7,9,11 ; /17在頻率表中的位置 unsigned char code LengthTab7= 1,2,4,8,16,32,64 ; unsigned char
18、Sound_Temp_TH0,Sound_Temp_TL0;/音符定時(shí)器初值暫存 unsigned char Sound_Temp_TH1,Sound_Temp_TL1;/音長(zhǎng)定時(shí)器初值暫存 uchar flag;uchar lcdflag;uchar fen;uchar miao;uchar num;void write_com(uchar com);void write_data(uchar date);void init();void delay_ms(uint z) uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);bit lcd_busy
19、() bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P0&0x80); LCD_EN = 0; return(result); void write_com(uchar cmd) while(lcd_busy(); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; void write_data(uchar da
20、t) while(lcd_busy(); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; void init() LCD_EN=0; LCD_RW=0; write_com(0x38); write_com(0x0e); write_com(0x06); write_com(0x01); write_com(0x80); / write_com(0x80+0x10);void wr_lcd_1602(unsigned char add,unsigned c
21、har dat)unsigned char ge,shi;shi=dat/10;ge=dat%10;write_com(0x80+add);write_data(0x30+shi);write_data(0x30+ge);/* void Play(unsigned char Signature,unsigned Octachord,unsigned int Speed) /此處是程序的關(guān)鍵 unsigned int NewFreTab12;/新的頻率表 unsigned char i,j; unsigned int LDiv,LDiv0,LDiv1,LDiv2,LDiv4,CurrentFre
22、,Temp_T,SoundLength ; unsigned char Tone,Length,SL,SH,SM,SLen,XG,FD; /temp=Sound;for(i=0;i<12;i+) / 根據(jù)調(diào)號(hào)及升降八度來(lái)生成新的頻率表 / write_com(0x80+0x48);/()/write_data(tab5num);j = i + Signature; if(j > 11) j = j-12; NewFreTabi = FreTabj*2; else NewFreTabi = FreTabj; if(Octachord = 1) NewFreTabi>>=2
23、; else if(Octachord = 3) NewFreTabi<=2; SoundLength = 0; while(SoundSoundLength != 0x00)/計(jì)算歌曲長(zhǎng)度 SoundLength+=2; Point = 0; Tone = SoundPoint; Length = SoundPoint+1; / 讀出第一個(gè)音符和它時(shí)時(shí)值 LDiv0 = 12000/Speed;/ 算出1分音符的長(zhǎng)度(幾個(gè)10ms) LDiv4 = LDiv0/4; / 算出4分音符的長(zhǎng)度 LDiv4 = LDiv4-LDiv4*SOUND_SPACE; / 普通音最長(zhǎng)間隔標(biāo)準(zhǔn) TR0
24、 = 0; TR1 = 1; while(Point<SoundLength) SL=Tone%10; /計(jì)算出音符 SM=Tone/10%10; /計(jì)算出高低音 SH=Tone/100; /計(jì)算出是否升半 CurrentFre = NewFreTabSignTabSL-1+SH; /查出對(duì)應(yīng)音符的頻率 if(SL!=0) if (SM=1) CurrentFre >>= 2; /低音 if (SM=3) CurrentFre <= 2; /高音 Temp_T = 65536-(50000/CurrentFre)*10/(12000000/SYSTEM_OSC);/計(jì)算
25、計(jì)數(shù)器初值 Sound_Temp_TH0 = Temp_T/256; Sound_Temp_TL0 = Temp_T%256; TH0 = Sound_Temp_TH0; TL0 = Sound_Temp_TL0 + 12; /加12是對(duì)中斷延時(shí)的補(bǔ)償 SLen=LengthTabLength%10; /算出是幾分音符 XG=Length/10%10; /算出音符類型(0普通1連音2頓音) FD=Length/100; LDiv=LDiv0/SLen; /算出連音音符演奏的長(zhǎng)度(多少個(gè)10ms) if (FD=1) LDiv=LDiv+LDiv/2; if(XG!=1) if(XG=0) /算
26、出普通音符的演奏長(zhǎng)度 if (SLen=4) LDiv1=LDiv-LDiv4; else LDiv1=LDiv*SOUND_SPACE; else LDiv1=LDiv/2; /算出頓音的演奏長(zhǎng)度 else LDiv1=LDiv; if(SL=0) LDiv1=0; LDiv2=LDiv-LDiv1; /算出不發(fā)音的長(zhǎng)度 if (SL!=0) TR0=1; for(i=LDiv1;i>0;i-) /發(fā)規(guī)定長(zhǎng)度的音 while(TF1=0); TH1 = Sound_Temp_TH1; TL1 = Sound_Temp_TL1; TF1=0; if(LDiv2!=0) TR0=0; Be
27、epIO=0; for(i=LDiv2;i>0;i-) /音符間的間隔 while(TF1=0); TH1 = Sound_Temp_TH1; TL1 = Sound_Temp_TL1; TF1=0; Point+=2; Tone=SoundPoint; Length=SoundPoint+1; BeepIO = 0; void Delay1ms(unsigned int count) unsigned int i,j; for(i=0;i<count;i+) for(j=0;j<110;j+); void init0()IP=0x01;/ IT0=0; /低電平觸發(fā) IT0
28、=1; /下降沿觸發(fā) EX0=1; / IT1=0; /低電平觸發(fā) IT1=1; /下降沿觸發(fā) EX1=1; EA=1;void InitialSound(void) BeepIO = 0; Sound_Temp_TH1 = (65535-(1/1200)*SYSTEM_OSC)/256;/ 計(jì)算TL1應(yīng)裝入的初值 (10ms的初裝值) Sound_Temp_TL1 = (65535-(1/1200)*SYSTEM_OSC)%256;/ 計(jì)算TH1應(yīng)裝入的初值 TH1 = Sound_Temp_TH1; TL1 = Sound_Temp_TL1; TMOD |= 0x11; ET0 = 1;
29、ET1 = 0; TR0 = 0; TR1 = 0; EA = 1; void w1() num=1;Point=0;Sound=Music1;lcdflag=1;void w2()num=2;Point=0;Sound=Music2;lcdflag=1;void w3()num=3;Point=0;Sound=Music3;lcdflag=1;void w4() num=4;Point=0;Sound=Music4;lcdflag=1;void w5()num=5;Point=0;Sound=Music5;lcdflag=1;void w6()num=6;Point=0;Sound=Musi
30、c6;lcdflag=1;void w7() num=7;Point=0;Sound=Music7;lcdflag=1;void w8()num=8;Point=0;Sound=Music8;lcdflag=1;void w9()num=9;Point=0;Sound=Music9;lcdflag=1;void w10() num=10;Point=0;Sound=Music10;lcdflag=1;void Key0() if(key0=0) delay_ms(10); if(key0=0) while(!key0) while(!key0) flag=0; void Key1() if(k
31、ey1=0) delay_ms(10); if(key1=0) while(!key1) while(!key1) w1(); void Key2() if(key2=0) delay_ms(10); if(key2=0) while(!key2) while(!key2) w2(); void Key3() if(key3=0) delay_ms(10); if(key3=0) while(!key3) while(!key3) w3(); void Key4() if(key4=0) delay_ms(10); if(key4=0) while(!key4) while(!key4) w4
32、(); void Key5() if(key5=0) delay_ms(10); if(key5=0) while(!key5) while(!key5) w5(); void Key6() if(key6=0) delay_ms(10); if(key6=0) while(!key6) while(!key6) w6(); void Key7() if(key7=0) delay_ms(10); if(key7=0) while(!key7) while(!key7) w7(); void Key8() if(key8=0) delay_ms(10); if(key8=0) while(!k
33、ey8) while(!key8) w8(); void Key9() if(key9=0) delay_ms(10); if(key9=0) while(!key9) while(!key9) w9(); void Key10() if(key10=0) delay_ms(10); if(key10=0) while(!key10) while(!key10) w10(); void Key11() if(key11=0) delay_ms(10); if(key11=0) while(!key11) while(!key11) num+; if(num=11)num=1; if(num=1
34、)w1(); if(num=2)w2(); if(num=3)w3(); if(num=4)w4(); if(num=5)w5(); if(num=6)w6(); if(num=7)w7(); if(num=8)w8(); if(num=9)w9(); if(num=10)w10(); void Key12() if(key12=0) delay_ms(10); if(key12=0) while(!key12) while(!key12) num-; if(num=0)num=10;if(num=1)w1(); if(num=2)w2(); if(num=3)w3(); if(num=4)w4(); if(num=5)w5(); if(num=6)w6(); if(num=7)w7(); if(num=8)w8(); if(num=9)w9(); if(num=10)w10(); void main(void) uchar i; init();init0(); InitialSound(); TMOD|=0X10;TH1=(6553
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中物理圓周運(yùn)動(dòng)課件-2024-2025學(xué)年高一下學(xué)期物理人教版(2019)必修第二冊(cè)
- 中醫(yī)藥專業(yè)培訓(xùn)大綱
- 湖北第二師范學(xué)院《國(guó)際貨運(yùn)與保險(xiǎn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 浙江舟山群島新區(qū)旅游與健康職業(yè)學(xué)院《風(fēng)景園林遺產(chǎn)保護(hù)與管理》2023-2024學(xué)年第一學(xué)期期末試卷
- 兒童福利政策評(píng)估-第1篇-洞察及研究
- 石膏固定術(shù)常見(jiàn)并發(fā)癥護(hù)理
- 理科實(shí)驗(yàn)?zāi)芰εc學(xué)生科學(xué)素養(yǎng)關(guān)系的實(shí)證分析
- 恐龍化石兒童手工課件
- 醫(yī)學(xué)檢驗(yàn)專業(yè)年終工作總結(jié)
- 廣西大學(xué)《通風(fēng)工程與潔凈技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年人教版小學(xué)四年級(jí)下冊(cè)數(shù)學(xué)期末提升測(cè)試試題(含答案和解析)
- 2025年安徽省高考物理真題(解析版)
- 2025年新疆中考數(shù)學(xué)真題試卷及答案
- 2025-2030年中國(guó)茶具行業(yè)深度分析及發(fā)展前景與發(fā)展戰(zhàn)略研究報(bào)告
- 2025年山東省高考招生統(tǒng)一考試高考真題化學(xué)試卷(真題+答案)
- 2025至2030年中國(guó)月子中心行業(yè)競(jìng)爭(zhēng)格局分析及市場(chǎng)前景趨勢(shì)報(bào)告
- 2025年山煤國(guó)際招聘筆試沖刺題(帶答案解析)
- 2024-2025學(xué)年七年級(jí)英語(yǔ)下學(xué)期期末模擬試卷(外研版2024)
- 醫(yī)院培訓(xùn)課件:《緊急情況下口頭醫(yī)囑制度與執(zhí)行流程》
- 2023年山東省夏季普通高中學(xué)業(yè)水平合格考試會(huì)考生物試題及參考答案
- 北京市東城區(qū)名校2024年八年級(jí)物理第二學(xué)期期末質(zhì)量檢測(cè)試題及答案解析
評(píng)論
0/150
提交評(píng)論