Книга представляет собой практическое руководство по программированию микроконтроллеров семейства PIC на языке PicBasic. В книге рассматриваются ключевые различия между стандартным компилятором PicBasic и компилятором PicBasic Pro; набор команд, архитектура и характеристики наиболее используемых PIC-микроконтроллеров; обработка прерываний и исключительных ситуаций; организация связи между PIC-микроконтроллерами. Приведены многочисленные примеры программ для реализации различных функций PIC-микроконтроллеров с использованием языка PicBasic (исходные тексты всех примеров находятся на прилагаемом компакт-диске).
Но я, на основании собственного опыта, мог. Я написал множество очень мощных нрофамм, и каждая из них поместилась в . Кбайт памяти, имеющейся у микроконтроллера . Учитывая, что компилятор РВС стоит почти в два с половиной раза дешевле, чем РВРго. не стоит сбрасывать РВС со счетов. Это действительно очень хороший компилятор за свою цен. Довольно подробные описания каждой из команд РВС, которые ирикелсны далее в этой главе, слел. Но прежде чем научиться пользоваться компилятором РВС . С этого и начнем. Как работает компилятор РВС в основе РВС лежит набор коротких мини. Пусть, например, требуется установить ВЫСОКИ. Для этого в профамму на . холнмо установить соответствутоший этому выводу б. На языке ассемблера д. Простая профамма на ассемблере, которая устанавливаст ВЫСОКИЙ логический уровень на выводе О порта . Та же самая задача с помощью . Вот почему языки высокого уровня удобнее для разработчика. Некоторые команды ассемблера в соединенных друг с| друтом мини. митея свести эту неэффективность к кшиимуму. Такова иена, которую | приходится платить за быстрта разработку и легкую . однако, нахожу, что колшилятор РВС весьма эффективен. В своих разработках я часто использую . Иногда ; памяти не хваггало, но :и счёт небольших изменений, сделанных в написанной на . Что действительно хорошо у РВС —. ЛОТОПродолжить выполнение ПрОфаммы с места, обозначенно го меткой . Список может показаться вам . Переменные, память и ввод. Компиля юр РВС специально созда. Однако РВС не может создавать. Для того, чтобы можно было воспользоваться дополшггыьными линия. Это главное преимущество РВС перед . Для обозначения переменных в моду. В первой парс ячеек — ВО и В. Младший бит ячейки ВО обозначен . Это позволяет использовать, пример, в качестве ф. лага, каждый бит по отдельности, не затрагивая тальную часть байта. ЛВС ячейки оперативной памяти были отданы под рсгастр . В этом колшиляторс добавлены новые имена как для переменных типа . чикрокошрохтеров Ж. Стацдартпые коибшшшн пережиных Р. — . Это несколько неудобно, но такова плата за совместимость с модулем . манд РВС, напрямую обращаться ко всем внутренним регистрам Р. ллера так же, как при программировании на ассемблере. Подробнее об этом будет рассказано при описании команд . Операторы программы К числу основных операторов программы, наггасанной на РВС, отно. Над переменными можно ироиэ водить операции и, ИЛИ и ИСКЛЮЧАЮЩЕЕ ИЛИ. Возможны и обратные опсрашш. в то время как состояние остальной части байта не меняется. Этот вопрос еще больше прояснится, когда в последуй щих главах мы рассмотрим примеры настоящих прикладных прог. Команды управления вводом. Перед выполнением этой команды необходимо точно знать состояние, в котором находятся биты регистра . , то он станет ВЫСОКИМ. Если перед выполнением команды вывод порта бьи входом, то он сначала будет сделан выходом, а затем логический уровень этого вывода, записанный в регистр данных, будет изменен на противоположный. меются встроенные АЦП, что, по моему мнению, лучше всего подходит для измерения ана. Встроенный АЦП обеспечивает высокую точность измерений, но в некоторых случаях предпочтительнее воспользоваться командой РОТ, поэтому я объясню, как . В цепочках, состоящих из резистора и конденсатора, время, за которое конденсатор заряжается до заданного напряжения, зависит от емкости конденсатора и от сопротивления резистора. Если известны время заряда и емкость конденсатора, то можно вычислить сопротивление. Именно это и делает команда . льзует пороги, при которых вход порта переключается между НИЗКИМ и ВЫСОКИМ уровняхш, как опорные напряжения для измерения времени заряда конденсатора. Конденсатор и резистор подключаются к выводу порта гак, как показано на Рис. При выполнении этой команоы конденсатор сначала разряжается через вывод порта, который команда РОТ конфигурирует как выход и подает на него НИЗКИЙ логический уровень. После этого вывод порта делается входом и начинается измерение времени, за которое конденсатор зарядится до напряжения, равного верхне. Это время заряда преобразуется в число, лежащее в пределах от О до . Вывод порта . Схема для измерения времени заряда конденсатора . Его обязательно нужно указать, иначе команда не будет правильно работать. При этом не потребуется никаких математических вычислений, потому . Сначала следует установить максимальное сопротивление переменного резистора и запустить команду, задав масштабирующий коэффициент . Патученное значение переменной и будет равно требуемому м. В результате ваполиения команды РОТ он бия уточнен и оказался равсл . Я считаю, что она способна заптать кого упадно, и это не только мое мнение. Команда работает как многократно. Она также сравнивает чист выполненных циклов, во время которы. Автоповтор похож работу клавиатуры персонального кок тера. Если нажать клавишу и удерживать то через некоторое время начнется автопс тор симвата на экране, так что он убежит. Режим работы команды . Уровень — этот параметр определяет, какой уровень далжиа . Задержка — числом от О до . Этот параметр выполняет еще две ф. Если он равен О, то подавление дребезга контактов и автоповтор отключакмся. Скорость — это число определяет, насколько быстро должен происходить автоповтор. Она должна быть в пределах от О до . Переменная задает имя переменной, например. Значение этой переменной должно быть сброшено в о перед выполнением комаюлы . Состояние — этот параметр указывает команде . Метка — метка для команды . Метка с таким именем должна существовать в программе, чтобы она отколшилировалась без ошибок. Есяи же нажата и улараяааетсЕ . Автоповтор должен быть самостоятельной командой. На этом можно закончить рассмотрение команд упраатения вводом. Команды переадресации Входящие в эту . Для начинающих они могут быть непонятны, но тот, кто знаком с программированием, знает, насколько мощны такие команды. Они позволяют создавать несколько различных вариантов выполнения программы, используя для этого логические операторы, имеющиеся в арсенале комгпиятора РВС.