Советская микросхема КР1816ВЕ39 (Однокристальная 8-разрядная микро-ЭВМ с ОЗУ )
Если применить впридачу к ней микросхему из моего предыдущего вопроса, можно ли сделать простейший персональный компьютер с выводом изображения на телевизор?
Голосование за лучший ответ
персональный комп лежит на чердаке на зилоговском процессоре———————-пистуй забирай——————-он в комплекте———————-он же спектрум
Фиолетт ФиолеттовОракул (76076) 5 лет назад
Спасибки, учту.
Но мне хотелось бы самому.
Так сказать, своими руками почувствовать дух того времени, когда любители сами паяли компы.
Эмиль Руденко Мудрец (18412) тернистый путь
Нельзя, слабовата. Это аналог интеловской однокристалки 8039, их и сейчас ставят в клавиатуры.
https://ru.wikipedia.org/wiki/MCS-48
Сергей ЗахаровГуру (3352) 5 лет назад
Такие микросхемы раньше ставили в матричные принтеры.
Повыдирал таких микросхем 13 штук. Уже 5 лет без дела валяются.
kva Искусственный Интеллект (208759) Для матричника ещё куда ни шло, в лазерники ставили более мощные RISC-процессоры. А куда их применить? Есть более современные.
АОНы на них делали. С автоответчиками.
Клавиатуру.
Фиолетт ФиолеттовОракул (76076) 5 лет назад
Клавиатуру я и так могу в магазине купить.
А вот древнейшие примитивные компы не попадаются. Нашел в запасах несколько микрух, микро-эвм, видеоконтроллер и еще какие-то.
Вот и думал плату травануть да слепить из них что то сходное с древним компом, с выводом на моник или телек.
Для этого одной микросхемы мало. простейший будет на Z80 но опять таки. нужна кучка микрух ПЗУ и миклух логики. для обвязки переферии процессора. Видеоадептер. Забудь такого вообще не было в те времена))) Видеопамять если мне моя память не изменяет лежала сразу после ПЗУ и занимала верхние 16Кб Ну и кстати тебе еще надо будет нарыть ППЗУ, прошивку прошить его, т. е. собрать программатор. Печатную плату сделать будет тоже непросто, очень много проводками соединять нужно будет. Я в 80-е такие компы собирал, дело было на поток поставлено за 1 день 1 комп выходил)) 65 рублей советских стоил, а зарплата на заводе 170 руб, конструктор стоил 21руб. Так что был неплохой приработок ))) Эх были времена. ностальгия))))
Стоит обратить внимание, что процессор по нынешним временам слабоват, уступает по возможностям даже самому из дешевых вариантов Аrduino. Однако, проблема совсем в другом.
Вы видите окошки на корпусе микросхемы. Это не для красоты! Стереть программу с микросхемы можно только при помощи ультрафиолетовой лампы, а она у вас есть?
Тем не менее, примитивную телевизионную игру на ней сделать можно. Вроде пингпонга, то есть бегающий шарик (из нескольких пикселей) – это реально.
Это слишком древние процессоры, чтобы надеясться на что-то большее, хотя в автоматике они используются и сегодня.
Программирование КР1816ВЕ51 (MCS-51)
Есть микроконтроллер КР1816ВЕ51 (как я понял, аналог/клон Intel 8051). Как заливать на него прошивку и где формировать HEX-файл из кода на Linux? Можно ли обойтись без программатора?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Программирование MCS-48 Посоветуте книгу
Здравствуйте. Решил поэкспериментировать с микроконтроллером КР1816ВЕ39. Собрал к нему блок.
[MCStudio для MCS-51] Программирование последовательного интерфейса
Подскажите, пожалуйста, как мне запрограммировать последовательный интерфейс на прием в 1 режиме 8.
Что означает состояние регистра в КР1816ВЕ51?
Помогите,пож. Мне нужно реализовать программу в С++,но для этого нужно иметь ответ на.
Книжки по MCS-51
Прошу не осуждать, что мол ленивый. гугл на что? и т.д. но проблема такова, что не могу найти.
Компилятор mcs
где можно скачать С# компилятор для linux? на сколько я понимаю, для того чтобы запустить С#.
Насколько я помню, у КР1816ВЕ51 нет внутренней памяти программ и нужно цеплять внешнюю память, через регистр, потому что шина адреса-данных мультиплексирована. Либо можно взять аналог от Atmel со встроенной флэшой, если еще с производства не сняли.
Почетный модератор
![]()
![]()
28044 / 15777 / 982
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
Сообщение от ecoo 
если еще с производства не сняли.
сняли, но найти еще можно.
Сообщение от Vladiator 
Можно ли обойтись без программатора?
нет.
как обстоит дело с программированием его под линукс не знаю.
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
Решил забить и пробовать Atmel AVR.
10229 / 6607 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
. если вы таки перешли на «нашу темную сторону» , то обратите внимание на серию AT90USB12xx, там уже содержится встроенный BOOT-загрузчик, что позволяет обойтись без программатора и подсовывать файл прошивки МК просто на флешке.
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
raxp, почему об этом не написано (или Google не находит) на официальном сайте Atmel?
10229 / 6607 / 498
Регистрация: 28.12.2010
Сообщений: 21,156
Записей в блоге: 1
. может потому, что вы не пробовали искать? Этих аппнотов полно.
http://atmel.com/dyn/resources. oc7769.pdf
Практический пример? См. вложение к посту. Вопрос, думаю, исчерпан.
Вложения
| самолетик с загрузочной USB.zip (4.47 Мб, 89 просмотров) |
483 / 330 / 32
Регистрация: 15.08.2011
Сообщений: 1,064
Сообщение от ecoo 
Насколько я помню, у КР1816ВЕ51 нет внутренней памяти программ и нужно цеплять внешнюю память,
Нет. Без внутренней памяти — ВЕ31. Но у КР1816ВЕ51 ПЗУ либо однократное, либо вообще масочное.
Без программатора не обойтись.
Регистрация: 14.08.2010
Сообщений: 148
Скоро микроконтроллеры превратятся в полноценные ПК по Гарвордцкой архетектуре.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Работа с памятью MCS-51
Здравствуйте. Изучаю МК MSC-51 . В процессе возник вопрос . Как записать число или массив чисел во.
Работа со светодиодами на MCS-51
При любом изменении состояния ДД перемещать зажженный светодиод на ДСИ справа налево.
Документация, Datasheet на mcs-96
Ищу сабж. Что то поиски в интернете мало что дали, поэтому обратился сюда. Интересует документация.
Система команд MCS-51
В AVR были такие замечательные команды как SBIC/SBIS/SBRC/SBRS которые позволяли проверить бит и.
Таймер для MCS-51
И снова дравствуйте! На данный момент я уже с другим вопросом, а точнее просьбой. Не могу.
Сенсорная кливиатура на MCS-51
Доброго времени суток. Возможно ли сделать сенсорную клавиатуру на микроконтроллерах данной.
Digifant 2, нет импульса на форсунки
Добрый день. Есть авто Passat B3, 1988, притащили, не заводится. Искра есть, пробежался по блоку оцилом, все сигналы приходят. Массы на месте и криминального ни чего не нашел. Единственное, одна масса на ЭБУ приходит с блока двигателя, а вторая получается с коммутатора, который крепится к рамке, на которой установлен сам ЭБУ. И вот это крепление между рамкой и кузовом не надежное. Покурил поиск, болезнь этого блока, но там она проявляется, в постоянно открытых форсунках. Заменил транзисторы 3,5,6 результата нет. диод 4002 звонится как и положено в одну сторону. Как вызвонить микросхему 8039? она уже меняная на КР1816ВЕ39. Пытался найти у нас ее аналоги:
MAF80A39HL; IKM1850VE39; РСВ80С3911З ни одной у нас в продаже нет.
И при включении зажигания насос вкл. не каждый раз, но когда включается работает постоянно, до выключения зажигания. Так должно быть? или он должен выключается через 3-5 секунд?
И что еще можно поставить вместо 8039?
Лабораторный таймер: импортозамещение из подручных материалов
Мне понадобился простой программируемый таймер, он же реле времени. Простая штуковина, которая в указанное время замыкает контакты. Одним словом, ничего сложного.
Вот только с началом санкций даже такое простое лабораторное оборудование купить стало невозможно. Вот хороший пример: http://www.optimum-lab.ru/product/tajmer-laboratornyj/. Отличное лабораторное устройство, но как почти прямо пишет продавец — купить его сейчас не так и просто. Другой случай: https://www.chipdip.ru/product/at8n-24-240v-ac-dc. Не такая удобная и привлекательная разработка как предыдущий вариант, зато в наличии. Но стоит почему-то непотребно много, когда для такой задачи достаточно обычного реле и таймера. А этот вариант: https://www.chipdip.ru/product0/8002563209 совмещает нездоровую цену и нездоровые сроки поставки.

