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

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
fater
Родился
Сообщения: 6
Зарегистрирован: Пт июн 07, 2024 06:36:16

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

Сообщение fater »

Спасибо. Вы говорили, что в инете полно информации. а оказалось что нет. И отвлекать людей на написание проги не хочется. Лады.
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Только будет ли Вам толк с той информации?
Практически большинство программ под динамикудля 51х или весьма почтенного возраста или с использованием для сегментного кода параллельного порта - их надо адаптировать под последовательную пересылку. А это заметный пересчет временных интервалов и структуры программы. Практически равноценно работы по написанию программы согласно алгоритма.
Чаще всего динамика совмещена еще и с клавиатурой - ее (опрос клавиатуры) за ненадобностью то удалить надо будет.
Как вариант - выкладывать схему - может кто и предложит готовое (если с P89LPC915FN уже работать приходилось).
8)
К примеру...
вот этот древний проект Вам чем нибудь поможет? :dont_know:
трп603.rar
(50.88 КБ) 156 скачиваний
написано еще для компилятора ассемблера 2500 A.D. macro assembler ver. 4.02
:tea:
Реклама
Electricman
Вымогатель припоя
Сообщения: 583
Зарегистрирован: Вс окт 20, 2019 20:54:30

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

Сообщение Electricman »

BOB51 писал(а):инвертируем оба байта по отдельности и затем сложение с 1 младшего байта и сложение с 1 с учетом переноса для старшего байта.
Можно и так, но я чуть переработал тот код, и в принципе получил то же самое. :) Может несколько больше получилось, но запас места для программы был.

Всё проверил - работает, сделал второй полноценный, законченный проект на 51ом семействе. :) Первый был часами в мотоцикл, нынешний - бортовой комп в него же. Освоил таки 18b20 на одной линии. Удобный микроконтроллер, но всё равно, вечно чего-то не хватает в командах после процессоров. :))



А динамическая индикация через последовательный вывод - это не так и сложно, особенно если не нужен последовательный порт - то проще через него выводить, как раз будут данные и строб. :) Я так для вывода на панель сделал, ибо программный вывод там не подходил от слова совсем, и теперь надо думать за внешний последовательный порт. :(
Программный вывод медленнее и сложнее, у меня получилось сделать вывод на 16 знакомест, на больше не разбирался, да и вряд ли оно и требуется. Вывести символ не проблема, а вот преобразовать номер знакоместа в позиционный код - уже сложнее. :)
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

У любого 51го уарт может работать в режиме ведущего для последовательной выгрузки данных в сдвиговых регистр.
Но там привязка к формату данных и типу пересылки фиксирована.
Да и карт жалко - связь по rs232/сом порту может понадобиться.
8)
По номер/позиция есть "табличное чтение/запись"
По тем же DPTR, и R0/R1.
8)
Реклама
Эиком - электронные компоненты и радиодетали
Electricman
Вымогатель припоя
Сообщения: 583
Зарегистрирован: Вс окт 20, 2019 20:54:30

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

Сообщение Electricman »

BOB51 писал(а):По номер/позиция есть "табличное чтение/запись"
По тем же DPTR, и R0/R1.
Можно и так, но я пошёл другим путём - сдвиг единицы и декремент адреса. Для 8 разрядов это очень просто, если больше - то тут уже надо делать программную отметку по достижению переноса, что первый байт - нули, и повторять сдвиг по новой. Не слишком я люблю табличные значения. :))
Хотя преобразование той же температуры 18b20 сделал именно табличным методом, так оказалось проще. :)

А насчёт юарта - да, нужен, но выводить 160 байт 50 раз в секунду может только он, в данном случае пришлось пожертвовать.
Реклама
fater
Родился
Сообщения: 6
Зарегистрирован: Пт июн 07, 2024 06:36:16

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

Сообщение fater »

Спасибо !
Инструкция. STC15F2K60S2 - en. pdf. Стр 320 - 327. Нарисована схема и даны листинги на Си и Ассемблер. Посмотрите пож-ста.
Сюда загрузить эту инструкцию не получилось
Спасибо Вам
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Так у той STC15F2K60S2 есть свой аппаратный SPI. Под него и пример сделан.
(да и не у всех эта даташитина имеется)
Плюс там или перегрузка по катодам будет или таки замутили посегментное сканирование (еще та заморочка по времени и качеству свечения)...Бегло ту схемку просмотрел, в программу не вникал.
В другом МК будет все по другому. Можно или ногодрыг или уарт использовать в случае "классики"
(на 4-8 позиционные дисплеи и ногодрыга хватает при современных матрицах).
Или Вам вашу схему с программой надо выкладывать в таком случае- тогда о чем то конкретном можно говорить.
Но то уже или в отдельной теме или пожалуйте в мою котуинку
https://radiokot.ru/forum/viewtopic.php?f=62&t=156720
чтоб тему ассемблера разборками с конкретной самоделкой не перегружать.
8)
Electricman
Вымогатель припоя
Сообщения: 583
Зарегистрирован: Вс окт 20, 2019 20:54:30

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

Сообщение Electricman »

Снова имеется вопрос. Ближайший брат 51 - 52 имеет таймер Т2. Какой адрес вектора его прерывания? Не могу найти, логика подсказывает, что это 2Bh, но кто знает.
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

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

Сообщение Gudd-Head »

