Примеры CodeVisionAVR

Автор: Internet. Опубликовано в Начинающим CV AVR

Содержание материала

Интересный пример в интернете, представлен корейским радиолюбителем.   

При переводе страницы на русский язык использовался машинный перевод, оригинал страницы здесь


http://blog.naver.com/PostList.nhn?from=postList&blogId=wontae12&categoryNo=8&currentPage=36

Исследование робот codevision ATmega8535 (LCD)  

В экспериментах проводиш весь день ... времени на все в обрез и ...  ничего, что особенного ...

Чтобы открыть  книги,  изучать их так трудно .....А исследование это уже весело....... По этим и другим причинам, экспереметировать интересней ...

Как я изучаю codevision "Робот Исследование ATmega8535" ЖК-часть, здесь примеры чтобы учиться.
 


void main(void)
{
// ЖК-модуль инициализации 
lcd_init (16);


lcd_putchar('A');
lcd_putchar('B');
lcd_putchar('C');
} //main


void main(void)
{
// ЖК-модуль инициализации 
lcd_init (16);
// 0 Переход к строке колонки 5
lcd_gotoxy(5,0);
lcd_putchar('A');
  // вывести 1 строке 6 место 
lcd_gotoxy(6,1);
lcd_putchar('B');
}
 


// Объявления переменных
char disp_1[] = "HELLO !";

char disp_2[] = "Student";

// ЖК-модуль инициализации 

lcd_init (16);
 // Переход к началу строки на 0 
lcd_gotoxy (0,0);
 // для   HELLO! вывод 

  lcd_puts(disp_1);  

// Переход к началу строки 1  

 lcd_gotoxy(0,1);  

// Строка1 Студент 
вывод 
в

 lcd_puts(disp_2);

 


// ЖК-модуль инициализации

lcd_init (16);

// Переход к началу строки

lcd_gotoxy (0,0);  

// вывод в Line0

 lcd_putsf("16*2 LCD TEST");

// Переход к началу Строка1

lcd_gotoxy(0,1); 

// Строка1 вывод

 lcd_putsf("robotstudy.com");


char disp_1[] = "16*2 LCD TEST";

char disp_2[] = "HELLO !";
char disp_3[] = "Student";
char disp_4[] = "robotstudy.com";

char disp_5[] = "Lee Jaechang";

// объявление переменной, 

unsigned char key_val;

// PORTD нижнего 4 бита на входе, выходе, установить верхние 4 бита  

// PORTD как нижние 4 бита начальной тянуть, верхние 4 бита установлены в 0
DDRD=0xF0;

PORTD = 0x0F;

// ЖК-модуль инициализации 

lcd_init (16);
  // очистка экрана 
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(disp_1);

while(1)
{
/ / извлечение значения ниже 4 бита PORTA

 key_val = PIND & 0x0F;

// Х0 включается, если

if ( key_val == 0x0E ){
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(disp_2);
}

// X1 во включенном положении, иначе если

else if (key_val == 0x0D ){
lcd_clear();
lcd_gotoxy(0,1);
lcd_puts(disp_3);
}

// X2 переключатель ON, остальное, если

else if (key_val == 0x0B ){
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(disp_4);
lcd_gotoxy(0,1);
lcd_puts(disp_5);
}

// X3 переключатель ON, остальное,

else if (key_val == 0x07 ){  
lcd_clear();
}
};//while



while(1)

{

// ЖК-модуль инициализации 

lcd_init (16);
// HELLO!

lcd_putchar('H');
lcd_putchar('E');
lcd_putchar('L');
lcd_putchar('L');
lcd_putchar('0');
lcd_putchar('!');

/ / Курсор появляется на IR = 0x0E
/ / Раздел 2.1.2 Справочник по командам
_lcd_ready();
_lcd_write_data(0x0E);

delay_ms(1000);

// Курсор появляется и мигает ИК = 0x0F 

_lcd_ready ();
_lcd_write_data (0x0F);
delay_ms (1000);
  // Нет Курсор мигает IR = 0x0D 
_lcd_ready();
_lcd_write_data(0x0D);

delay_ms(1000);

// Не моргнул без курсора IR = 0x0C 

_lcd_ready();
_lcd_write_data(0x0C);
delay_ms(1000);

//Disply OFF IR = 0x0A, 0x09, 0x08
_lcd_ready();
_lcd_write_data(0x09);
delay_ms(1000);
}; //while


 

unsigned char i;

// инициализируем ЖК-модуля 

   lcd_init(16);
  // Выходной сигнал к ЖКИ 
lcd_putsf("16*2 LCD TEST");
lcd_gotoxy(0,1);
lcd_putsf("HELLO !");

while(1)

{

// Право 5 квадратов двигаться 

for( i=0; i<5; i++)
{
_lcd_ready();
_lcd_write_data(0x1C);
delay_ms(500);
 } 
// влево 5 квадратов двигаться
for( i=0; i<5; i++)
{
_lcd_ready();
_lcd_write_data(0x18);
delay_ms(500);
}

}; //while


ex221-8 CG RAM ЖК-продукции.



EX232-01 ЖК-вывода числовой переменной.

// Объявление переменной,
unsigned char c_val = 0xA1;

int int_val = 12345;

// 16 * 2 LCD выхода на объявление символьной переменной 

char lcd_text[16];

// ЖК-модуль инициализации 

lcd_init (16);
// Изменить шестнадцатеричный символ переменной вывод на ЖК-
sprintf(lcd_text, "Char val = 0x%X",c_val);
lcd_gotoxy(0,0);

lcd_puts(lcd_text);

// Десятичное изменения в символьной переменной вывод на ЖК- 

sprintf(lcd_text, "int val = %i",int_val);
lcd_gotoxy(0,1);
lcd_puts(lcd_text); 

 Вот такой молодец, этот парень.

Сам иследовал и другим показал.

Как это делается.......