若是无源蜂鸣器的话,需要用定时器产生一个pwm波来驱动,pwm波的频率决定发生频率 |
写一个延迟函数就行了 |
xxpp2011 发表于 2020-3-20 17:29 学到了谢谢。 |
飘窗 发表于 2020-3-20 11:54 谢谢,大佬学到了 |
建议用定时器去做,利用定时中断来控制LED |
#include <reg52.h> sbit BUFFER =P2^5; sbit LED = P2^0; void DELAYMS(unsigned int z) { unsigned int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } main() { while(1) { LED=0; BUFFER=0; DELAYMS(500); //你可以写一个延时函数,或者找一个 LED=1; BUFFER=1; DELAYMS(500); }//这里要延时两次,才能让蜂鸣器间断和灯闪烁 } |
板凳是对的,找个延时函数,然后把循环体放进主程序入口就能用了。 |
xxpp2011 发表于 2020-3-19 16:58 有完整的吗 |
sbit Beep =P2^5; sbit Led = P2^0; while(1) { LED=0; BUFFER=0; DELAYMS(500); //你可以写一个延时函数,或者找一个 LED=1; BUFFER=1; DELAYMS(500); } 这里要延时两次,才能让蜂鸣器间断和灯闪烁 |
while(1) { LED=0; BUFFER=0; DELAYMS(500); LED=1; BUFFER=1; } |