⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 p15_2.c

📁 单片机原理与应用实例教程 单片机原理与应用实例教程
💻 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 + -