Свежие обсуждения
Микроконтроллеры

Ликбез по программированию PIC , vol. # 2

1 12 17

picmaniac: Схемка .spl у меня чего-то не открывается. Может лучше её в GIF превратить для показа?

Переконвертил.

picmaniac: Если она нормально работает с реальным железом - это главный плюс. В этом, можно сказать, и есть цель и смысл её существования на белом свете.

В реальном железе работает нормально.

picmaniac: Вывод последовательности на индикатор, конечно, можем осуществить и "в лоб". Каждому биту - свой кусок кода. Однотипный. И свой кусок памяти программ. Просто и вполне работоспособно. Это хорошо, если битов четыре.

Для индикатора с этим контроллером битов именно 4 и для простоты подгонки временных соотношений сигналов сделал именно так, а не циклом (ссылка на описание индикатора есть в теме: http://pro-radio.ru/controllers/2945/

По оптимизации отвечу позже (про использование GOTO в ЯВУ наслышан)

 

Левон: Изучение Бейсика вообще не входило в мои планы. Да у меня и литературы по нему нет... C чего вы вдруг на него перешли? Непонятно. Я думал, хотя бы один язык выучить.

Перешли для простоты. Можно и на асме, но для меня, например, сложнее. Ссылки на MikroBasic есть в теме про PIC симулятор IDE. Там же и ссылка на сам симулятор, вещь довольно удобную.

Вот и хандрю. Надеюсь скоро "выйду" и догоню...

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

 

Левон, литература по бейсику - это мануал по mikrobasic. Он, к сожалению, на английском. Посмотрите ветку PIC Simulator IDE - там все ссылки. Перешли мы на бейсик для упрощения программирования. Тем более что появился столь удобный компилятор. Написать мало-мальски сложную программу на ЯВУ зачастую гораздо быстрее и проще, чем на асме. Отпадает много рутиной работы. А бейсик - самый простой из ЯВУ. В mb много готовых библиотек для работы с периферией. Это очень удобно, т.к. отпадает еще больше рутиной работы.
Возможно, освоив бейсик, перейдем к освоению Си. Но это будет еще не скоро.

 

ЖК-индикатор 1611 - это неплохо, конечно. Как быть тому, у кого ни железа, ни модели его нет? Мне, в частности.
Поэтому хочу предложить параллельный путь - поработать немного с 4-разрядным семисегментным светодиодным индикатором. Освоим организацию динамической индикации и использование прерываний.

 

Возможный вариант схемы: http://www.pic16.nm.ru/likbez2/led4connection.gif


 

А почто без 514ИД2, как у А. Долгого сделано в счетчике? Сэкономим на пинах и RB0 оставим для аппаратного прерывания. Использовали бы RB4-RB7 под сегменты, а RA0-RA3 под разряды. Или с 514ИД2 тоже траблы?

 

picmaniac: Как быть тому, у кого ни железа, ни модели его нет?

А разве в Протеусе нет его модели? Надо будет глянуть. Я вообще-то в железе стал проверять в последний момент, а до того глядел по виртуальному осциллографу в симуляторе на соответствие алгоритму вывода на индикатор.

 

Похоже, что нет... На 3-й стр. я уже по этому поводу сокрушался. Может быть, плохо искал? Не люблю "вслепую" программировать. Считаю, что результат должен быть виден в железе или, в крайнем случае, в модели.
514ИД2 - анахронизм и лишний корпус, к тому же там фиксированный знакогенератор. А тут сможем любые комбинации сегментов зажигать. Если уж и ставить дополнительную микросхему - то лучше регистр. Вообще-то у нас как минимум 2 вывода остаются свободными, для экспериментов достаточно. А если доберемся до замка - там лучше ЖКИ применить.

 

ОК! Пусть будет так, тем более, что я точно также подключил 4-х разрядный А-564g. :) Сегодня утром развел, а сейчас сравнил с рисунком в теме - 1:1, хотя рисунок не запоминал и не сохранял :) Наверное сработала подсознательная память. Правда клавиатура у меня поменьше - 5 клавиш и контроллер 874-й, будет висеть на RA4-RA5 и RE0-RE2. Индикация будет динамическая.

PS: picmaniac, просьба, не публикуйте программу вывода на индикатор, пока я не состряпаю свою, а то не интересно будет, я не удержусь и подгляжу. :)

 

OK - нет проблем. Так будет только лучше. Я её еще и не начал писать на mb. Есть только старые наработки на асме.
Советую не спешить с написанием кода. Сначала замысел, потом алгоритм (не обязательно красиво нарисованный, вполне годится набросанный для себя). Засады предвижу в косвенной адресации - обращению к регистру по его адресу.
Может быть, вкратце согласуем алгоритм вывода на словах?