для затравки вот пик с этим жк и работающим кодом (из первого поста)
предвидя ваш вопрос отвечаю, что толковых даташитов именно на этот ЖК в природе не обнаружено
у жк паралельный интерфейс, D0-D7, RD, WR, A0, CS
Последний раз редактировалось Acinonyx Чт янв 20, 2011 10:37:56, всего редактировалось 1 раз.
если поможете его расшифровать, я расскажу что это за дисплей
Его не нужно расшифровывать. Реверс-инженеринг тут незачем. Просто берёте даташит на дисплей и используете его.
за секунду до вашего ответа отредактировал второе сообщение... даташита на него не обнаружено, штука проприетарная, а вы знаете что это значит для радиолюбителей
а сам дисплей встречается в старых как мир RIM Blackberry R857 (R957), их продает один магазин в москве, раньше стоили по 90р, потом 130 (я по 130 и купил парочку), теперь стоят по 450р
этот блекбери сам по себе уже примечателен тем что имеет 386й процессор и полноценный COM порт с RS-232 уровнями
и всеже ассемблер пика это просто извращение, в жизни не видел ничего хуже этого...
не нужно ругать то в чём не смыслиш. Во вложении коментарии по ним как начинающий можеш переложить на любимый AVR.
Не критики ради, а в порядке реплики. ПИКовцы очень не любят, когда критикуют их любимца, хотя общепризнано, что невнятная мнемоника команд -- пожалуй, самая слабая сторона этого направления. Для меня она была одним из решающих факторов при выборе архитектуры для миграции с другого МК. Хотя, конечно, профи должен уметь "свободно летать на всем, что может летать, и с некоторым трудом -- на том, что, вообще говоря, летать не может". (С) М.Галай
otest писал(а):
не нужно ругать то в чём не смыслиш. Во вложении коментарии по ним как начинающий можеш переложить на любимый AVR.
Не критики ради, а в порядке реплики. ПИКовцы очень не любят, когда критикуют их любимца, хотя общепризнано, что невнятная мнемоника команд -- пожалуй, самая слабая сторона этого направления. Для меня она была одним из решающих факторов при выборе архитектуры для миграции с другого МК. Хотя, конечно, профи должен уметь "свободно летать на всем, что может летать, и с некоторым трудом -- на том, что, вообще говоря, летать не может". (С) М.Галай
Я практически свободно владею АСМом и младших (10...18) пиков и 16-разрядных PIC24/dsPIC33(30) И с большим недоумением прочел сие...
У меня такое ощущение, что автор цитаты не делает разницы между архитектурой МК и мнемоникой ассемблера....
Хотелось бы ради интереса услышать от него хотя бы одну команду АСМа из младших пиков, мнемоника которой была бы невнятной?
Должен сказать, что архитектура 24-х пиков весьма напоминает архитектуру АТМеги, если опустить разницу в разрядности....
Мнемоника у них действительно непривычна, AVR в этом плане проще в освоении. Хотя тоже молодцы. Взять хотя бы группу условных переходов BR** Нафига? Есть же десятилетиями устоявшиеся мнемоники типа JR**
Холивар начинается. Давайте прекращать, тема то про дисплей
Вот как раз о том, чтобы не разводить холивар я и толкую.
"Привычность" англоязычных аббревиатур определится знанием хотя бы минимального количества английских слов.
Тогда не будет никаких проблем с аббревиатурами ЛЮБЫХ контроллеров и процессоров.
От интела до 10-го пика.
А BR* - это Branch - ветвление, ответвляться
Ничем не лучше и не хуже JUMP...
Автора вопроса смутило скорее всего не это, а наличие при основном названии команды суффиксов: -lw , -f , -wf
Это как раз отражает архитектуру АЛУ данного семейства МК. Но архитектуру нужно по-любому знать, прежде чем разбирать или писать код на АСМе.
И это независимо от фирмы-производителя.
не будем холиварить. я абсолютно не имею ничего против ассемблера пика
просто лично меня смутили следующие 2 строки
movlw D'20'
movwf r1
1 действие, 2 строки
но не суть, просто я никогда не изучал пики, поэтому все эти конструкции для меня все равно что немецкий язык, буквы те-же, вроде даже знакомые слова есть, но нифига понять не могу
Смутило совершенно справедливо.
Это смущение произошло из-за совпадения ДВУХ причин.
Первая. Неудачный выбор имени ячейки ОЗУ (r1)
Вторая. Вы не знаете (не вспомнили) о том, что НИ В КАКИХ обсуждаемых контроллерах записать константу в произвольную ячейку ОЗУ ОДНОЙ командой невозможно. Ни в ПИКах, ни в АВРах, ни в 51-х... Просто элементарно не хватает разрядности команды...
Первая строка - это запись константы в РОН АЛУ (сверхоперативная память/рабочий регистр или аккумулятор)
Вторая строка - перезапись из рабочего регистра в прямоадресуемое ОЗУ.
Вот и вся проблема...
Acinonyx писал(а):просто лично меня смутили следующие 2 строки
movlw D'20'
movwf r1
1 действие, 2 строки
но не суть, просто я никогда не изучал пики, поэтому все эти конструкции для меня все равно что немецкий язык, буквы те-же, вроде даже знакомые слова есть, но нифига понять не могу
Это два действия. movlw D'20' - это запись десятичного числа 20 в аккумулятор, а movwf r1 - это пересылка содержимого аккумулятора в регистр r1. Прямая запись чего-либо в регистры в ПИКах не осуществляется.
КРАМ
"что НИ В КАКИХ обсуждаемых контроллерах записать константу в произвольную ячейку ОЗУ ОДНОЙ командой невозможно. Ни в ПИКах, ни в АВРах, ни в 51-х..."
одним байтом - нет, а вот насчет "одной командой" - весьма смелое утверждение
для I8080:
mvi m,#d8
для Z80:
LD (hl),#d8
LD (индекс+смещение),#d8
правда это индексная адресация и адрес ячейки предварительно помещается в соответствующий регистр
для MCS51:
mov ad,#d8 (подставляется адрес регистра рон/рсф - к примеру MOV 0x30,#56d загрузит в РОН с адресом 30h константу 56d)
mov @r0,#d8
mov @r1,#d8
вот у AVRок действительно проблемка, непосредственная загрузка данных возможна только в любой из старших 16 регистров РОН (ldi rn,$d), а далее -только пересылки "память-память" (группа LD... ) или межрегистровые в пределах РОН (mov rn,rm / movw ...)
ну а PIC - это конечно "нечто" не то акумуляторная модель - не то регистровая (касательно младшего семейства pic12/pic16)
BOB51.
Давайте читать ПО СЛОГАМ.
Итак, самоцитата:
КРАМ писал(а):Смутило совершенно справедливо.
Это смущение произошло из-за совпадения ДВУХ причин.
Первая. Неудачный выбор имени ячейки ОЗУ (r1)
Вторая. Вы не знаете (не вспомнили) о том, что НИ В КАКИХ обсуждаемыхконтроллерах записать константу в произвольную ячейку ОЗУ ОДНОЙ командой невозможно. Ни в ПИКах, ни в АВРах, ни в 51-х... Просто элементарно не хватает разрядности команды...
Первая строка - это запись константы в РОН АЛУ (сверхоперативная память/рабочий регистр или аккумулятор)
Вторая строка - перезапись из рабочего регистра в прямоадресуемое ОЗУ.
Вот и вся проблема...
По пунктам.
1. Какие контроллеры тут обсуждались? Правильно, PIC, AVR и 51-ый. Про Интел тут ничего не говорилось.
Почему не говорилось? Правильно, у других контроллеров формат команды ДЛИННЕЕ. А значит проблем с реализациией обсуждаемой однокомандной пересылкой константа - прямоадресуемое ОЗУ не будет.
2. При относительном типе адресации необходимо, как Вы совершенно справедливо и не в тему отметили ПРЕДВАРИТЕЛЬНО загрузить ТОЖЕ КОНСТАНТОЙ регистр косвенной адресации (сиречь указатель ОЗУ, пойнтер- по аглицки). Т.е. тоже НЕ ОДНОЙ КОМАНДОЙ.
Прежде чем постить возражения, любезный БОБ51, сделайте великое отдолжение собеседнику. Прочтите его пост ПО СЛОГАМ. Вдумчиво и без фантазий. Может и пост писать не потребуется - все уже сказано с избытком...
Сенкс.
ЗЫ. Вопрос о недостатках архитектуры ПИКов младшейго семейства - секрет Полишинеля. Не нравится писать для них - пишите для 18-х. Не нарвится для 18-х - пишите для 24-х
Уж последние "по-любасику" на порядок удобнее АТМеги и на столько же мощнее при идентичной (а порой и меньшей) цене...
Вообще, реализовывать задачу нужно на том контроллере, который доступен в покупке, на котором задача в принципе реализуема и , наконец, на который есть ИНСТРУМЕНТАРИЙ. Среда-Программатор, а лучше Дебаггер. Попытки смеятся над простыми контроллерами напоминают плохого клоуна. В нашей любимой отчизне даже таких не делают. А Микрочип их сваял почти 15 лет назад.