15317

Подключение ЖК(LCD) дисплея к AVR микроконтроллеру

Доклад

Информатика, кибернетика и программирование

Лабораторная работа №3 Подключение ЖКLCD дисплея к AVR микроконтроллеру Цель работы: написать для микроконтроллера программу вывода информации на LCD дисплей на языке программирования С согласно варианта. На первых двух лабораторных работах научились: управлять мик

Русский

2013-06-11

95 KB

40 чел.

Лабораторная работа №3

Подключение ЖК(LCD) дисплея к AVR микроконтроллеру

 Цель работы: написать для микроконтроллера программу вывода информации на LCD дисплей на языке программирования С согласно варианта.

На первых двух лабораторных работах научились: управлять микроконтроллером и управлять чем-то, при помощи микроконтроллера. Теперь, чтобы сделать наше устройство более дружелюбным, будем к нему подключать дисплей. Сразу нужно отметить дисплей — символьный. Это значит что внутри у него, в памяти, уже есть алфавит. Все что нам нужно — дать команду вывести строку.

Дисплеи бывают разные: разный цвет подсветки экрана, разное количество строк, разное количество символов в строке. Поэтому, здесь рассматривается дисплей WH0802A-YGK-CT, 2 строки по 8 символов, подсветка желтая светодиодная.

Создадим проект в CodeVision. На вкладке LCD укажем порт, к которому будет подключен наш дисплей (PORTD). В строке Char/Line указываем количество символов нашего ЖК дисплея (8).

Генерируем, сохраняем проект. Приводим код к следующему виду:

#include <mega8.h>

#asm

.equ

__lcd_port=0x12 ;PORTD

#endasm

#include <lcd.h>

 void main(void)

 {

 PORTD=0x00;

 DDRD=0x00;

 lcd_init(8);

while (1)

{

};

}

Добавились новые строчки

#asm
.equ__lcd_port=0×12
#endasm

Дисплей подключен к PORTD

#include <lcd.h>

Библиотека для работы с LCD дисплеями

 

Немного изменим код нашей программы:

#include <mega8.h>

 #asm

.equ __lcd_port=0x12

#endasm

#include <lcd.h>

 void main(void)

{

  PORTD=0x00;

 DDRD=0x00;

  lcd_init(8);

  lcd_gotoxy(0,0);

lcd_putsf("lesson3");

 

#pragma rl+

 lcd_gotoxy(0,1);

 lcd_putsf("Урок3");

#pragma rl-

 

while (1)

{

 

};

}

lcd_gotoxy(0,0);

Переставить курсор в координату ХУ, х – позиция по горизонтали, у – по вертикали

lcd_putsf(«lesson3″);

Вывести слово lesson3 на LCD дисплей

#pragma rl+
lcd_putsf(«
Урок3″);
#pragma rl-

Данная директива позволяет вывести на экран русский алфавит, при условии что дисплей его поддерживает

Запустим получившийся код на симуляцию в ISIS Proteus. Как видно первая строчка отображается правильно, а вот вторая кракозябами. Дело в том, что протеус не распознает русский алфавит и если ваш дисплей не будет поддерживать его, то на реальном дисплее тоже будут непонятные символы.

Вывести на дисплей надпись “Hello, world

Варианты заданий

№ Варианта

Порт подключения дисплея

Кол-во знаков дисплея

Начальное положение курсора на дисплее, x, y

Микроконтроллер

1

Порт А

24

0,1

ATmega16

2

Порт D

16

1,2

ATmega32

3

Порт B

24

1,3

ATmega64

4

Порт E

16

1,4

ATmega128

5

Порт B

12

0,2

ATmega16

6

Порт C

12

1,2

ATmega32

7

Порт C

20

0,2

ATmega64

8

Порт D

12

0,1

ATmega128

9

Порт C

16

0,3

ATmega16

10

Порт B

20

1,5

ATmega32

11

Порт D

16

1,6

ATmega64

12

Порт C

12

0,0

ATmega128

13

Порт D

20

1,7

ATmega16

14

Порт А

24

1,9

ATmega32

15

Порт E

16

1,1

ATmega64

Отчет должен содержать:

  1.  Схему устройства;
  2.  Код программы с пояснениями.