Форум по микроконтроллерам: Устройство с индикацией и вводом параметров - Форум по микроконтроллерам

Перейти к содержимому

  • 3 Страниц +
  • 1
  • 2
  • 3
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Устройство с индикацией и вводом параметров

#1 Пользователь офлайн   Ivan12 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 25
  • Регистрация: 08 Сентябрь 20

Отправлено 08 Сентябрь 2020 - 08:59

Добрый день!
Есть у меня устройство для управления сварочным полуавтоматом. Лет пять назад собрал для него плату. Программа на PIC16F877A, писал ее не я. В программе есть параметры для изменения нескольких выдержек времени. Иногда требуется изменять эти параметры. С этим я разобрался. Но для этого требуется перепрошивка. Хочу сделать (самостоятельно) доработку, чтобы можно было просматривать и изменять параметры на семисегментном индикаторе (а лучше сразу на ЖКИ 2х16) с возможностью сохранения в энергонезависимой памяти. Параметров не более 10 (бинарные типа "РУЧ"/"АВТ", и десятичные 3-х значные). Плюс потребуется несколько кнопок для удобства перелистывания и сохранения (сколько?). А вопрос такой, с чего начать? Я тут на сайте смотрел куски кодов от Alex, очень толково написано. Правильно я понимаю, что он использует расширенные инструкции, которые есть в синтаксисе MPASM? Просто порою смотришь, как радиолюбители делают программы с использованием команд конкретного микроконтроллера, как там только не навернуто!
Свободных ножек на моем микроконтроллере достаточно, используются только 5 (кнопка, педаль, 3 выхода с оптронной развязкой) существующая программа занимает ок 600 байт, всего там памяти 4000 байт.
Сам я только начинаю разбираться с МК. В институте был предмет, помню там программировали КР580ВМ80 с использованием мнемоники, а возможно даже просто машинного кода конкретных команд.
0

#2 Пользователь офлайн   MAZ 

  • Консерватор - до мозга костей и суставов
  • Группа: Администраторы
  • Сообщений: 1 538
  • Регистрация: 15 Февраль 11
  • ГородРоссия

Отправлено 08 Сентябрь 2020 - 13:13

Ваше желание, достойно уважения. По сути, Вы хотите написать новую программу.
Начать можно с того, чтобы научиться управлять индикатором. Протестировать клавиатуру. Потом потихоньку это подключать к проекту. Желательно иметь отладчик. Если есть конкретные вопросы, с удовольствием отвечу.
Могу дать очень простой вариант инициализации и управления индикатором. Ну и по клаве есть наработки.))
Если бы Бог не был консерватором, вместо десяти заповедей мы имели бы десять предложений
0

#3 Пользователь офлайн   Ivan12 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 25
  • Регистрация: 08 Сентябрь 20

Отправлено 08 Сентябрь 2020 - 14:11

Да, согласен. Но больше всего интересует, как производить "врезку" нового кода в исходную программу, в каком месте его располагать. В учебниках об этом мало. Вообще мало информации о том, как производить компоновку программы, выстраивать ее структуру. Обычно идет рассмотрение отдельных команд. А потом сразу разбирается готовое устройство.
Но это после. Сейчас конечно хочу освоить индикацию, запись переменных в ЕЕПРОМ, ввод с кнопок. Буду рад если поможете наработками.

И еще вопрос: есть пара микроконтроллеров PIC18F87J11 (привезли с выставки в 2015) есть у них "перспективы применения" в радиолюбительской практике?

Сообщение отредактировал Ivan12: 08 Сентябрь 2020 - 14:16

0

#4 Пользователь офлайн   MAZ 

  • Консерватор - до мозга костей и суставов
  • Группа: Администраторы
  • Сообщений: 1 538
  • Регистрация: 15 Февраль 11
  • ГородРоссия

Отправлено 08 Сентябрь 2020 - 17:32

По мне лучше написать программу самому, чем разбираться в чужой.
Структура программы бывают разные. Могу предложить свою ОС.)) Я её так называю. Смысл простой. Запускаем таймер, пусть на 5мс, 10мс.... Контролируем флаг переполнения таймера в прерываниях, по нему устанавливаем флаг нового цикла программы.
В основном цикле программы ждем появления этого флага. И выполняется цикл. Например, опрос клавиатуру, счет задержек для команд индикатора, опрос клавиатуры, счет других задержек, и т.д. и т.п Мне обычно и 5мс хватает при такте 1 мкс.
Но наверно я загрузил.))
Если есть исходник киньте посмотреть.
Прикрепленный файл  EEPROM.txt (4,63К)
Количество загрузок:: 11
Прикрепленный файл  индикатор .asm (6,82К)
Количество загрузок:: 12
Индикатор и запись/чтение. Если что, спрашивайте.
Если бы Бог не был консерватором, вместо десяти заповедей мы имели бы десять предложений
0

#5 Пользователь офлайн   Ivan12 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 25
  • Регистрация: 08 Сентябрь 20

Отправлено 08 Сентябрь 2020 - 21:40

Добрый вечер! Сейчас скину. Я погляжу Ваши файлы, если будут вопросы спрошу. Благодарю за ответ.

Прикрепленные файлы

  • Прикрепленный файл  SVARKA.asm (11,79К)
    Количество загрузок:: 10

Сообщение отредактировал Ivan12: 08 Сентябрь 2020 - 21:41

0

#6 Пользователь офлайн   MAZ 

  • Консерватор - до мозга костей и суставов
  • Группа: Администраторы
  • Сообщений: 1 538
  • Регистрация: 15 Февраль 11
  • ГородРоссия

Отправлено 09 Сентябрь 2020 - 00:08

Это не исходник, а дизассемблер прошивки, машинного кода. Очень простая программа. Но разобраться можно.
Я не знаю, что Вы знаете и можете. Для начала, создать проект в лабе. И попробовать скомпилировать Ваш текст. Если ошибок не будет, то можно оформлять по человечески. А потом в симуляторе и анализаторе исследовать программу. Потом уже думать о модернизации.
Если бы Бог не был консерватором, вместо десяти заповедей мы имели бы десять предложений
0

#7 Пользователь офлайн   Ivan12 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 25
  • Регистрация: 08 Сентябрь 20

Отправлено 09 Сентябрь 2020 - 08:16

Здравствуйте!

По поводу простоты не согласен. Эту программу пытались делать несколько человек. Получилось только у последнего.
Первый вариант был на АВР ке. Страшно глючная была. Решили что сбивается из-за помех от сварочника, хотя он почти в метре от пульта.
Сделали на ПИК. Второй вариант давал "рваный" выходной сигнал, был чувствителен к дребезгу педали, (мне чуть пальцы на прищемило!)
Третий вариант формировал неполные циклы, нужно было умело манипулировать педалью.
Четвертый ,что прислал писал преподаватель из института, в нем выкинули концевики и переключатель авто. Он работает четко, в точности как заводской блок.
Циклы четкие, по кратковременному нажатию педали (это видно по осциллографу). Но в плане перенастройки неудобства.
0

#8 Пользователь офлайн   MAZ 

  • Консерватор - до мозга костей и суставов
  • Группа: Администраторы
  • Сообщений: 1 538
  • Регистрация: 15 Февраль 11
  • ГородРоссия

Отправлено 09 Сентябрь 2020 - 10:27

Это программа не простая, а очень простая.)) Физика работы это другое дело. Но это зависит от знания физики процесса. Например, программист должен учесть "дребезг" педали. Контроллер формирует импульсы, насколько я понял, и ему по барабану, какая физика. Одним словом, зависит от знаний процесса разработчиком. По надежности пики конечно в авторитете. Ну и такую программу делать на 877, это все равно 1кг картошки вести на Белазе.)) Даже все Ваши модернизации, это как слону дробинка.
Ну что, сами сможете оформить текст, чтобы разобраться что делает пока контроллер?
Это трудоемкий процесс, но программа маленькая, для тренировки самое то. Очень поможет в дальнейшем.
Могу дать шаблон, на мой взгляд, удобный.
Если бы Бог не был консерватором, вместо десяти заповедей мы имели бы десять предложений
0

#9 Пользователь офлайн   Ivan12 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 25
  • Регистрация: 08 Сентябрь 20

Отправлено 09 Сентябрь 2020 - 16:42

по картошке на белазе, сами ж понимаете, радиолюбительство, делаем из того что есть на местном рынке у барыг, а там выбор не велик, и тем более это старье 20 - летней давности, их начали производить в 97 году, в новых разработках их нет, а для радиолюбителей самое то по цене.
по работе программы, там же все расписано в верхних комментах, четыре выдержки времени, два выхода, вход с педали, раньше был концевик и тумблер выбора режима, но убрали с целью упрощения. 4 значения можно менять (пока только через mplab) не понятно, для чего нужна предпоследняя строка кода, и запись в незадействованные порты в начале (возможно торопились, не успели подчистить) в ближайшее время представлю свое видение на индикацию и редактирование параметров.
По поводу "дребезга" и обработки кнопок гдето давно читал, что их можно обрабатывать без ухода в прерывания, а всякие "фильтры", "задержки" и емкости на кнопках это от недопонимания, хотя не мне судить, я только начинаю подходить к предмету.

Сообщение отредактировал Ivan12: 09 Сентябрь 2020 - 16:46

0

#10 Пользователь офлайн   MAZ 

  • Консерватор - до мозга костей и суставов
  • Группа: Администраторы
  • Сообщений: 1 538
  • Регистрация: 15 Февраль 11
  • ГородРоссия

Отправлено 09 Сентябрь 2020 - 17:17

У меня наверно нет кодировки. Текста нет. Только на английский видит. Но программа не оформлена. Еще раз говорю, это не исходник. С ней работать могут только вундеркинды. Надеюсь мы к ним не относимся.))
877 очень хороший контроллер, его брат 876, мои основные до сих пор. Для многих дел. И стоит он по сравнению с современными намного дороже. У барыг покупать сейчас не актуально. Куча интернет магазинов. Только надо уточнить, есть ли там буква А, В конфигурации без буквы А. Это точно раритет.
Ну и по существу.
Что Вам говорит запись
org 0
clrf 0x03
clrf 0x0A
Мне просто понять, насколько Вы начинающий.
Если бы Бог не был консерватором, вместо десяти заповедей мы имели бы десять предложений
0

#11 Пользователь офлайн   Ivan12 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 25
  • Регистрация: 08 Сентябрь 20

Отправлено 09 Сентябрь 2020 - 20:20

Да, действительно, кодировка улетела после того как обновил программу.
Вкратце
|---|
педаль RA3

|----------------|---------------|-----------------------|---------------------|
опускание сварка выдержка подъем
роликов сжатием роликов
;
|-------------------------------------------------------| RB1
; Воздух
; |---------------| RB2
; Cварка
--------------------------------

если удерживать педаль более чем сумма всех выдержек переход на автомат, если кратковременно нажать, то отработка 4 циклов (полных) если нажать во время подъема роликов, не включится пока ролики не поднимуться.ORG0 начать с 0
clrf 03 очистка регистра статус
clrf 0a очистка регистра pclath


Цены скорее всего держат из -за того что в DIP корпусах (для радиолюбителей удобно)

Сообщение отредактировал Ivan12: 09 Сентябрь 2020 - 20:22

0

#12 Пользователь офлайн   MAZ 

  • Консерватор - до мозга костей и суставов
  • Группа: Администраторы
  • Сообщений: 1 538
  • Регистрация: 15 Февраль 11
  • ГородРоссия

Отправлено 09 Сентябрь 2020 - 20:23

clrf 03 очистка регистра статус
clrf 0a очистка регистра pclath
С этим понятно.
Второй вопрос. А зачем?
Если бы Бог не был консерватором, вместо десяти заповедей мы имели бы десять предложений
0

#13 Пользователь офлайн   Ivan12 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 25
  • Регистрация: 08 Сентябрь 20

Отправлено 09 Сентябрь 2020 - 20:35

В смысле?
Насколько помню из института, программа начинается с определенного места (в данном с случае с начала то бишь с нуля), первым действием выбираем банк памяти, вторым обнуляем регистр для счетчика команд (или как он теперь называется)
0

#14 Пользователь офлайн   MAZ 

  • Консерватор - до мозга костей и суставов
  • Группа: Администраторы
  • Сообщений: 1 538
  • Регистрация: 15 Февраль 11
  • ГородРоссия

Отправлено 09 Сентябрь 2020 - 20:58

Вот в чем проблема)). Я не учился в институте. Тем более программированию контроллеров. Фортран наше все тогда было.))
Любая строчка на асме, и сразу вопрос, зачем? Тем более чужая программа. Обнулить STATUS, это пусть сбросить флаги, но это не сильно важно.Важно выбрать нулевой банк, где должно быть 00. Вообще, хорошо бы всю память программ очистить. Хотя бы одну страницу. Делается это легко через косвенную адресацию.
Вот PCLATH еще отвечает за страницу памяти программ.
Вообщем, Вы не очень начинающий. Много чего понимаете. Замените числа на спец регистры и регистры общего назначения в программе, восстановите комментарии, я добавлю, что на мой взгляд нужно и удобно добавить и офоромить.
Там мне кажется еще модуль ССР задействован, но как-то криво. Давайте приведем текст в порядок. И от него будем прыгать. С таким текстом, как сейчас работать невозможно. Да и можно перейти на 876А. У него и ножек по меньше и в соике они не дорогие. Это тот же 877А, только без параллельного порта.
Да и программа начинается не с нуля, а с вектора сброса. Учат же.))
Если бы Бог не был консерватором, вместо десяти заповедей мы имели бы десять предложений
0

#15 Пользователь офлайн   Ivan12 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 25
  • Регистрация: 08 Сентябрь 20

Отправлено 09 Сентябрь 2020 - 21:13

