Страница 1 из 2
Микроконтроллерный таймер с управлением вращением ручки
Добавлено:
29 мар 2019, 18:57
alex912
Журнал радио №4-2012 стр.25.
Возможно ли заменить индикатор lcd 1601 на 1602.
Re: Микроконтроллерный таймер с управлением вращением ручки
Добавлено:
30 мар 2019, 14:04
Nafis
Индикатор WH1601A имеет одну особенность, судя по описанию он однострочный с 16 символами в строке. Но если при инициализации WH1601A задать N=0 то есть однострочный режим работы, то на табло будут выводится первые восемь символов остальные знакоместа будут погашены. Поэтому в программе пишут N=1 для работы с двумя строками, в этом случае на табло выводятся все 16 символов. Также в программе надо указать адрес 9-го знакоместа после вывода первых 8 символов, а затем выводить оставшиеся 8 символов. В случае применения двустрочного индикатора скорее всего произойдет ошибка из - за присутствия в программе адреса 9-го знакоместа. В программе устройства задано N=1.
Re: Микроконтроллерный таймер с управлением вращением ручки
Добавлено:
30 мар 2019, 18:08
Pavel
Да, возможно. В таких индикаторах процесс инициализации идентичен для серий индикаторов с количеством символов более 16.
Re: Микроконтроллерный таймер с управлением вращением ручки
Добавлено:
31 мар 2019, 09:04
alex912
Собрал схему в протеусе, вроде все работает, 1602 светится но он пустой. Выдает ошибку (Logic contention(s) detected on net #00000.) и вторая ошибка (Logic contention(s) detected on net #00002.)
Покажите пожалуйста где в прошивке нужно поправить код.
Re: Микроконтроллерный таймер с управлением вращением ручки
Добавлено:
31 мар 2019, 12:23
ASD
"Logic contention(s) detected on net #..." - логическое (ие) состязание (ия) обнаружено (ны) в цепи номер...
Осталось узнать, что за цепи в Вашей модели имеют номера 00000 и 00002 и не замкнуты ли они между собой.
Я посмотрел программу, там индикатор инициализируется как двухстрочный, но вывод идёт только во вторую (видимо, нижнюю) строку.
Re: Микроконтроллерный таймер с управлением вращением ручки
Добавлено:
31 мар 2019, 14:00
alex912
Схема собрана в протеусе и стоит дисплей 1602, на четвертом выводе 1602 нет никакого сигнала, на всех остальных выводах
есть.
Re: Микроконтроллерный таймер с управлением вращением ручки
Добавлено:
31 мар 2019, 14:20
Nafis
В начале программы приводятся выражения, .equ line1 =0x80 ;строка 1 LCD, что означает адрес первого выводимого символа 0x00.
.equ line2 =0xC0 ;строка 2 LCD, аналогично, адрес девятого выводимого символа 0x08. Исправить программу для работы с двустрочным индикатором может только автор. Перелопачивание программы займет уйму времени, поэтому гораздо проще найти (купить) WH1601A.
Re: Микроконтроллерный таймер с управлением вращением ручки
Добавлено:
31 мар 2019, 15:09
ASD
Константа line2 использована в подпрограмме вывода на индикатор, а константа line 1 нигде не использована. По-э\тому весь вывод идёт в строку 2.
Утверждение
Nafis писал(а): Исправить программу для работы с двустрочным индикатором может только автор.
вызывает большие сомнения. Как правило, автор через один-два месяца после завершения разработки программы начисто забывает, что и как там сделано. И ему приходится разбираться заново, как любому другому. А ведь прошло уже семь лет.
Причину отсутствия сигнала на выводе 4 нужно сначала искать в монтаже устройства или в схеме компьютерной модели (в зависимости от того, где автор обнаружил это отсутствие).
Re: Микроконтроллерный таймер с управлением вращением ручки
Добавлено:
31 мар 2019, 15:38
Nafis
in_lcd2:
; ldi buf, line2 ;
; rcall LCD_command
elc:
inc cnt
; выводим по счетчику CNT
mov buf,cnt
cpi buf,1;17
breq set_line1 ;renc
rjmp j444
set_line1:
ldi buf, line1 ;
rcall LCD_command
Может я смотрю другую программу? От забывчивости есть противоядие, не писать программу "сплошняком", а разбить на подпрограммы с хорошими комментариями.
Re: Микроконтроллерный таймер с управлением вращением ручки
Добавлено:
31 мар 2019, 16:20
alex912
Подключил дисплей 1601 в протеусе, ничего не изменилось.