Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

LCD1602 Assembler pic по 4м битам

Чт янв 16, 2020 19:56:17

Изучать асемблер начал недавно, решил разобраться в исрользовании LCD 1602 для начала, текст выводить научился по примерам из исходников но не могу понять одного,
например подключен LCD к порту B 0,1,2,3 PIC16F84A, а нужно подключить к B 4,5,6,7.
Не могу понять как определяются биты порта к которым подключен дисплей
С восьми битным интерфейсом всё понятно, использовать весь порт и всё.
Вложения
test_1684.asm
(7.31 KiB) Скачиваний: 49

Re: LCD1602 Assembler pic по 4м битам

Чт янв 16, 2020 20:35:45

Есть "хитрая" команда "andlw 0xf" - разберись.

Re: LCD1602 Assembler pic по 4м битам

Чт янв 16, 2020 21:35:56

вот ковырял тут "andlw 0x0f ; select high nibble" но что то не получилось,
Сейчас ещё разок попробую
я так понимаю нужно на "andlw 0xF0" заменить, что то не работает

Добавлено after 49 minutes 21 second:
andlw 0xf0 ; Выделяем старший полубайт
movwf TEMP ; Помещаем старший полубайт во временныую переменную TEMP
movfw LCD_PORT ; Считали данные с порта данных LCD
andlw 0x0f ; Маскируем разряды, не относящиеся к LCD
iorwf TEMP, w ; Объединяем значащие полубайты
movwf LCD_PORT ; Записываем новое значение в порт данных LCD
bsf E
bcf E ; Strobe out the LCD Data
movlw 0xD0 ; Задержка на 250 uS !!!!!!!!!!!!!!!!
movwf DCnt


В другом исходнике тоже не помогает "andlw 0x0f"

Re: LCD1602 Assembler pic по 4м битам

Чт янв 16, 2020 21:47:27

Кроме передачи данных есть еще инициализация дисплея...

Re: LCD1602 Assembler pic по 4м битам

Чт янв 16, 2020 22:08:00

вот этот исходник то что мне нужно, но хотелось бы разобраться.
Кстати тоже не могу поменять биты порта.


Добавлено after 9 minutes 36 seconds:
Кроме передачи данных есть еще инициализация дисплея...

я менял и там и там,
в протеусе видно что импульсы идут с нужных ножек а лсд молчит
Последний раз редактировалось greck Пт янв 17, 2020 01:18:44, всего редактировалось 1 раз.

Re: LCD1602 Assembler pic по 4м битам

Чт янв 16, 2020 22:41:56

у тебя действително 84 пик? просто их счас ненайти а под другие надо коректировать исходники

Re: LCD1602 Assembler pic по 4м битам

Чт янв 16, 2020 22:46:06

Со старых запасов есть и 628 и 84
А исходник был под PIC16F1459 я его переделал для 84го

Re: LCD1602 Assembler pic по 4м битам

Чт янв 16, 2020 23:50:14

movlw b'00101000&#39
Чо за хрень?

Re: LCD1602 Assembler pic по 4м битам

Пт янв 17, 2020 00:09:19

...А исходник был под PIC16F1459 я его переделал для 84го...
Смелый подход при условии что
...Изучать асемблер начал недавно...
Можно добавить не оттуда начал.
Последний раз редактировалось otest Пт янв 17, 2020 00:10:12, всего редактировалось 1 раз.

Re: LCD1602 Assembler pic по 4м битам

Пт янв 17, 2020 01:22:43

movlw b'00101000&#39
Чо за хрень?

А в MPLAB у меня нормально, movlw b'00101000' это видать сайт с кодировкой что то напутал

Добавлено after 16 minutes 37 seconds:
...А исходник был под PIC16F1459 я его переделал для 84го...
Смелый подход при условии что
...Изучать асемблер начал недавно...
Можно добавить не оттуда начал.


А что такого про смелый подход, поменять порты с С на B сложно? или может сконфигурировать мк сложно.
А вообще все мигалки кнопки EEPROM динамическую индикацию я уже освоил.
С дисплеем занялся потому как имеется исходник синтезатора частоты на pic16f84a с LCD МТ10-Т7 с енкодером а хотелось бы LCD хотябы двух строчный.

Кстати ассемблер начал изучать из за этого синтезатора, изначально диапазон 144-146 МГц думаю щас я подправлю под себя, открыл исходник блокнотом
минут 10, 15 пытался что то там высмотреть а там не понятно ни чего, в общем решил я понять что же там. Вот так и начал учить ассемблер.

