Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Пт июн 09, 2017 13:59:27

А Вы на 1816ве39 уже доделали конструкцию ?

Вам сдвиг какой треба - циклический напрямую --bit№f<>bit№0-- bkb или циклический через флаг C ( --bit№f<>С<>bit№0-- ) ?

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Пт июн 09, 2017 14:07:10

ВЕ39 забросил. Мало памяти адресует, а как выйти за пределы 2К - я так и не разобрался как переключать банки в памяти программ, не прервав выполнение программы. Память расходуется стремительно - то что у дрпугих МК делается одной-двумя-тремя инструкциями, тут из-за скудных возможностей требует целых подпрограмм.
И еще одна сложность. Нельзя просто так взять, и подправить адрес возврата из прерывания. Последнее что сделал - написал программный SPI, подключил MAX7219, через него помигал светодиодами.
Нужен циклический сдвиг через перенос.
Последний раз редактировалось Голимый Пт июн 09, 2017 14:10:51, всего редактировалось 1 раз.

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Пт июн 09, 2017 14:09:27

Голимый писал(а):Добрый день. Не подскажите, как для MCS-51 можно реализовать 16-битный последовательный сдвиг с использованием только битовых операций - CPL, CLR, SETB, JB, JNB. ANL, ORL использованием бит-адресуемых ячеек ОЗУ.
16-битный двоичный счетчик смог реализовать таким образом, на сдвиговый регистр ума не хватает.

Дык... там же или команда сдвига через CY RLC A/RRC A или побитовая перетасовка через промежуточный флаг пользователя/битов акумулятор доступна... чего еще выдумывать-то?
:shock:

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Пт июн 09, 2017 14:27:36

Ну как бы, и счетчик, и сдвиговый регистр можно реализовать на триггерах. CPL bit - вполне себе счетный триггер. SETB/CLR bit - синхронный RS-триггер. Работу счетчика себе представляю, и без труда написал, используя в качестве триггеров биты ячеек бит-адресуемой памяти. А вот со сдвиговым регистром - не совсем понятно

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Пт июн 09, 2017 14:38:07

А Вы в той Вашей теме в самом первом сообщении viewtopic.php?p=2979312#p29793121816ВЕ39 "нажмите" виртуальную кнопочку "!" и попросите модераторов
переименовать в ,например : "1816ВЕ39 с расширителем=580вр43 и R.T.C.=512ви1 Обсуждение."

Мы сразу прибежим туда и поможем в сложных вопросах ( возможно даже ещё больше памяти программ и памяти данных к тому музейному экспонату добавить и даже микро-операционную-системку замутить ) :wink:

Так, теперь по 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


8)

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Пт июн 09, 2017 14:59:06

Алгоритм примерно таков :

Мне этот прием известен. Он был в какой-то книжке по 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 ведет к выходу из подпрограммы.
Мне хочется таким-же примерно способом сделать сдвиговый регистр произвольной длинны.

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Пт июн 09, 2017 15:27:27

