Page 426 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 426
정보통신기기 프로젝트
delay_ms(1);} //0.001초 지연
void dwing(void){//내려가는 상태에서의 함수
ST_FLOOR=1; //카의 동작 정지를 제어하는 릴레이를 동작시킴.
UPDW=0; //내려갈 때 0의 값을 가짐
delay_ms(1);} //0.001초 지연
아. 문 동작 코드 및 NFC 시리얼 통신 코드
#define OPBT PINF.4 //포트 F의 4번 핀을 열리는 스위치와 연결
#define CLBT PINF.5 //포트 F의 5번 핀을 닫히는 스위치와 연결
void open (void); //열리는 함수
void close(void); //닫히는 함수
void init(void); //초기값 설정 함수
unsigned char getch_USART0(void); //NFC용 통신함수
void set_USART0(void);//NFC용 통신함수
char data[9];//NFC 태그값을 읽어와서 저장하는 변수
char card_number[4][9]={"0C73CE8E","FE53D08B","9CEFCC8E","4C62C18E"}; /*각 카드별 값이
담긴 배열. data값을 이 배열 값과 비교하여 동작설정.*/
unsigned char first=0,fnddis=0,s_f=100,i,one=0,x=0,count=0,timer=0,ovfmode=0; /*시간 재는지의
유무를 나타내는 타이머변수. 문이 열리는 시간만큼 닫기위해 설정함. */
unsigned long check=0,kcehc=0; //시간을 재는 변수 체크와 케흐
void main(){ //메인문
init(); //초기값 설정함수 호출
while(1){ //무한반복
set_USART0(); //계속 NFC통신을 함
fnd_dis(); //FND로 디스플레이함
}}
interrupt [EXT_INT0] void ext_int0 (void){ //외부 인터럽트0번.
//열리다가 마이크로스위치 눌리면 발생함.
unsigned int i=0; //지역변수 I
if(one==1){ /*만약 one이 1인 경우 (스위치가 튀는현상을 방지하기 위함. 한번 눌릴 타이밍에
한번만 동작되게 하기위한 변수.)*/
one=0; //one을 0으로 한다.(이 한 번의 동작타이밍에 한번만 동작하게 하기 위함.)
PORTF=0xf0; //PORTF값을 11110000으로 둠.
PORTC=0x00; //모터를 제어하기위한 포트.정지
PORTB=0xff; //TR드라이브 제어용 포트(메인코드와는 다르게 다이나믹구동 사용)
PORTA=0xff; //FND값 출력용 포트
정보통신기기과
- 419 -