單片機(jī)課程設(shè)計(jì)電子音調(diào)發(fā)生器_第1頁(yè)
單片機(jī)課程設(shè)計(jì)電子音調(diào)發(fā)生器_第2頁(yè)
單片機(jī)課程設(shè)計(jì)電子音調(diào)發(fā)生器_第3頁(yè)
單片機(jī)課程設(shè)計(jì)電子音調(diào)發(fā)生器_第4頁(yè)
單片機(jī)課程設(shè)計(jì)電子音調(diào)發(fā)生器_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告電子音調(diào)發(fā)生器姓名:日期: 2009 年 6 月 29 日星期一目錄(一)實(shí)驗(yàn)?zāi)康?1(二)設(shè)計(jì)任務(wù)及要求 2(三)工作原理及設(shè)計(jì)思路 2(四)實(shí)現(xiàn)功能設(shè)計(jì) 2五)軟件設(shè)計(jì) 3六)電路設(shè)計(jì) 35七)調(diào)試 37八)實(shí)驗(yàn)體會(huì) 38一)實(shí)驗(yàn)?zāi)康?了解計(jì)算機(jī)發(fā)聲原理。2 熟悉定時(shí)器和鍵盤(pán)掃描電路的工作原理及編程方法。二)設(shè)計(jì)任務(wù)及要求利用實(shí)驗(yàn)平臺(tái)上的開(kāi)關(guān) k0-k7 和蜂鳴器設(shè)計(jì)電子音調(diào)發(fā)生器,要求:1利用實(shí)驗(yàn)平臺(tái)上開(kāi)關(guān) k0-k7 進(jìn)行音調(diào)選擇, 即撥動(dòng)不同的開(kāi)關(guān)產(chǎn)生不同的 音調(diào),依次撥動(dòng) K0K7,蜂鳴器發(fā)出 1234567i 八個(gè)音調(diào)。2編寫(xiě) 2支歌曲,并可進(jìn)行選擇播放。三

2、)工作原理及設(shè)計(jì)思路音節(jié)由不同頻率的方波產(chǎn)生, 音節(jié)與頻率的關(guān)系如表 1 所示。要產(chǎn)生音頻方 波,只要算出某一音頻的周期( 1/ 頻率),然后將此周期除以 2,即為半周期的 時(shí)間。利用計(jì)時(shí)器計(jì)時(shí)此半周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出方波的 I/0 反相, 然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對(duì) I/O 反相,就可在 I/O 腳得到此頻率的方波。 在 ZKS-03實(shí)驗(yàn)儀上,產(chǎn)生方波的 I/O 腳選用 P1.7,通過(guò)跳線選擇器 JP1 將單片機(jī) 的 P1.7 與蜂鳴器的驅(qū)動(dòng)電路相連。 這樣 P1.7 輸出不同頻率的方波, 蜂鳴器便會(huì) 發(fā)出不同的聲音。另外,音樂(lè)的節(jié)拍是由延時(shí)實(shí)現(xiàn)的,如果 1 拍為 0.4 秒,

3、1/4 拍是 0.1 秒。只要設(shè)定延時(shí)時(shí)間, 就可求得節(jié)拍的時(shí)間。 延時(shí)作為基本延時(shí)時(shí)間, 節(jié)拍值只能是它的整數(shù)倍,每個(gè)音節(jié)相應(yīng)的定時(shí)器初值 X 可按下法計(jì)算:(1/2 )*(1/f)=(12/fose)*(216-x)即 x=216-(fose/24f)其中 f: 音調(diào)頻率,當(dāng)晶振 fose=11.0592MHz 時(shí),音節(jié)“ 1”相應(yīng)的定時(shí)器初值為 x, 則可得 x=63777D=F921H其 它的可同樣求得。表1音調(diào)頻率( Hz)X(HEX)1262F9212294F9E13330FA8C4349FAD85392FB686440FBE97494FC5Bi523FC8F四)實(shí)現(xiàn)功能設(shè)計(jì)實(shí)現(xiàn)兩

