Page 421 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 421

나. 전역변수  및  초기  설정




              #include  <mega128.h>    //Atmega128  사용시  필요한  헤더
              #include  <delay.h>          //딜레이  사용시  필요한  헤더
              #include  <stdio.h>          //c언어의  전반적인  기능을  사용시  필요한  헤더
              #define  MAX_CARD  7    //NFC태그의  수.  3층  4층  5층용  2개씩에  모든층  1개로  총  7개예정
              #define  ALL_FLOOR  5    //총  층의  수.  1~5층이므로  5개층
              #define  UPDW  PORTF.6    //올라갈지  내려갈지  신호를  F6포트로  출력
              #define  OPCL  PORTF.7      //열지  닫을지  신호를  F7포트로  출력
              #define  ST_FLOOR  PORTD.7    //그  층에  멈출지  움직일지  신호를  D7포트로  출력
              #define  ECT  PIND.4    //권한  부여를  시작하는  스위치가  달린  포트.



              unsigned  char  card_enable[MAX_CARD][ALL_FLOOR]={    //카드가  갈  수  있는  층의  배열.
                  {1,1,1,0,0},{1,1,1,0,0},                        //3층카드.  (1,2,3층  갈  수  있음)
                  {1,1,0,1,0},{1,1,0,1,0},                        //4층카드.  (1,2,4층  갈  수  있음)
                  {1,1,0,0,1},{1,1,0,0,1},{1,1,1,1,1}};    //5층카드와  모든층  카드  (1,2,5층),(모든층)
              unsigned  char  car_enable[ALL_FLOOR]={1,1,0,0,0};  //차가  갈  수  있는  층들.(3,4,5층태그필요)
              char  up_go_out[ALL_FLOOR]={0,0,0,0,0};  //층별로  달려있는  올라가는  버튼의  배열.  눌리면  1
              char  dw_go_out[ALL_FLOOR]={0,0,0,0,0};  //층별로  달려있는  내려가는  버튼의  배열.  눌리면  1
              char  up_go_in[ALL_FLOOR]={0,0,0,0,0};  //카  안에  있는  올라가는  버튼의  배열.  눌리면  1
              char  dw_go_in[ALL_FLOOR]={0,0,0,0,0};  //카  안에  있는  내려가는  버튼의  배열.  눌리면  1
              char  up_go[ALL_FLOOR]={0,0,0,0,0};  //층별  버튼과  카  버튼의  합계.  총  올라가는  배열
              char  dw_go[ALL_FLOOR]={0,0,0,0,0};  //층별  버튼과  카  버튼의  합계.  총  내려가는  배열
              char  card_number[MAX_CARD][9]  ={  {'1','8','E','F','E','5','3','D'},  //NFC태그들의  값  저장.
                            {'0','8','B','9','C','E','F','C'},
                            {'1','8','E','4','C','6','2','9'},
                            {'0','C','7','3','C','E','8','E'},
                            {"00000000"},{"00000000"},{"00000000"}};  //태그
                            //추가로  받으면  추가예정.
              char  data[9];  //시리얼  통신으로  받을  데이터.  문자열이므로  배열사용
              unsigned  char  dw_led=0x80;  //내려갈  때  켜지는  LED.  액티브  로우  사용.  OR게이트  사용
              unsigned  char  int5en=0;  //권한부여시  사용하는  변수.  1이면  권한부여  스위치  활성화
              unsigned  char  al1=10,al2=10,al3=10;  //권한부여시  사용하는  변수
              unsigned  char  now_floor=0,up=0,dw=0,udstop=0,rlstop=0,i;  //모터제어시  사용하는  변수.
              unsigned  char  getch_USART0(void);  //NFC리더기로  값  읽어오는  함수
              void  set_USART0(void);  NFC리더기로  값을  읽어  올  때  호출하는  함수
              void  key  (void);  //키메트릭스를  이용하여  모든  버튼의  값을  읽어오는  함수
              void  door_open(void);  //문을  여는  함수
              void  door_close(void);  //문을  닫는  함수
              void  set_leds(void);  //LED의  점등  점멸을  제어하는  함수
              void  set_go(void);  //세팅하는  함수


            인천전자마이스터고등학교
                                                         -  414  -
   416   417   418   419   420   421   422   423   424   425   426