반응형

#include <avr/io.h>

#include <util/delay.h>

#include <avr/interrupt.h>

 unsigned int cnt=0;

unsigned int cntt=0;

void buzzer()

 PORTB = 0x02;

 _delay_ms(10);

 PORTB = 0x00;

 _delay_ms(10);

}

int main()

{

 DDRB = 0xFF;

 PORTB =0x00;

 DDRC = 0x01;

 PORTC = 0x00;

 DDRD = 0xe3;

 PORTD = 0x00;

 //PORTD = 0x40; // 1번째 녹색

 //PORTD = 0x80; // 2번째 녹색

 //PORTB= 0x01; // 3번째 녹색

 //PORTB= 0x40; // 1번째 빨강

 //PORTB= 0x80; // 2번째 빨강

 //PORTD = 0x20; // 3번째 빨강

 //  (PIND & 0xFF) == 0x0c // 선택 스위치 PIND4

 //  (PIND & 0xFF) == 0x14 // 전원부 스위치 PIND3

 // PIND4 0x10; 선택스위치

 // PIND3 0x08; 전원스위치 인터럽트

 

buzzer();

 while(1){

  PORTD = 0x40;

 if((PIND & 0x10)==0x00) // 선택 스위치

  cnt++;

 switch(cnt){  

case 1:

 PORTD = 0xc0;

 _delay_ms(20);

 break;


case 2:

 PORTD = 0xc0;

 PORTB = 0x01;

 _delay_ms(20); 

 break;


case 3:

 PORTD = 0x40;

 PORTB = 0x00;

 cnt=0;

 _delay_ms(20);

 break;

}


   if((PIND & 0x08) == 0x00){// 전원 스위치 

if(cnt == 0){

PORTC = 0x01;

_delay_ms(500);

PORTC = 0x00;

}

else if(cnt==1)

{

PORTC = 0x01;

_delay_ms(500);

PORTC = 0x00;

}

else if(cnt==2){

 PORTC = 0x01;

_delay_ms(500);

PORTC = 0x00;

}

 

 }

}


return 0;}


반응형

+ Recent posts