С большим удовольствие я приветствую студентов BASCOM College на второй лекции. Однако
перед тем как мы перейдем к новому материалу, мы должны еще на некоторое время
вернуться к предыдущей лекции в которой мы обсуждали установку и настройка
программного пакета BASCOM 8051 Demo.
BASCOM очень
большая программа и при обсуждении конфигурации легко пропустить некоторые
важные детали. На этот раз я забыл (и это прекрасно J)
важную опцию, без которой не будут работать программатор и аппаратный эмулятор.
Я имею в виду опцию "PCF8574"
при настройке параметров программатора (рисунок 1).
Почему это так важно? PCF8574 микросхемы
которые являются важными элементами как MCS
программатора, а также аппаратного эмулятора, производятся в двух вариантах PCF8574 и PCF5874A, оба варианта идентичны, а различаются в
базовом адресе каждого из них с микросхемами PCF8574 мы еще часто столкнемся и в ближайшее
время будет подробное их описание. Пока, однако достаточно знать что перед
программированием или эмуляцией нужно проверить какие микросхемы используются.
Чаще всего применяются PCF8574, тогда нам не нужно ни чего указывать. В
противном случае ставим галочку на опции «PCF8574А».
Кстати один очень важный момент, в отношении сделанных вами
программатора и эмулятора.
В каждом из них не допустимо применение микросхем различных типов. В
наборах для самостоятельной сборки AVT это
учтено, но многие сами собирали эти устройства, обратите на это внимание. Я так
же не рекомендую использовать в другом устройстве разные типы. Хотя устройство
и будет работать, но необходимость постоянно изменять эту опцию может раздражать.
На этом мы можем переходить к следующей лекции BASCOM College. Для начала несколько общих
наблюдений.
Давно задавался вопросом как читать лекции в нашем колледже, и как
подготовить учебную программу. Первоначально, порядок лекции мне показался очевидным:
преподнести теорию, мы будем рассматривать операторы, инструкции диалекта
Байсика (я по-прежнему называю его просто MCS BASIC) мы обсудим, правила написания
программ и наконец перейдем к практическим занятиям. Это «честно» построенный
план используется в большинстве школ, и мне показалось что он подходит для BASCOM college. Но мне показалось неприятное
видение: вой сирены машины скорой помощи, острые чрезвычайные вызовы, приведшие
моей занудливостью читателей к смерти. Поэтому я решил полностью изменить
учебную программу, она будет строиться на трех принципах: практика, практика и
еще раз практика. С самого начала мы берем быка за рога, и на первом же уроке
напишем программу которую протестируем с помощью эмулятора и на настоящем
процессоре! Скучных ни к чему не приводящих теорий и так много в журналах для
электронщиков!
Принимая такую концепция я рассчитываю и нашу помощь, уважаемые
читатели, сигнализируйте мне, что вы не поняли, какие вещи не ясны для вас и
какие темы вы хотите рассмотреть на следующей лекции. Не могу поручиться, что
отвечу на все ваши пожелания, отправленные по электронной почте (zbigniew.raabe@edw.com.pl),
но конечно же, надеюсь сделать для себя конструктивные выводы.
Однако, хочу вас уверить, дорогие читатели, что даже такие спонтанные
(то есть в соответствии с моим характером) программы и лекции, будут иметь
четкую структуру. Т.е. в этом безумие есть свой метод. Ключ к пониманию
методологического изложения BASCOM колледжа заключается в следующем. Я выделю три этапа
обучения:
- лекция
- упражнение
- приложение.
Лекция – содержит теоретические основы, вокруг определенной проблемы
Упражнение – так же содержит много информации, но только самой основной,
подаваемой в виде комментариев или отступлений при решении конкретных практических
задач. Практические задания могут быть решены программно или с помощью
аппаратных средств, эмулятора или тестовой платы А. Если тема упражнения выполненного
на тестовой плате является каким-либо полезным устройством (часы, измерительный
прибор и т.д.) – одновременно мы предлагаем сделать его на отдельной плате,
доступной как кит AVT. Конечно это только
предложение.
Приложение – представляет собой уже конкретное устройство разработанное
с использование BASCOM сделанное на отдельной печатной плате, доступное в корпорации
AVT. Приложение
будут опубликованы в цикле статей Электроника 2000. Студенты колледжа не
обязательно должны делать эти устройства, главное изучить их и попробовать
запустить их на тестовой плате.
В конце этого длительного введения
Я хотел бы передать Вам привет от автора программы BASCOM Марка Альберса, который
также является почетным президентом клуба BASCOM, созданного редакцией
Практической электроники.
Потому что MCS Electronics
и нижеподписавшийся только "набирает обороты" в работе
, связанных с совершенствованием BASCOM-а, у
меня для Вас один совет. Если у вас есть такая возможность, то следите за
обновлениями, на веб-сайте: www.ep.com.pl!
Независимо от информации, передаваемой через Интернет, мы всегда будем
информировать Вас на страницах EdW о внесенных в BASCOM изменении и дополнениях.
Помните также, что любые изменения, выполненные
по принципу "обратной совместимости
вниз", и что, следовательно, каждая
программа, написанная на более ранней версии BASCOM-а будет работать правильно,
на последующих-upgrade'ах.
Я рекомендую вам сайт: http://www.grote.net/bascom/maillist.html,
на котором размещены архив рассылки пакета BASCOM. Это кладезь информации и
отличный способ, чтобы поучиться у более опытных коллег. Следует также
подписаться на BASCOM-MAILIST (заочное обучение на международном языке). Чтобы
подписаться на этот список, просто отправить по электронной почте: bascom-request@grote.net поля, отмеченные "Подписаться" (в
тексте!)
Использование алфавитно-цифрового ЖК дисплея.
Есть важные причины, почему я выбрал использование алфавитно-цифрового
дисплея темой второй лекции BASCOM College. Во-первых,
это очень эффектный способ продемонстрировать возможности BASCOM-a. Использование дисплея на ассемблере – это
достаточно сложно, а уж использование польских национальных символов это
настоящая трагедия. Во-вторых, алфавитно-цифровой дисплей есть в нашей тестовой
плате и он основное средство отображение информации обработанной процессором и
чем скорее мы получим к нему доступ тем лучше. В-третьих, возможность
отображение различной информации, из памяти внутри работающего процессора может
быть чрезвычайно полезной при написании программ, даже тех, которые не
используют отображение данных.
И так приступим! Запустите BASCOM и откройте окно редактора программ (нажав на кнопку File и New). Основная команда
использования алфавитно-цифрового дисплея:
LCD [переменная
(*) или тект]
Пояснение:
Переменные определяются по присвоенными им любым именам, и они
представляют собой значения, используемые программой. В языке MCS Basic можно
использовать следующие типы переменных:
Bit – значение
1 или 0.
Byte – 1 байт, значение из
диапазона 0-255
Integer – 2 байта, значение от -32768
до 32767
Word – 2 байта, значение в
диапазоне от 0 до 65535
Long – 4 байта, значение от
-214783648 до +2147483647
Single – 4 байта, значение из
диапазона от 0 до 2147483647
String – строковая
переменная до 256 байт
Объявляя переменную, сообщаем компилятору о намерении ее использовать.
Компилятор автоматически оставляет за ней в ОЗУ процессора место,
предназначенное для значения нужной нам переменной.
Отсюда следует, что прежде чем объявить переменные мы должны знать
заранее, какое будет их значение. Не волнуйтесь, однако, что может возникнуть
путаница! Если вы превысите допустимую величину переменной «умный» компилятор
предупредит и присвоит переменной максимально допустимое значение.
Имя переменной может содержать до 255 символов и может содержать любые
символы, которые доступны на клавиатуре. Имя переменной не может быть
зарезервированным словом или командой языка MCS BASIC. Список зарезервированных слов можно найти
в файле справки (смотри раздел "RESERVED WORDS”).
Объявляем переменные, то есть сообщаем компилятору о намерении их
использовать с помощью команды:
DIM переменная AS [BIT, BYTE, INTEGER, WORD, LONG,
SINGLE LUB STRING]
Очень важное примечание! В широко используемых интерпретаторах Бейсика
не нужно объявлять каждую переменную или таблиц, если количество содержащихся в
них переменных не превышает 10. А в диалекте MCS BASIC нам необходимо объявить
каждую переменную. Это логичное следствие необходимости максимальной экономии
пространства памяти, занятой переменными.
Напишем таким образом:
LCD "Elektronika dla Wszystkich”
Да, мои дорогие, то что вы написали это ПРОГРАММА МИКРОПРОЦЕССОРА!
Пожалуй, самая простая из возможных, но ее можно скомпилировать и выполнить.
Объяснение:
Компиляция программы.
Программа будь то компьютерная или предназначенная для размещения в
процессоре написанная на более или менее «человеческом» языке. В нашем случае MCS BASIC перед
записью программы в память процессора должна быть скомпилирована, или «переведена»
на язык понятный процессору – машинный код.
Таким образом, посмотрим как работает эта до смешного простая программа.
К счастью в BASCOM компиляция программы осуществляется полностью автоматически
после нажатия клавиши F2 или
выбора меню "PROGRAM” и "COMPILE”. Однако, после нажатия
клавиши F2,
оказывается что BASCOM-у от
вас что-то нужно. Требуется именно ввести имя файла (если вы еще до сих пор не
ввели). Таким образом, поле «Имя файла» (рисунок 2) можно ввести любое имя. Нажмите
кнопку «Сохранить» и через некоторое время ваша программа скомпилируется. На
диске будут созданы соответствующие файлы, но содержание их нас сейчас не
интересует.
Посмотрим теперь, как работает наша первая программа. Программирование
для этой цели процессора было бы нонсенсом и поэтому мы используем один из
лучших инструментов, что дает нам возможности BASCOM – программного эмулятора
(*).
Пояснение:
Программный эмулятор – это программа, с помощью которой мы можем в
какой-то мере, проверить написанную программу. Программный эмулятор, не имеет
ни какого контакта с внешним миром, что несколько ограничивает его применение.
Тем не менее, при помощи эмулятора BASCOM-а мы
можем проверить многие функции, в том числе все команды, относящиеся к
использованию алфавитно-цифровых дисплеев.
Также нажимаем клавишу F2 и
сразу перед нами открывается новое окно, полное пока не слишком понятных кнопок
(рисунок 3). Не волнуйтесь, через некоторое время все станет ясно и понятно.
|