Программа микроконтроллера для управления ЖК-панелью на PCF2112P.

Ниже приведён пример программы для управления самодельной ЖК-панелью на драйвере PCF2112P.

Собственно говоря, всё управление нашей ЖК-панелью заключается в загрузке в микросхему драйвера нужных данных, чем и занимается микроконтроллер (PIC16F628A). Алгоритм передачи данных такой: после того, как на линии DLEN установится высокий уровень, микросхема по каждому заднему фронту тактового импульса начинает считывать состояние линии DATA (низкий уровень соответствует "нулю", высокий - "единице"). Пакет состоит из 34 бит. Нулевой бит - тестовый и он всегда должен быть равен нулю, за ним следуют 32 бита данных, соответствующие программируемым состояниям линий сегментов ("0" - сегмент выключен, "1" - включен), 33-й бит является служебным и должен быть установлен в "1". После передачи пакета необходимо сбросить линию DLEN в ноль. После того, как линия DLEN сброшена в ноль - первый же тактовый импульс приведёт к загрузке принятых данных. Далее можно передавать новые данные. Тайминги можно посмотреть в доке на PCF2112P.

Сам пакет данных в нашем примере формируется на компьютере специальной тестовой программой (ниже она тоже представлена) в зависимости от того, что мы хотим увидеть на экране. Далее с компьютера на микроконтроллер передаются 4 байта пакета (как раз 32 бита) по интерфейсу RS-232. Передать их можно любой терминалкой с hex-режимом (хотя бы нашей RH_Com). Физически для передачи данных с ПК в драйвер можно использовать плату от генератора прямоугольных импульсов, просто контроллер в этом случае надо будет прошить описанной ниже программой.

Итак, пусть к выводу RB4 микроконтроллера подключена линия DLEN, к выводу RB5 - линия CLB и к выводу RB6 - линия DATA. Для связи с ПК используется модуль UART (выводы RB1, RB2). Биты в передаваемом с ПК пакете данных удобно сразу расположить в том порядке, в котором они будут загружаться в драйвер (этим собственно и занимается наша тестовая программа на ПК), т.е. нулевой бит первого байта (1:0) пакета будет соответствовать состоянию линии S1 драйвера, первый бит первого байта (1:1) - состоянию линии S2, второй бит первого байта (1:2) - состоянию линии S3 и так далее (смотрите рисунок).

соответствие ног драйвера PCF2112P загружаемым битам

Алгоритм программы микроконтроллера и тайминги протокола:

Алгоритм программы управления драйвером PCF2112

Тайминги протокола обмена данными контроллера с PCF2112

tSUDA - Data setup time - минимальное время от момента установки новых данных до спада на линии CLB - 3 мкс.

tHDDA - Data hold time - минимальное время, в течении которого не должна изменяться линия DATA после спада на линии CLB (для нормального считывания данных) - 3 мкс.

tSUEN - Enable setup time - максимальное время, необходимое драйверу для подготовки к приёму (т.е. минимум такую паузу нужно выдержать между включением DLEN и передним фронтом первого тактового импульса) - 1 мкс.

tSUDI - disable setup time - максимальное время, необходимое чтобы завершить приём данных (т.е. минимум такую паузу нужно выдержать между спадом последнего тактового импульса и выключением линии DLEN) - 2 мкс.

tSULD - loaad pulse setup time - минимальное время между выключением линии DLEN и загрузочным тактовым импульсом - 2,5 мкс.

tBUSY - busy time - минимальное время между загрузочным тактовым импульсом и началом передачи нового пакета - 3 мкс.

tWH - 1 мкс, tWL - 5 мкс, tCLB - 10мкс - минимальные параметры тактового импульса.

Скачать текст программы (*.asm) и прошивку (*.hex) для контроллера.

Скачать тестовую программу для ПК и её исходники на C++ Builder 6.

radiohlam.ruпрограммированиепромышленные микрухи и девайсы

Понравилась статья? Поделись с друзьями!

Обсудить эту статью на форуме

 
Rambler's Top100 © 2009 - Материалы сайта охраняются законом об авторском праве