#include "at89x51.h"
#define uchar unsigned char
#define uint unsinged int
sbit speaker=P1^5;//蜂鸣器。按键默认的是P3.2脚(外部中断0)
uchar t0h,t0l,time,flag;
//--------------------------------------
//单片机晶振采用12MHz
// 频率-半周期数据表 高八位 本软件共保存了四个八度的28个频率数据
uchar code FREQH[]={0x01, //0的时候没有音符
0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8, //低音1234567
0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC,//1,2,3,4,5,6,7,i
0xFC,0xFD,0xFD,0xFD,0xFD,0xFE, //高音 234567
0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF}; //超高音 1234567
//-----------------------------------------
// 频率-半周期数据表 低八位
uchar code FREQL[]={0x01, //0的时候没有音符
0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6, //低音1234567
0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F,//1,2,3,4,5,6,7,i
0xEE,0x44,0x6B,0xB4,0xF4,0x2D, //高音 234567
0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16}; //超高音 1234567
//--------------------------------------
//一个音符有三个数字。前为第几个音、中为第几个八