4、個(gè)主要功能: 電子琴與音樂(lè)播放; 一個(gè)輔助功能: 在液晶上顯示相關(guān) 信息。1、電子琴: 4*4 的矩陣 16 個(gè)按鍵,按鍵 0實(shí)現(xiàn)兩個(gè)功能的切換,其余按鍵分別 發(fā)出音調(diào) 低音 5、6、7,中音 1、2、3、 4、 5、6、7,高音 1、2、3、4、5。 發(fā)音的同時(shí)在液晶顯示屏上顯示出對(duì)應(yīng)的音調(diào)。2、音樂(lè)播放:按鍵 0 實(shí)現(xiàn)兩個(gè)功能的切換,按鍵 1 實(shí)現(xiàn)播放類(lèi)型選擇(單曲循 環(huán)播放、所有循環(huán)播放) ,其余按鍵分別對(duì)應(yīng)一首歌。目前已經(jīng)有 9 首歌。 播放的同時(shí),在液晶上顯示出歌名。(五)軟件設(shè)計(jì)根據(jù)要實(shí)現(xiàn)的功能,流程圖如下:#include <AT89X52.H> #include &

5、lt;intrins.h> #define nop _nop_() #define uchar unsigned char #define uint unsigned int#define PAI_BASE 15#define MUSIC_NUM 9#define SCAN_CYCLE 500#define BEEP P3_3/*液晶顯示相關(guān)變量 */sbit LCD_RS = sbit LCD_RW sbit LCD_EN =P27; = P26;P25;static uchar th0_f; /在中斷中裝載的 T0 的值高 8 位static uchar tl0_f; /在中斷中裝載

6、的 T0 的值低 8 位static timebuffer,Record_counter,Record_flag=0;static uchar key2,key=16,scounter=0,Record_time; static uchar s_musicCounter=0x00,s_tableCounter;bit Rplay_flag=0;bit K0_flag=0;bit Music_flag0;bit Music_flag=0;bit Freq_flag=0;bit disptime_flag=0;bit musicAutoFlag=0;/sbit BEEP = P3_3; /喇叭輸出

7、腳/ 延時(shí)子程序 1 void delay(int ms)int i;while(ms-)for(i = 0; i< 250; i+)_nop_();_nop_();_nop_();_nop_();/*/*/*lcd_busy*/*檢查為 1 時(shí),忙,等待。LCD 忙 狀 lcd-busy 為 0 時(shí), 閑,可寫(xiě)指令與數(shù)據(jù)*/bit lcd_busy()bit result;LCD_RS = 0;LCD_RW = 1;LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();result = (bit)(P0&0x80);LCD_EN = 0; ret

8、urn result;/* 寫(xiě) 指令數(shù)據(jù)到*/*RS=L , RW=L ,E= 高脈沖,D0-D7= 指 令/*/*/*/碼LCDvoid lcd_wcmd(uchar cmd)while(lcd_busy();LCD_RS = 0;LCD_RW = 0;LCD_EN = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();_nop_();LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();LCD_EN = 0;/*/*/*RS=H*/*/寫(xiě)顯, RW=L ,示數(shù)據(jù)E= 高 脈 沖D0-D7= 數(shù)LCD。voi

9、d lcd_wdat(uchar dat) while(lcd_busy();LCD_RS = 1;LCD_RW = 0;LCD_EN = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();LCD_EN = 0; /*/*/*設(shè)定顯*/void lcd_pos(uchar pos)lcd_wcmd(pos|0x80); /數(shù)據(jù)指針 =80+地址變量 /*/*/* LCD 初 始 化 設(shè)*/*/ /*/void lcd_init()delay(15); / 等待 LCD電源穩(wěn)

10、定 lcd_wcmd(0x38); /16*2顯示, 5*7 點(diǎn)陣, 8 位數(shù)據(jù)delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x0c); / delay(5);lcd_wcmd(0x06); / delay(5);lcd_wcmd(0x01); / delay(5);顯示開(kāi),關(guān)光標(biāo)移動(dòng)光標(biāo)清除 LCD的顯示內(nèi)容/*/*/清屏子/*/void lcd_clr()lcd_wcmd(0x01); / delay(5);清除 LCD的顯示內(nèi)容/ 靜態(tài)顯示字符串void lcd_string(char *strpoi

11、nt) /* register i=0;while(strpointi!=0) lcd_wdat(strpointi);i+;在當(dāng)前顯示位置顯示LCD 字符串 */* */*Constant Tables*/const char code c_music1=0x82,0x01,0x81,0x94,0x84,/* 生日快樂(lè)歌 */0xb4,0xa4,0x04,0x82,0x01,0x81,0x94,0x84, 0xc4,0xb4,0x04, 0x82,0x01,0x81,0xf4,0xd4, 0xb4,0xa4,0x94, 0xe2,0x01,0xe1,0xd4,0xb4, 0xc4,0xb4,

