Вам сдвиг какой треба - циклический напрямую --bit№f<>bit№0-- bkb или циклический через флаг C ( --bit№f<>С<>bit№0-- ) ?
_________________ < виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
ВЕ39 забросил. Мало памяти адресует, а как выйти за пределы 2К - я так и не разобрался как переключать банки в памяти программ, не прервав выполнение программы. Память расходуется стремительно - то что у дрпугих МК делается одной-двумя-тремя инструкциями, тут из-за скудных возможностей требует целых подпрограмм. И еще одна сложность. Нельзя просто так взять, и подправить адрес возврата из прерывания. Последнее что сделал - написал программный SPI, подключил MAX7219, через него помигал светодиодами. Нужен циклический сдвиг через перенос.
Добрый день. Не подскажите, как для MCS-51 можно реализовать 16-битный последовательный сдвиг с использованием только битовых операций - CPL, CLR, SETB, JB, JNB. ANL, ORL использованием бит-адресуемых ячеек ОЗУ. 16-битный двоичный счетчик смог реализовать таким образом, на сдвиговый регистр ума не хватает.
Дык... там же или команда сдвига через CY RLC A/RRC A или побитовая перетасовка через промежуточный флаг пользователя/битов акумулятор доступна... чего еще выдумывать-то?
Ну как бы, и счетчик, и сдвиговый регистр можно реализовать на триггерах. CPL bit - вполне себе счетный триггер. SETB/CLR bit - синхронный RS-триггер. Работу счетчика себе представляю, и без труда написал, используя в качестве триггеров биты ячеек бит-адресуемой памяти. А вот со сдвиговым регистром - не совсем понятно
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
А Вы в той Вашей теме в самом первом сообщении viewtopic.php?p=2979312#p29793121816ВЕ39 "нажмите" виртуальную кнопочку "!" и попросите модераторов переименовать в ,например : "1816ВЕ39 с расширителем=580вр43 и R.T.C.=512ви1 Обсуждение."
Мы сразу прибежим туда и поможем в сложных вопросах ( возможно даже ещё больше памяти программ и памяти данных к тому музейному экспонату добавить и даже микро-операционную-системку замутить )
Так, теперь по MCS-51 : Допустим 16-и-битное значение лежит в регистрах R6 и R7 Алгоритм примерно таков : копируем из R7 в A сдвигаем A через перенос ( RRC или RLC ) , но это только чтоб в C появился крайний бит ROT16;{точка входа} копируем из R6 в A сдвигаем A через перенос , при этом крайний бит бывший в R7 вдвинется в R6 , а крайний бит из R6 выдвинется в C копируем из A в R6 копируем из R7 в A сдвигаем A через перенос , при этом крайний бит бывший в R6 вдвинется в R7 , а крайний бит из R7 выдвинется в C копируем из A в R7 ; Как нетрудно понять, в паре R6 & R7 значение циклически сдвинулось на один бит ..
Ну а если надо сдвигать более, чем на один бит, то повторим данные действия ,перейдя на ROT16 при помощи DJNZ R5(например) , ROT16
_________________ < виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Мне этот прием известен. Он был в какой-то книжке по 51 расписан, я им уже пользовался. Мне интересно сделать это методами комбинаторной логики.
Первые 4 бита этого "счетчика":
Код:
cnt_chain: cpl cnt0.0 jb cnt0.0, change1 jmp retr
change1: cpl cnt0.1 jb cnt0.1, change2 jmp retr
change2: cpl cnt0.2 jb cnt0.2, change3 jmp retr
change3: cpl cnt0.3 jb cnt0.3, change4 jmp retr
change4: cpl cnt0.4 jb cnt0.4, change5 jmp retr
Где cnt0 - бит-адресуемая ячейка памяти. Дальше идет еще 12 совершенно одинаковых итераций. У последней JB переход в начало на метку cnt_chain, а jmp retr ведет к выходу из подпрограммы. Мне хочется таким-же примерно способом сделать сдвиговый регистр произвольной длинны.
Если желаете вычурно сделать сдвиг любого значения на любое число бит, то : Можно сначала перенести значение любой длины ( но не длиннее 128 бит ) в прямоадресуемое битовое поле побайтово, ( начиная с 020h ) , а потом перенести обратно по одному биту ,просто начиная не с нулевого прямоадресуемого бита а +/- MOV C , bit00 MOV ACC.0 , C MOV C , bit01 MOV ACC.1 , C MOV C , bit02 MOV ACC.2 , C MOV C , bit03 MOV ACC.3 , C MOV C , bit04 MOV ACC.4 , C MOV C , bit05 MOV ACC.5 , C MOV C , bit06 MOV ACC.6 ,C MOV C , bit07 MOV ACC.7 , C ; это перенесли побитно начальный байт значения MOV ad , A ; где ad указывает на начальный байт значения результата
В общем такое вот "развлечение" тож возможно. Но зачем ?
_________________ < виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Последний раз редактировалось petrenko Пт июн 09, 2017 21:26:38, всего редактировалось 1 раз.
В общем такое вот "развлечение" тож возможно. Но зачем ?
В общем, это малая часть одной задумки. Хочу реализовать алгоритм шифрования A3, для этого нужны сдвиговые регистры переменной и произвольной (не кратной 2) длинны. Пока что отрабатываю - как мне сделать эти регистры.
Ради интереса, решил попробовать C компилятор Read51, который когда-то скачал "на всякий случай". Написал программу мигалки, и получил на выходе нерабочий hex-файл (другой компилятор, SDCC - выдал нормальный). Диссамблерировал (ADIS51) результат - там бред. А вместе с hex-файлом, компилятор создал еще ассемблерный листинг, в котором есть такие строчки:
Я так понимаю, он компилировал не под AT89C51, а под что-то сильно другое (хотя, целевой МК - этот), пусть и из этой оперы. Что это за регистры, какому МК они могут относиться?
Малоизвестная среди радиолюбителей MCS251 в вариантах от intel и Philips... https://studopedia.ru/14_111761_semeystvo-MCS-.html В живом виде не попадалась - посему и даташитов в библиотеку не собирал... У кейла в описании ассемблера присутствует и под нее информация.
Малоизвестная среди радиолюбителей MCS251 в вариантах от intel и Philips...
Настолько малоизвестная, что узнал только сейчас. Хотя, какую только дичь не видел прежде. (или читал о ней). Посмотрел свои оба программатора - ни один не умеет. А жаль, интересная ведь штука.
Интерес к ним был "перекрыт" за счет появления атмелевских, силабсов, STC и прочих с модернизированным 8-разрядным ядром. А 16-разрядные это вобщем удел сложных устройств, маловостребованных в "бытовых" приложениях.
А 16-разрядные это вобщем удел сложных устройств, маловостребованных в "бытовых" приложениях.
Сейчас не считается зазорным помигать светодиодом на 32-битным ARM-е, а 16-битные, напр. MSP430 вполне себе известны в "наших кругах", и таки применяются. Похоже, это просто "неуловимый Джо" в исполнении Intel. Тогда их просто не "раскручивали", как обычный 51-й, а щас они нафиг никому не нужны, в связи с обилием иных альтернатив.
Доброго времени суток. Есть такой микроконтроллер АТ89С1051. Этакий "жлобский" вариант АТ89С2051, у которого вырезали UART, Timer1, сделали флеша 1 Кб, и ОЗУ 64 байта. Внимание, вопрос: Может ли его Timer0 функционировать в режиме 3, то есть быть разделенным на ДВА 8-битных таймера ? В стандартном MCS-51 это возможно за счет того, что для прерывания одного из образованных таймеров, используеться флаг Timer1. Здесь же этого флага нет, но при этом нигде явно не указанно, что в данном МК невозможно функционирование Timer0 в таком режиме
а это часом не выбраковка из кристалов 4051 и 2051? тогда должно уметь все тоже кроме размера памяти
_________________ ZМудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Может и выбраковка, только даташит у нее есть свой, с явными упрощениями по сравнению с 2051 - http://www.keil.com/dd/docs/datashts/atmel/doc0366.pdf Ну и из того что я пока попробовал с помощью эмуляции в своей IDE, я понял, что я могу включить этот режим, но никак не могу запустить второй 8-битный таймер. Так что получаеться, это режим, который не имеет смысла включать, ну разве что нужен один именно 8-битный таймер без перезагрузки значения.
Последний раз редактировалось Пока_без_кота Пт окт 06, 2017 07:09:51, всего редактировалось 1 раз.
интересно если у вас в железе есть плата и отладчик попробовать "недокументированые функции" от старших кристалов -если это отбраковка они должны работать в ЭМУЛЯТОРЕ ограничения ядра видимо прописаны согласно ДШ...не факт что реале их нет просто по опыту изучения техпроцеса разбраковка 1 кристалы выгодне проихзводства 3 комплектов литографических масок для этого
_________________ ZМудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
УВЫ... Для режима 3 нужен таймер-донор для части аппаратных ресурсов. А посикоку его нету, то соответственно и возможности включить режим 3 не предусматривается.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения