/******主函数******/
void main(void){ // 主程序
uchar k;
uchar code jie8[8]={0,1,2,3,4,5,6,7};//1234567i八个音符在频率表中的位置
TMOD=0x01; //使用定时器0的工作方式1
TR0=0; //关计数器
ET0=1; //允许计数器中断
EA=1; //开中断
while(1){
k=keyscan();
switch(k){
case 0:{BEEP=1;}break; //1音
case 1:{display(1);tl0_f=freq[jie8[0]*2];th0_f=freq[jie8[0]*2+1];TR0=1;delay(300);BEEP=1;L=1;}break; //1音
case 2:{display(2);tl0_f=freq[jie8[1]*2];th0_f=freq[jie8[1]*2+1];TR0=1;delay(300);BEEP=1;L=1;}break; //2音
case 3:{display(3);tl0_f=freq[jie8[2]*2];th0_f=freq[jie8[2]*2+1];TR0=1;delay(300);BEEP=1;L=1;}break; //3音
case 4:{display(4);tl0_f=freq[jie8[3]*2];th0_f=freq[jie8[3]*2+1];TR0=1;delay(300);BEEP=1;L=1;}break; //4音
case 5:{display(5);tl0_f=freq[jie8[4]*2];th0_f=freq[jie8[4]*2+1];TR0=1;delay(300);BEEP=1;L=1;}break; //5音
case 6:{display(6);tl0_f=freq[jie8[5]*2];th0_f=freq[jie8[5]*2+1];TR0=1;delay(300);BEEP=1;L=1;}break; //6音
case 7:{display(7);tl0_f=freq[jie8[6]*2];th0_f=freq[jie8[6]*2+1];TR0=1;delay(300);BEEP=1;L=1;}break; //7音
case 8:{display(8);tl0_f=freq[jie8[7]*2];th0_f=freq[jie8[7]*2+1];TR0=1;delay(300);BEEP=1;L=1;}break; //i音
case 9:{display(10);play(shengri,shengrijiepai);BEEP=1;L=1;}break; //第一首歌
case 10:{display(11);play(tiankongzhicheng,tiankongzhichengjiepai);BEEP=1;L=1;}break; //第二首歌
}
TR0=0;
}
}
/******键盘输入函数******/
uchar keyscan(uchar key){
if(K1==1&&K2==1&&K3==1&&K4==1)
{ //初始化
delay(20);
if(K1==1&&K2==1&&K3==1&&K4==1)
{
key=0;
}
}
if(K1==0&&K2==1&&K3==1&&K4==1)
{ //1音,SB1按下
delay(20);
if(K1==0&&K2==1&&K3==1&&K4==1)
{
key=1;
}
}
if(K1==1&&K2==0&&K3==1&&K4==1){ //2音,SB2按下
delay(20);
if(K1==1&&K2==0&&K3==1&&K4==1){
key=2;
}
}
if(K1==1&&K2==1&&K3==0&&K4==1){ //3音,SB3按下
delay(20);
if(K1==1&&K2==1&&K3==0&&K4==1){
key=3;
}
}
if(K1==1&&K2==1&&K3==1&&K4==0){ //4音,SB4按下
delay(20);
if(K1==1&&K2==1&&K3==1&&K4==0){
key=4;
}
}
if(K1==0&&K2==0&&K3==1&&K4==1){ //5音,SB1和SB2按下
delay(20);
if(K1==0&&K2==0&&K3==1&&K4==1){
key=5;
}
}
if(K1==1&&K2==0&&K3==0&&K4==1){ //6音,SB2和SB3按下
delay(20);
if(K1==1&&K2==0&&K3==0&&K4==1){
key=6;
}
}
if(K1==1&&K2==1&&K3==0&&K4==0){ //7音,SB3和SB4按下
delay(20);
if(K1==1&&K2==1&&K3==0&&K4==0){
key=7;
}
}
if(K1==0&&K2==1&&K3==1&&K4==0){ //i音,SB1和SB4按下
delay(20);
if(K1==0&&K2==1&&K3==1&&K4==0){
key=8;
}
}
if(K1==0&&K2==1&&K3==0&&K4==1){ //第一首歌,SB1和SB3按下
delay(20);
if(K1==0&&K2==1&&K3==0&&K4==1){
key=9;
}
}
if(K1==1&&K2==0&&K3==1&&K4==0){ //第二首歌,SB2和SB4按下
delay(20);
if(K1==1&&K2==0&&K3==1&&K4==0){
key=10;
}
}
return (key);
}
上一页 [1] [2] [3] [4] [5] [6] 下一页