Понятно почему это — везти через границу долго и сложно, на каждом этапе цена товара повышается, и всегда остается вероятность что ввезти продукцию не выйдет по неожиданной причине, и все риски закладываются в цене. Однако тренд на импортозамещение набирает обороты. Отечественные производители задумываются о том как масштабировать ватачивание из кремния новых микросхем, появляются новые отечественные производители (пусть и с иероглифами в названии), и я решил прикнуть к этому тренду.
Тратить деньги на устройство, которое нужно нечасто и не сильно мне не хочется, а потому решено сделать самому, из подручных компонентов, не вкладываясь избыточно. Что нужно для реле времени? Собственно, реле и время. И интерфейс для управления временем этого реле. Устройство не должно быть дорогим, должно содержать минимум санкционных компонентов (или не содержать их вовсе) и корректно выполнять свою функцию. Соответственно, для разработки должны быть выбраны материалы и компоненты которы производятся либо имеют отечественные аналоги. У себя я обнаружил MCS-48. Причем аж в нескольких видах: оригинальный 8049 и КР1816ВЕ39. Отличный вариант для моего устройства: уже в наличии, никакой избыточности по мощностям. Конечно, КР1816ВЕ39 выпускался в Киеве, и уже снят с выпуска, но я уверен что технологии остались где-то в академии наук, а значит в любой момент выпуск востребованных процессоров можно будет возобновить уже в России.
Важная особенность — независимо от наличия внутреннего ПЗУ, это семейство при прижатии ногии EA к питанию переходит в режим использования внешнего ПЗУ. Очень удачно что и разного рода ПЗУ у меня тоже есть!
Компоненты
Мозг я нашел, это MCS-48. Осталось определиться с интерфейсом ввода и индикации. Так как я хотел чтобы устройство было эффективно не только в экономическом плане, но и в плане удобства пользователя, то интерфейс ввода я решил ограничить двумя кнопками:
- Изменяет выбранный параметр
- Вход или выход из режима настройки
У этого микроконтроллера есть три выхода, состочние которых можно проверить одной инструкцией условного перехода! Но кнопки только две, так что и используем только два из них: T0 и T1. Значит, одной кнопкой входим в режим настроек и переключаемся по очереди между всеми изменяемым параметрами, а второй непосредственно их меняем. При этом сразу после запуска активируется режим настроек, чтобы реле не сработало когда не надо. Настраивать нужно не так много — текущее время и время активации реле (время активности можно сделать жестко заданным).
Индикация тоже должна быть максимальна удобна для пользователя, а потому для нее я решил использовать двустрочный дисплей с интерфейсом совместимым с HD44780. Дисплей имеет синхронный параллельный интерфейс, это нам подходит.
Запитать все это было логично от популярного источника пяти вольт — USB. К сожалению, данный микроконтроллер не поддерживает протокол USB, иначе можно было бы значительно расширить функционал устройства.
Обратите внимание, все примененные устройства имеют почти прямые почти отечественные аналоги. Увы, не все использованные мною детали были отечественного производства, но это будет легко исправить при масштабировании. А значит эта разработка останется актуальна в условиях тотального импортозамещения, и проект получается очень компактным в плане сложностей закупки и бюджетный в области трат. За минимальные деньги и время можно получить настолько функциональное устройство!
Разработка
Шина памяти, шина данных и GPIO в случае MCS-48 — это все одна шина. А что на ней выставлено — нужно определять по состоянию выходов ALE и PSEN. Точнее, в этом микроконтроллере нет GPIO в привычном понимании, но есть кое-что получше. Это Quasi bi-directional ports. Из особенностей — там нет жесткого нуля и единицы на выходе, а при записи определенного значения оно на короткий промежуток выдает высокий ток, а затем мягко подтягивает. Ровно то, что нужно: почти невозможно сжечь и минимум сложностей в проектировании и настройке.
Итак, общая схема такая:

