Page 317 - MDP2020-3
P. 317

················································································  명장양성프로젝트  【MDP】  과제발표회  자료집  Ⅲ    |  311


                    while(!(UCSR0A  &  0x20));    //송신대기
                    UDR0  =  send;        //UDR0에  send값  대입

            }




            void  USART_init()  //USART0,1  초기화
            {

                                                    //USART0  송수신  허용,  USART1  수신만  허용
                    UCSR0A  =  0x00;
                    UCSR0B  =  0x98;

            //2번  비트  0:  ,3,4비트  (TXENn,RXENn)  셋:  송/수신부  활성화,  7번  비트  셋:  수신  인터럽트

            활성화
                    USCR0C  =  0x06;
            //전송  데이터  길이  설정  (UCSR0B  2번  비트,  UCSR0C  1,2번  비트):  8비트


                    UBRR0H  =  0x00;

                    UBRR0L  =  103;  //baudrate  설정:  9600bps  (=0x67  =  103)
                    UCSR1A  =  0x00;
                    UCSR1B  =  0x90;  //4번비트  셋:  수신만  허용,  7번비트  셋:  수신  인터럽트  활성화
                    UCSR1C  =  0x06;
            //전송  데이터  길이  설정  (UCSR1B  2번  비트,  UCSR1C  1,2번  비트):  8비트



                    UBRR0H  =  0x00;
                    UBRR0L  =  103;    //baudrate  설정:9600bps  (=0x67  =  103)
                    UCSR1A  =  0x00;
                    UCSR1B  =  0x06;

            //전송데이터  길이  설정  (UCSR1B  2번  비트,  UCSR1C  1,2번  비트):  8비트


                    UBRR1H  =  0x00;
                    UBRR1L  =  103;  //baudrate  설정:  9600bps  (=0x67  =  103)
                    SREG  |=0x80;    //인터럽트  방식  사용을  위해  전체  인터럽트  허용

            }


            void  delete()  //USART로  받은  값들이  저장된  배열을  초기화
            {
                    short  k;  //반복문에  사용되는  값

                    i  =  0;
                    c  =  0;
                    for  (k=0;k<8;k++)
                    data[i]  =  '  ';
   312   313   314   315   316   317   318   319   320   321   322