Если желаете вычурно сделать сдвиг любого значения на любое число бит, то :
Можно сначала перенести значение любой длины ( но не длиннее 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 указывает на начальный байт значения результата


В общем такое вот "развлечение" тож возможно. Но зачем ?
Последний раз редактировалось petrenko Пт июн 09, 2017 21:26:38, всего редактировалось 1 раз.

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Пт июн 09, 2017 15:34:34

petrenko писал(а):В общем такое вот "развлечение" тож возможно. Но зачем ?

В общем, это малая часть одной задумки. Хочу реализовать алгоритм шифрования A3, для этого нужны сдвиговые регистры переменной и произвольной (не кратной 2) длинны.
Пока что отрабатываю - как мне сделать эти регистры.

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Пн сен 25, 2017 16:52:39

Ради интереса, решил попробовать C компилятор Read51, который когда-то скачал "на всякий случай". Написал программу мигалки, и получил на выходе нерабочий hex-файл (другой компилятор, SDCC - выдал нормальный). Диссамблерировал (ADIS51) результат - там бред. А вместе с hex-файлом, компилятор создал еще ассемблерный листинг, в котором есть такие строчки:
Код:
_main:   mov     SPH, #0x40            ; ENTERMAIN(16384)
          mov     SPL, #0x00
          mov     BPH, SPH
          mov     BPL, SPL                 ; #line 125    while(1)

Я так понимаю, он компилировал не под AT89C51, а под что-то сильно другое (хотя, целевой МК - этот), пусть и из этой оперы.
Что это за регистры, какому МК они могут относиться?

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Вт сен 26, 2017 06:34:23

Малоизвестная среди радиолюбителей MCS251 в вариантах от intel и Philips...
https://studopedia.ru/14_111761_semeystvo-MCS-.html
В живом виде не попадалась - посему и даташитов в библиотеку не собирал...
У кейла в описании ассемблера присутствует и под нее информация.
:roll:

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Вт сен 26, 2017 08:45:28

и вряд ли попадется. Только если из демонтированного оборудования, т.к. даже сейчас продается за совсем несмешные деньги. Эмулятор тоже не дешев

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Вт сен 26, 2017 08:51:40

BOB51 писал(а):Малоизвестная среди радиолюбителей MCS251 в вариантах от intel и Philips...

Настолько малоизвестная, что узнал только сейчас. Хотя, какую только дичь не видел прежде. (или читал о ней). Посмотрел свои оба программатора - ни один не умеет.
А жаль, интересная ведь штука.

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Вт сен 26, 2017 09:05:12

Интерес к ним был "перекрыт" за счет появления атмелевских, силабсов, STC и прочих с модернизированным 8-разрядным ядром.
А 16-разрядные это вобщем удел сложных устройств, маловостребованных в "бытовых" приложениях.
8)

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Вт сен 26, 2017 09:26:45

BOB51 писал(а):А 16-разрядные это вобщем удел сложных устройств, маловостребованных в "бытовых" приложениях.

Сейчас не считается зазорным помигать светодиодом на 32-битным ARM-е, а 16-битные, напр. MSP430 вполне себе известны в "наших кругах", и таки применяются.
Похоже, это просто "неуловимый Джо" в исполнении Intel. Тогда их просто не "раскручивали", как обычный 51-й, а щас они нафиг никому не нужны, в связи с обилием иных альтернатив.

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Вт сен 26, 2017 09:51:09

Кто знает...
:dont_know:
На сегодня и ZILOG мало известен (а сайт исключительно "для зарегистрированных пользователей" в отношении техдокументации)...
8)

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Чт окт 05, 2017 19:20:37

Доброго времени суток. Есть такой микроконтроллер АТ89С1051. Этакий "жлобский" вариант АТ89С2051, у которого вырезали UART, Timer1, сделали флеша 1 Кб, и ОЗУ 64 байта.
Внимание, вопрос: Может ли его Timer0 функционировать в режиме 3, то есть быть разделенным на ДВА 8-битных таймера ? В стандартном MCS-51 это возможно за счет того, что для прерывания одного из образованных таймеров, используеться флаг Timer1. Здесь же этого флага нет, но при этом нигде явно не указанно, что в данном МК невозможно функционирование Timer0 в таком режиме :)))

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Чт окт 05, 2017 19:30:51

а это часом не выбраковка из кристалов 4051 и 2051? тогда должно уметь все тоже кроме размера памяти

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Чт окт 05, 2017 19:36:04

Может и выбраковка, только даташит у нее есть свой, с явными упрощениями по сравнению с 2051 - http://www.keil.com/dd/docs/datashts/atmel/doc0366.pdf
Ну и из того что я пока попробовал с помощью эмуляции в своей IDE, я понял, что я могу включить этот режим, но никак не могу запустить второй 8-битный таймер. Так что получаеться, это режим, который не имеет смысла включать, ну разве что нужен один именно 8-битный таймер без перезагрузки значения.
Последний раз редактировалось Пока_без_кота Пт окт 06, 2017 07:09:51, всего редактировалось 1 раз.

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Чт окт 05, 2017 22:22:34

интересно если у вас в железе есть плата и отладчик попробовать "недокументированые функции" от старших кристалов -если это отбраковка они должны работать в ЭМУЛЯТОРЕ ограничения ядра видимо прописаны согласно ДШ...не факт что реале их нет
просто по опыту изучения техпроцеса разбраковка 1 кристалы выгодне проихзводства 3 комплектов литографических масок для этого

Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..

Пт окт 06, 2017 09:47:51

УВЫ...
Для режима 3 нужен таймер-донор для части аппаратных ресурсов.
А посикоку его нету, то соответственно и возможности включить режим 3 не предусматривается.
:roll:
Ответить