BASCOM College или школа программирования процессоров В последнем
году ХХ века уже нет ни каких сомнений, что в электронике настала эпоха
микроконтроллеров. Эти универсальные микросхемы, реализующие совершенно
различные функции, уже стали широко доступны и дешевы. За их применение говорят
все аргументы, как технические, так и экономические. Требования предъявляемым к
электронным устройствам постоянно растут, и что бы им соответствовать, схемы
построенные традиционными методами, должны достичь просто чудовищных размеров и ничем
необоснованного уровня сложности. Конечно, теоретически возможно осуществить
даже самые сложные системы на стандартных логических микросхемах серии TTL или
4000. Теоретически возможно повторить процессор PENTIUM с
использованием только логических элементов НЕ-И серии 7400. Возникает только вопрос: что же делать? Зачем
строить электронного монстра типа часов, построенного на элементах семейства CMOS и
реализовать алгоритм преобразования в десятичную систему из двоичной на
архаичной памяти EPROM?
За чем тратить деньги на огромную печатную плату? Только для того что бы
получить универсальное, выполняющее различные функции устройство! Однако даже в этом случае схема построенная традиционными методами всегда будет иметь ограниченные
возможности, а любое изменение алгоритма его работы всегда будет требовать значительного
изменения схемы, вместо того что бы изменить несколько строк программы!
Но это не
означает что логические схемы серии TTL и CMOS мы можем смело выбросить в корзину и
заняться исключительно микропроцессорной техникой? Ни в коем случае! У меня бы
самого сердце бы не выдержало, если бы я был вынужден расстаться с
«классической» логикой и уже ни не мог создавать на экране редактора схем сети из логических элементов. Построение классических цифровых схем это не только
способ создания необходимых электронных устройства, но и великолепное
упражнение в логике, необходимое каждому конструктору. Классическая логика
может дальше существовать в полной гармонии с микропроцессорами. Но там, где
нет смысла создавать «электронного Франкенштейна", неимоверно сложного и
дорогого, нужно использовать
микроконтроллер! Далее в этой статье у
нас будут использоваться примеры, для сравнения сложность схем реализованных с
использованием логики и микропроцессорной техники. Эти примеры всегда
поддерживаются экономическими анализами обоих способов реализации и по
результатам вы можете сделать свой выбор.
Приступая к
написанию этой статьи, я чувствую себя немого как трагический актер призванный
на роль комедианта. Я понимаю что мои сообщения о том что микропроцессоры и их
программирование не возможно без багажа
знаний, Славомира Суровинского, который стал в свое время вводить нас в тайны
микропроцессорной техники.
Но я решил пойти
несколько иным путем, чем Славмир Суровинский, который научит Вас
программированию на ассемблере. Программирование на ассемблере, безразлично,
идет ли речь о компьютерной программе или программе для микроконтроллера,
подобно вождению на гоночных трассах, гонке в ралли. Это красивое искусство,
дает гарантию достижения всегда оптимальных результатов, но так же, как
вождение автомобиля формулы 1 и это искусство очень трудное. Не каждый из нас
имеет сердце и душу Мануэля Фанхи или Ники Лауда и многие начинающие
конструкторы хотели бы начать свое приключение с микроконтроллерами с чего-то
более легкого, со спокойной езды удобной на машине, с автоматической коробкой
передач, которая довезет нас, так же как и спортивный автомобиль.
Таким лимузином
для разработчиков программного обеспечения для компьютеров и микроконтроллеров
является языки высокого уровня.
Языки высокого
уровня являются старыми средствами разработки (скорее, мы должны сказать: молодыми) как и компьютерная техника. Таких языков было создано очень много, и
все они имеют одну общую черту: они
делают «общение» с компьютером более легким, чем с помощью ассемблера или
машинного кода, имеют более «человеческий» синтаксис. Язык, который получил наибольшую
популярность и по сей день без сомнения это BASIC.
Уже в тот
момент, когда персональные компьютеры стали массовыми это язык уже имел
огромное количество пользователей. Причина этой популярности была проста:
большинство домашних компьютеров в том числе легендарные Spectrum и Commandore,
имели интерпретатор Бейсика вшитый в постоянную память он для них был не только
языком программирования, но и примитивной операционной системой. Дальнейший шаг
в направлении популяризации Бейсика сделала компания IBM, оснащая свой первый компьютер интерпритатором
этого языка в памяти EPROM.
Тем не менее популярный язык, был презираем профессиональными программистами,
простой и изначально не структурированный язык предоставлялся с компанией
Майкрософт с каждом пакетом операционной системы MSDOS. В течении многих лет до появления
системы Windows95 Бейсик
все более и более совершенствовался и
расширялся, как бы автоматически был на каждом ПК, что позволяло широкому кругу
пользователей этой машины познакомиться с ним и применять в своих разработках.
Бейсик язык
очень «дружественный» и простой. Написание программы на нем, независимо от
выбранного диалекта, состоит из слов полученных от сокращений английских слов.
Вместо «абракадабры» команд ассемблера у нас есть "GOSUB”, "GOTO” (этой командой лучше не злоупотреблять
она может зациклить программу), IF
… THEN
и т.д.
Не удивительно
что в электронике многие был хотели использовать для программирования
микроконтроллеров это хорошо известный простой язык. Производители программного
обеспечения, пошли навстречу этим пожеланиям и в течении последних лет было
создано много компиляторов Бейсика, приспособленных для программирования всех
популярных семейств микроконтроллеров. На мой взгляд, однако это были продукты
не слишком продуманные, написанные любителями, на базе типичного синтаксиса
Бейсика, без попытки создать новых, с учетом специфики микроконтроллеров
команд. Таким образом, несмотря на то что идея сделать такой учебный курс была
давно я не мог в течении длительного времени подобрать соответствующий
компилятор.
Эврика или Байском! Бродя по
Интернету в поисках какой-то информации, я наткнулся на то что стало для меня
настоящим открытием: компилятор, а на самом деле целый пакет разработки
программ для процессоров 51 с особым акцентом на микросхемы 89CX051. Это пакет называется BASCOM LT, предлагает его ранее
малоизвестная на нашем рынке компания MCS Electronics из Голландии. http://www.mcselec.com BASCOM LT это
несколько упрощенная программа BASCOM
8051. A BASCOM LT Demo – бесплатная версия BASCOM LT доступная для всех бесплатно и без
каких-либо обязательств. Я сразу скачал эту программу установил на свой
компьютер, и буквально «упал со стула». Еще ни когда в жизни не сталкивался с
таким удобным для пользователя инструментом для программирования
микроконтроллеров! Используемый в BASCOM-ме диалект Бейсика, только в первый момент напоминает нам
хорошо известный Microsoft Basic.
Основные команды, принципы написания программ, правда похожи, и даже идентичны,
но добавлено огромное количество команд, присущих для микроконтроллеров,
облегчают жизнь программисту и радикально ускоряют написание программ. Мы обсудим эти команды в дальнейшей части
статьи, а пока чтобы пробудить ваш интерес, приведу только один пример: Довольно часто
мы собираем различные схемы, требующие визуализации данных на дисплеях. Написать на ассемблере программу, которая
поддерживает такую возможность, конечно можно, но достаточно сложно. Начинающий
программист потратить на это много времени и нервов. А как это выглядит на BASICOM-e? А вот так: LCD
„Elektronika dla Wszystkich" 
Вот и все!
Конечно нужно сначала указать к каким выводам микроконтроллера подключен
алфавитно-цифровой ЖК-дисплей. После компиляции этой минипрограммы и загрузки в
памяти процессора (оба эти действия в BASCOM-e полностью
автоматизированы) на ЖК–дисплее появится требуемое сообщение. Правда, это
выглядит довольно просто? Я надеюсь, уже вызвал ваш интерес достаточно, чтобы
перейти к специфике и уточнить, что
именно нам нужно будет для того, что бы
начать обучение. Еще одно
замечание, мой дорогие читатели! Прежде чем углубляться в подробное описание
пакета BASCOM, я хотел
бы затронуть некоторые вопросы важные для начинающего студента нашего курса. Программа BASCOM, как и большинство подобных имеет интерфейс на английском
языке. Очень прошу, не спрашивать когда и где можно получить версии на
польском (и русском)! Ни чего такого ни когда не будет. Лучше учите английский! Я не требую от
вас, что бы вы читали Джозефа Конрада Корженевского в оригинале, не прошу вас
говорить по-английски, но пассивное знание языка очень пригодиться, и его
зачатки есть у каждого из вас. Вам не нужно идти на дорогие курсы или бывать за рубежом в англо-язычных странах. Просто необходим словарь и немного желания
и трудолюбия. Эти вложения дадут вам тысячу процентов! Мы оказались в
очень выгодном положении, у меня сложились дружеские, хотя пока, основанные
только на переписке по электронной почте, отношения с компанией MCS
Electronics. Так что я могу всегда рассчитывать на помощь этой компании, в
частности, на исключительную доброту господина Марка Альберта из MCS. Во время наших Интернет-
дискуссий ржавые провода TPSA накалялись до красноты, а результатом их было дальнейшее
совершенствование BASCOM-a и
сопровождение софта. Таким образом, мы можем рассчитывать на активное
сотрудничество авторов программы Баском и быстрое исправление ошибок, которые
всегда могут найтись в такой «юной» программе. Посещение
страницы http://mcselec.com дало не только
«приобретение» программы BASCOM LT Demo (ее можно также скачать на странице www.ep.com.pl). Я нашел там так же схемы и
описание других, хороших аппаратных инструментов для написания программ для микроконтроллеров.
К ним относятся: предельно простой и дешевый программатор процессоров 89CX051 и
настоящая жемчужина: эмулятор этого процессора, позволяет проверить вашу
программу в составе схемы без необходимости прошивки и … самого
микроконтроллера! Фирма MCS Electronics была невероятно добра, я получил их
разрешение на публикацию не только схемы (но и других интересных конструкций),
но и чертежи печатных плат, а так же возможности выпускать их в виде наборов
для самостоятельной сборки. А теперь
рассмотрим что нам нужно, что бы начать обучение, которое позволит нам
создавать устройства на микроконтроллерах. Программное обеспечение Программа BASCOM LT упрощенная версия BASCOM совершенно
бесплатная для всех. Ее можно скачать с
сайта http://www.mcselec.com. Так же доступна на компакт диске CDROM CDEP-8,
распространяемый AVT и на сайте http://www.mcselec.com. Как я уже упоминал BASCOM LT Demo - сокращенная, но
полностью рабочая версия BASCOM и младший брат
профессионального пакета BASCOM 8051. Длина кода
ограничена размером 1 кБ (что на самом деле очень много) и отсутствует
нескольких команд. Если нужна полная версия то ее цена
сейчас составляет 50…70 USD, примерно
200..300 польских злотыъ. Много это или мало? Это сравнительно мало по сравнению с
другими программами этого типа, иногда стоимость на порядок больше. В настоящее
время программу BASCOM 8051 можно купить у фирм GRIFO и MCS Electronics. Однако, так как купить ее зарубежном не удобно, то мы
постараемся что бы ее можно было приобрести у AVT. Компьютер BASCOM LT Demo, BASCOM LT и BASCOM8051
работают исключительно в Windows
95/98/NT (BASCOM LT может работать в Windows 3.1, что накладывает определенные
требования к используемому компьютеру). Как минимум машина 486 c 16 Мб оперативной памяти, с
системой Windows95/98,
в крайнем случае Windows3.1.
Тем не менее, я должен предупредить, что работа на такой машине не принесет
удовольствия. Хотя работать возможно, но пробовать его с аппаратным эмулятором
не говоря уже о программной эмуляции это будет настоящая пытка. Так что я бы посоветовал
использовать для работы машину класса Pentium с памятью 32 Мб. Программа BASCOM не занимается слишком
много места на диске, не критична к звуку и графике. Имея
соответствующий компьютер и одну из программ BASCOM вы можете начать
программировать. Мы можем
писать программы, компилировать и тестировать их с помощью встроенного в
структуру Баскома программного эмулятора. Мы можем подготовить собственные
программы, которые перед прошивкой процессора можно проверить в конкретном устройстве аппаратным эмулятором. Эмулятор 
Это первое
устройство для программирования процессоров, которое мы должны
собрать самостоятельно. Схема этого устройства была получена от фирмы MCS
Electronics, а моя единственная заслуга это трассировка ее платы и проверки
полученного устройства. Потому что все тесты прошли успешно, а фирма MCS
Electronics согласилась на распространения своей разработки. Схему и описание
его вы найдете в следующем номере Электронике для всех. Эта система позволит
проверить программу, да же без микроконтроллера! К сожалению проведение
эмуляции более сложных программ требует уже компьютера класса Pentium, 32 МБ
ОЗУ, или придется запастись свободным временем и ангельским терпением. Программатор 
Очевидно что после написания и
тестирования программы мы должны записать его в память микроконтроллера. Для этого нам нужно
иметь другое устройство - программатор. Программатор
MCS Flash Programmer схема которого нам так же предоставлена этой компании,
был мною повторен и протестирован буквально на сотни программ. Его описание
будет так же в следующем номере Электроники для всех. Программатор очень
простой по конструкции и не бывало дешевый. Процессоры Настало время
обсудить самый важный вопрос: микроконтроллеры, которые будут применяться в
наших новых проектах. Очень часто мы
получаем по почте вопросы: какой микроконтроллер лучше? Ответ прост: тот для
которого у вас есть хороший компилятор, программатор и который для вас хорошо
знаком. Давайте не будем вводить в заблуждения теоретическими дискуссиями о
последних типах процессоров, появившихся на рынке. За их превосходные
характеристики и даже чудодейственные свойства. Они все хороши для
профессиональных разработчиков, а не для начинающих. Авторы программы Баском
сделали за нас этот выбор: широко применяемый и экономически целесообразный микроконтроллер - 89C2051 (или
89С4051), который очень подходить для любительского конструирования. AT89C2051 представляет собой 8-разрядный
процессор производства Atmel. Основные характеристики: - внутренняя память для программ EEPROM памяти 2кБ, - объем
внутренней оперативной памяти 128 Байт, - два
восьми-разрядных двухнаправленных порта (доступно 15 линий ввода-вывода) - два внутренних
16-разрядных таймера, - встроенный
аналоговый компаратор - встроенный
генератор, который может работать с частотой до 30 мГц. Это только
основные характеристики, подробное описание процессора 89С2051 мы дадим в
ближайшее время. Но самое важное с точки зрения любительского конструирования
преимущество: программа записывается в EEPROM, которая может быть перепрограммирована практически
неограниченное количество раз! Поэтому мы можем, даже при наличии только одной
микросхемы, сделать несколько устройств, без использования настоящих микросхем EEPROM. То что я
написал о процессоре 89C2051 не означает что другие нам не доступны. Напротив
BASCOM 89C8051 поддерживает очень большое число семейства 51 процессоров, а 89C2051
будет первым который мы освоим.
Еще одна хорошая
новость, фирма MCS Electronics недавно выпустила на рынок еще один удивительный
продукт: BASCOM AVR,
разработанный для использования микроконтроллеров Atmel семейства AVR!
Диалект Бейсика в нем практически не отличается от языка, используемого в BASCOM LT и отладка программ
практически идентичная. Таким образом, приобретенные навыки вы можете успешно
использовать при написании программ для других, более быстрых процессоров! Тестовая плата 
На самом деле это не электронное устройство, а просто экспериментальной площадкой,
на которой мы можем без изготовления другой печатной платы проверить
большую часть своих идей и проверить работу большинства новых систем и
продемонстрировать выдающиеся возможности Баскома. На тестовой
плате установлен только один активный электронный элемент: источник напряжения +5 Вольт постоянного тока, и все остальные элементы питаются от него, а также другие элементы которые часто используются в микропроцессорных схемах. Вот эти элементы: - алфавитно-цифровой ЖК-дисплей (можно
использовать другие типы дисплеев) - семи сегментный светодиодный индикатор - память EEPROM, - микросхема повышающая мощность выходных
сигналов, позволяющая подключать
значительные нагрузки к плате, - Двунаправленный порт I2C, - Двунаправленный передачу 1Wire (для устройств фирмы DALLAS), - Пять светодиодов - Кнопка сброса и три кнопки общего
назначения, - экспериментальная плата содержит RC цепочку, а также панельку DIL20 в которую можно
вставить запрограммированный процессор (на плате установлен кварцевый резонатор
и необходимые для него конденсаторы), а можно вилку аппаратного эмулятора,
позволяющие проектировать и отлаживать схемы только с помощью компьютера. Просьба читателям присылает свои новые идеи
и предложения: может быть в будущем появиться новая тестовая плата,
разработанная совместно с вами. Итоги Как вы уже поняли
что эта статья, только введение, в большую тему, который посвятим целый цикл
статей. Это большой темой будет овладение навыками программирования процессоров
с помощью пакета BASCOM. Итак, в этой статье мы приглашаем в школу
программирования процессоров, которую мы в шутку назвали BASCOM College (Баском колледж). Если
эта статься вызвала у вас жажду знаний (больше чем со школа «ассемблера») и
открыла перед вами широкие перспективы, то записывайтесь в BASCOM College
Пожалуйста, распечатайте, заполните заявку и отправите в редакцию. Записи в BASCOM College принимается без каких-либо требований к вам. Присылаемые
заявки в BASCOM College для нас очень важны, это облегчит нам решение
организационных проблем. Основной проблемой для нас является подсчет хотя бы
приблизительного числа участников BASCOM College, потому что мы должны
своевременно подготовить учебные инструменты, которые мы намерены подарить
студентам Байском Колледжа. Тогда все студенты BASCOM College, которые также
являются подписчиками EdW,
получат бесплатно: - печатную
плату эмулятора, - печатную
плату программатора, - печатную
плату тестовой платы, - дискету с BASCOM LT demo, (для тек у кого нет доступа в Интернет). Мы так же думаем о том как помощь людям,
которые не знают Бейсика. Несколько слов
о школьной программе BASCOM Колледжа. Для учебы необходимы: - эмулятор, - таймер, - тестовая
плата. Описание этих
инструментов мы разместим в следующем номере EdW. Студенты BASCOM College смогут получить этих инструменты тремя способами: - собрать
устройства на бесплатных плитах из собственных компонентов, - собрать
устройства на платах и элементах, приобретенных на
в AVT,
- купить в AVT
собраны устройства, (для не любителей паять). zbigniew.raabe@ep.com.pl Elektronika dla Wszystkich 02 2000
|