VL1W2HKIAL4(_VQHBVL6UEC.png (86.58 KB, 下載次數: 22)
下載附件
2018-11-4 18:22 上傳
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit key1=P3^2;//按key1可切換下一曲
- sbit key2=P3^3;//按key2可切換上一曲
- sbit speaker=P3^7;//揚聲器輸出口
- char count;//歌曲標志
- uchar timeh,timel,i,k=0,counter=0;//用到的各個變量
- uchar code graph[] = //8*8點陣動態圖數據
- {
- 0x00,0x82,0x82,0x86,0xA6,0xB7,0xFF,0xFF,
- 0x00,0x00,0x00,0x10,0x12,0x9B,0xBF,0xFF,
- 0x00,0x00,0x00,0x80,0xCA,0xEE,0xFF,0xFF,
- 0x42,0x42,0x52,0x52,0x73,0x7B,0xFB,0xFF,
- 0x42,0x42,0x66,0x76,0xFE,0xFF,0xFF,0xFF,
- 0x04,0x04,0x44,0x4E,0x4E,0x7F,0xFF,0xFF,
- 0x08,0x88,0x8A,0x8E,0xAE,0xFF,0xFF,0xFF,
- 0x10,0x10,0x12,0x1A,0x1A,0x9B,0xFF,0xFF,
- };
- //————————————寂寞沙洲冷————————————//
- 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,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,
- //當記憶的線纏繞過往支離破碎
- 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,0x81,0x81,0x91,0x81,0x61,0x81,0x61,0x51,0x31,0x51,0x34,
- //仍然撿盡寒枝不肯安歇微帶著后悔
- 0x21,0x31,0x51,0x31,0x21,0x11,0x61,0x21,0x16,0xff
- //寂寞沙洲我該思念誰
- };
- //—————————————————勞動最光榮———————————————————//
- uchar code ldzgr[]=
- {
- 0x52,0x82,0x82,0x52,0x62,0x62,0x54,0x32,0x52,0x12,0x32,0x28,
- //太陽光,金亮亮,雄雞唱三唱;
- 0x52,0x84,0x52,0x62,0x62,0x54,0x52,0x81,0xA1,0x92,0x52,0x88,
- //花兒 醒來了,鳥兒忙梳妝
- 0x83,0x91,0x82,0x52,0x62,0x62,0x54,0x33,0x81,0x62,0x52,0x12,0x32,0x24,
- //小喜鵲 造新房,小蜜蜂 采蜜糖
- 0x12,0x11,0x21,0x32,0x51,0x51,0x62,0x52,0x84,0x82,0x51,0x61,0x84,0xA4,0x92,
- 0x52,0x86,0x02,
- //幸福的生活從哪里來?要靠勞動來創造
- 0x52,0x81,0x81,0x82,0x52,0x62,0x61,0x81,0x54,0x32,0x51,0x61,0x53,0x31,0x12,
- 0x32,0x24,
- //青青的葉兒 紅紅的花,小蝴蝶 貪玩耍
- 0x52,0x82,0x82,0x52,0x62,0x62,0x54,0x51,0x61,0x81,0xA1,0x92,0x52,0x88,
- //不愛勞動 不學習,我們大家不學它
- 0x83,0x91,0x82,0x52,0x62,0x62,0x54,0x33,0x81,0x62,0x52,0x12,0x32,0x24,
- //要學喜鵲 造新房,要學蜜蜂 采蜜糖
- 0x12,0x11,0x21,0x32,0x52,0x82,0x52,0x68,0x52,0x61,0x61,0x84,0xA4,0x92,0x52,
- 0x84,0xff//歌曲結束符號
- //勞動的快樂 說不盡,勞動的創造 最光榮
- };
- //—————————————————唯一——————————————————//
- uchar code wy[]=
- {
- 0x04,0x43,0x43,0x43,0x33,0x23,0x13,0x33,0x54,0x83,0x83,0x93,0xA3,0x92,0x81,
- 0x63,0x62,0xA3,0x93,0x83,0x96,0x04,0x04,
- //最近我無法呼吸,連自己的影子也都想逃避
- 0xA4,0x94,0x82,0x82,0x82,0x52,0x82,0x92,0xA4,
- //Ba By 你就是我的唯一
- 0x72,0x72,0x72,0x52,0x72,0x82,0x94,0x04,0xA2,0xA2,0xB2,0xA2,0x82,0x92,
- //兩個世界都變心,回去談何容易
- 0x04,0xA4,0x94,0x82,0x82,0x82,0x52,0x82,0x92,0xA4,
- //確定 你就是我的唯一
- 0x72,0x72,0x72,0x52,0x72,0x82,0x92,0xA2,0x84,0x64,0x03,0x51,0xB2,0xA2,0x82,
- 0x61,0x51,
- //獨自對著電話說我愛你,我真的愛你
- 0x04,0xA4,0x94,0x82,0x82,0x82,0x82,0x72,0x82,0x52,0x32,0x68,
- //BABY 我已不能多愛你一些
- 0x02,0xA4,0x94,0x82,0x82,0x82,0x82,0x72,0x82,0x54,0x42,0x66,0xff
- //其實 早已超過了愛的極限
- };
- //————————————————同桌的你——————————————————//
- uchar code tzdn[]=
- {
- 0x52,0x52,0x52,0x52,0x32,0x42,0x56,0x86,0x62,0x62,0x62,0x62,0x42,0x62,0x56,
- 0x04,
- //明天你是否會想起,昨天你寫的日記
- 0x52,0x52,0x52,0x52,0x72,0x62,0x52,0x44,0x02,0x42,0x42,0x42,0x42,0x33,0x21,
- 0x16,0x02,
- //明天你是否還惦記,曾經最愛哭的你
- 0x82,0x82,0x82,0x82,0x52,0x32,0x86,0x82,0xA4,0x92,0x92,0x92,0x93,0x81,0x72,
- 0x66,0x02,
- //誰娶了多愁善感的你,誰看了你的日記
- 0x72,0x72,0x72,0x72,0x72,0x82,0x96,0x54,0x02,0x72,0x72,0x82,0x92,0x82,0x72,
- 0x16,0x02,
- //誰把你的長發盤起,誰給你做的嫁衣
- 0x84,0x82,0x82,0x52,0x62,0x86,0xA6,0x94,0x92,0x92,0x82,0x72,0x66,0x74,0x72,
- 0x72,0x72,0x82,0x96,0x56,
- //啦……,啦……,啦……
- 0x72,0x72,0x82,0x92,0x82,0x72,0x86,0x94,0x92,0x92,0x62,0x72,0x96,0xB6,0x94,
- 0x92,0x92,0x82,0x72,0x66,
- //啦……,啦……,啦……
- 0x72,0x72,0x72,0x72,0x72,0x82,0x96,0x56,0x72,0x72,0x82,0x92,0x82,0x72,0x96,
- 0x86,0xff
- //啦……,啦……,啦……,啦……
- };
- //———————————————小小葫蘆娃—————————————————//
- uchar code hlw[]=
- {
- 0x12,0x12,0x35,0x11,0x12,0x31,0x02,
- //葫蘆娃,葫蘆娃
- 0x62,0x62,0x61,0x51,0x62,0x51,0x12,0x31,0x02,
- //一根藤上七朵花
- 0x81,0x61,0x61,0x51,0x65,0x51,0x12,0x21,0x02,
- //風吹雨打都不怕
- 0x75,0x51,0x32,0x58,
- //啦啦啦啦
- 0x81,0x01,0x61,0x61,0x51,0x51,0x62,0x61,0x01,
- //叮當當冬冬當當
- 0x52,0x11,0x32,0x02,0x81,0x01,0x61,0x61,0x51,0x51,0x61,0x61,0x01,0x51,0x11,
- 0x22,0x02,
- //葫蘆娃,叮當當冬冬當當,七朵花
- 0x35,0x11,0x62,0x18,
- //啦啦啦啦
- 0x31,0x52,0x61,0x31,0x52,0x61,
- //葫蘆娃,葫蘆娃
- 0x85,0x01,0x71,0x52,0x65,0x02,0xff
- //七朵花
- };
- //————————————————千年之戀 ————————————————//
- uchar code qnzl[]=
- {
- 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,0x52,
- //看不清的雙手
- 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,0x36,
- //是你在盡頭等我
- 0x61,0x71,0x82,0x71,0x62,0xA3,0x73,0x62,0x53,
- //最美麗的感動 會值得
- 0x42,0x82,0x88,0x02,0x74,0x93,0x89,0xff//結束標志
- //用一生守候
- };
- //簡譜音調對應的定時器初值,適合11.0592M的晶振
- uchar code cuzhi[]={256,293,329,349,392,440,494,523,586,658,697,783,879,987};
- void delay(uint z) //延時165MS,即十六分音符
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=13333;y>0;y--);
- }
- void delay1(uint z) //延時1MS
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=120;y>0;y--);
- }
- void timer0() interrupt 1 //定時器0,用于產生各種音調
- {
- TH0=timeh;
- TL0=timel;
- speaker=~speaker;
- }
- void song() //播放歌曲函數
- {
- uint temp;
- uchar jp;//jp是簡譜
- i=0;
- temp=tzdn[i]; //同桌的你
- jp=temp/16; //取數的高4位
- if(jp!=0)
- {
- timeh=(65536-1/cuzhi[jp])/256;
- timel=(65536-1/cuzhi[jp])%256;
- }
- else
- {
- TR0=0;
- speaker=1;//關揚聲器
- }
- delay(temp%16); //取數的低4位
- TR0=0; //唱完一個音停10MS
- speaker=1;
- delay1(10);
- TR0=1;
- i++;
- }
- void main()
- {
- count=0;//不唱歌
- TMOD=0x11;//定時器工作方式
- TH0=0;
- TL0=0; //定時器0賦初值
- ET0=1; //定時器0溢出中斷使能
- TR1 = 1; //開始計時
- ET1 = 1; //定時器1溢出中斷使能
- while(1)
- {
- song();
- delay1(1000);
- }
- }
復制代碼 |