12、0x04, 0x00;const char code c_music2=0x62, 0x52, /* 兩只蝴蝶 */0x64, 0x64, 0x02, 0x52, 0x62, 0x52,0x44, 0x44, 0x04, 0x22, 0x42,0x54, 0x52, 0x62, 0x52, 0x42, 0x22, 0x42,0x14, 0x14, 0x04, 0x62, 0x52,0x64, 0x64, 0x02, 0x52, 0x62, 0x52,0x44, 0x44, 0x04, 0x22, 0x42,0x54, 0x52, 0x62, 0x52, 0x42, 0x22, 0x42,0x5

13、4, 0x54, 0x04, 0x62, 0x82,0x84, 0x84, 0x02, 0x82, 0x92, 0x82,0x64, 0x64, 0x04, 0x52, 0x52,0x54, 0x52, 0x62, 0x52, 0x42, 0x22, 0x91, 0x41, 0x42, 0x42, 0x44, 0x44, 0x44,0x02, 0x82, 0x82, 0x92,0xb2, 0xa2, 0xa2, 0x92, 0x64, 0x52, 0x62,0x64, 0x64, 0x02, 0x62, 0x62, 0x82,0x94, 0x94, 0x02, 0x22, 0x62, 0x52

14、,0x54, 0x54, 0x04, 0x62, 0x82,0x82, 0x62, 0x84, 0x02, 0xb2, 0xb2, 0xa2,0x92, 0xa2, 0x64, 0x02, 0x92, 0x92, 0xa2,0x92, 0x82, 0x62, 0x52, 0x52, 0x62, 0x52,0x62,0x84, 0x84, 0x02, 0x82, 0x82, 0x92,0x92, 0x82, 0x62, 0x52, 0x52, 0x12, 0x12,0x22,0x44, 0x44, 0x44, 0x44,0x00;const char code c_music3=0x04, 0x

15、42, 0x41, 0x51,0x62, 0x62, 0x52, 0x41, 0x51, 0x54, 0x02,0x41, 0x51, /* 老鼠愛(ài)大米 */0x62, 0x62, 0x52, 0x42, 0x44, 0x02, 0x11,0x21,0x14, 0x11, 0x11, 0x21, 0x41, 0x44, 0x02,0x42,0x42, 0x42, 0x42, 0x41, 0x51, 0x54, 0x42,0x51, 0x61,0x62, 0x62, 0x82, 0x91, 0x51, 0x54, 0x62,0x51, 0x41,0x42, 0x42, 0x52, 0x61, 0

16、x81, 0x84, 0x02,0x81, 0x81,0x92, 0x41, 0x41, 0x42, 0x61, 0x01, 0x52,0x42, 0x42, 0x51, 0x41,0x44, 0x44, 0x44, 0x62, 0x61, 0x81,0x82, 0x81, 0x81, 0x82, 0x81, 0x91, 0x94,0x62, 0x52,0x42, 0x42, 0x42, 0x51, 0x61, 0x64, 0x02,0x61, 0x81,0x82, 0x82, 0x82, 0x91, 0xb1, 0xb2, 0x92,0x82, 0x62,0x52, 0x42, 0x42,

17、0x22, 0x54, 0x02, 0x61, 0x81, 0x82, 0x82, 0x81, 0x92, 0x81, 0x94, 0x62, 0x52, 0x42, 0x42, 0x42, 0x51, 0x61, 0x64, 0x02,0x61, 0x81,0x82, 0x82, 0x82, 0x91, 0xb1, 0xb2, 0x92,0x82, 0x61, 0x51,0x52, 0x52, 0x54, 0x54, 0x41, 0x62, 0x71,0x62, 0x52, 0x54, 0x54, 0x62, 0x51, 0x41,0x44, 0x62, 0x51, 0x41, 0x44,

