Page 424 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 424
정보통신기기 프로젝트
case 0x07 : if(km==0xfe)up_go_out[1]=(~up_go_out[1]);
/*4번째 비트가 눌려 있을 때 4-1 : 카 외부의 2층에서 올라가는 스위치 상태 변경(눌림->안
눌림)(안 눌림->눌림)*/
else if(km==0xfd)dw_go_out[1]=(~dw_go_out[1]);
//4-2 : 2층에서 내려가는 스위치 상태 변경
else if(km==0xfd)up_go_out[0]=(~up_go_out[0]);
//4-3 : 1층에서 올라가는 스위치 상태 변경
else if(km==0xef)door_open();
//4-4 : 문 여는 버튼
else if(km==0xdf)door_close();
//4-5 : 문 닫는 버튼
//else if(key==0xdf)break;
//기능 추가 예정
//else if(key==0xbf)break;
//기능 추가 예정
break;
}
km=(km<<1)|0x01;
//반복할 때 마다 키메트릭스 출력값 변경
}
}
마. 권한 부여 함수
void enchant (void){ /*NFC 태그가 다른 층도 갈 수 있게 권한을 부여하는 함수 (권한부여 스위치
는 카운터에서 제어한다고 가정함.) */
int5en=1; // 권한 부여에 사용하는 스위치 활성화
while((al1==10)||(al2==10)||(al3==10)){ //al1과 al2, al3의 값을 받을 때까지 반복
key(); //키메트릭스 반복시켜서 값을 받아옴
set_leds(); //키메트릭스로 받아온 값에 따라 led 출력을 수정
set_go();} //키메트릭스로 받아온 값에 따라 동작 수정
card_enable[al1][al3]=~card_enable[al1][al3]; /* al1로 카드 종류 선택, al3으로 수정할 층
선택. 선택된 카드의 층의 권한을 바꿈 (만약 카드를 층마다 2개 이상씩 쓴다면 al2의 값도 사용하여
카드 선택) */
al1=10;al2=10;al3=10; //변수 초기화
정보통신기기과
- 417 -