|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit led=P1^5;
sbit beep=P1^0;
uchar a,b;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void keyscan()
{
uchar temp;
P3=0xfe;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xee:
a=63628 ;
b=63628 ;
break;
case 0xde:
a=63835 ;
b=63835 ;
break;
case 0xbe:
a=64021 ;
b=64021 ;
break;
case 0x7e:
a=64103 ;
b=64103 ;
break;
default:beep=0;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
}
}
P3=0xfd;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xed:
a=64260 ;
b=64260 ;
break;
case 0xdd:
a=64400 ;
b=64400 ;
break;
case 0xbd:
a=64524 ;
b=64524 ;
break;
case 0x7d:
a=64580 ;
b=64580 ;
break;
default:beep=0;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
}
}
P3=0xfb;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xeb:
a=64633 ;
b=64633 ;
break;
case 0xdb:
a=64732 ;
b=64732 ;
break;
case 0xbb:
a=64820 ;
b=64820 ;
break;
case 0x7b:
a=64898 ;
b=64898 ;
break;
default:beep=0;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
}
}
P3=0xf7;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xe7:
a=64968 ;
b=64968 ;
break;
case 0xd7:
a=65030 ;
b=65030 ;
break;
case 0xb7:
a=65058 ;
b=65058 ;
break;
case 0x77:
a=65110 ;
b=65110 ;
break;
default:beep=0;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
}
}
}
void main()
{
TMOD=0x01;
TH0=a/256;
TL0=b%256;
EA=1;
ET0=1;
TR0=1;
keyscan();
}
void T0_timer1() interrupt 1
{
TH0=a/256;
TL0=b%256;
beep=~beep;
}
看看问题出在哪 我想做个电子琴 仿真之后蜂鸣器不能发出那种音调 总是哔哔的响,还有按键程序也有点不对 能帮忙看看吗
原理图
|
|