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  -
   152   153   154   155   156   157   158   159   160   161   162