Некоторое время назад я начал разбираться с программированием мобильных телефонов на J2ME, при этом никаких начальных познаний по языку JAVA у меня не было. Поскольку лучший способ осваивать язык программирования – это написание конкретных приложений, я задался вопросом, а что бы такое сделать?  Так возник jAVRCalc.
   Реализация обмена данными по USART`у, которую мы рассматривали в предыдущей статье имеет некоторые недостатки. Функция отправки символа перед тем как инициировать передачу выполняет опрос флага UDRE регистра UCSRA в цикле while. А это значит, что микроконтроллер тратит свое драгоценное время на пустую работу. Прием данных осуществляется в однобайтовый буфер, при этом предыдущие данные затираются, если микроконтроллер не успевает их считывать.
   Для простых приложений такого подхода вполне достаточно, но для сложных гораздо эффективнее организовать передачу (прием) данных используя кольцевой (циклический) буфер.
   Микроконтроллер ATmega8535 имеет в своем составе модуль универсального синхронно/асинхронного приемопередатчика -  USART. С его помощью между компьютером и микроконтроллером можно организовать обмен данными по последовательному каналу. Раньше в компьютерах для этих целей использовались COM порты, однако на современных машинах они уже большая редкость. Если на вашем компьютере все-таки есть такой порт, то для подключения микроконтроллера, понадобится преобразователь уровней ТТЛ – RS232. Его можно собрать на микросхеме MAX232. 
   Микроконтроллер может “общаться” с lcd  по 8-ми или 4-ех разрядной шине данных. Первый вариант более простой, поэтому мы с него и начали, второй посложнее, но позволяет сэкономить 4 вывода микроконтроллера.  
   Давайте разберемся чем отличается это подключение, и добавим в нашу библиотеку поддержку 4-ех разрядной шины.
Новые проекты:
  "Подключение LCD к микроконтроллеру AVR. Добавляем поддержку 4-ех разрядной шины." Там почти нет комментариев, но скоро накатаю материал.. Проекты в двух вариантах - для WINAVR и IARa.
  2 тестовых проекта - микроконтроллер ATmega16 и дисплей от Nokia3310. Используется драйвер для Nokia3310 с видео-буфером. В первом проекте знакогенератор и вывод рисунка, во-втором пример вывода простой графики.