18、0x62, 0x52,0x62, 0x42, 0x62, 0x91, 0x81, 0x84, 0x02, 0x61, 0x81,0x92, 0x91, 0x81, 0x82, 0x91, 0x81, 0x84,0x61, 0x51, 0x42,0x52, 0x51, 0x61, 0x52, 0x41, 0x51, 0x41,0x53, 0x62, 0x51, 0x41,0x44, 0x62, 0x51, 0x41, 0x44, 0x62, 0x52,0x62, 0x42, 0x61, 0x92, 0x81, 0x84, 0x02, 0x61, 0x81,0x92, 0x92, 0xb2, 0x

19、81, 0x91, 0x82, 0x01,0x81, 0x61, 0x51, 0x41,0x54, 0x51, 0x41, 0x51, 0x61, 0x54, 0x62,0x62,0x54, 0x02, 0x42, 0x44, 0x44,0x00;const char code c_music4=0x04, 0x02, 0x41, 0x51, 0x62, 0x61, 0x61, 0x62, 0x52, /* 夢(mèng)醒時(shí)分 */0x62, 0x81, 0x61, 0x62, 0x61, 0x81, 0x92,0x92, 0x92, 0xa2,0x82, 0x62, 0x62, 0x62, 0x61,

20、 0x51, 0x42,0x41, 0x41, 0x42, 0x22,0x62, 0x81, 0x41, 0x44, 0x51, 0x52, 0x01, 0x52, 0x42,0x81, 0x61, 0x52, 0x52, 0x41, 0x51, 0x62, 0x61, 0x61, 0x62, 0x52,0x62, 0x81, 0x61, 0x62, 0x61, 0x81, 0x92, 0x91, 0x91, 0x92, 0xa2,0x82, 0x62, 0x61, 0x81, 0x81, 0x81, 0x92, 0xb2, 0xb2, 0x92,0x72, 0x52, 0x52, 0x81,

21、 0x81, 0x92, 0xb2, 0xb2, 0x92,0xb2, 0xc2, 0xc4, 0xc4, 0x01, 0x81, 0x81, 0x81,0xd2, 0xd2, 0xd2, 0xd2, 0xd2, 0xc1, 0xc1, 0xc2, 0xb1, 0xa1,0xb2, 0xb2, 0xb2, 0xc2, 0x62, 0x82, 0x82, 0x81, 0x81,0x92, 0xb1, 0xb1, 0xb2, 0xb2, 0xc2, 0x91, 0xb1, 0xb2, 0xb1, 0xb1,0xc2, 0xc1, 0xc1, 0xc2, 0xb2, 0xd2, 0xc1, 0x81

22、, 0x81, 0x81, 0x81, 0x81,0xd2, 0xd2, 0xd2, 0xf2, 0xd2, 0xc1, 0xc1, 0xc2, 0xb1, 0xa1,0xb2, 0xb2, 0xb2, 0xc2, 0x62, 0x82, 0x82, 0x81, 0x81,0x92, 0xb1, 0xb1, 0xb2, 0xb1, 0xb1, 0xc2, 0x91, 0xb1, 0xb2, 0xb1, 0xb1,0xc2, 0xc1, 0xc1, 0xc2, 0xb2, 0xd4, 0xc2, 0x01, 0xb1,0xb4, 0xb4, 0xb4, 0xb4, 0x00;大長(zhǎng)今 */cons

