×
单片机 > 单片机程序设计 > 详情

AVR单片机定时器做的门铃程序+电路

发布时间:2020-08-25 发布时间:
|

 

#define F_CPU  1000000UL 

#include

#include

#include

#define INT8U   unsigned char

#define INT16U  unsigned int


#define DoorBell() (PORTD ^= 0x01)          /


#define Key_DOWN() ((PINB & 0x80) == 0x00) 


volatile INT16U soundDelay;                 //两个不同取值分别对应于"叮","咚"


int main() 

        DDRB = 0;      PORTB = 0xff;

        

        DDRD = 0xff;  

        

        TCCR1B = 0x01;


        TCNT1 = -700;

        

        sei();

        

        while(1)

        {

                if( Key_DOWN() )

                {

                        TIMSK = _BV(TOIE1);

                        

                        soundDelay = -700;

                        

                        _delay_ms(400);

                        

                        soundDelay = -1000;

                        

                        _delay_ms(600);

                        

                        TIMSK = 0x00;

                }

                

        }

        

}



ISR ( TIMER1_OVF_vect )

{

        

        DoorBell();

                

                TCNT1 = soundDelay;

                

}


关键字:AVR  单片机  定时器做  门铃

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
采用AT89C2051的数字可调稳压电源单片机源程序