#include //подключаем библиотеку ATtiny2313 #include //подключаем библиотеку функции задержки #define F_CPU 8000000UL // кварц 8 MHz void USART_Transmit (unsigned int data);//объявляем функцию передачи unsigned int USART_Receive(void);//объявляем функцию приема int unsigned resl;//объявляем беззнаковую целочисленную переменную resl int main (void)// главная функция программы {DDRB=0XFF;//порт В как выход (диоды) DDRD=0X00;//порт D как вход (кнопки) PORTB=0X00;// обнуляем порт B PORTD=0XFF;// осуществляем подтяжку внутреннего резистора uint32_t baud=9600;// установка скорости передачи 9600 бит/с int baudrate=(F_CPU/(16*baud))-1; //вычисление значения для регистра скорости передачи UBRR UBRRH = (unsigned char)(baudrate>>8);//присваивание значения старшему байту регистра UBRR UBRRL = (unsigned char) baudrate;//присваивание значения младшему байту регистра UBRR UCSRA=0x00;// все флаги регистра сброшены в ноль, удвоение скорости нет, режим мультипроцессорного обмена выключен UCSRB=0x18;//включение приемника и передатчика USART UCSRC=0x06;//асинхронный режим,нет проверки на четность,1 стоповый бит,8 бит данных void USART_Transmit (unsigned int data)//функция отправки данных по интерфейсу USART {while (!(UCSRA&(1<