Page 1073 - 3-3
P. 1073

Top_Motor_Up();
                    if (floor == 2) F2_1_qrd();  //2 층 white qrd  신호 대기
                    else if(floor == 3) F2_2_qrd();  //2 층 blue qrd  신호 대기
                    else if (floor == 4){ F3_Micro(); delay_ms(300);} // 층 마이크로 스위치 신호 대기
                    Top_Motor_Stop();     // 엘리베이터 상단 모터 정지
            }


            void Lift_Down()           // 엘리베이터를 하강시키는 함수
            {
                    Top_Motor_Down();
                    F1_qrd();               //1 층 qrd  신호 대기
                    Top_Motor_Stop();        // 엘리베이터 상단 모터 정지
            }


            void EnterOrExit()         // 현재 차가 들어오는지 나가는지 판별하는 함수
            {
                    #asm("sei");                // 인터럽트 허용
                    if (status[place - 1]){      // 출차 하는 경우
                    status[place - 1] = 0;       // 해당 위치의 배열을 0       으로 바꿔준다.
                    Ready_to_Out();              // 출차 대기 함수 호출
                    }
                    else                     // 주차 하는 경우
                    {
                            status[place - 1] = 1;      // 해당 위치의 배열을 1       로 바꿔준다.
                            Ready_to_Park();            // 주차 대기 함수 호출
                    }
                    delay_ms(10);
                    #asm("cli");                // 인터럽트 차단
            }


            void LCD_Input(unsigned char a)     //lcd  표시 함수
            {
                    unsigned char str[16];          //lcd 에 입력할 문자열을 저장할 배열
                    lcd_clear();                   //lcd cldar
                    lcd_gotoxy(0, 0);              // 첫 번째 줄의 맨 처음 칸부터
                    lcd_putsf(" Parking Tower");     //"Parking Tower" 를 표시한다.
                    lcd_gotoxy(0, 1);               // 두 번째 줄 맨 처음 칸부터
                    if (a == 0)              //a 가 0 일 경우에 현재 동작중인 주차 위치를,               LCD 로 나타냄
                    {
                            switch (place)
                            {
                                    case 0: lcd_putsf("  Input Error"); break;
                                    case 2:
                                    case 3:
                                    case 4: sprintf(str, "B%d is Operating", place - 1); break;


                                                         - 1073 -
   1068   1069   1070   1071   1072   1073   1074   1075   1076   1077   1078