标题: STC15F104无源蜂鸣器替代有源蜂鸣的单片机源码 [打印本页]

作者: ssk7793    时间: 2018-12-6 08:50
标题: STC15F104无源蜂鸣器替代有源蜂鸣的单片机源码


//为节约成本,所以使用m宝上卖的0.2元左右的无源蜂鸣器,16R 3-12V通用的那种

//经测试,接不接三极管声音大小都一样
sbit beep = P3^3; //P3^3接无源蜂鸣器负极,无源蜂鸣器正极接VCC

//烧录时可选12.000MHZ


  1. /*

  2. 1  IRC_CLKO/INT2/CLKOUT1/T0/RST/P3^4                   8  RSTOUT_LOW/INT1/P3^3

  3. 2  VCC(5V)                                                                           7  INT0/P3^2

  4. 3  INT3/CLKOUT0/T1/P3^5                                                   6  P3^1/TXD

  5. 4  GND                                                                                   5  INT4/P3^0/RXD

  6. 烧录时,烧录器的VCC接2脚,TXD接5脚,RXD接6脚,GND接4脚

  7. */

  8. #include <reg52.h>
  9. #define uchar unsigned char
  10. #define uint unsigned int  


  11. //为节约成本,所以使用淘宝上卖的0.2元左右的无源蜂鸣器,16R 3-12V通用的那种

  12. //经测试,接不接三极管声音大小都一样
  13. sbit beep = P3^3; //P3^3接无源蜂鸣器负极,无源蜂鸣器正极接VCC

  14. //烧录时可选12.000MHZ

  15. void Delay(uint time)//延时函数,有参函数
  16. {  
  17.     uint i,j;   
  18.     for(i=time; i>0; i--)   
  19.                 for(j=110; j>0; j--);  
  20. }

  21. void Buzzer(uint Number,uint Time)     //可以选择鸣响次数和音频
  22. {
  23.     uint i=0,j=0,k=0;
  24.     for(i = 0; i < Number; i ++)
  25.     {
  26.         for(j=0; j<Time; j++)
  27.         {
  28.             beep = !beep;              //beep取反
  29.             for (k=0; k<100; k++);     //需要产生方波,调节音频
  30.         }
  31.         Delay(100);                    //间隔时间
  32.     }
  33.     beep = 1;                          //注意PNP=0;NPN=1关闭蜂鸣器,否则三极管电流会很大。
  34. }

  35. void main()
  36. {

  37.         Buzzer(1,1000); //任意调节参数,选择自己喜欢的鸣叫次数和音频(1代表只响一声)
  38.     while(1) //看你需要不要它循环响,需要循环响就把代码放到while里面
  39.     {
  40.             
  41.     }
  42. }
复制代码

全部资料51hei下载地址:
STC15F104无源蜂鸣器.zip (23.18 KB, 下载次数: 42)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1