23、t char code c_music5=0x54, 0x64, 0x64,/*0x64, 0x02, 0x52, 0x44,0x24, 0x44, 0x44,0x51, 0x43, 0x44, 0x44,0x54, 0x64, 0x64, 0x64, 0x02, 0x82, 0x64, 0x64, 0x54, 0x64, 0x64, 0x64, 0x64, 0x84, 0x94, 0x94, 0x94, 0x84, 0x64, 0x64, 0x84, 0x94, 0x81, 0x91, 0x82, 0x84, 0x84, 0x54, 0x64, 0x64, 0x54, 0x02, 0x62,

24、 0x64,0x54, 0x64, 0x24,0x41, 0x23, 0x94, 0x94,0x24, 0x24, 0x24,0x54, 0x64, 0x64,0x64, 0x02, 0x52, 0x44,0x24, 0x44, 0x44,0x51, 0x43, 0x44, 0x44,0x54, 0x64, 0x64,0x64, 0x02, 0x82, 0x64,0x64, 0x54, 0x64,0x64, 0x64, 0x64,0x84, 0x94, 0x94,0x94, 0x02, 0x82, 0x64,0x64, 0x84, 0x94,0x84, 0x84, 0x84,0x54, 0x6

25、4, 0x64,0x54, 0x02, 0x62, 0x64,0x54, 0x64, 0x24,0x41, 0x23, 0x24, 0x24,0x24, 0x24, 0x24,0x54, 0x02, 0x42, 0x24,0x54, 0x02, 0x42, 0x24,0x54, 0x64, 0x44,0x54, 0x02, 0x62, 0x84,0x94, 0x02, 0x82, 0x64,0x54, 0x02, 0x42, 0x24,0x24, 0x14, 0x24,0x41, 0x23, 0x24, 0x24,0x24, 0x24, 0x24,0x14, 0x14, 0x14,0x14,

26、0x02, 0x22, 0x42, 0x52,0x62, 0x52, 0x44, 0x02, 0x22,0x44, 0x44, 0x54,0x64, 0x64, 0x64,0x64, 0x64, 0x84,0x94, 0x02, 0xb2, 0x94,0x84, 0x84, 0x84,0x84, 0x61, 0x81, 0x92, 0x04,0x92, 0x82, 0x64, 0x02, 0x52,0x64, 0x02, 0x52, 0x62, 0x52,0x44, 0x44, 0x44,0x41, 0x23, 0x24, 0x44,0x54, 0x54, 0x54,0x54, 0x64, 0

27、x64,0x44, 0x41, 0x23, 0x24,0x24, 0x24, 0x24, 0x00;const char code c_music6=0x24, 0x42, 0x52, 0x64, 0x62, 0x92, /* 步人生路 */0x84, 0x62, 0x52, 0x64, 0x02, 0x62,0x72, 0x62, 0x62, 0x52, 0x52, 0x42, 0x41,0x31, 0x22,0x44, 0x02, 0x52, 0x34, 0x34,0x24, 0x42, 0x52, 0x64, 0x62, 0x92,0xa4, 0x82, 0x62, 0x64, 0x02

28、, 0x62,0x72, 0x62, 0x52, 0x42, 0x32, 0x42, 0x52,0x62,0x42, 0x32, 0x22, 0x12, 0x24, 0x24,0x42, 0x32, 0x42, 0x52, 0x64, 0x52, 0x62,0x74, 0x74, 0x72, 0x81, 0x71, 0x62, 0x52,0x64, 0x74, 0x84, 0x02, 0x62,0x94, 0x92, 0x82, 0x94, 0x92, 0xb2,0x92, 0x82, 0x82, 0x92, 0x64, 0x52, 0x42,0x54, 0x52, 0x42, 0x54, 0

29、x42, 0x42, 0x82,0x62, 0x62, 0x52, 0x42, 0x34, 0x62, 0x62,0x94, 0x92, 0x82, 0x94, 0x92, 0xb2,0x92, 0x82, 0x82, 0x92, 0x64, 0x52, 0x42,0x54, 0x42, 0x82, 0x64, 0x52, 0x42,0x52, 0x61, 0x51, 0x42, 0x32, 0x24, 0x24, 0x00;const char code c_music7=0x02, 0x12, 0x12, 0x22, /*最浪漫的事 */0x44, 0x42, 0x42, 0x42, 0x

30、22, 0x22, 0x62,0x64, 0x64, 0x02, 0x12, 0x24,0x42, 0x42, 0x42, 0x42, 0x44, 0x62, 0x82,0x84, 0x84, 0x84, 0x02, 0x82,0x92, 0x82, 0x92, 0x82, 0x94, 0x82, 0x51,0x61,0x62, 0x51, 0x41, 0x44, 0x02, 0x42, 0x42,0x22,0x44, 0x42, 0x22, 0x42, 0x64, 0x52,0x54, 0x54, 0x54, 0x54,0x32, 0x12, 0x22, 0x42,0x42, 0x42, 0

