C51单片机流水灯蜂鸣器程序

C51单片机流水灯蜂鸣器程序,第1张

P2是端液羡口啊,所以P2=_crol_(P2,1)这句中等号左边的P2表袭前示的读取P2端口,这时的值取决于外围电路,而不是原来的赋值。所以需要一个变量来解决这个问题。

你的代码看,是直流蜂鸣器,它的声音频率是无法改变的。而你也只是要改变鸣叫和不鸣叫的间隔频率(只是纠正闹禅拍一下名词),但这个程序不行。修改如下:

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)


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12535937.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存