/Подключаем стандартные библиотеки #include < avr/io.h >//библиотека ввода/вывода //перечисляем переменные необходимые для работы int x,t,i,n,s,lin,back, p; //Задаем наши сообщения unsigned char msg1[] = "Initializing"; unsigned char msg2[] = "done"; unsigned char msg3[] = "xxxxxxxxxx"; unsigned char msg4[] = "Hello from"; unsigned char msg5[] = "avrlab.com"; unsigned char msg6[] = "xxxxxxxxxx"; #define nop() {asm("nop");}//ассемблеровская функция необходимая для формирования задержки //Функция задержки void delay(int t) { for (x=t; x>0 ;x--) nop (); } //Функция большой задержки Void long_delay () for (p=1; p=23; p++) { delay(5000); } //Функция инициализации модуля USART микроконтроллера AtMega8 void USART_Init( unsigned int ubrr) { /* Set baud rate */ UBRRH = (unsigned char)(ubrr>>8);//Декларируем переменную для скорости соединения UBRRL = (unsigned char)ubrr; UCSRB = (1< UCSRC=0x86;// UCSRC = (1< } //Функция приема данных unsigned char USART_Receive( void ) { while ( !(UCSRA & (1< return UDR; //Возврат принятого символа } //Функция отправки данных void USART_Transmit( unsigned char data ) { while ( !(UCSRA & (1< UDR = data; //Начало передачи данных } //Функция отправки сообщения void msgout (unsigned char msg[],int line) { s=0; for (;msg[s];s++) { USART_Transmit(msg[s]); } if (line ==1)//Переход на новую строку { USART_Transmit(0x0d);//Отправляем команду перехода в начало строки USART_Transmit(0x0a);//Отправляем команду переходу на новую строку } } //Главная функция int main (void) { USART_Init (8);//Инициализируем модуль USART скорсть подключения 115200 кбит/с при частоте 16MHz while(1)//вечный цикл { msgout(msg1,1);//Отправляем первое сообщение msgout(msg2,1);//...второе msgout(msg3,1);//...третье msgout(msg4,1);//... msgout(msg5,1);//... msgout(msg6,1);//Отправляем шестое сообщение long_delay ();//Большая пауза между отправками сообщения } }