Ничего сложного нет. Так как внутренняя память мне неподвластна, но можно заставить его работать с внешней памятью если подать высокий сигнал на вход EA.
Способ обращения ко внешней памяти прост: P20-P23 содержит 4 бита адреса A8-A11, D0-D7 содержит сначала 8 бит адоеса A0-A7, а затем принимает 8 бит данных D0-D7. Используются вспомогательные пины: ALE, PSEN. Так же есть пин WR, RD для использования внешней RAM, но я таким заниматься не буду.
Алгоритм чтения данных из внешней памяти:
- ALE поднимается в 1
- На шину адреса устанавливается адрес
- ALE опускаеется в 0
- Внешнее устройство считывает адрес
- PSEN опускается в 0
- Внешнее устройство выдает данные на шину данных
- PSEN поднимается в 1
- MCU считывает данные с шины данных
Программирование и производство
Программирование этого контроллера настолько же просто, насколько и нелогично. Подробно описывать этот этап я не вижу смысла, но хочу заметить несколько особенностей.
- Неожиданный набор команд, а в частности отдельные команды для запуска/остановки таймера, включения отдельных прерываний и условного перехода по состоянию определенных пинов.
- Недоступный для пользователя стек. Точнее, данные из него самому модифицировать можно, но только обращаясь в ту же область памяти. Ничего похожего на PUSH/POP тут нету. Впрочим, тут и указатель стека состоит из трех бит.
- Отсутствие команд для работы с тригонометрическими функциями. Увы, хороший ПИД-регулятор будет сделать не так уж и просто.
- Почти все регистры хранятся в памяти, причем есть команда которая переключает банк регистров (базовый адрес регистровго файла в памяти). Удобно для обработки прерываний.
- Power-on-reset тут нету, и при подаче питание микроконтроллер начинает работу из неопределенного состояния. Зато вход Reset имеет встроенный триггер шмидта, и если повесить на него конденсатор потолще — то при включении получится этот самый power-on-reset.
Так как это все таки прототип, то устройство я собирал на макетной плате. За что я люблю макетные платы — это за их эстетичность! Не нужно гадать куда идет дорожка, достаточно взять и потянуть за провод.

