Page 134 - 2020학년도 MDP과제발표회 자료집 (통신과) (3)
P. 134

unsigned  char  fnd[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98};
            //FND 가  커먼  애노드  타입이기  때문에  일때  켜짐0
            char  mode[4]={0xff,0x89,0xc8,0x86};
            // 모드  표시

            void  setting  (void){  //   처음  전원을  인가했을  때  세팅되야  하는  값
                    DDRF  =  0xff;
                    //led
                    DDRA  =  0xff;
                    //fnd

                    DDRB  =  0xff;
                    //seg
                    DDRC  =  0xff;
                    //fnd2
                    DDRE  =  0x00;

                    //diode
                    DDRG  =  0xff;
                    //BUZ
                    DDRD  =  0xF0;
                    //count  ir  &  인터럽트

                    PORTG  =  0xff;
                    PORTF  =  0x00;
                    PORTE  =  0xff;
                    TIMSK  =  0x05;
                    //   타이머 카운터 번  오버플로우/  0    (Over  Flow)   발생시  인터럽트  요청

                    TCCR0  =  0x00;
                    //  카운트  동작  주파수  1024    분주
                    TCCR1B  =  0x00;
                    //  카운트  동작  주파수  1024    분주
                    TCNT0  =  0x00;

                    //  TCNT0  레지스터  으로  초기화0
                    EIMSK  =  0b0001111;
                    //   인터럽트  0  1  2  3   사용
                    EICRA  =  0b10101010;
                    SREG  |=  0x80;  //  설정  인터럽트(Interrupt)   허용      }

            void  ir  (void){
            //  수광  발광  다이오드와  led       의  값을  비교하여  점수를  ++          해주는  함수
                    on0  =  PINF.0  ;
                    //  led  0 번의  값을  on0 에  저장
                    dp0  =  PINE.0  ;

                    //   수광  다이오드와  발광  다이오드의  값을  dp0         에  저장 마주보면 ,        1   떨어지면  0
                    on1  =  PINF.1  ;


                                                         -  138  -
   129   130   131   132   133   134   135   136   137   138   139