欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
51單片機按鍵選播電子音樂或者音樂盒程序
[打印本頁]
作者:
yidada1997
時間:
2019-6-24 20:49
標題:
51單片機按鍵選播電子音樂或者音樂盒程序
電子音樂盒的設計
設計任務:1. 查閱資料,了解單片機控制單音喇叭發聲原理;
2. 設計基于單片機的電子音樂盒;
3
.通過按鈕可選擇不同的音樂,切換
3
首音樂
QQ截圖20190624204836.png
(16.25 KB, 下載次數: 23)
下載附件
2019-6-24 20:48 上傳
單片機源程序如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit BEEP = P3^7;
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 [] =
{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0xFF};
uchar code Song1_Time [] =
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xFF};
uchar code Song2_Tone [] =
{3,5,5,3,3,2,1,2,3,5,3,2,3,5,3,2,1,2,3,2,1,1,0xFF};
uchar code Song2_Time [] =
{2,1,1,2,1,1,1,2,1,1,1,2,1,1,2,1,1,1,2,1,1,1,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 Song_Index = 0,Tone_Index = 0;
uchar*Song_Tone_Pointer,*Song_Time_Pointer;
uchar i = 0;
void DelayMS(uint ms)
{
uchar t;
while(ms--) for (t = 0; t < 120; t++);
}
void Key_Press() interrupt 0
{
TR0 = 0;
Song_Index = ( Song_Index + 1 ) % 3;
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;
}
i = 0;
TR0 = 1;
}
//----------------------------------------------------------------------------
void Timer0_Play_Music() interrupt 1
{
TH0 = Tone_Delay_Table[ Tone_Index ] / 256;
TL0 = Tone_Delay_Table[ Tone_Index ] % 256;
BEEP =~BEEP;
}
//-------------------------------------------------------------------------------
void main()
{
TMOD = 0x01;
IP =0x01;
IE =0x83;
TR0 =0;
Song_Tone_Pointer =Song1_Tone;
Song_Tone_Pointer =Song1_Time;
while (1)
{
Tone_Index = Song_Tone_Pointer[i];
if (Tone_Index==0xFF)
{
i=0;
DelayMS(2000);
continue;
}
TR0 = 1;
DelayMS(Song_Time_Pointer[Tone_Index]*240);
TR0 = 0;
i++;
}
}
復制代碼
所有資料51hei提供下載:
代碼.docx
(15.87 KB, 下載次數: 19)
2019-6-24 20:49 上傳
點擊文件名下載附件
原代碼
下載積分: 黑幣 -5
作者:
逍遙子111
時間:
2019-7-8 17:49
能在程序后面加一下注釋嗎,樓主
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1