Например TDA7294

Форум РадиоКот :: Просмотр темы - Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Форум РадиоКот
https://radiokot.ru/forum/

Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
https://radiokot.ru/forum/viewtopic.php?f=62&t=59015
Страница 44 из 50

Автор:  Голимый [ Чт фев 15, 2018 12:17:04 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

А простите за дурацкий вопрос. А как на ассемблере устроить десятичный счет последовательно от 0000 до 9999. Чего совсем нет никаких хороших идей
Пробовал последовательно инкрементировать 4 ячейки памяти (каждую через 9 циклов) с CJNE через 9, но например, при переходе от 0019 к 0020 сначала образуется 0009, и только в следующем цикле образуется 0020
Пробовал 16-битное сложение с DA A, но это работает ужасно, пропускает числа.
Пробовал 16-битное сложение с переводом результата в BCD, проверкой в десятичных числах, но результат громоздкий и тормозной.
Наверняка есть есть какой-то математический метод, но с двоичной арифметикой я как бы не очень.
Посоветуйте чего нибудь.

Автор:  BOB51 [ Чт фев 15, 2018 12:39:02 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Инкремент и сложение по реакции флагов могуть отличаться (на память - шклерозь) а посему
DA A неверно сработает. Нужно использовать простое сложение с единицей.
Или алгоритм математики аналогично DA A и соответственно реакции флагов результата.
16-разрядное не применимо - обрабатываем два байта - один с единицами и десятками, другой с сотнями и тысячами.
8)

Автор:  dosikus [ Чт фев 22, 2018 15:06:09 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

А как на ассемблере устроить десятичный счет последовательно от 0000 до 9999.


Разделите задачи, у вас их две :
счетчик от 0000 до 9999
и
вывод информации в понятном пользователю виде

счетчик - инкремент младшего байта + сложение старшего байта с битом переноса и контроль достижения максимума.

а вот уже в выводе городите что вам приспичит, вплоть до реализации ITOA на асме...

Автор:  Ivanoff-iv [ Чт фев 22, 2018 15:24:50 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

если перевод в BCD труден то
Пробовал последовательно инкрементировать 4 ячейки памяти (каждую через 9 циклов) с CJNE через 9, но например, при переходе от 0019 к 0020 сначала образуется 0009, и только в следующем цикле образуется 0020
доводите до совершенства...

Автор:  Amigosam [ Пт май 04, 2018 21:59:03 ]
Заголовок сообщения:  Преобразование аналоговых величин ...

В журнале Радио как-то публиковалась статья про преобразование аналоговых величин МК. Скрин во вложении. Что имеется в виду под порогом переключения? Напряжение, время??? Как его узнать?

Вложения:
1234567.jpg [103.08 KiB]
Скачиваний: 925

Автор:  salang [ Пт май 04, 2018 22:36:53 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

напряжение, разумеется. Никак- есть диапазон для данного типа ИС в ТУ, а для конкретного экземпляра определяется только практическим путем. И да, статья в 4/2005 была про PIC12F675, а название темы немного отличается

Автор:  BOB51 [ Сб май 05, 2018 06:34:45 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Лучше готовые внешние ЦАП и/или АЦП использовать (из комплектации к адуринкам).
Ранее метод применялся у ПИК МК - но там иное, чем у mcs51 построение выходных каскадов портов - для классики может не пойти.
Относительно ЦАП на основе ШИМ попроще - там любой МК сгодится.
Есть и современные от китайцев STC15F204EA с АЦП на борту (из "прощедоступных")
8)

Автор:  Amigosam [ Сб май 05, 2018 11:35:49 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

напряжение, разумеется. Никак- есть диапазон для данного типа ИС в ТУ

Например, в статейном варианте: 25 Вольт, мВ? И разве на импортные микросхемы есть ТУ? И как практически тогда определить?

Автор:  salang [ Вс май 06, 2018 14:55:44 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

где Вы в той формуле увидели В или мВ? Это т.н. эмпирическая формула. На имп. ИС есть datasheet, это ничего не меняет с точки зрения вопроса

Автор:  Amigosam [ Вс май 06, 2018 17:48:38 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Так вопрос в том и заключался: какой параметр из даташита для конкретной микросхемы нужно подсталять в формулу? Есть ли у него англоязычное название?

Автор:  Ser60 [ Вс май 06, 2018 19:02:12 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Этот параметр называется Input Low Voltage.

Автор:  Wladimir_TS [ Пн май 07, 2018 16:20:10 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Люди - помогите разобраться с тем что делает данный участок кода :

Именно не что делает каждая команда, а что делает с математической и логической стороны над значениями в ячейках ОЗУ 0018h-001Fh

Код в формате i8035 выполняется в адресах 0284h - 2FFh

Входной параметр в R2 (0-3) по кругу при каждом вызове

MOV R1,#18h
MOV R3,#8
M1:
MOV A,@R1
CPL A
RL A
RL A
ANL A,#0Ch
ADD A,R2
RL A
ANL A,#1Eh
MOVP A,@A
MOV R0,A
MOV A,@R1
CPL A
RR A
RR A
ANL A,#3Fh
INC A
ADD A,R0
MOV @R1,A
INC R1
DJNZ R3,M1

Начальные значения в ячейках от 1 до FF, 0 не бывает.

С адреса 0200h имеется таблица

db 01h, 00h, 00h, 00h, 00h, 00h, 00h, 00h,
db 01h, 00h, 00h, 00h, 01h, 00h, 00h, 00h,
db 01h, 00h, 01h, 00h, 01h, 00h, 00h, 00h,
db 01h, 00h, 01h, 00h, 01h, 00h, 01h, 00h,
db 01h, 00h, 01h, 01h, 01h, 00h, 01h, 00h,
db 01h, 00h, 01h, 01h, 01h, 00h, 01h, 01h,
db 01h, 01h, 01h, 01h, 01h, 00h, 01h, 01h,
db 01h, 01h, 01h, 01h, 01h, 01h, 01h, 01h

Есть предположение что в коде ошибка. Возможно преднамеренная, но без понимания того, что код делает сложновато.

Автор:  BOB51 [ Пн май 07, 2018 18:50:42 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

" Входной параметр в R2 (0-3) по кругу при каждом вызове

MOV R1,#18h что содержится в регистре R18 неизвестно
MOV R3,#8
M1:
MOV A,@R1
CPL A
RL A
RL A
ANL A,#0Ch
ADD A,R2
RL A
ANL A,#1Eh
MOVP A,@A что содержится в таблице на текущей странице памяти программ неизвестно
также неизвестна сама текущая страница данного кода
MOV R0,A возможно вариант стека для акумулятора
MOV A,@R1 читаем регистр
CPL A инверсия с последующим умножением на 4
RR A
RR A
ANL A,#3Fh Забиваем единицами все, кроме 6 и 7 бита
INC A похоже на дополнение до двух, но с промежуточным умножением после инверсии
ADD A,R0 предыдущее значение складывается с результатом
MOV @R1,A засылается в регистр
INC R1 и переходим на следующий элемент массива
DJNZ R3,M1
..."
Возможно какой-то вариант CRC контроля с привлечением таблицы (изврат на тему CRC8 или подобного) или кодирования с определенным ключом обработки... Как версия улучшенной "контрольной суммы" ибо обрабатывается массив данных в ОЗУ с табличным ключом (табличная CRC??).
:dont_know:

Автор:  Wladimir_TS [ Вт май 08, 2018 09:25:45 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

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

Адреса расположения программного кода и таблицы указаны

Предположений что это у меня много - нужно больше конкретики или какая-то свежая мысль.

Что значит каждая команда я знаю.

ANL на забивает единицами - а забивает нулями те поля, где в параметре "0" AND же функция...

Автор:  BOB51 [ Вт май 08, 2018 09:41:11 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Wladimir_TS
Че-то я строки с адресами слева от команд в упор и под лупой не наблюдаю...
:wink:

Автор:  Wladimir_TS [ Вт май 08, 2018 10:49:19 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

3я строка сверху с начальном сообщении указывает диапазон адресов внутри которых данный кусок находится - так как точно начального адреса не знаю (кусок выдран из более объемного кода). А как имеющийся ассемблер заставить генерить *.lst я ещё не думал. С таблицей он в одном сегменте.

Над таблицей дан конкретный адрес.

Автор:  BOB51 [ Вт май 08, 2018 12:25:11 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Без адреса команды MOV R1,#18h обсуждение не имеет смысла.
(собственно более необходим абсолютный адрес для MOVP A,@A)
Т.е.
NNNN mov..... где NNNN значение адреса перого байта команды.
8)
Раскладка адресов(как я уже писал ранее в другой теме) может быть получена или по *.hex файлу или по *.bin файлу (образ ПЗУ) без особого труда (делаем прожку на basic или на чем посовременнее).
8)
А сама страница памяти - это 0х0200:0х02FF, а не 0284h - 2FFh как у Вас.
:tea:
Диапазон целевых адресов 000хххх0 на текущей странице памяти программ 0-0x1E (0-30).
Но это всего лишь компонента обработки в которой участвует 8 байт массива в ОЗУ (0x18-0x20) и компонент из R2.
Задача прожки поменять значение массива согласно текущего байта данных, сменного ключа из R2 и ключа из таблицы в соответствии с значением первой части обработчика.
:wink:

Автор:  Wladimir_TS [ Ср май 09, 2018 15:18:41 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Можно считать, что адрес первой команды MOV R1, #18h = 0284h

Основной вопрос как раз с точки зрения назначения куска кода, а не того, как он работает.

Автор:  BOB51 [ Ср май 09, 2018 15:43:30 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Так уже сказано - вариант то-ли шифровальщика, то-ли генератора контрольного кода для сравнения блока из 8 байт.
8)
Назначение определяется работой кода и устройством (общей программой и схемотехникой конкретного устройства) где тот пакет данных используется (откуда загружается и куда затем выдается).
:tea:

Автор:  Wladimir_TS [ Ср май 09, 2018 16:34:11 ]
Заголовок сообщения:  Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Если-б было все так просто.

Но - для каждого из 4х последовательных вызовов с разными входными значениями в R2 исходное содержимое 8 ячеек памяти одинаково (независимо от их содержимого после предыдущего вызова). В них не может содержаться значение 0. Полученные 32 байта есть полезная обрабатываемая информация.

Страница 44 из 50 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/