Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Спасибо. Вы говорили, что в инете полно информации. а оказалось что нет. И отвлекать людей на написание проги не хочется. Лады.
- Реклама
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Только будет ли Вам толк с той информации?
Практически большинство программ под динамикудля 51х или весьма почтенного возраста или с использованием для сегментного кода параллельного порта - их надо адаптировать под последовательную пересылку. А это заметный пересчет временных интервалов и структуры программы. Практически равноценно работы по написанию программы согласно алгоритма.
Чаще всего динамика совмещена еще и с клавиатурой - ее (опрос клавиатуры) за ненадобностью то удалить надо будет.
Как вариант - выкладывать схему - может кто и предложит готовое (если с P89LPC915FN уже работать приходилось).

К примеру...
вот этот древний проект Вам чем нибудь поможет?
написано еще для компилятора ассемблера 2500 A.D. macro assembler ver. 4.02

Практически большинство программ под динамикудля 51х или весьма почтенного возраста или с использованием для сегментного кода параллельного порта - их надо адаптировать под последовательную пересылку. А это заметный пересчет временных интервалов и структуры программы. Практически равноценно работы по написанию программы согласно алгоритма.
Чаще всего динамика совмещена еще и с клавиатурой - ее (опрос клавиатуры) за ненадобностью то удалить надо будет.
Как вариант - выкладывать схему - может кто и предложит готовое (если с P89LPC915FN уже работать приходилось).
К примеру...
вот этот древний проект Вам чем нибудь поможет?
-
Electricman
- Вымогатель припоя
- Сообщения: 583
- Зарегистрирован: Вс окт 20, 2019 20:54:30
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Можно и так, но я чуть переработал тот код, и в принципе получил то же самое.BOB51 писал(а):инвертируем оба байта по отдельности и затем сложение с 1 младшего байта и сложение с 1 с учетом переноса для старшего байта.
Всё проверил - работает, сделал второй полноценный, законченный проект на 51ом семействе.
А динамическая индикация через последовательный вывод - это не так и сложно, особенно если не нужен последовательный порт - то проще через него выводить, как раз будут данные и строб.
Программный вывод медленнее и сложнее, у меня получилось сделать вывод на 16 знакомест, на больше не разбирался, да и вряд ли оно и требуется. Вывести символ не проблема, а вот преобразовать номер знакоместа в позиционный код - уже сложнее.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
У любого 51го уарт может работать в режиме ведущего для последовательной выгрузки данных в сдвиговых регистр.
Но там привязка к формату данных и типу пересылки фиксирована.
Да и карт жалко - связь по rs232/сом порту может понадобиться.

По номер/позиция есть "табличное чтение/запись"
По тем же DPTR, и R0/R1.

Но там привязка к формату данных и типу пересылки фиксирована.
Да и карт жалко - связь по rs232/сом порту может понадобиться.
По номер/позиция есть "табличное чтение/запись"
По тем же DPTR, и R0/R1.
-
Electricman
- Вымогатель припоя
- Сообщения: 583
- Зарегистрирован: Вс окт 20, 2019 20:54:30
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Можно и так, но я пошёл другим путём - сдвиг единицы и декремент адреса. Для 8 разрядов это очень просто, если больше - то тут уже надо делать программную отметку по достижению переноса, что первый байт - нули, и повторять сдвиг по новой. Не слишком я люблю табличные значения.BOB51 писал(а):По номер/позиция есть "табличное чтение/запись"
По тем же DPTR, и R0/R1.
Хотя преобразование той же температуры 18b20 сделал именно табличным методом, так оказалось проще.
А насчёт юарта - да, нужен, но выводить 160 байт 50 раз в секунду может только он, в данном случае пришлось пожертвовать.
- Реклама
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Спасибо !
Инструкция. STC15F2K60S2 - en. pdf. Стр 320 - 327. Нарисована схема и даны листинги на Си и Ассемблер. Посмотрите пож-ста.
Сюда загрузить эту инструкцию не получилось
Спасибо Вам
Инструкция. STC15F2K60S2 - en. pdf. Стр 320 - 327. Нарисована схема и даны листинги на Си и Ассемблер. Посмотрите пож-ста.
Сюда загрузить эту инструкцию не получилось
Спасибо Вам
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Так у той STC15F2K60S2 есть свой аппаратный SPI. Под него и пример сделан.
(да и не у всех эта даташитина имеется)
Плюс там или перегрузка по катодам будет или таки замутили посегментное сканирование (еще та заморочка по времени и качеству свечения)...Бегло ту схемку просмотрел, в программу не вникал.
В другом МК будет все по другому. Можно или ногодрыг или уарт использовать в случае "классики"
(на 4-8 позиционные дисплеи и ногодрыга хватает при современных матрицах).
Или Вам вашу схему с программой надо выкладывать в таком случае- тогда о чем то конкретном можно говорить.
Но то уже или в отдельной теме или пожалуйте в мою котуинку
https://radiokot.ru/forum/viewtopic.php?f=62&t=156720
чтоб тему ассемблера разборками с конкретной самоделкой не перегружать.

