|
|
|
|
Выполнил все "директивы" по открытию нового проекта. Полёт нормальный. |
|
|
picmaniac: Теперь предстоит работа с MPLAB5.70.40. А здесь шла речь о MPLAB7.** : <блин мплаб 7.30 от 5.70 как небо и земля> Какую версию все-таки лучше скачать? Меня интиресует тот мплаб, который более руссифицирован; версии мплаба - под версии Windows ; объем. Еще вопрос чайника: "Ассемблер" и "Ассемблер микроконтроллеров" - в чем разница? |
|
|
я только завтра до мплаба доберусь |
|
|
lolo2: Меня интиресует тот мплаб, который более руссифицирован Таких нет в природе. Есть перевод "Руководства по MPLAB". Здесь за эталон решили взять версию 5.70.40, это и хорошо. В "Самоучителе" описывается она же, поэтому легче будет осваивать нюансы. Перейти на более свежую можно будет всегда. lolo2: Еще вопрос чайника: "Ассемблер" и "Ассемблер микроконтроллеров" - в чем разница? В MPLAB встроен ассемблер MPASM, его и надо придерживаться. А так один ассемблер от другого отличается обычно синтаксисом написания команд и директив, а также количеством тех и других.
|
|
|
semm: я только завтра до мплаба доберусь Стоит продублировать и на домашний комп, я это сделал.
|
|
|
Продолжаю. Открываем наш пока пустой файл-исходник likbez01.asm "File" --> "Open" --> указуем героя нашего повествования --> ОК Предлагаю начать написание исходника с создания "шапки", которую затем сможем сохранить отдельно и использовать для других проектов. Пример "шапки" есть в составе MPLAB, я уже упоминал об этом выше. Но я считаю, что удобнее создать свою. Предлагаю такой вариант: http://www.pic16.nm.ru/likbez01_00.zip В архиве находится папка с проектом целиком, там же файл-исходник (пока только "шапка") likbez01.asm При желании можно просто скопировать текст из предлагаемого файла likbez01.asm в открытый в MPLAB "чистый лист". Или скопировать целиком файл в папку с проектом. Или скопировать целиком папку с проектом в свою папку C:\PIC В общем, каждый поступает в меру своей ленивости Теперь можем оттранслировать исходник нажатием кнопки с зеленой "воронкой". Получаем сообщение об успешно проведенной операции - "Build completed successfully." Полученный файл прошивки likbez01.hex пригоден для записи в контроллер. Впрочем, ничего контроллер делать не станет, просто зациклится - и всё. Но ведь это только первый шаг... Далее предстоит перевести утвержденный алгоритм в последовательность ассемблерных инструкций (команд). |
|
|
lolo2: Какую версию все-таки лучше скачать? Это дело вкуса, для работы с PIC16F628 подойдет любая. 5-я наименьшая по объему - легче качать. 6-я лично мне почему-то совсем не нравится, поэтому работаю в 5-й. И вести речь буду именной о 5-й версии. lolo2: "Ассемблер" и "Ассемблер микроконтроллеров" - в чем разница? Ну, примерно как между мотоциклом вообще и "Явой". |
|
|
Предвижу вопросы по слову конфигурации. Если есть бумажный распечатанный даташит, то откройте его на стр.88, иначе прошу - проникнитесь мыслью о необходимости иметь бумажный даташит и в скорейшем времени обеспечьте себя любимого таковым. При помощи условных аббревиатур мы задаем различные комбинации битов в слове конфигурации. А слово это для контроллера не менее важно, чем умение добывать огонь для человека. На что же влияет слово конфигурации PIC16F628? 1. _CP_OFF указывает на то, что защита кода от взглядов злобных конкурентов нам пока не требуется. Т.е. любой желающий может прочитать в программаторе прошитый нами PIC и восстановить .hex файл прошивки. 2. _WDT_OFF предписывает контроллеру не использовать встроенный сторожевой таймер. Таймер этот, вообще говоря, весьма полезное средство от "зависаний" контроллера. Его работу мы разберем позже, а пока он нам не требуется. 3. _BODEN_OFF запрещает контроллеру сброс при снижении напряжения питания ниже некоторого порога (обычно 4 Вольта). Подробнее на стр.94 даташита. Я запретил этот сброс для того, чтоб не возникало лишних вопросов у тех, кто будет питать устройство от нестабилизированного источника. Обычно PIC нормально работает и при более низком напряжении питания. 4. _PWRTE_ON разрешает работу таймера включения питания. Это улучшает запуск контроллера с кварцевым генератором от источника с плавно нарастающим питающим напряжением. В данном случае генератор встроенный, и будет ли разрешена работа этого таймера - нам, в принципе, безразлично - пусть будет. 5. _INTRC_OSC_NOCLKOUT - это выбор типа тактового генератора. Подробности на стр.89 даташита. 6. _MCLRE_ON устанавливает режим работы вывода _MCLR (нога 4) как обычный вход сброса. Если задать _MCLRE_ON, то 4-я нога превратится в цифровой вывод порта RA5. 7. _LVP_OFF устанавливает обычный режим программирования контроллера, с подачей 12 Вольт на _MCLR. Если установить _LVP_ON, то будет разрешено низковольтное программирование по сигналу на выводе RB4/PGM от одного источника питания напряжением 5 Вольт. Я пока ни разу так не пробовал. Заданное программистом слово конфигурации записывается в контроллер при каждой перепрошивке. Больше никак изменить его нельзя. Неправильное заданное слово конфигурации может привести к полной неработоспособности устройства даже при отсутствии ошибок в программе. |
|
|
Нет, вопрос по другой причине, со словом конфигурации проблем, во всяком случае у меня нет. Так вот, зачем пишем
bcf Status,RP1 , когда по сбросу и так всегда выставляется этот бит в 0. |
|
|
На всякий пожарный случай. А вообще можно и не писать. |
|
|
|
|