2 0 0 2
МИКРОКОНТРОЛЛЕРЫ
21
H ill
ствованные выводы адресов использовать как выводы пор-
тов ввода - вывода). Цифра 80 в начале указывает на то,
что исполняемая программа может быть размещена толь-
ко во внешней ПЗУ.
Цифра 83, 87 или 89 указывает, что программа может
быть как во внешней ПЗУ, так и в ПЗУ кристалла (это более
поздние модели: 1990-е годы, уже научились ПЗУ делать
на одной подложке вместе с самим процессором): 83 - ма-
сочная ПЗУ (программируется на заводе изготовителе - на-
пример, контроллер клавиатуры АТ-ХТ); 87 - однократно
программируемая ПЗУ на кристалле процессора в корпу-
се из пластика или многократно (до 100 раз) перепрограм-
мируемая ПЗУ на кристалле в керамическом корпусе и
окошком для УФ стирания; 89 - многократно (до 10000 раз)
перепрограммируемая ПЗУ на кристалле, электрически
стираемая.
АТ - название фирмы изготовителя ATMEL
или
(русскоязычный сайт ATMEL).
Кроме того, это может быть DS - Dallas, N - Intel, Р-
Philips.
..
Так что данная микросхема - это микропроцессор (пра-
вильнее сказать, микроконтроллер) со встроенной ПЗУ, ко-
торую (ПЗУ внутри процессора) и надо запрограммировать,
чтобы микросхема начала выполнять требуемые функции.
Данный микроконтроллер программируется стандарт-
ным программатором, поддерживающим программирова-
ние этого типа микроконтроллеров (например, программа-
тор UNIPRO).
Признаки, по которым можно разделить микроконтрол-
леры, так же разнообразны, как сами микроконтроллеры.
Постараюсь остановиться хотя бы на основных. На мой
взгляд, самый важный признак - это система команд.
Z-80 - древняя система команд, хотя есть и серьезные
“камушки", например, Z-84. Но, на мой взгляд, безнадежно
устарело.
..
MCS-51
- наиболее распространенные микроконтрол-
леры, представленные у большинства фирм. Достаточно
удобный синтаксис для изучения ассемблера. Думаю, имен-
но с этих контроллеров надо начинать осваивать програм-
мирование. Правда, в этом семействе есть и монстры, на-
пример, DS89C420.
.. Это вам не шуточки.
PIC
- эти контроллеры отличаются сверхэкономичнос-
тью (по ресурсам, ногам и потреблению). В основном при-
меняются в промышленной автоматике.
AVR
- роскошное дитя огромного концерна ATMEL. (К
слову - фирма ATMEL пережила перевооружение произ-
водства. В настоящее время ATMEL является мировым “за-
конодателем моды’’ архитектуры микроконтроллеров.) Так,
о контроллере AVR.
.. Система команд достаточно сложная,
но идеально подходящая для Си-образных программ. Соб-
ственно ассемблер AVR изначально и был ориентирован
на программы Си. Так что, если нужна высокая производи-
тельность с фантастическими возможностями - пора пе-
реходить на Си под AVR.
НО ВСЕ МИКРОКОНТРОЛЛЕРЫ ОБЪЕДИНЯЕТ ЯЗЫК
ASSEMBLER
Язык Ассемблер действительно практически одинаков
для всех микроконтроллеров, но в то же время он и раз-
ный. Все задается системой команд, которую поддержива-
ет микроконтроллер (подобно как математическими дей-
ствиями можно описать движения планет и расчет сдачи в
магазине - но математика одна и та же [“+”,
“X”, Т , .
..]).
Так и в микроконтроллерах: если написать JMP #0h ( JUMP
- анг. “прыжок"), то будет выполнен безусловный переход
на адрес #0h. Но каждый контроллер имеет свою аппарат-
ную архитектуру (набор регистров, порты, таймеры, пре-
рывания, UART(s).
..) и соответственно ассемблер данного
микроконтроллера будет привязан к конкретной архитекту-
ре кристалла. В контроллерах RISC встречаются более
сложные отличия, например, в условных переходах, (при
выполнении условия переход осуществляется на одну ко-
манду); условно можно сказать так:
0001: если А=0 то идти 0003
0002: идти на 0010
0003: идти на 0020
Так же следует отметить различный синтаксис языка
ассемблера для различных процессоров. Например:
OUT, LD, MOV - означает одно и то же действие (надо
что-то загрузить куда-то), но для различных типов микро-
контроллеров надо пользоваться своим набором команд.
Это связано с синтаксисом ассемблирующего программ-
ного обеспечения (программой, которая делает из ассемб-
лерного текста коды, понятные микроконтроллеру).
КАК СЧИТАТЬ ВРЕМЯ
Для подсчета временных интервалов можно в главной
программе просто считать числа, и как только досчитаем
до определенного числа, значит .время кончилось. В та-
ком алгоритме есть очень большой недостаток: во время
“отсчета времени" микроконтроллер больше ничего не мо-
жет делать.
Но из этой
ситуации есть
выход. В микро-
контроллерах,
как
правило,
присутствует(-
ют) аппаратные
таймеры, кото-
рые “рутинную
работу” прибав-
ления единички
к числу выпол-
няют
парал-
лельно основ-
ной программе.
Как будто рабо-
тают два про-
цессора, один
из
которых
(главный) вы-
полняет
про-
грамму, а вто-
рой только счи-
тает время. Как
только время
досчитано, вто-
рой процессор
останавливает
первый и выполняет подпрограмму обработки (например,
прибавляет очередную секунду в часиках). Это явление на-
зывается “вызов вектора прерывания таймера”. При пере-
полнении таймера инициируется вызов вектора прерывания.
Вектор же вызывается как подпрограмма (с сохранением зна-
чения PC) и, соответственно, после окончания обработки
прерывания, управление передается в то же место основ-
ной программы, откуда была прервана вектором. Почему
это явление (вызов подпрограммы) называется вектором?
Аппаратно при активации прерывания каждое внутреннее
устройство микроконтроллера имеет свой адрес вызова.
6/2002
РЛ
предыдущая страница 22 Радиолюбитель 2002-06 читать онлайн следующая страница 24 Радиолюбитель 2002-06 читать онлайн Домой Выключить/включить текст