31、x42, 0x42, 0x42, 0x42, 0x22,0x52,0x52, 0x62, 0x64, 0x62, 0x12, 0x22, 0x42,0x42, 0x42, 0x42, 0x42, 0x44, 0x62, 0x82,0x84, 0x84, 0x84, 0x82, 0x82,0x92, 0x82, 0x92, 0x82, 0x94, 0x92, 0x82,0x52, 0x62, 0x52, 0x44, 0x22, 0x22, 0x42,0x14, 0x62, 0x52, 0x44, 0x22, 0x22,0x41, 0x51, 0x42, 0x44, 0x44, 0x44,0x82

32、, 0x92, 0xb2,0x94, 0x92, 0x82, 0x92, 0x82, 0x62, 0x82,0x84, 0x84, 0x02, 0x82, 0x92, 0xb2,0x94, 0x92, 0x82, 0x92, 0x82, 0x92, 0x42,0x44, 0x44, 0x02, 0x42, 0x52, 0x62,0x52, 0x52, 0x52, 0x42, 0x52, 0x42, 0x22,0x62,0x62, 0x52, 0x54, 0x02, 0x82, 0x92, 0x62,0x84, 0x82, 0x62, 0x82, 0x62, 0x64,0x92, 0x82, 0

33、x92, 0x82, 0x62, 0x82, 0x81,0x92, 0xb1,0x94, 0x92, 0x82, 0x92, 0x82, 0x62, 0x82,0x84, 0x84, 0x02, 0x82, 0x92, 0xb2,0x94, 0x92, 0x82, 0x92, 0x82, 0x92, 0x42,0x44, 0x44, 0x02, 0x42, 0x52, 0x62,0x74, 0x72, 0x82, 0x92, 0x92, 0x82, 0x92,0x92, 0xb2, 0x92, 0x92, 0x92, 0xb2, 0x92,0x82,0x84, 0x84, 0x82, 0x42

34、, 0x92, 0x82,0x84, 0x84, 0x82, 0x92, 0xb2, 0x01, 0x61,0x52, 0x61, 0x51, 0x44, 0x44, 0x44,0x00;const char code c_music8=0xb2, 0x41, 0x51, 0x62, 0x81, 0x91, 0x84, 0x84, /*1000 年以后 */0x72, 0x61, 0x41, 0x42, 0x61, 0x51, 0x54,0x54,0xb2, 0x41, 0x51, 0x62, 0x92, 0xa1, 0x91,0x82, 0x82, 0x61, 0x91,0x94, 0x94

35、, 0xa1, 0xa1, 0xa1, 0xb1, 0xc1,0xb1, 0xa2,0xb2, 0xa1, 0xb1, 0xb1, 0xd2, 0x01, 0xa2,0x91, 0xa1, 0xa1, 0x81, 0x82,0x91, 0x91, 0xa1, 0xb1, 0xc1, 0xb1, 0xc1,0xe1, 0xd1, 0xc1, 0xc1, 0xc1, 0xc2, 0xc1, 0xb1,0xb2, 0xa1, 0xb1, 0xb1, 0xd2, 0x01, 0xa2,0x91, 0xa1, 0xa1, 0x81, 0x82,0x92, 0xb4, 0x02, 0xb1, 0xb1,

36、0xb1, 0xc1,0xd2, 0xc1, 0xb1,0xb2, 0xc2, 0xc4, 0x02, 0xa1, 0xb1, 0xb1,0xc2, 0x01,0xd2, 0xc1, 0xb1, 0xb1, 0x82, 0x01, 0xc4,0x02, 0xd1, 0xc1,0xb2, 0xa1, 0x91, 0x92, 0x62, 0xa4, 0x02,0xb1, 0xa1,0x92, 0xa1, 0xb1, 0xb1, 0xc2, 0x01, 0x82,0xc1, 0xd1, 0xd2, 0x01, 0xd1,0xe2, 0xd2, 0xb1, 0xc2, 0xc1, 0xc2, 0x01

37、,0xa1, 0xb1, 0xc2, 0x01,0xd2, 0xc1, 0xb1, 0xb1, 0x82, 0x01, 0xc4,0xc1, 0xc1, 0xd1, 0xc1,0xb2, 0xa2, 0x91, 0xc2, 0x01, 0xa4, 0x02,0xb1, 0xa1,0x92, 0x81, 0x91, 0x91, 0xb1, 0x82, 0x82,0xc1, 0xb1, 0xb2, 0xd1, 0xd1,0xe1, 0xd1, 0xc4, 0xb1, 0xc1, 0xd2, 0xc1,0xb1, 0xd2, 0xc1, 0x81,0x82, 0xb2, 0xb4, 0xb4, 0x

