Page 157 - 2020학년도 MDP과제발표회 자료집 (통신과) (3)
P. 157
DDRB = 0x00; // 수발광센서 통 A 0~2 번핀에 연결 통 B 4~6 핀
연결
PORTB = 0x00; // 초기값은 으로 설정0
DDRC = 0x83; // 부저를 번 핀에 연결 모터를 7 0~1 스위치를 2~3 에
연결
PORTC = 0x80; // 부저 핀에 연결 초기값은 7 ( 0) 모터를 0~1 번핀 초기(
값 0)
DDRF = 0x00; // 수위감지센서입력을 0~2 번 핀에서 받아옴
PORTF = 0x00; // 초기값은 으로 설정 0
}
void sensor_A() { //A 사료의 량 감지 함수
levelsensor_A = 0b00000111 & PINB;
switch (levelsensor_A) { // 사료의 량 감지 함수
case 0b00000111 : // 연산 값이 0b00000111 일때
PORTC = 0x00; // 부저를 울림
lcd_gotoxy(0,0);
lcd_putsf("feed_A:NO HAVE"); //LCD 에 'feed_A:NO HAVE' 출력
delay_ms(300); break;
case 0b00000000 : // 연산 값이 0b00000000 일때
lcd_gotoxy(0,0);
lcd_putsf("feed_A : HIGH!"); break;
case 0b00000100 : // 연산 값이 0b00000100 일때
lcd_gotoxy(0,0);
lcd_putsf("feed_A : MID!!"); break;
case 0b00000110 : // 연산 값이 0b00000110 일때
lcd_gotoxy(0,0);
lcd_putsf("feed_A : LOW!!");
PORTC = 0xff; break;
default: break;
}
}
void sensor_B() { //B 사료의 량 감지 함수
levelsensor_B = 0b01110000 & PINB;
switch (levelsensor_B) { // 사료의 량 감지 함수
- 162 -