[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Это как основа... Шаг векторов в LCALL addr.
Но в то же время лучше всего посмотреть в даташит конкретной микросхемы конкретного производителя по системе прерываний.
Адрес 0х002B может также или совмещаться с другими источниками прерываний (как у атмела T2 ИЛИ EXF2 к примеру)
или замещаться другими источниками полностью (при отсутствии на кристалле Т2).
:roll:
Electricman
Вымогатель припоя
Сообщения: 583
Зарегистрирован: Вс окт 20, 2019 20:54:30

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

Сообщение Electricman »

Gudd-Head писал(а):http://newit.gsu.by/resources/CPUs/i805 ... 270252.PDF
23-я страница
Спасибо, значит встроенная логика не подвела. :)) Трудно после долгих перерывов снова включаться в это дело)
igor48
Прорезались зубы
Сообщения: 246
Зарегистрирован: Пт ноя 22, 2013 22:06:15
Откуда: Липецк

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

Сообщение igor48 »

Здравствуйте. Заинтересовали микроконтроллеры STC на СИ. Использую Кейл C51, как собственно и рекомендует производитель. Раньше с компилятором C51 дела не имел. Никак не могу понять, есть ли возможность использовать inline функции? Пока создалось такое ощущение, что нет от слова совсем.
Electricman
Вымогатель припоя
Сообщения: 583
Зарегистрирован: Вс окт 20, 2019 20:54:30

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

Сообщение Electricman »

Electricman писал(а):А динамическая индикация через последовательный вывод - это не так и сложно, особенно если не нужен последовательный порт - то проще через него выводить, как раз будут данные и строб. Я так для вывода на панель сделал, ибо программный вывод там не подходил от слова совсем, и теперь надо думать за внешний последовательный порт.
Долго я не занимался этим проектом, люминисцентной панелью 20*4, 5*7 знакоместо, это я про неё говорил, что программный выход не подходит. Однако, внешний порт делать не хотелось, пришлось всё же программно выводить данные и освободить УАПП. И всё получилось. Правда, тут уже пошли ограничения на частоту кварца. И вот за что я люблю 89с2051 - работают при оверклокинге. Если с кварцем 22.1184МГц всё еле жило, то увеличив частоту до (ближайшей кратной частоты, что есть в наличии) 58.9824МГц всё продолжило работать, и хватать времени на всё. :))
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Рискованно...
Тогда уж ближе к STC шкам - у них диапазон выше...
Да и тактов на команду поменьше встречается...
:roll:
tonyk
Это не хвост, это антенна
Сообщения: 1309
Зарегистрирован: Вт ноя 19, 2019 06:10:18

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

Сообщение tonyk »

igor48 писал(а):STC на СИ. ... есть ли возможность использовать inline функции?
Используйте С++, в котором это есть изначально. И глубина проверки кода при компиляции в С++ больше, чем в С. Заметьте, что никто не обязывает использовать в С++ классы, он полноценно поддерживает парадигму функционального программирования.
Electricman писал(а):увеличив частоту до (ближайшей кратной частоты, что есть в наличии) 58.9824МГц
То есть вместо того, чтобы взять подходящие МК, вы ставите в позу членистоногого малыша 2051. Вас бы так.
Возьмите хотя Cygnal (Silicon Labs), работающие на 100МГц, а ещё лучше переходите на RISC-V или ARM.
Electricman
Вымогатель припоя
Сообщения: 583
Зарегистрирован: Вс окт 20, 2019 20:54:30

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

Сообщение Electricman »

Что поделать, я использую то, что могу запрограммировать на коленке и к чему знаю машкоды. :)))

Ну а так да, 59МГц - много, 36.864 хватит за глаза, да даже 33.1776. Уже небольшое превышение, хотя и тут глюков не замечено, разве что надо сброс нажимать через раз при включении.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15558
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Для STC шек китайских 33МГц обычный режим...
Жаль таки пока редкость...
:roll:
igor48
Прорезались зубы
Сообщения: 246
Зарегистрирован: Пт ноя 22, 2013 22:06:15
Откуда: Липецк

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

Сообщение igor48 »

[uquote="tonyk",url="/forum/viewtopic.php?p=4683112#p4683112"]Используйте С++, в котором это есть изначально. И глубина проверки кода при компиляции в С++ больше, чем в С. Заметьте, что никто не обязывает использовать в С++ классы, он полноценно поддерживает парадигму функционального программирования.[/uquote]
Не совсем понял. Вопрос был про то, что не получается заставить компилятор C51 для keil использовать встроенные функции.
Вы же предлагаете использовать С++. А какой компилятор предлагаете использовать? И какую среду разработки?
tonyk
Это не хвост, это антенна
Сообщения: 1309
Зарегистрирован: Вт ноя 19, 2019 06:10:18

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

Сообщение tonyk »

igor48 писал(а):Вопрос был про то, что не получается заставить компилятор C51 для keil использовать встроенные функции.
Ну так подключите их через #include и настройте линковку нужных *.a.
igor48 писал(а):А какой компилятор предлагаете использовать? И какую среду разработки?
Keil или IAR. Второй точно содержит С++ для MCS-51. Первый раньше не имел такой поддержки.

Последний прибор, в котором использовался МК с MCS-51, я сделал лет 15 назад. Там был ADuC845. С тех пор 51-ое ядро не применяю, чего и вам желаю.
igor48
Прорезались зубы
Сообщения: 246
Зарегистрирован: Пт ноя 22, 2013 22:06:15
Откуда: Липецк

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

Сообщение igor48 »

[uquote="tonyk",url="/forum/viewtopic.php?p=4683950#p4683950"]Ну так подключите их через #include[/uquote]
Прошу прощение за опечатку, не встроенных, а встраиваемых, хотя первоначально я написал правильно именно inline. Проблема в том, что тот компилятор, который идёт в комплекте с кейл для msc-51, воспринимает объявления inline функций как ошибку. А другого компилятора вроде и нет. Поэтому не могу понять, при чем тут С++.
Или все таки другой компилятор есть и его можно подключить?
Ответить

Вернуться в «Разные вопросы по МК»