Page 210 - 2
P. 210
TCCR1B=0b00000101; //1024 분주
SREG |= 0x80;
while(1){
switch(rx){
case 'A':PORTA.0 = 1;/* 불켜*/ break;// LED on 128 모듈
case 'B':PORTA.0 = 0;/* 불꺼*/ break;// LED off 128 모듈
case 'C':PORTA.1 = 0;PORTA.2 = 0;PORTA.3 = 0;/* 무드등꺼*/break;
case 'D':PORTA.2 = 1;PORTA.1 = 0;PORTA.3 = 0;/* 빨간색*/ break;
case 'E':PORTA.1 = 1;PORTA.2 = 0;PORTA.3 = 0;/* 초록색*/break;
case 'F':PORTA.3 = 1;PORTA.1 = 0;PORTA.2 = 0;/* 노란색*/break;
case 'G':speed=60;/* 미풍*/ break;
case 'H':PORTB.5 = 0;/* 선풍기꺼*/break;
case 'J':speed=255;/* 강풍*/ break;
case 'K':PORTA.4 = 1;PORTA.6 = 0;delay_ms(500);PORTA.4 = 0;rx=100;delay_ms(2000);break;/*
가스밸브열기*/
case 'L':PORTA.4 = 0;PORTA.6 = 1;delay_ms(500);PORTA.6 = 0;rx=100;delay_ms(2000);break;/*
가스밸브닫기*/
case 'M':PORTB.0 = 1; PORTB.1 = 0; PORTB.6 = 1; PORTB.7 = 0;delay_ms(2000); PORTB.0 =
0; PORTB.6 = 0; delay_ms(1000);rx=100;break;/* 창문열어*/
case 'N':PORTB.0 = 0; PORTB.1 = 1; PORTB.6 = 0; PORTB.7 = 1; delay_ms(2000); PORTB.1 =
0;PORTB.7 = 0;delay_ms(1000);rx=100;break;/* 창문닫아*/
case 'O':PORTB.4 = 1;PORTB.3 = 0;delay_ms(500);PORTB.4 = 0;rx=100;/*delay_ms(2000);*/brea
k;/* 문열어*/
case 'P':PORTB.4 = 0;PORTB.3 = 1;delay_ms(500);PORTB.3 = 0;rx=100;/*delay_ms(2000);*/brea
k;/* 문닫아*/
}
OCR1AL=speed;}
}
interrupt [EXT_INT0] void external_int0(void)// 전등 온오프
{
fire();
}
interrupt [EXT_INT1] void external_int1(void)
{
fire();
}
interrupt [USART0_RXC] void RX_interrupt(void)
{
rx = UDR0; // 수신된 데이터가 저장된 UDR0 송수신 데이터 레지스터를 rx 에 대입
PORTC = ~PORTC; // ISR 로 들어오는것 LED 로 확인
}
- 210 -