С лицевой стороны устройство получилось не менее симпатичным! Возможно, вам покажется что тут слишком много компонентов для такой плевой задачи. И вы будете правы: две микросхемы можно спокойно исключить, они нужны исключительно для отладки. Да, этот контроллер можно отлаживать, и отладчик уже встроен в него: если между испульсами ALE подавать низкий уровень на SS — устройство остановит выполнение программы, оставив на шине адрес следующей инструкции. Остается вооружиться мультиметром — и можно знать что происходит внутри!
К сожалению, прошить ПЗУ мне было нечем. Я проверил прошивку на компьютере как мог, благо что компилятор поставляется вместе с очень хорошим симулятором. Покупка прошивальщика параллельных флешек — удовольствие недешевое, а учитывая что мне он нужен всего на один раз — еще и бессмысленное. Так что я решил снова собрать устройство из подручных компонентов, которое решит поставленную задачу. Конечно, было желание и тут применить MCS-48, но возникает проблема курицы и яйца. А тратить аж целый 32-х битный микроконтроллер на такую плювую задачу никак не хотелось. А потому было разработано следующее решение:

Это прибор для ручного управления процессом пришивки. Так как я ценю UX превыше всего — то ограничился не только щелкалками на выходах микросхемы, а еще и удобно расположенными переключателями и индикаторами адреса/данных. Устройство само по себе рассчитано на более популярные флешки серии 010 (AT010, SST010), но через переходник к нему можно подключить любое другое устройство. Например, мою HN462732.
Так как я использую специальную ПЗУ, которая стирается ультрафиолетом, то стереть ее нужно до прошивки. Лампы для стирания у меня нет, но есть мощный ультрафиолетовый фонарик, который отлично справляется с работой:

После этой процедуры (порядка двадцати минут, но возможно можно и меньше) ПЗУ стерто — все биты устанавливаются в единицы. Так же данные могут повредиться даже от солнечного света, так что окошко необходимо заклеить специальной наклейкой. Мне повезло, я нашел в продаже такие наклейки, на них даже сразу указаны цифры, чтобы можно было версти версионность записывая разные версии прошивки на разные пзу.

Теперь можно и прошить. Собрав простенький адаптер для моей флешки (перекинуты адреса, выведено наружу +25 вольт и E на тумблер с диодом), я приступил к работе. Это заняло некоторое время.
Итак, вот что у меня получилось:

Теперь нужно проверить его в условиях, приближенных к боевым. В тесте я банально подключил к коммутируемому разьему мультиметр в режиме прозвона. Чтобы можно было примерно оценить точность таймера я поставил в кадр часы.
Как видите, устройство отработало точно, как и должно. Да, нужно развести плату для серийного произвоства, найти где закупить детали, немного оптимизировать прошивку, но это уже мелочи. Основная работа сделана, устройство работает, и даже когда оно не нужно в качестве лабораторного таймера — оно может работать в качестве часов.
Думаю, этот стартап обречен на успех, планирую отправиться с ним в бизнес-инкубатор Селигера. Если есть желающие стать партнерами и доработать устройство или помочь рассчитать экономическую часть стартапа — отправляйте пулл-реквесты в репозиторий со схемой и провкой.
- Assembler
- Программирование микроконтроллеров
- Развитие стартапа
- Нанотехнологии