專注電子技術(shù)學(xué)習(xí)與研究
當前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

AVR單片機驅(qū)動有源蜂鳴器實驗程序

作者:huqin   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年02月25日   【字體:

/*
          有源蜂鳴器實驗;
 
特點描述:  有緣蜂鳴器極其簡單,為二源元件,
           本系統(tǒng)使用蜂鳴器工作電壓是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);   // 蜂蜜器關(guān);
}

 


void main(void)    //主函數(shù);
{  
   uint8 a=1,j=0;     //可以不定義此變量,可以直接在調(diào)用a變量的位置寫1代替;
   uint16 h=0;    //用于延時計數(shù);
   init_io();    //調(diào)入初始化函數(shù);
  
  
   while(a)
     { 
   for(j=0;j<9;j++)   //循環(huán)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++);
 
}
 

}
 

關(guān)閉窗口

相關(guān)文章