Содержание
Урок 1. Первый проект
Урок 2. Управление кнопками
Урок 3. Подключение LCD
Урок 4. Использование ШИМ
Урок 5. Таймеры
Урок 6.1. Статическая индикация
Урок 6.2. Динамическая индикация
Урок 7.1. Генерация звука
Урок 7.2. Генерация звука. Продолжение
Урок 8.1. Передача данных через UART
Урок 8.2. Передача данных через UART. Продолжение»
Урок 9. Передача данных через SPI
Урок 10. Изучение АЦП. Простой вольтметр
Урок 11. Получение синуса при помощи ШИМ
Урок 12. Измерение температуры
Урок 13. Внешние прерывания.
Урок 14. Использование отладчика
Урок 15.1. Управление инкрементальным энкодером
Урок 15.2. Управление громкостью, при помощи энкодера
Урок 16. Управление RGB светодиодом
Урок 17. Использование ИК
Урок 18.1. Знакомство с графическим дисплеем
Урок 18.2 Вывод изображения на графический дисплей
Урок 18.3 Вывод русскоязычного текста
Урок 19. Формирование сигнала, при помощи ЦАП (R2R)
Урок 20. Опрос матричной клавиатуры
Урок 21. Сторожевой таймер
Урок 22.1 Воспроизведение wav. Введение.
Урок 22.2 Воспроизведение wav. Продолжение.
Урок 23.1 Работа с внешней памятью
Урок 23.2 Работа с файловой системой Fat

По просьбам читателей, я занялся изучением графических дисплеев. Наконец, можно сказать что определенные успехи есть.

Статья долго не появлялась, потому что не хотелось использовать для этих целей сторонние библиотеки, в случае глюков добиться у их разработчиков вразумительных ответов практически не возможно. Про встроенную библиотеку я знал, но примеров ее использования найти не удавалось. Решение оказалось как всегда простым — в комплекте у codevision идут примеры, но так как я использую старую версию, то у меня этих примеров не было.

Для опытов использовался WG12864A-YYK-TN, 128х64 точек, в нем используется контроллер KS0108, соответственно на сайте можно найти пример Examples for the Samsung KS0108 (HD61202) graphic LCD controller. С небольшой пометкой «Require CodeVisionAVR Evaluation or Standard V2.05.2 or later» , т.е. пришло время переходить на более новую версию.

Предупреждая вопросы по другим типам графических дисплеев, в т.ч. и Nokia3310, сразу скажу, библиотеки есть, примеры есть — изучайте, сложностей быть не должно.

Тем не менее, прошивка из примера упорно не хотела работать в протеусе, то что она работает я не сомневался, косяк явно был в протеусе. В конце концов выяснилась интересная штука, прошивка заточена под частоту 16МГц, такую же частоту указывал на Atmega128 в протеусе, однако на экране вылезали кракозябы. Попробовал уменьшить частоту и чудо — все заработало на частоте 2 и 4МГц. Так что рекомендую сразу отлаживаться на железе.

Теперь переходим непосредственно к описанию. Работать с графическим дисплеем, оказалось ничуть не сложнее, чем с обычным символьным жк. Схема немного больше чем у символьного экрана. Микроконтроллер использован ATmega8. Назначить ножки можно абсолютно любые, мне приглянулись эти.

18-1

Обратите внимание, если вы используете ks0108, то у него 2 типа битов выбора контроллера CS1 и CS2, у меня они оказались инверсные, т.е. /CS1 и /CS2, какие будут у вас смотрите в дш на свой дисплей.

18-2

#include <mega8.h>
#include <glcd.h>
#include <font5x7.h>
 
void main(void)
{
GLCDINIT_t glcd_init_data;
 
PORTB=0x00;
DDRB=0x00;
 
PORTC=0x00;
DDRC=0x00;
 
PORTD=0x00;
DDRD=0x00;
 
glcd_init_data.font=font5x7;
glcd_init(&glcd_init_data);
 
while (1)
      {
      glcd_line(0,5,127,5);
      glcd_line(0,5,0,58);
      glcd_outtextxyf(25,20,"AVR-START.RU");
      glcd_outtextxyf(26,30,"electronics");
      glcd_outtextxyf(20,40,"for beginners!");
      glcd_line(0,58,127,58);
      glcd_line(127,5,127,58);
      }
}
}

Теперь по порядку:
Подключаем библиотеку для работы с графическим дисплеем

#include <glcd.h>

Подключаем файл с нарисованными заранее шрифтами

#include <font5x7.h>

Инициализация данных

GLCDINIT_t glcd_init_data;
glcd_init_data.font=font5x7;
glcd_init(&amp;glcd_init_data);

Рисуем линию, (х1,y1,x2,y2), т.е. начальная точка с координатами 0;5 конечная 127;5

glcd_line(0,5,127,5);

Выводим на экран текст 25, 20 начальная координата X,Y.

glcd_outtextxyf(25,20,"AVR-START.RU");

В результате, все заработало сразу, без всяких танцев с бубном.
18-3
Если руки дойдут, попробую повозиться с картинками. Прошивка и схема в протеусе доступны здесь

46 комментариев: Урок 18. Знакомство с графическим дисплеем

  • Есть, но я не думал что это настолько принципиально. До этого проблем с работоспособностью МК у меня не вызывало.

  • як вивести змінну???

  • Мужики подскажите как на ардуинке Mega2560 подключить дисплей 480х320
    используя Codevision
    используя среду ардуино все работает. Но я привык к Codevision
    Не хочу с ним расставаться. Но пора переходить на хорошую графику
    Спасибо всем кто откликнулся

  • Да там контроллер дисплея на HX8357B

  • помогите подключить дисплей с контролером ST7920
    P.S. сайт супер

  • Владимир, ищите библиотеку под свой дисплей, легкого пути нет.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Свежие записи
Последние комментарии
  • Загрузка...
Архивы
Счетчик
Яндекс.Метрика