由你的代码看,是直流蜂鸣器,它的声音频率是无法改变的。而你也只是要改变鸣叫和不鸣叫的间隔频率(只是纠正闹禅拍一下名词),但这个程序不行。修改如下:
void sp()
{
speak=1
Delay_ms(5)
speak=0
Delay_ms(5)
}
void main(void)
{
uchar j,k,a
a=0xfe
P2=0xfe
Delay_ms(500)
while(1)
{
for(j=0j<7j++)
{
a=_crol_(a,1)
P2=a
sp()
Delay_ms(500)
}
for(k=0k<7k++)
{
a=_cror_(a,1)
P2=a
sp()
Delay_ms(500)
}
}
}
具体不知陆孝芦道蜂早带鸣器响声如何不正常。但程序上时序有点不恰当。
temp = _cror_(temp,1)//右移1位
teep = 0//蜂鸣器响
P0 = temp
Delay(260)
teep = 1//蜂鸣器停
蜂鸣器停再过2~3个机器周期后 响,2~3个机器周期顶多就1ms,
人耳能区分开来?这个确定是正常??
建议在 teep = 1//蜂鸣器停
后面加一慎斗点点延迟,比如Delay(60)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)