А простите за дурацкий вопрос. А как на ассемблере устроить десятичный счет последовательно от 0000 до 9999. Чего совсем нет никаких хороших идей Пробовал последовательно инкрементировать 4 ячейки памяти (каждую через 9 циклов) с CJNE через 9, но например, при переходе от 0019 к 0020 сначала образуется 0009, и только в следующем цикле образуется 0020 Пробовал 16-битное сложение с DA A, но это работает ужасно, пропускает числа. Пробовал 16-битное сложение с переводом результата в BCD, проверкой в десятичных числах, но результат громоздкий и тормозной. Наверняка есть есть какой-то математический метод, но с двоичной арифметикой я как бы не очень. Посоветуйте чего нибудь.
Инкремент и сложение по реакции флагов могуть отличаться (на память - шклерозь) а посему DA A неверно сработает. Нужно использовать простое сложение с единицей. Или алгоритм математики аналогично DA A и соответственно реакции флагов результата. 16-разрядное не применимо - обрабатываем два байта - один с единицами и десятками, другой с сотнями и тысячами.
Пробовал последовательно инкрементировать 4 ячейки памяти (каждую через 9 циклов) с CJNE через 9, но например, при переходе от 0019 к 0020 сначала образуется 0009, и только в следующем цикле образуется 0020
доводите до совершенства...
_________________ Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Зарегистрирован: Пт фев 14, 2014 20:45:33 Сообщений: 94 Откуда: Северный Кавказ
Рейтинг сообщения:0
В журнале Радио как-то публиковалась статья про преобразование аналоговых величин МК. Скрин во вложении. Что имеется в виду под порогом переключения? Напряжение, время??? Как его узнать?
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
напряжение, разумеется. Никак- есть диапазон для данного типа ИС в ТУ, а для конкретного экземпляра определяется только практическим путем. И да, статья в 4/2005 была про PIC12F675, а название темы немного отличается
Лучше готовые внешние ЦАП и/или АЦП использовать (из комплектации к адуринкам). Ранее метод применялся у ПИК МК - но там иное, чем у mcs51 построение выходных каскадов портов - для классики может не пойти. Относительно ЦАП на основе ШИМ попроще - там любой МК сгодится. Есть и современные от китайцев STC15F204EA с АЦП на борту (из "прощедоступных")
" Входной параметр в 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??).
3я строка сверху с начальном сообщении указывает диапазон адресов внутри которых данный кусок находится - так как точно начального адреса не знаю (кусок выдран из более объемного кода). А как имеющийся ассемблер заставить генерить *.lst я ещё не думал. С таблицей он в одном сегменте.
Без адреса команды MOV R1,#18h обсуждение не имеет смысла. (собственно более необходим абсолютный адрес для MOVP A,@A) Т.е. NNNN mov..... где NNNN значение адреса перого байта команды.
Раскладка адресов(как я уже писал ранее в другой теме) может быть получена или по *.hex файлу или по *.bin файлу (образ ПЗУ) без особого труда (делаем прожку на basic или на чем посовременнее).
А сама страница памяти - это 0х0200:0х02FF, а не 0284h - 2FFh как у Вас.
Диапазон целевых адресов 000хххх0 на текущей странице памяти программ 0-0x1E (0-30). Но это всего лишь компонента обработки в которой участвует 8 байт массива в ОЗУ (0x18-0x20) и компонент из R2. Задача прожки поменять значение массива согласно текущего байта данных, сменного ключа из R2 и ключа из таблицы в соответствии с значением первой части обработчика.
Так уже сказано - вариант то-ли шифровальщика, то-ли генератора контрольного кода для сравнения блока из 8 байт.
Назначение определяется работой кода и устройством (общей программой и схемотехникой конкретного устройства) где тот пакет данных используется (откуда загружается и куда затем выдается).
Но - для каждого из 4х последовательных вызовов с разными входными значениями в R2 исходное содержимое 8 ячеек памяти одинаково (независимо от их содержимого после предыдущего вызова). В них не может содержаться значение 0. Полученные 32 байта есть полезная обрабатываемая информация.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения