Операции начальной настройки


1.выполним начальную настройку устройства: устанавливаем связи между выводами порта МК и входами дисплея;

2. вносим выводимый текст в программу.

Операции составляющие тело программы

1.выводим текст на дисплей;

2.сдвигаем текст на дисплее вправо;

3.сдвигаем текст на дисплее влево;

4.переходим к началу цикла.

Программа на Си

//установка соединений дисплея

1. sbit LCD_RS at PORTC2_bit;

2. sbit LCD_EN at PORTC3_bit;

3. sbit LCD_D4 at PORTC4_bit;

4. sbit LCD_D5 at PORTC5_bit;

5. sbit LCD_D6 at PORTC6_bit;

6. sbit LCD_D7 at PORTC7_bit;

// установка направления передачи

7. sbit LCD RS Direction at DDRC2 bit;

8. sbit LCD EN Direction at DDRC3 bit;

9. sbit LCD D4 Direction at DDRC4 bit;

10. sbit LCD D5 Direction at DDRC5 bit;

11. sbit LCD D6 Direction at DDRC6 bit;

12. sbit LCD D7 Direction at DDRC7 bit;

// ввод текста

13. Char txt1[]=”MikroElektronika”;

14. Char txt2[]=”BigAVR6”;

15. Char txt3[]=”LCD4bit”;

16. Char txt4[]=” Example”;

17. Char i;

18. Void Move_Delay ( ) {

19. Delay_ ms (500);

}

20. Void main ( ) {

21. Lcd_ Init (); // инициализация модуля DS1820

22. Lcd_ Cmd( LCD_CLEAR); // очистка экрана

23. Lcd_ Cmd (LCD_CURSOR_OFF); // выключение курсора

// вывод текста на экран

24. Lcd_Out (1,6,txt3);

25. Lcd_Out (2,6,txt4);

26. Delay_ ms(2000);

27.Lcd_ Cmd( LCD_CLEAR);

28.Lcd_Out (1,6,txt1);

29.Lcd_Out (1,6,txt2);

30.Delay_ ms(2000);

//перемещение текста

31.For (i=0, I<4, i++) {

32.Lcd_Cmd (LCD_SHIFT_RIGHT); // сдвиг текста вправо

33.Move_Delay ( ); // задеожка текста на дисплее

}

34.While (1) {

35.For (i=0, I<7, i++) {

36.Lcd_Cmd (LCD_SHIFT_LEFT); // сдвиг текста влево

37.Move_Delay ( ); // задержка

}

38.For (i=0, I<7, i++) {

39.Lcd_Cmd (LCD_SHIFT_RIGHT); // сдвиг текста вправо

40.Move_Delay ( ); //задержка

}

}

При проектирование программ удобно пользоваться готовыми функциями для взаимодействия МК с различными устройствами, которых предоставляют разработчики компиляторов. Эти функциии избавят нас от необходимости их описания и тем самым упрощают процесс составления программы. Некоторые из этих функций мы используем в нашей программе.

В начале программы устанавливается связь между выводами порта МК и входами дисплея (пункты 1-6). Например, функция sbit LCD_RS at PORTC2_bitустанавливает связьмежду выводом RS LCD и выводом 2 порта С.

Следующая группа функций ( пункты 7-12) определяют направление передачи. Например, функция sbit LCD_EN Direction at DDRC3_bitопределяет канал 3 порта С как выход, подключенный к входу EN дисплея.

В пунктах 13-17 объявлены символьные массивы txt, как байтовые целые, с внесением в них соответствующих текстовых значений.

Далее следует описание функции задержки (пункт 18). Эта новая функция использует стандартную функцию Delay ms ( ),которая обеспечивает задержку 500мс. Она будет нами использована в программе.

С пункта 20 начинается главная функция main. В начале выполняется инициализация дисплея Для этого используем функцию Lcd_Init ( ).Эта функция устанавливает все нужные значения параметров дисплея ( пункт 21).

В пункте 22 гасится экран. Используем функцию Lcd_Cmd (LCD CLEAR). В пункте 23 выключаем курсор.

В пунктах 23 и 24 осуществляется вывод текста на дисплей. Используем функцию Lcd_Out (строка, столбец, выводимый текст). Эта функция выводит текст на экран, начиная с позиции указанной в скопках в виде параметров. Первым - указывается строка, вторым- столбец, третим- массив содержащий выводимый текст. Первая функция выводит текст содержащийся в массиве txt3 на первую строку, вторая функция - текст содержащийся в массиве txt4 во вторую строку.

Делаем задержку на 2000 мс, чтобы текст можно было прочесть (пункт 26), затем стираем экран (пункт 27) и выводим следующий текст содержащийся в массивах txt1 и txt2 ( пункты 28 и 29). Снова делаем задержку (пункт 30).

Далее выполняется сдвиг текста. Организуем цикл For (пункт 31). В цикле используется функция Lcd_Cmd (LCD_SHIFT_RIGHT)(пункт 32),которая сдвигает текст на екране на одну позицию вправо. При завершении цикла текст будет сдвинут на четыре позиции. Даетм задержку на 500 мс ( используя ранее определенную функцию Move_ Delay).

Далее выполняем сдвиги текста влево и вправо в бесконечном цикле. Используем оператор While (1).В начале будем сдвигать текст влево в цикле For ( пункт 35). В каждом шаге цикла выполняется функция Lcd_Cmd (LCD_SHIFT_LEFT),которая сдвигает текст влева на одну позицию. После завершения цикла текст будет смещен на семь позиции влево. Дадим задержку ( пункт 37).

Далее сдвигается текста вправо. В цикле For ( пункт 38) используется знакомая нам функцияLcd_Cmd (LCD_SHIFT_RIGHT).При завершении цикла текст перемещается на экране на 7 позиции вправо.

Следует переход к началу цикла While, описанная нами процедура сдвига повторяется.

 

 



Дата добавления: 2016-12-27; просмотров: 2381;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.