专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

AVR单片机驱动有源蜂鸣器实验程序

作者:huqin   来源:本站原创   点击数:  更新时间:2014年02月25日   【字体:

/*
          有源蜂鸣器实验;
 
特点描述:  有缘蜂鸣器极其简单,为二源元件,
           本系统使用蜂鸣器工作电压是5v,
只要接入5V电源,蜂鸣器就响. 
 
 
     硬件连接:   PC7引脚;
 
    音系: 模拟警报声; 

                2014年12月5日19:56:57

*/
#include <iom16v.h>
#include <macros.h>

typedef unsigned char uint8;
typedef unsigned int uint16;

void init_io()   // ATMEGA16A所有IO口初始化;

   DDRA=0XFF;
   PORTA=0X00; //PA口输出0;
  
   DDRB=0XFF;
   PORTB=0X00; //PB口输出0;
  
   DDRC=0Xff;
   PORTC=0X00; //PC口输出0;
  
   DDRD=0XFF;
   PORTD=0X00; //PD口输出0;
}

void pc7(uint8 s)   //位操作pc7引脚;
{
  if(s)
   {
     PORTC|=0x80;  //PC7置一;
   }
 
  else
    {
 PORTC&=~0x80; //pc7清零;
}

}


void buzz()    // 蜂鸣器鸣叫;
{
  uint16 j=0;
  uint8 u=0;
 
  pc7(1);    //蜂鸣器开;
 
  for(j=0;j<10000;j++);  //延时;
 
  pc7(0);   // 蜂蜜器关;
}

 


void main(void)    //主函数;
{  
   uint8 a=1,j=0;     //可以不定义此变量,可以直接在调用a变量的位置写1代替;
   uint16 h=0;    //用于延时计数;
   init_io();    //调入初始化函数;
  
  
   while(a)
     { 
   for(j=0;j<9;j++)   //循环7次,故鸣叫七次;
  {
   buzz();   //鸣叫;
for(h=0;h<10000;h++);  //延时;
  }
 
  pc7(1);
  for(h=0;h<60000;h++);
  for(h=0;h<60000;h++);
  pc7(0);
  for(h=0;h<40000;h++);
 
}
 

}
 

关闭窗口

相关文章