能不能给我编个电子琴的程序,,用c语言,,蜂鸣器是p3^0,,八键的,,,急用

2025-03-12 00:38:50
推荐回答(2个)
回答1:

#include
int code Yinfu[]={64021,64103,64260,64400,64524,64580,64684};
sbit beep = P2^7;
unsigned char KEY;
void delay()
{
int i;
for(i=0;i<240;i++);
}
void play() interrupt 1
{
TH0 = Yinfu[KEY]/256;
TL0 = Yinfu[KEY]%256;
beep = ~beep;
}
unsigned char scan()
{
unsigned char res;
switch(P1)
{
case 0xfe:res=0;break;
case 0xfd:res=1;break;
case 0xfb:res=2;break;
case 0xf7:res=3;break;
case 0xef:res=4;break;
case 0xdf:res=5;break;
case 0xbf:res=6;break;
}
return res;
}
void main()
{
TMOD = 0x01;
IE = 0x82;
while(1)
{
P1 = 0xff;
if(P1 != 0xff)
{
delay();
if(P1 != 0xff)
{
KEY = scan();
TR0 = 1;
}
}
else
{
TR0 = 0;
beep = 1;
}
delay();
}
}

回答2:

就是输出不同的频率呀。一共有八个频率。