38、b4,0x00;const char code c_music9=0x02, 0x11, 0x11, 0x62, 0x52, 0x52, 0x41, 0x61, /* 一輩子的孤單 */0x62, 0x41, 0x51, 0x54, 0x54, 0x04,0x02, 0x11, 0x11, 0x61, 0x52, 0x51, 0x52,0x42,0x52, 0x62, 0x64, 0x64, 0x04,0x02, 0x11, 0x11, 0x62, 0x52, 0x52, 0x41,0x61,0x62, 0x41, 0x51, 0x54, 0x54, 0x04,0x02, 0x51, 0x41

39、, 0x62, 0x52, 0x42, 0x52,0x42, 0x42, 0x44, 0x44, 0x44,0x04, 0x62, 0x52, 0x52, 0x42,0x42, 0x52, 0x54, 0x54, 0x54,0x04, 0x51, 0x63, 0x54, 0x44,0x41, 0x11, 0x21, 0x11, 0x14, 0x14, 0x14,0x04, 0x62, 0x52, 0x52, 0x42,0x42, 0x52, 0x54, 0x54, 0x54,0x02, 0x12, 0x62, 0x54, 0x42,0x44, 0x02, 0x62, 0x64, 0x64,0x

40、02, 0x12, 0x62, 0x84, 0x92,0x62, 0x52, 0x54, 0x54, 0x54, 0x02, 0x12, 0x62, 0x54, 0x42, 0x54, 0x02, 0x62, 0x64, 0x64, 0x02, 0x12, 0x62, 0x52, 0x52, 0x42, 0x51, 0x62, 0x51, 0x54, 0x54, 0x04, 0x02, 0x51, 0x41, 0x62, 0x52, 0x42, 0x52, 0x42, 0x42, 0x44, 0x44, 0x44,0x02, 0x12, 0x62, 0x52, 0x52, 0x01, 0x41

41、,0x51, 0x62, 0x51, 0x54, 0x54, 0x54,0x02, 0x12, 0x62, 0x52, 0x52, 0x01, 0x41,0x52, 0x62, 0x64, 0x64, 0x64,0x02, 0x12, 0x61, 0x52, 0x01, 0x52, 0x42,0x51, 0x62, 0x51, 0x54, 0x54, 0x54,0x02, 0x12, 0x61, 0x52, 0x01, 0x52, 0x42,0x52, 0x62, 0x64, 0x64, 0x64,0x02, 0x12, 0x62, 0x82, 0x82, 0x92,0x62, 0x52, 0

42、x54, 0x54, 0x54,0x02, 0x12, 0x62, 0x52, 0x52, 0x42,0x52, 0x62, 0x64, 0x64, 0x64,0x02, 0x12, 0x62, 0x52, 0x52, 0x42,0x62, 0x52, 0x54, 0x54, 0x54,0x02, 0x51, 0x41, 0x62, 0x52, 0x42, 0x52,0x42, 0x42, 0x44, 0x44, 0x44,0x00;const char code c_music0=0x00;低中中音高音const uint code c_musicFreq=64260,64400,64524

43、,64580, /* 音 5,6,7, 中音 1*/64684,64777,64820,64898, /*音 2,3,4,5*/64968,65030,65058,65110, /*6,7, 高音 1,2*/65157,65178,65217; /* 3,4,5*/ uchar code key_code=0x77,0x7B,0x7D,0x7E,0xB7,0xBB,0xBD,0xBE,0xD7,0xDB,0xDD,0x DE,0xE7,0xEB,0xED,0xEE;static uchar time=' ','1','2',':'

44、,'0','0',':','0','0','0'/45:78:10 11 static uchar Record_music50;/ 鍵盤(pán)掃描子程序uchar keyscan(void)unsigned char hang,lie,keycode; uchar key1;char i;P1=0xf0;hang=P1;有鍵按下?去抖動(dòng)有鍵按下獲得鍵碼查找鍵碼if(hang&0xf0)!=0xf0) /delay(50); / hang=P1; if(hang&0xf0)!=0xf0)

