Читаем PIC-микроконтроллеры. Все, что вам необходимо знать полностью

Загрузить в аккумулятор (LoaD Accumulator) байт из памяти данных.

Ida #data

Загрузить в аккумулятор (LoaD Accumulator) константу.

sta memory

Сохранить содержимое аккумулятора (STore Accumulator) в памяти данных.

tst memory

Проверить (TeST) байт памяти данных на нулевое значение.

tsta

Проверить аккумулятор (TeST Accumulator) на нулевое значение.

Напишите соответствующие макроопределения. Как вы думаете, почему такой подход является не слишком хорошей идеей?

<p>Глава 9</p><p>Язык высокого уровня</p>

Для написания всех программ в последних шести главах мы с вами использовали язык ассемблера. Хотя ассемблерные программы достаточно сильно отличаются от чистого машинного кода (см. стр. 239), тем не менее между любой машинной инструкцией и соответствующей командой ассемблера сохраняется однозначное соотношение. То есть программист вынужден мыслить объектами внутренней структуры микроконтроллера — регистров и памяти, а не объектами реализуемого алгоритма. Несмотря на то что большинство ассемблеров поддерживают макрорасширения, благодаря которым несколько машинных команд могут быть сгруппированы в виде псевдокоманды высокого уровня, это не более чем попытка обойти недостаток машинно-ориентированного языка. В чем же выражается этот недостаток? А в том, что для улучшения эффективности, качества и увеличения степени повторного использования программ кодирующий язык должен быть максимально независим от архитектуры процессора и должен иметь синтаксис, более ориентированный на решение задач.

Разумеется, не стоит и пытаться выучить какой-либо язык высокого уровня в одной короткой главе. Тем не менее, прочитав эту главу, вы:

• Поймете необходимость использования языка высокого уровня.

• Оцените преимущества, предоставляемые языком высокого уровня.

• Поймете, какие проблемы связаны с использованием языка высокого уровня для встраиваемых приложений на базе микроконтроллеров.

• Научитесь писать коротенькие программы на Си.

Уже в первые годы после появления коммерческих программных систем люди осознали, что писать большие программы на родном для компьютера языке очень сложно. Дело в том, что помимо всего прочего компьютеры начали периодически устаревать, и для каждой новой модели программы приходилось переписывать. Большие же программы даже в то время состояли из многих тысяч строк кода. Программисты встречались так же редко, как зубы у курицы, и ценились на вес золота. Поэтому, чтобы компьютеры были коммерчески выгодными, следовало найти средство, позволяющее сохранить инвестиции в дефицитное время программистов. При разработке универсального языка, независимого от аппаратной платформы, основное внимание было уделено тому, чтобы программист мог записывать код более естественным образом, в терминах, соответствующих решаемой задаче, а не на уровне памяти, регистров и флагов.

Разумеется, существует множество различных классов задач, требующих программирования, поэтому с тех пор было разработано большое количество языков программирования[118]. Одними из первых языков были Fortran (FORmula TRANslator) и COBOL (Common Business Oriented Language) в начале 50-х. Первый из указанных языков имел синтаксис, ориентированный на решение научных и инженерных задач, а второй — на решение бизнес-приложений. Несмотря на более чем 40-летний возраст этих языков, многие приложения до сих пор пишутся на них — сказывается инерция многих миллионов строк кода. Другими популярными языками были Algol (ALGOrithmic Language), BASIC, Pascal, Modula, Ada, C, C++ и Java — последние три языка относятся к одному семейству.

Хотя, с точки зрения программиста, написание программ на языке высокого уровня может быть легче и продуктивнее, процесс трансляции с языка высокого уровня в конечный машинный код представляет собой гораздо более сложную задачу по сравнению с процессом ассемблирования, описанным в главе 8. Пакет предназначенных для этого программ называется компилятором, а процесс — соответственно компиляцией.

Сложность компиляторов и их стоимость были приемлемыми при разработке программ для относительно мощных и чрезвычайно дорогих универсальных ЭВМ (мэйнфреймов) того времени. Однако в области микропроцессорных устройств языки высокого уровня практически не использовались вплоть до середины 80-х годов, т. е. до появления достаточно мощных и сравнительно недорогих персональных компьютеров и рабочих станций, на которых могли запускаться компиляторы. Повсеместное распространение таких компьютеров в сочетании с постоянно увеличивающейся вычислительной мощностью микроконтроллерных и микропроцессорных устройств, а также экономической значимостью этого сектора рынка привело к тому, что большинство программ для данных устройств тоже стали писаться на языке высокого уровня.

Если вы собираетесь описать задачу на языке высокого уровня для встраиваемой микроконтроллерной системы, например контроллера стиральной машины, то этот процесс условно можно разбить на следующие этапы:

Перейти на страницу:

Все книги серии Программируемые системы

PIC-микроконтроллеры. Все, что вам необходимо знать
PIC-микроконтроллеры. Все, что вам необходимо знать

Данная книга представляет собой исчерпывающее руководство по микроконтроллерам семейства PIC компании Microchip, являющегося промышленным стандартом в области встраиваемых цифровых устройств. В книге подробно описывается архитектура и система команд 8-битных микроконтроллеров PIC, на конкретных примерах изучается работа их периферийных модулей.В первой части излагаются основы цифровой схемотехники, математической логики и архитектуры вычислительных систем. Вторая часть посвящена различным аспектам программирования PIC-микроконтроллеров среднего уровня: описывается набор команд, рассматривается написание программ на ассемблере и языке высокого уровня (Си), а также поддержка подпрограмм и прерываний. В третьей части изучаются аппаратные аспекты взаимодействия микроконтроллера с окружающим миром и обработки прерываний. Рассматриваются такие вопросы, как параллельный и последовательный ввод/вывод данных, временные соотношения, обработка аналоговых сигналов и использование EEPROM. В заключение приводится пример разработки реального устройства. На этом примере также демонстрируются простейшие методики отладки и тестирования, применяемые при разработке реальных устройств.Книга рассчитана на самый широкий круг читателей — от любителей до инженеров, при этом для понимания содержащегося в ней материала вовсе не требуется каких-то специальных знаний в области программирования, электроники или цифровой схемотехники. Эта книга будет также полезна студентам, обучающимся по специальностям «Радиоэлектроника» и «Вычислительная техника», которые смогут использовать ее в качестве учебного пособия при прослушивании соответствующих курсов или выполнении курсовых проектов.

Сид Катцен

Радиоэлектроника

Похожие книги

Электроника для начинающих
Электроника для начинающих

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

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки