//为节约成本,所以使用m宝上卖的0.2元左右的无源蜂鸣器,16R 3-12V通用的那种
//经测试,接不接三极管声音大小都一样
sbit beep = P3^3; //P3^3接无源蜂鸣器负极,无源蜂鸣器正极接VCC
//烧录时可选12.000MHZ
- /*
- 1 IRC_CLKO/INT2/CLKOUT1/T0/RST/P3^4 8 RSTOUT_LOW/INT1/P3^3
- 2 VCC(5V) 7 INT0/P3^2
- 3 INT3/CLKOUT0/T1/P3^5 6 P3^1/TXD
- 4 GND 5 INT4/P3^0/RXD
- 烧录时,烧录器的VCC接2脚,TXD接5脚,RXD接6脚,GND接4脚
- */
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- //为节约成本,所以使用淘宝上卖的0.2元左右的无源蜂鸣器,16R 3-12V通用的那种
- //经测试,接不接三极管声音大小都一样
- sbit beep = P3^3; //P3^3接无源蜂鸣器负极,无源蜂鸣器正极接VCC
- //烧录时可选12.000MHZ
- void Delay(uint time)//延时函数,有参函数
- {
- uint i,j;
- for(i=time; i>0; i--)
- for(j=110; j>0; j--);
- }
- void Buzzer(uint Number,uint Time) //可以选择鸣响次数和音频
- {
- uint i=0,j=0,k=0;
- for(i = 0; i < Number; i ++)
- {
- for(j=0; j<Time; j++)
- {
- beep = !beep; //beep取反
- for (k=0; k<100; k++); //需要产生方波,调节音频
- }
- Delay(100); //间隔时间
- }
- beep = 1; //注意PNP=0;NPN=1关闭蜂鸣器,否则三极管电流会很大。
- }
- void main()
- {
- Buzzer(1,1000); //任意调节参数,选择自己喜欢的鸣叫次数和音频(1代表只响一声)
- while(1) //看你需要不要它循环响,需要循环响就把代码放到while里面
- {
-
- }
- }
复制代码
全部资料51hei下载地址:
STC15F104无源蜂鸣器.zip
(23.18 KB, 下载次数: 42)
|