CODE
#include <avr/io.h> //подключение библиотеки ввода-вывода
#include <util/delay.h> //подключение библиотеки задержек
//============Объявление глобальных функций и переменных=======
void UART_Translate (unsigned char data) // Передача данных
{
while (!(USRA & (1<<5))); //UDRE
UDR = data;//запись переменной data в регистр UDR
}
unsigned char UART_Reseive (void) //Прием данных
{
unsigned char result;
while (!(USRA & (1<<7))); //проверка бита RXC регистра USRA
result = UDR; //result присваивается значение UDR
return result;
}
//==============ОСНОВНАЯ ПРОГРАММА===================
int main(void) //Начало основной программы
{
unsigned char a,b,c,i; //объявление переменных
PORTA=0b00001111; //выводы 0,1,2,3 порта А
DDRA=0b00000000; //все выводы порта А - входы
PORTB=0b11111111; //выводы 0,1 порта В
DDRB=0b11111111; //все выводы орта В - выходы
PORTC=0b00000100; //вывод 3,4,5,6,7 порта С
DDRC=0b00000000; //все выводы порта С - выводы
PORTD=0b10000010; //вывод 5 порта D
DDRD=0b00000010; //все выводы порта D - входы,кроме 1
UCSRA=0x00; //установка параметров связи 8n1
UCSRB=0x18; //включение приемника и передатчика в USART
UCSRC=0x06;
UBRRH=0x00;//режим UART асинхронный
UBRRL=0x5F; //скорость обмена передачи в порту через UART - 1200 бод.
UART_Translate('O');
UART_Translate('N');
UART_Translate('M');
UART_Translate('A');
UART_Translate('\n');UART_Translate('\r'); //заставка
While(1) //бесконечный цикл
{
a=USART_Receive(); //принимаем данные
if(a=='i'); //если символ прошел переходим ко 2-му
{
b=UART_Receive(); //принимаем данные
if(b=='j'); //если символ прошел переходим к 3-му
{
c=UART_Receive(); //принимаем данные
if(c=='n');
{
UART_Translate('K');UART_Translate('u');UART_Translate('r');
UART_Translate('s');UART_Translate('о');UART_Translate('v');
UART_Translate('a');UART_Translate('y');UART_Translate('a');
UART_Translate('n');UART_Translate('r');UART_Translate('a');
UART_Translate('b');UART_Translate('о');UART_Translate('t');
UART_Translate('a');UART_Translate('r');UART_Translate('k');
UART_Translate('y');UART_Translate('r');UART_Translate('s');
UART_Translate('a');UART_Translate('n');UART_Translate('t');
UART_Translate('F');UART_Translate('i');UART_Translate('l');
UART_Translate('i');UART_Translate('n');UART_Translate('o');
UART_Translate('v');UART_Translate('a');UART_Translate('E');
UART_Translate('l');UART_Translate('e');UART_Translate('n');
UART_Translate('a');UART_Translate('n');UART_Translate('r') //ответ на строку инициализации//
for(i=0,i<=5,i++);
{
_delay_ms(100); //требуемая задержка в мс
PORTD=0b10000000; //включаем звук on
_delay_ms(100); //требуемая задержка в мс
PORTD=0b00000000; //выключаем звук off
}
}
}
}
}
}
#include <util/delay.h> //подключение библиотеки задержек
//============Объявление глобальных функций и переменных=======
void UART_Translate (unsigned char data) // Передача данных
{
while (!(USRA & (1<<5))); //UDRE
UDR = data;//запись переменной data в регистр UDR
}
unsigned char UART_Reseive (void) //Прием данных
{
unsigned char result;
while (!(USRA & (1<<7))); //проверка бита RXC регистра USRA
result = UDR; //result присваивается значение UDR
return result;
}
//==============ОСНОВНАЯ ПРОГРАММА===================
int main(void) //Начало основной программы
{
unsigned char a,b,c,i; //объявление переменных
PORTA=0b00001111; //выводы 0,1,2,3 порта А
DDRA=0b00000000; //все выводы порта А - входы
PORTB=0b11111111; //выводы 0,1 порта В
DDRB=0b11111111; //все выводы орта В - выходы
PORTC=0b00000100; //вывод 3,4,5,6,7 порта С
DDRC=0b00000000; //все выводы порта С - выводы
PORTD=0b10000010; //вывод 5 порта D
DDRD=0b00000010; //все выводы порта D - входы,кроме 1
UCSRA=0x00; //установка параметров связи 8n1
UCSRB=0x18; //включение приемника и передатчика в USART
UCSRC=0x06;
UBRRH=0x00;//режим UART асинхронный
UBRRL=0x5F; //скорость обмена передачи в порту через UART - 1200 бод.
UART_Translate('O');
UART_Translate('N');
UART_Translate('M');
UART_Translate('A');
UART_Translate('\n');UART_Translate('\r'); //заставка
While(1) //бесконечный цикл
{
a=USART_Receive(); //принимаем данные
if(a=='i'); //если символ прошел переходим ко 2-му
{
b=UART_Receive(); //принимаем данные
if(b=='j'); //если символ прошел переходим к 3-му
{
c=UART_Receive(); //принимаем данные
if(c=='n');
{
UART_Translate('K');UART_Translate('u');UART_Translate('r');
UART_Translate('s');UART_Translate('о');UART_Translate('v');
UART_Translate('a');UART_Translate('y');UART_Translate('a');
UART_Translate('n');UART_Translate('r');UART_Translate('a');
UART_Translate('b');UART_Translate('о');UART_Translate('t');
UART_Translate('a');UART_Translate('r');UART_Translate('k');
UART_Translate('y');UART_Translate('r');UART_Translate('s');
UART_Translate('a');UART_Translate('n');UART_Translate('t');
UART_Translate('F');UART_Translate('i');UART_Translate('l');
UART_Translate('i');UART_Translate('n');UART_Translate('o');
UART_Translate('v');UART_Translate('a');UART_Translate('E');
UART_Translate('l');UART_Translate('e');UART_Translate('n');
UART_Translate('a');UART_Translate('n');UART_Translate('r') //ответ на строку инициализации//
for(i=0,i<=5,i++);
{
_delay_ms(100); //требуемая задержка в мс
PORTD=0b10000000; //включаем звук on
_delay_ms(100); //требуемая задержка в мс
PORTD=0b00000000; //выключаем звук off
}
}
}
}
}
}