Свежие обсуждения
Документация

Частотомер на PIC-e. P1.10.2002

1 3

Ну извините... Вы же сказали что он вам нужен, но не сказали что его вам уже прислали

 

Артём, спасибо за заботу.

 

Собрался сделать этот частотомер. У кого-нибудь плата под него есть?

 

Я пока так и не сподобился, использовал готовый ЦШ01.

 

посмотрю... может действительно готовый дешевле будет, а то ЖК-дисплей все портит своей ценой (на LED - не хочу)

 

Развел п/п. Схему автоотключения не делал, добавил дополнительные кнопки для расширения функциональности...

Слева - вход
Справа снизу - вход питания
чуть выше - выход на ЖК-дисплей

Слева снизу - места под кнопки

 

Вот и я собрал его. Как и полагается, заработал со второго раза
Но вот только работает первая строка индикатора. Вторая пустая. Монтаж проверил, явных ошибок не выявил, да и работает же дисплей...
До этого с текстовыми ЖК-дисплеями не работал, только с HT-1611.
Этот у меня AC162AYJLY56H с контроллером KS0066U (говорят - аналог).
Прошивку брал с ФТП сервера журнала.
Какие будут предложения?

 

Сегодня на работе просмотрел код прошивки частотомера.
Не смог я обнаружить там команд "4-битный режим" и "2-строчный режим" в разделе инициализации.

Вот отрывок инициализации (да простит меня автор):

.....
movlw b'00000010' ;Инициализация ЖКИ
call LEDcom
movlw b'00000001'
call LEDcom
call Pausem
movlw b'00001100'
call LEDcom
.....

Насколько я понял, первая команда (Return Home) устанавливает указатель на ячейку памяти 0h (первый символ первой строки).
Вторая команда (Clear Display) очищает дисплей.
Третья команда (Display ON/OFF control) включает дисплей.

Дальше в тексте идет вывод текста на дисплей...

Вопрос к тем, кто собрал этот частотомер: у Вас обе строки работали?

 

Сергей К: там команд "4-битный режим" До приведенных Вами комад д.б. еще команды которые после включения дисплея переводят его в 4-х битный режим. Приблизительно так это выглядит:
movlw 0x20 ;Константу инициализации в порт
movwf LCD_DATA ;данных
CLKDISP ;Импульс для записи данных
movlw .5 ; Задержка 5 mS
call LCDWAIT ; для выполнения
;------------------------------------
movlw 0x20 ;Константу инициализации в порт
movwf LCD_DATA ;данных
CLKDISP ;Импульс для записи данных
;------------------------------------
movlw 0x80 ;Константу инициализации в порт
movwf LCD_DATA ;данных
CLKDISP ;Импульс для записи данных
;------------------------------------
LCD_Setup
movlw b'00001000' ; Дисплей off, Курсор off,
call Send_Comand ; Мигание курсора off.
;------------------------------------
movlw b'00000001' ; Очистить дисплей.
call Send_Comand ;
;------------------------------------
movlw b'00001100' ; Дисплей on, Курсор off,
call Send_Comand ; Мигание курсора off.
;------------------------------------
movlw b'00000110' ; Установить режим инкремента адреса
call Send_Comand ; без сдвига дисплея
;------------------------------------
movlw DISP_Line1 ; Установить курсор в 1-ю позицию 1-й сторки
call Send_Comand ;
2-я строка конкретно не инициализируется, просто шлете на индикатор команду b'10000000' и она переводит курсор на 1-ю строку 1-ю позицию, команда b'11000000' на 2-ю строку 1-ю позицию

 

Как будет время - попробую добавить в код. Возможно автор специально выложил для скачивания "урезаную версию" или я что-то упустил....

 
1 3