Микроконтроллерный таймер с управлением вращением ручки

В этом форуме обсуждаются статьи напечатанные в журнале "Радио"

Микроконтроллерный таймер с управлением вращением ручки

Сообщение alex912 » 29 мар 2019, 18:57

Журнал радио №4-2012 стр.25.
Возможно ли заменить индикатор lcd 1601 на 1602.
alex912
 
Сообщения: 16
Зарегистрирован: 11 дек 2008, 07:16

Re: Микроконтроллерный таймер с управлением вращением ручки

Сообщение Nafis » 30 мар 2019, 14:04

Индикатор WH1601A имеет одну особенность, судя по описанию он однострочный с 16 символами в строке. Но если при инициализации WH1601A задать N=0 то есть однострочный режим работы, то на табло будут выводится первые восемь символов остальные знакоместа будут погашены. Поэтому в программе пишут N=1 для работы с двумя строками, в этом случае на табло выводятся все 16 символов. Также в программе надо указать адрес 9-го знакоместа после вывода первых 8 символов, а затем выводить оставшиеся 8 символов. В случае применения двустрочного индикатора скорее всего произойдет ошибка из - за присутствия в программе адреса 9-го знакоместа. В программе устройства задано N=1.
Nafis
 
Сообщения: 73
Зарегистрирован: 29 апр 2018, 21:46

Re: Микроконтроллерный таймер с управлением вращением ручки

Сообщение Pavel » 30 мар 2019, 18:08

Да, возможно. В таких индикаторах процесс инициализации идентичен для серий индикаторов с количеством символов более 16.
Pavel
 
Сообщения: 68
Зарегистрирован: 22 мар 2010, 21:46

Re: Микроконтроллерный таймер с управлением вращением ручки

Сообщение alex912 » 31 мар 2019, 09:04

Собрал схему в протеусе, вроде все работает, 1602 светится но он пустой. Выдает ошибку (Logic contention(s) detected on net #00000.) и вторая ошибка (Logic contention(s) detected on net #00002.)
Покажите пожалуйста где в прошивке нужно поправить код.
alex912
 
Сообщения: 16
Зарегистрирован: 11 дек 2008, 07:16

Re: Микроконтроллерный таймер с управлением вращением ручки

Сообщение ASD » 31 мар 2019, 12:23

"Logic contention(s) detected on net #..." - логическое (ие) состязание (ия) обнаружено (ны) в цепи номер...

Осталось узнать, что за цепи в Вашей модели имеют номера 00000 и 00002 и не замкнуты ли они между собой.

Я посмотрел программу, там индикатор инициализируется как двухстрочный, но вывод идёт только во вторую (видимо, нижнюю) строку.
ASD
 
Сообщения: 634
Зарегистрирован: 11 мар 2008, 15:52

Re: Микроконтроллерный таймер с управлением вращением ручки

Сообщение alex912 » 31 мар 2019, 14:00

Схема собрана в протеусе и стоит дисплей 1602, на четвертом выводе 1602 нет никакого сигнала, на всех остальных выводах
есть.
alex912
 
Сообщения: 16
Зарегистрирован: 11 дек 2008, 07:16

Re: Микроконтроллерный таймер с управлением вращением ручки

Сообщение Nafis » 31 мар 2019, 14:20

В начале программы приводятся выражения, .equ line1 =0x80 ;строка 1 LCD, что означает адрес первого выводимого символа 0x00.
.equ line2 =0xC0 ;строка 2 LCD, аналогично, адрес девятого выводимого символа 0x08. Исправить программу для работы с двустрочным индикатором может только автор. Перелопачивание программы займет уйму времени, поэтому гораздо проще найти (купить) WH1601A.
Nafis
 
Сообщения: 73
Зарегистрирован: 29 апр 2018, 21:46

Re: Микроконтроллерный таймер с управлением вращением ручки

Сообщение ASD » 31 мар 2019, 15:09

Константа line2 использована в подпрограмме вывода на индикатор, а константа line 1 нигде не использована. По-э\тому весь вывод идёт в строку 2.

Утверждение
Nafis писал(а): Исправить программу для работы с двустрочным индикатором может только автор.

вызывает большие сомнения. Как правило, автор через один-два месяца после завершения разработки программы начисто забывает, что и как там сделано. И ему приходится разбираться заново, как любому другому. А ведь прошло уже семь лет.


Причину отсутствия сигнала на выводе 4 нужно сначала искать в монтаже устройства или в схеме компьютерной модели (в зависимости от того, где автор обнаружил это отсутствие).
ASD
 
Сообщения: 634
Зарегистрирован: 11 мар 2008, 15:52

Re: Микроконтроллерный таймер с управлением вращением ручки

Сообщение Nafis » 31 мар 2019, 15:38

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
Может я смотрю другую программу? От забывчивости есть противоядие, не писать программу "сплошняком", а разбить на подпрограммы с хорошими комментариями.
Nafis
 
Сообщения: 73
Зарегистрирован: 29 апр 2018, 21:46

Re: Микроконтроллерный таймер с управлением вращением ручки

Сообщение alex912 » 31 мар 2019, 16:20

Подключил дисплей 1601 в протеусе, ничего не изменилось.
alex912
 
Сообщения: 16
Зарегистрирован: 11 дек 2008, 07:16

След.

Вернуться в Журнал "РАДИО"

Кто сейчас на конференции

Сейчас этот форум просматривают: Дизель и гости: 1