(да и не у всех эта даташитина имеется)
Плюс там или перегрузка по катодам будет или таки замутили посегментное сканирование (еще та заморочка по времени и качеству свечения)...Бегло ту схемку просмотрел, в программу не вникал.
В другом МК будет все по другому. Можно или ногодрыг или уарт использовать в случае "классики"
(на 4-8 позиционные дисплеи и ногодрыга хватает при современных матрицах).
Или Вам вашу схему с программой надо выкладывать в таком случае- тогда о чем то конкретном можно говорить.
Но то уже или в отдельной теме или пожалуйте в мою котуинку
https://radiokot.ru/forum/viewtopic.php?f=62&t=156720
чтоб тему ассемблера разборками с конкретной самоделкой не перегружать.
-
Electricman
- Вымогатель припоя
- Сообщения: 583
- Зарегистрирован: Вс окт 20, 2019 20:54:30
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Снова имеется вопрос. Ближайший брат 51 - 52 имеет таймер Т2. Какой адрес вектора его прерывания? Не могу найти, логика подсказывает, что это 2Bh, но кто знает.
- Gudd-Head
- Друг Кота
- Сообщения: 20092
- Зарегистрирован: Чт сен 18, 2008 12:27:21
- Откуда: Столица Мира Санкт-Петербург
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
http://newit.gsu.by/resources/CPUs/i805 ... 270252.PDF
23-я страница
23-я страница
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Это как основа... Шаг векторов в LCALL addr.
Но в то же время лучше всего посмотреть в даташит конкретной микросхемы конкретного производителя по системе прерываний.
Адрес 0х002B может также или совмещаться с другими источниками прерываний (как у атмела T2 ИЛИ EXF2 к примеру)
или замещаться другими источниками полностью (при отсутствии на кристалле Т2).

Но в то же время лучше всего посмотреть в даташит конкретной микросхемы конкретного производителя по системе прерываний.
Адрес 0х002B может также или совмещаться с другими источниками прерываний (как у атмела T2 ИЛИ EXF2 к примеру)
или замещаться другими источниками полностью (при отсутствии на кристалле Т2).
-
Electricman
- Вымогатель припоя
- Сообщения: 583
- Зарегистрирован: Вс окт 20, 2019 20:54:30
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Спасибо, значит встроенная логика не подвела.Gudd-Head писал(а):http://newit.gsu.by/resources/CPUs/i805 ... 270252.PDF
23-я страница
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Здравствуйте. Заинтересовали микроконтроллеры STC на СИ. Использую Кейл C51, как собственно и рекомендует производитель. Раньше с компилятором C51 дела не имел. Никак не могу понять, есть ли возможность использовать inline функции? Пока создалось такое ощущение, что нет от слова совсем.
-
Electricman
- Вымогатель припоя
- Сообщения: 583
- Зарегистрирован: Вс окт 20, 2019 20:54:30
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Долго я не занимался этим проектом, люминисцентной панелью 20*4, 5*7 знакоместо, это я про неё говорил, что программный выход не подходит. Однако, внешний порт делать не хотелось, пришлось всё же программно выводить данные и освободить УАПП. И всё получилось. Правда, тут уже пошли ограничения на частоту кварца. И вот за что я люблю 89с2051 - работают при оверклокинге. Если с кварцем 22.1184МГц всё еле жило, то увеличив частоту до (ближайшей кратной частоты, что есть в наличии) 58.9824МГц всё продолжило работать, и хватать времени на всё.Electricman писал(а):А динамическая индикация через последовательный вывод - это не так и сложно, особенно если не нужен последовательный порт - то проще через него выводить, как раз будут данные и строб. Я так для вывода на панель сделал, ибо программный вывод там не подходил от слова совсем, и теперь надо думать за внешний последовательный порт.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Рискованно...
Тогда уж ближе к STC шкам - у них диапазон выше...
Да и тактов на команду поменьше встречается...

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

Жаль таки пока редкость...
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
[uquote="tonyk",url="/forum/viewtopic.php?p=4683112#p4683112"]Используйте С++, в котором это есть изначально. И глубина проверки кода при компиляции в С++ больше, чем в С. Заметьте, что никто не обязывает использовать в С++ классы, он полноценно поддерживает парадигму функционального программирования.[/uquote]
Не совсем понял. Вопрос был про то, что не получается заставить компилятор C51 для keil использовать встроенные функции.
Вы же предлагаете использовать С++. А какой компилятор предлагаете использовать? И какую среду разработки?
Не совсем понял. Вопрос был про то, что не получается заставить компилятор C51 для keil использовать встроенные функции.
Вы же предлагаете использовать С++. А какой компилятор предлагаете использовать? И какую среду разработки?
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
Ну так подключите их через #include и настройте линковку нужных *.a.igor48 писал(а):Вопрос был про то, что не получается заставить компилятор C51 для keil использовать встроенные функции.
Keil или IAR. Второй точно содержит С++ для MCS-51. Первый раньше не имел такой поддержки.igor48 писал(а):А какой компилятор предлагаете использовать? И какую среду разработки?
Последний прибор, в котором использовался МК с MCS-51, я сделал лет 15 назад. Там был ADuC845. С тех пор 51-ое ядро не применяю, чего и вам желаю.
Re: Мелкие вопросы по МК-51 а-ка MCS-51, ASM и не только..
[uquote="tonyk",url="/forum/viewtopic.php?p=4683950#p4683950"]Ну так подключите их через #include[/uquote]
Прошу прощение за опечатку, не встроенных, а встраиваемых, хотя первоначально я написал правильно именно inline. Проблема в том, что тот компилятор, который идёт в комплекте с кейл для msc-51, воспринимает объявления inline функций как ошибку. А другого компилятора вроде и нет. Поэтому не могу понять, при чем тут С++.
Или все таки другой компилятор есть и его можно подключить?
Прошу прощение за опечатку, не встроенных, а встраиваемых, хотя первоначально я написал правильно именно inline. Проблема в том, что тот компилятор, который идёт в комплекте с кейл для msc-51, воспринимает объявления inline функций как ошибку. А другого компилятора вроде и нет. Поэтому не могу понять, при чем тут С++.
Или все таки другой компилятор есть и его можно подключить?