Так у меня этот предмет ознакомительным был, и то половину я пропустил, запомнились несколько лабораторных. Мое основное образование, это металлобработка, хотя и она уже загнулась в наших краях.
Насколько я помню из лекций, первые компютеры были механическим, самые простейшие это два барабана, один с данными, другой с командами, АЛУ по сути счеты (на 4 действия), Только сейчас всю эту механику запрятали в кристалл. С теоретическими основами немного разобраться смогу, но практически сделать что-либо полезное самостоятельно пока не очень (разные мигалки на светодиодах в счет не беру, ими завалены все учебники, платные и бесплатные курсы).
по программе попробую конечно разобраться, но это не быстро, время нужно.
0

#16 Пользователь офлайн   MAZ 

  • Консерватор - до мозга костей и суставов
  • Группа: Администраторы
  • Сообщений: 1 538
  • Регистрация: 15 Февраль 11
  • ГородРоссия

Отправлено 10 Сентябрь 2020 - 19:17

Ддавайте так. Я Вам буду ставить задачи и давать задания, Вы их выполнять. Я буду дополнять, что Вы сделали и объяснять, что я добавил.
Первое задание. Оформить текст. Что я писал Выше. Метки можете не трогать. Конфигурацию и т.д. Тупо рутино обозвать регистры. Мне спешить не куда. Все понимаю. Это работа на час. Но первый раз возможно долго.
Жду текст.
Если бы Бог не был консерватором, вместо десяти заповедей мы имели бы десять предложений
0

#17 Пользователь офлайн   Ivan12 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 25
  • Регистрация: 08 Сентябрь 20

Отправлено 10 Сентябрь 2020 - 20:26

Просмотр сообщенияMAZ (10 Сентябрь 2020 - 19:17) писал:

Ддавайте так. Я Вам буду ставить задачи и давать задания, Вы их выполнять. Я буду дополнять, что Вы сделали и объяснять, что я добавил.
Первое задание. Оформить текст. Что я писал Выше. Метки можете не трогать. Конфигурацию и т.д. Тупо рутино обозвать регистры. Мне спешить не куда. Все понимаю. Это работа на час. Но первый раз возможно долго.
Жду текст.

Нельзя ли поконкретнее. РСН или все?. Может образец какой-нть скинете, а то ж по разному все оформляют.
0

#18 Пользователь офлайн   MAZ 

  • Консерватор - до мозга костей и суставов
  • Группа: Администраторы
  • Сообщений: 1 538
  • Регистрация: 15 Февраль 11
  • ГородРоссия

Отправлено 10 Сентябрь 2020 - 20:28

Конечно РСН. Общие назовем вместе, по смыслу. Да и кое что еще упростим.))
Поймите меня правильно. Я должен Вас проверить на желание работать и вникать. Пока прошу сделать то, что Вам под силу. Оформим, я оформлю потом.)) И даже объясню
Если бы Бог не был консерватором, вместо десяти заповедей мы имели бы десять предложений
0

#19 Пользователь офлайн   MAZ 

  • Консерватор - до мозга костей и суставов
  • Группа: Администраторы
  • Сообщений: 1 538
  • Регистрация: 15 Февраль 11
  • ГородРоссия

Отправлено 10 Сентябрь 2020 - 23:08

Посидел вечерком посмотрел. А уверены, что Вы мне дали, вообще будет работать.)) Это огрызок программы, бессмысленный. Ради прикола такие программы делают. Типа исходник.
Если есть прошивка, киньте.
Если бы Бог не был консерватором, вместо десяти заповедей мы имели бы десять предложений
0

#20 Пользователь офлайн   Ivan12 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 25
  • Регистрация: 08 Сентябрь 20

Отправлено 11 Сентябрь 2020 - 11:32

Просмотр сообщенияMAZ (10 Сентябрь 2020 - 23:08) писал:

Посидел вечерком посмотрел. А уверены, что Вы мне дали, вообще будет работать.)) Это огрызок программы, бессмысленный. Ради прикола такие программы делают. Типа исходник.
Если есть прошивка, киньте.




В чем сомнения? Работает с 2013 г. И в чем сложность проверить?
По поводу кода, скорее всего перекомпилировано из С++ с подгрузкой лишнего.
Я тут с утра посидел, подправил в духе традиций журнала Радио с отключением #include (Вы это имели в виду?)
Закомментировал лишний на мой взгляд код, в протеусе функционирует одинаково с оригинальным.
Выделил 4 блока времени отметил %%%%%, между ними идут битовые операции (с ними еще не разбирался).
Внешних прерываний пока не обнаружил.
И да, режим CCП там есть.

Прикрепленные файлы

  • Прикрепленный файл  SVARKA.asm (12,94К)
    Количество загрузок:: 9

0

Поделиться темой:


  • 3 Страниц +
  • 1
  • 2
  • 3
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей