#include //подключаем библиотеку ATtiny2313 #include //подключаем библиотеку функции задержки #define F_CPU 8000000UL // кварц 8 MHz void USART_Transmit (unsigned int data);//объявляем функцию передачи unsigned int USART_Receive(void);//объявляем функцию приема int unsigned resl;//объявляем беззнаковую целочисленную переменную resl void USART_Transmit (unsigned int data)//функция отправки данных по интерфейсу USART {while (!(UCSRA&(1<>8);//присваивание значения старшему байту регистра UBRR UBRRL = (unsigned char) baudrate;//присваивание значения младшему байту регистра UBRR UCSRA=0x00;// все флаги регистра сброшены в ноль, удвоение скорости нет, режим мультипроцессорного обмена выключен UCSRB=0x18;//включение приемника и передатчика USART UCSRC=0x06;//асинхронный режим,нет проверки на четность,1 стоповый бит,8 бит данных while (1)//задаем бесконечный цикл { USART_Receive();// прослушиваем линию на прием данных PORTB=resl;//если данные приняты запишем их в регистр PORTB USART_Transmit(resl);// отправим принятые данные обратно отправителю _delay_ms(500);//подождем 500 мс и вернемся в начало бесконечного цикла } }