Добавлено after 55 minutes 57 seconds:
у тебя действително 84 пик? просто их счас ненайти а под другие надо коректировать исходники

Посмотрел в интернет магазинах, их просто валом.
Вложения
test_1684_2.asm
(14.32 KiB) Скачиваний: 35

Re: LCD1602 Assembler pic по 4м битам

Пт янв 17, 2020 02:24:04

movfw - в среднем семействе нет команды. movfw LCD_PORT - наверно правильнее movf LCD_PORT

Re: LCD1602 Assembler pic по 4м битам

Пт янв 17, 2020 04:18:12

movfw - в среднем семействе нет команды. movfw LCD_PORT - наверно правильнее movf LCD_PORT

Что самое интересное работает эта программа :))

Re: LCD1602 Assembler pic по 4м битам

Пт янв 17, 2020 13:13:13

movfw - в среднем семействе нет команды. movfw LCD_PORT - наверно правильнее movf LCD_PORT

Команды МК нет, а ассемблерная команда есть... :tea:
Все очень просто: movfw <reg> абсолютно идентична movf <reg>, w и всего лишь наводит эстетический порядок в мнемонике.... :)

ЗЫ. По теме. Автору рекомендую В ДАННОМ СЛУЧАЕ добавить к загрузке ниббла swap. И младший ниббл станет старшим.
Вообще, смена пинов может быть любой. Для этого можно применить табличный пересчет retlw.

Re: LCD1602 Assembler pic по 4м битам

Вс янв 19, 2020 19:41:09

Получилось как то так

Код:
NybbleOut
        MOVWF   DATA1               ; B'00110010'
        ANDLW   B'11110000'         ; B'11110000'
        MOVWF   DATA2               ; B'00110000'
        MOVF    PORTB, W            ; B'00000000'
        ANDLW   B'00001111'         ;
        IORWF   DATA2, W            ;
   SWAPF   DATA2, W            ; меняем местами биты порта
        MOVWF   PORTB               ;
        CALL    TOGGLE_E            ;

        SWAPF   DATA1, F            ;
        MOVF    DATA1, W            ;
        ANDLW   B'11110000'         ;
        MOVWF   DATA2               ;
        MOVF    PORTB, W            ;
        ANDLW   B'00001111'         ;
        IORWF   DATA2, W            ;
   SWAPF   DATA2, W            ; меняем местами биты порта
        MOVWF   PORTB               ;
        CALL    TOGGLE_E            ;
        RETURN

Re: LCD1602 Assembler pic по 4м битам

Пн янв 20, 2020 10:45:54

movfw - в среднем семействе нет команды. movfw LCD_PORT - наверно правильнее movf LCD_PORT


Псевдокоманды заложены в "слэнговый набор" макросов IDE.
Открываем IDE (у меня 8.92)
тыць help
выбираем раздел topics
в выпавшем меню выбираем language tools -> mpasm assembler
тыць OK...
Далее в левой менюшке
reference -> instruction sets -> 12-Bit/14-Bit Instruction Width Pseudo-Instructions
и читаньки-распечатаньки.
Там моного чего интересного-полезного имеется.
:beer:

Re: LCD1602 Assembler pic по 4м битам

Сб фев 08, 2020 12:47:45

Оу, вау, да неужели в супер-20-20 году кто-то еще начинает изучать PIC16F84A, да еще и на ассемблере? Ваааау... Прям как археологическая раскопка. Видимо, раскопали книжки Корабельникова и видеоуроки доцэнта Ласёва или как его там.
На мой взгляд, после первого беглого знакомства с ассемблером, и особенно с PIC16F84, эти древнейшие артефакты прошлого тысячелетия надо оставить. Они просто не стоят потраченных сил и времени.
Я бы даже не стал рекомендовать ничего распечатывать - пустой перевод бумаги и тонера. Полезного там, по состоянию на 20-20 год, нет ничегошеньки. Это как сейчас смотреть в кинескопный монитор 14 дюймов 800х600 точек - в то время такие как раз и были.

Re: LCD1602 Assembler pic по 4м битам

Пн фев 10, 2020 14:11:49

Возможно PIC16F84A не стоит детального изучения - их на сегодня только в антикварных коллекциях встретить можно...
А вот ассемблер изучать смысл ВСЕГДА имеется!.
:wink:
Ответить