我想用51单片机两个定时器实现一下功能:每隔300ms蜂鸣器改变一次蜂鸣频率,频率值依次为20hz,10hz ,20/3hz,5hz...
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit beep=P2^3;
sbit led1=P1^0;
uchar c;
uchar d;
uchar a;
void main()
{
c=0;
d=0;
a=1;
TMOD=0x10;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
while(1)
{
if(c==6)
{
c=0;
a++;
}
if(d==a)
{
d=0;
beep=~beep;
led1=~led1;
}
}
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
c++;
}
void timer1() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
d++;
}
这段程序实现不了 请问大侠们哪里出问题了?谢谢
我是这样想的a++可以实现定时器1计时时间逐渐增加