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] = ' ';