Статья написана в усеченном варианте, если Вы заинтересованы в более подробном описании работы драйвера - напишите об этом в комментариях Иногда при написании программ для контроллеров серий tiny хочется получить хоть какую то отладочную информацию - предлагаю для этого использовать экран от сотовых телефонов на контроллере PCD8544 (это NOKIA 3310, 5110 и др) и описанный в статье драйвер который содержит минимум команд и не использует аппаратный SPI что позволяет подключать дисплей к любым пинам микроконтроллера
Дисплеи (3310, 5110) с таким интерфейсом (PCD8544) обычно имеют следующие линии управления: D\C - выбор команда\данные MOSI - линия последовательных данных CLK - линия тактирования передаваемых данных SCE - линия выбора дисплея RST - сброс дисплея и линии VCC и GND - для подачи питания на дисплей, питаются дисплеи обычно напряжением 3.3 вольта, правда бывают дисплеи которые содержат в себе стабилизатор напряжения, и которые можно питать и от большего напряжения и линию питания подсветки LED - которая так же питается от напряжения 3.3 вольта если у вас возникла необходимость подключения дисплея к источнику напряжением 5 вольт - поставьте последовательно с VCC и LED пару - тройку диодов для снижения напряжения питания подаваемого на дисплей. По линиям управления можно так же рекомендовать поставить либо диоды, либо резисторы на 200-400 ом
Для уменьшения количества используемых линий я предлагаю сигнал SCE дисплея подключить на землю, таким образом дисплей будет выбран для операции постоянно и нам нужно будет управлять дисплеем только по четырем линиям.
Поскольку на первое место выходит минимальный размер драйвера дисплея и минимум используемых ресурсов - мы отказываемся от буфера дисплея в памяти микроконтроллера, да это может показаться не удобным, но не стоит забывать что буфер экрана под этот дисплей займет около 500 байт, а оперативной памяти, например, в той же tiny2313 всего 128 байт...
Так же для уменьшения места в памяти программ микроконтроллера (FLASH) было решено отказаться от стандартной таблицы символов, фактически я оставил только шестнадцатеричные цифры (0..F) и символ пробела, причем кодировка символов начинается с нуля (которому соответствует цифра "0") и заканчивается 0x10 (которому соответствует символ пробела) Этого более чем достаточно чтобы выводить отладочную информацию ! Ведь при помощи цифровых кодов можно показать очень многие стадии исполнения программы, и например выводить дампы памяти...
Для увеличения количества информации выводимой на экран все символы были нарисованы на матрице 4х8 точек, еще одна вертикальная линия используется для создания межсимвольных интервалов - это позволило получить 16 полных символов в строке и 6 строк на экране дисплея !
Теперь самое интересное - размер программы управления дисплеем получился 134 байта ! Да, да, вы не ошиблись при чтении, всего 134 байта нужно для того чтобы из вашего устройства выводить отладочную информацию на дисплей от сотового телефона. Теперь вы сможете отлаживать свои программы на многих микроконтроллерах и получать максимально достоверную информацию о том как работает ваша прошивка !
Про подключение и настройку драйвера дисплея читайте в самом файле драйвера, я постарался максимально понятно описать этот процесс, там же находиться пример использования драйвера.
Готов ответить на ваши вопросы
|