📄 p15_2.c
字号:
#include "REG51.H"
sbit SPK = P2^3;
unsigned char T0_Times = 0;
unsigned char code Music[] = {
0x18, 0x30, 0x1C, 0x10, 0x20, 0x40, 0x1C, 0x10,
0x18, 0x10, 0x20, 0x10, 0x1C, 0x10, 0x18, 0x40,
0x1C, 0x20, 0x20, 0x20, 0x1C, 0x20, 0x18, 0x20,
0x20, 0x80, 0xFF, 0x20, 0x30, 0x1C, 0x10, 0x18,
0x20, 0x15, 0x20, 0x1C, 0x20, 0x20, 0x20, 0x26,
0x40, 0x20, 0x20, 0x2B, 0x20, 0x26, 0x20, 0x20,
0x20, 0x30, 0x80, 0xFF, 0x20, 0x20, 0x1C, 0x10,
0x18, 0x10, 0x20, 0x20, 0x26, 0x20, 0x2B, 0x20,
0x30, 0x20, 0x2B, 0x40, 0x20, 0x20, 0x1C, 0x10,
0x18, 0x10, 0x20, 0x20, 0x26, 0x20, 0x2B, 0x20,
0x30, 0x20, 0x2B, 0x40, 0x20, 0x30, 0x1C, 0x10,
0x18, 0x20, 0x15, 0x20, 0x1C, 0x20, 0x20, 0x20,
0x26, 0x40, 0x20, 0x20, 0x2B, 0x20, 0x26, 0x20,
0x20, 0x20, 0x30, 0x80, 0x20, 0x30, 0x1C, 0x10,
0x20, 0x10, 0x1C, 0x10, 0x20, 0x20, 0x26, 0x20,
0x2B, 0x20, 0x30, 0x20, 0x2B, 0x40, 0x20, 0x15,
0x1F, 0x05, 0x20, 0x10, 0x1C, 0x10, 0x20, 0x20,
0x26, 0x20, 0x2B, 0x20, 0x30, 0x20, 0x2B, 0x40,
0x20, 0x30, 0x1C, 0x10, 0x18, 0x20, 0x15, 0x20,
0x1C, 0x20, 0x20, 0x20, 0x26, 0x40, 0x20, 0x20,
0x2B, 0x20, 0x26, 0x20, 0x20, 0x20, 0x30, 0x30,
0x20, 0x30, 0x1C, 0x10, 0x18, 0x40, 0x1C, 0x20,
0x20, 0x20, 0x26, 0x40, 0x13, 0x60, 0x18, 0x20,
0x15, 0x40, 0x13, 0x40, 0x18, 0x80, 0x00 };
void INT_T0(void) interrupt 1
{
T0_Times ++;
TH0 = 0xd8;
TL0 = 0xef;
}
void Delay( int times )
{
for( ; times > 0 ; times -= 2 )
{
}
}
main()
{
int Tone = -1;
char i = 0;
SP = 0x50;
TMOD = 0x01;
TH0 = 0xD8;
TL0 = 0xEF;
IE = 0x82;
while( 1 )
{
Tone++;
if( Music[Tone] == 0 )
{
Tone = -1;
Delay( 100 );
continue;
}
if( Music[Tone] == 0xff )
{
TR0 = 0;
Delay( 100 );
continue;
}
TR0 = 1;
while( T0_Times < Music[Tone+1] )
{
SPK = !SPK;
Delay( Music[Tone] );
}
T0_Times = 0;
Tone ++;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -