新闻中心
联系我们
行业资讯
运行这串代码,无源蜂鸣器会一直响的原因
如果你的原理图,是用NPN三极管驱动发声,如下图(实际原理图可能比这个复杂,这里只考虑逻辑)(通常情况下不会用IO口直接带负载,因为IO口电流太小难以驱动)在这种情况下,如果BEEP置1,发射极和基极的PN结会导通,驱动发声。同样如果BEEP置0,该PN结就截止,将不会发声。也就是说驱动的IO口为1就响,为0就不响。那么题主的代码就很好理解了,在没有while(1)的循环状态下,该代码按顺序只会执行一次。
也就是最终BEEP的状态会停留在置1的状态,所以在短暂置0的1000微秒后,BEEP的状态会一直是1,而1000微秒的时间是远远小于人类可以辨识的时间间隔的。所以直观感受就是一直响。简单来说,如果接线的逻辑是IO高电平响,低电平不响,那这段代码就会使之一直响的。
更多文章,请点击http://www.china-hudz.com/