Нужна помощь по подключению LCD и клавиатуры к PIC16F877

Подключение разных дисплейчиков
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Нужна помощь по подключению LCD и клавиатуры к PIC16F877

Сообщение rhf-admin »

Вообще про то, где-какая позиция написано в доке, но обычно у всех всё расположено стандартно, так, как описано вот в этой статье.
Читай про DDRAM и описание команды SET DDRAM ADDRESS.
Первая строка - это обычно первые 40h адресов DDRAM, вторая - вторые 40h адресов. В команде SET DDRAM ADDRESS младшие 7 бит как раз определяют адрес DDRAM, т.е. позицию курсора. В примере .131=10000011. Младшие 7 бит - это 0000011, то есть 03h, т.е. 4-я позиция в первой строке (первая позиция - 00h, вторая - 01h, третья - 02h и т.д.)
С уважением, администрация сайта.
Serhio
Читатель
Читатель
Сообщения: 12
Зарегистрирован: 21 авг 2014, 19:58

Re: Нужна помощь по подключению LCD и клавиатуры к PIC16F877

Сообщение Serhio »

Спасибо)))! Не ясен следующий момент - мы выводим символ "R" в первую строку, на четвертую позицию, затем выводим символ "а" в первую строку, на пятую позицию и тд все символы. Не могу понять где в программе мы задаем эти адреса или инкрементируем начальный адрес? Или это происходит благодаря тому, что мы настроили сдвиг курсора вправо?
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Нужна помощь по подключению LCD и клавиатуры к PIC16F877

Сообщение rhf-admin »

Да, в команде ENRY MODE SET первый бит (I/D) определяет направление автоматического сдвига адреса DRAM (и соответственно автоматического сдвига позиции выводимого символа). 0 - автоматическое уменьшение адреса (сдвиг влево), 1- автоматическое увеличение адреса (сдвиг вправо).
С уважением, администрация сайта.
Serhio
Читатель
Читатель
Сообщения: 12
Зарегистрирован: 21 авг 2014, 19:58

Re: Нужна помощь по подключению LCD и клавиатуры к PIC16F877

Сообщение Serhio »

Помогите пожалуйста победить 4х битный интерфейс. При симуляции в протеусе выдает сообщение, что мк получает данные в то время, когда занят :( . Я и временные задержки увеличивал, и в разные места их добавил - безрезультатно. Протеус показывает время симуляции, когда мк получает эти данные (то есть когда он занят и получает их). Отмерил в мплаб это время, получились строки № 185-186, а это временная задержка :o . Как мк может во время задержки получать данные? и почему он их получает когда занят? Код в асме прикладываю в ворде.
Serhio
Читатель
Читатель
Сообщения: 12
Зарегистрирован: 21 авг 2014, 19:58

Re: Нужна помощь по подключению LCD и клавиатуры к PIC16F877

Сообщение Serhio »

код
Вложения
код.docx
(17.2 КБ) 664 скачивания
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Нужна помощь по подключению LCD и клавиатуры к PIC16F877

Сообщение rhf-admin »

А есть возможность в железе попробовать?
Просто мне кажется это какой-то глюк протеуса, причём странный какой-то глюк. От кого тут МК может получать данные? Он ни у кого ничего не спрашивает, только сам данные посылает. Причём тогда, когда сам решит (после паузы).
Или может что-то где-то не настроено в этом самом МК, там же в симуляторе наверняка есть куча всяких настроек, например, частота хотя бы.
А в проге вроде всё нормально, я косяков не нашёл.
С уважением, администрация сайта.
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Нужна помощь по подключению LCD и клавиатуры к PIC16F877

Сообщение rhf-admin »

А хотя нет, один косячок всё же есть. А почему это интересно, линия RS - это первый выход порта А, и в тоже время в процедуре in_port, которая устанавливает нужные уровни на информационных выходах, первый бит посылки (DB1) изменяет первый выход порта А. Нафига мы вообще в этой процедуре 8 ног устанавливаем, если используем только 4? А тем более нафига портим себе линию RS?
Вот в этом скорее всего и проблема.
С уважением, администрация сайта.
Serhio
Читатель
Читатель
Сообщения: 12
Зарегистрирован: 21 авг 2014, 19:58

Re: Нужна помощь по подключению LCD и клавиатуры к PIC16F877

Сообщение Serhio »

К сожалению, в железе нет пока возможности проверить - командировака :( , а что касается протеуса, он выдавал сообщение о контроллере дисплея. Сейчас этого сообщения нет, но и выводимого символа нет :? . Линию RS я исправил, процедуру in_Port сократил.
Аватара пользователя
rhf-admin
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
администратор, спонсор, писатель, дизайнер, инженер, программист, идеолог
Сообщения: 3060
Зарегистрирован: 25 авг 2009, 23:19
Откуда: Уфа
Контактная информация:

Re: Нужна помощь по подключению LCD и клавиатуры к PIC16F877

Сообщение rhf-admin »

Показывай, как сократил. Где новая версия проги? :)
С уважением, администрация сайта.
Serhio
Читатель
Читатель
Сообщения: 12
Зарегистрирован: 21 авг 2014, 19:58

Re: Нужна помощь по подключению LCD и клавиатуры к PIC16F877

Сообщение Serhio »

Я закоментил лишние строки
Вложения
2.docx
(16.38 КБ) 701 скачивание
Ответить