AVR单片机驱动无源蜂鸣器
          
            时间:12-05 09:14 阅读:1370次
*温馨提示:点击图片可以放大观看高清大图
                
         
        
		  
               简介:文章主要介绍了AVR单片机驱动无源蜂鸣器的过程
               
                        
          
            内部1 M晶振。
定时器实验,周期信号驱动无源蜂鸣器,些实验基于定时器的CTC模式,由硬件产生频率信号。
程序中实现单一频率的周期性提示音。
程序采用单任务方式,软件延时。
*/
#i nclude "iom16v.h"
/*延时函数*/
void delay_ms(unsigned char i) {
unsigned char a, b;
for (a = 1; a < i; a++) {
 for (b = 1; b; b++) {
 ;
 }
 }
}
void main(void) {
unsigned char i;
DDRA = 0x00; /*方向输入*/
PORTA = 0xFF; /*打开上拉*/
DDRB = 0xFF; /*方向输出*/
PORTB = 0xFF; /*高电平*/
DDRC = 0x00;
PORTC = 0xFF;
DDRD = 0xFF;
PORTD = 0xFF;
while (1) {
 for (i = 0; i < 8; i ++) {
 PORTB = ~(1 << i);
 delay_ms(100);
 }
 TCCR1A = 0x40;
 TCCR1B = 0x09;
 OCR1A = 1000;
 delay_ms(200);
 TCCR1A = 0x00;
 PORTD &= ~(1 << 5);
 }
}