45、/P1=0x0f;lie=P1;keycode=hang|lie; / for(i=15;i>=0;i-)if(keycode=key_codei) /key1=i; return(key1);else key1=key;return(key1);elseP1=0xff; key1=16; return(key1);/ 延時(shí)子程序 2 void delay2(int ms)int i;while(ms-)for(i = 0; i< 100; i+)key=keyscan();if(key!=16) break; if(key!=16) break;/ 閃動(dòng)void flash()i

46、nt i=2;while(i-)lcd_wcmd(0x08);/delay2(100);/if(key!=16) break;lcd_wcmd(0x0c);/delay2(100);if(key!=16) break;/ 動(dòng)態(tài)顯示字符串void lcd_moving(char *dis)while(1)uchar i,j;關(guān)閉顯示延時(shí)開(kāi)顯示初始化 LCDlcd_init(); / lcd_clr();lcd_pos(0x10); / i = 0;設(shè)置顯示位置為第17列顯示字符向左移動(dòng) 16 格字符同時(shí)左移一格 控制移動(dòng)時(shí)間while(disi != '0') / lcd_wda

47、t(disi);i+;for(j=0;j<16;j+) /lcd_wcmd(0x18);/delay2(80);/if(key!=16) break;if(key!=16) break;控制停留時(shí)間閃動(dòng)二次delay2(600);/if(key!=16) break;flash();/if(key!=16) break; / 時(shí)間調(diào)整及顯示 void disptime() int i;lcd_init();lcd_string(" time"); disptime_flag=1;TR0=0;P3_3=0; key=16; delay(10);while(1) whil

48、e(key2=(key=keyscan() nop; key2=key;if(key=14) time5+; if(time4<'2') if(time5>'9') time5='0' time4+;else if(time4='2') if(time5>='4') time4='0'time5='0'if(key=13)time8+;if(time8>'9')time8='0'time7+; if(time7>'

49、5') time7='0'else if(key=12)time10='0'time11='0'if(key=15)lcd_init();lcd_string(" Music");Freq_flag=1;Music_flag=1;key=16;s_musicCounter=10; s_tableCounter=0;TR0=0;P3_3=0;/ disptime_flag=0;break;if(key=0)P3_3=0;Freq_flag=0; Music_flag=0; K0_flag=0;TR0=0; disptim

50、e_flag=0;break;設(shè)置顯示位置為 第二行第 1 列顯示字符lcd_pos(0x40); / i = 0;while(timei != '0') /lcd_wdat(timei);i+;/ 時(shí)間正常計(jì)數(shù) 及顯示void timecounter()int i;if(scounter+=100)/ 用于時(shí)間計(jì)數(shù)scounter=0;time11+;if(time11>'9')time11='0'time10+;if(time10>='6')time10='0'time8+;if(time8>

51、'9')time8='0'time7+;if(time7>='6')time7='0'time5+;if(time4<2)if(time5>'9')time5='0' time4+;else if(time4='2')if(time5>='4')time4='0' time5='0'if(Music_flag=1)lcd_pos(0x50); /i = 0;while(timei != '0')

52、/ lcd_wdat(timei);i+;設(shè)置顯示位置為 第二行第 17 列顯示時(shí)間if(disptime_flag=1)lcd_pos(0x40); / i = 0;while(timei != '0') /lcd_wdat(timei);i+;設(shè)置顯示位置為 第二行第 1 列顯示時(shí)間/ 錄音void Record()if(Record_flag=1)timebuffer=Record_time/PAI_BASE+1;Record_time=0; timebuffer=0x0F&timebuffer;Record_musicRecord_counter=(Record

53、_musicRecord_counter&0x0F)< <4;Record_musicRecord_counter=Record_musicRecord_counter|timebuf fer;if(Record_music0=0) Record_music0=1;if(+Record_counter=49) Record_counter=48; if(key=16) Record_musicRecord_counter=0; else Record_musicRecord_counter=key;/ 電子琴void Electone(void)P2_4=0;Freq_flag=1;lcd_init(); disptime_flag=1; lcd_string(" Electone ");while(1)while(key2=(key=keyscan() nop;key2=key;switch(key

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論