主函数里延时太长了,动态扫描里延时那么长,当然就闪了,你可以开两个定时器,定时器0计数,定时器1设定蜂鸣频率,蜂鸣器不要用delay延时。蜂鸣发声间隔用你那个C++的次数来控制,比如,,,
void time1() interrupt 3
{
TH1=(65536-400)/256;
TL1=(65536-400)%256;
d++;
if(d==1)
{
d=0;
if(c%20==0)
beep=~beep;
}
}
d的值自己调
建议你先不要管蜂鸣器,把动态扫描计数的先搞定,
前几天刚学到的,我只是菜菜鸟一个,哈哈,如果不对那当我没说。