/* 名称:51单片机蜂鸣器和继电器 说明: 一般来说,蜂鸣器的控制方法和LED几乎,它们只有两种状态,只需要一种IO口腔可以控制。需要注意的是,一般来说,蜂鸣器需要更大的驱动电流,通常IO无法提供端口,因此需要中间接放大电路,以达到指定的工作电流。
其次,蜂鸣器分为有源蜂鸣器和无源蜂鸣器,这里的源不是指电源。 也就是说,有源蜂鸣器内部有震荡源,所以一通电就会叫。 而且无源内部没有震荡源,所以如果使用直流信号就不能让它鸣叫。必须使用2K~5K方波驱动它。 有源蜂鸣器往往比无源蜂鸣器源蜂鸣器往往比无源蜂鸣器贵。 本实验采用无源蜂鸣器,不能直接提供直流电源,需要一定频率的变化方波(这里是0,1不断变化)才能发出声音。
2.关于继电器,它是一种用小电流控制大电流的仪器。基本用法相同,通过IO可以控制。这里就不赘述了。 */
#include <reg52.h> sbit beep = P1^0; sbit relay = P1^1; ///延迟函数 void delay_ms(unsigned int n) { unsigned int i=0,j=0; for(i=0;i<n;i ) for(j=0;j<123;j ); } void delay(unsigned int i) { char j; for(i; i > 0; i--) for(j = 50; j > 0; j--); } void BeepTest() { while(1) { beep = 1; delay(20); ///延迟越长,声音越低 beep = 0; delay(20); } } void RealyTest() { while(1) { relay = 1; delay_ms(1000); relay = 0; delay_ms(1000); } } int main() { //BeepTest(); RealyTest(); return 0; }