1
МИКРОКОНТРОЛЛЕРЫ
і
присутствовать сигнал лог. 1! Автор
должен с прискорбием признаться, что
заплатил за зту науку выгоревшим по-
левым ключом. Будучи установленным,
выбранный режим действует все вре-
мя, пока не будет перепрограммирова-
но содержимое подрегистра 5.
Подрегистры 6 и 7 позволяют отсле-
живать изменения сигнала на выбран-
ных (лог. 1) линиях порта без постоян-
ной их программной проверки, перело-
жив зту задачу на аппаратуру порта.
Если в процессе выполнения микрокон-
троллером очередной команды окажет-
ся, что сигнал на выбранных линиях
порта изменился, аппаратура микро-
контроллера вырабатывает специаль-
ный сигнал прерывания (о работе с
прерываниями - в следующих статьях),
извещающий процессор о факте тако-
го изменения. Если механизм преры-
ваний при работе микроконтроллера не
используется, программа всякий раз
должна самостоятельно проверять ли-
нии портов, чтобы отслеживать на них
изменения сигнала.
Как заносить информацию в подре-
гистры регистра конфигурации? Для
этого поступают следующим образом:
1. Вначале в регистр конфигурации
соответствующего порта выводят но-
мер того подрегистра, с которым хотят
работать. В этот момент регистр кон-
фигурации представляет собой как бы
“ворота”, через которые открывается
доступ к одному из подрегистров.
2. Затем в этот же регистр конфи-
гурации выводят значение, которое
должно попасть в выбранный подре-
гистр - проходят через “ворота” к нуж-
ному подрегистру.
Как видим, работа с регистром кон-
фигурации состоит из постоянных пар
“куда -> что”. Поскольку же подрегист-
ров в регистре конфигурации доволь-
но много, настройка порта таким спо-
собом становится делом утомитель-
ным. К счастью, для ее облегчения в
регистре конфигурации есть специаль-
ный бит “автоинкремент”. Если он ус-
тановлен в лог. 1, запись в подрегист-
ры производят так:
1. Вначале в регистр конфигурации
соответствующего порта выводят но-
мер нужного подрегистра с установлен-
ным битом “автоинкремент”.
2. Затем в регистр конфигурации
выводят значение, которое должно
попасть в выбранный подрегистр.
3. Затем в регистр конфигурации
выводят значение, которое должно по-
пасть в следующий подрегистр.
4. И т.д. до подрегистра 7 включи-
тельно (закончить раньше нельзя!).
И напоследок - формат регистра
конфигурации
(таблица 5).
Прежде, чем продолжить дальше,
сделаем одно небольшое отступление.
Если в каком-либо регистре внешнего
устройства микроконтроллера (и не
только микроконтроллера) какой-либо
бит не используется, существует “пра-
вило хорошего тона” - заносить в этот
бит лог. 0. Еще одно “правило хороше-
го тона” состоит в том, чтобы не исполь-
зовать такие “ненужные” биты на свой
лад: дело в том, что в следующих мо-
делях микроконтроллера (здесь, - под-
черкнем еще раз, - речь идет не имен-
но о КР1878ВЕ1, а вообще о любом
микроконтроллере - и не только мик-
роконтроллере!) эти биты могут быть
задействованы разработчиками микро-
контроллера для каких-то особых це-
лей. Результатом этого будет являться
то, что ваша программа просто может
перестать работать на новых моделях
микроконтроллеров! Поэтому повторим
это “правило хорошего тона” еще раз,
чтобы больше не возвращаться к это-
му вопросу.
Интервальный таймер (точнее, тай-
мер/счетчик) позволяет как отсчиты-
вать в программе заданный временной
промежуток, так и подсчитывать коли-
чество импульсов, пришедшее на вход
микроконтроллера. Интервальный тай-
мер состоит из нескольких регистров:
1. Управляющий регистр, доступ-
ный по адресу 04І1.
2. Регистр конфигурации таймера,
доступный по адресу 05И.
3. Регистр интервала (в зависимос-
ти от настроек - 8 или 16-битный), так-
же доступный по адресу ОБИ.
4. Счетный регистр (в зависимости
от настроек - 8 или 16-битный), также
доступный по адресу 05И.
Как видим, с таймером в некото-
ром роде повторяется ситуация реги-
стра конфигурации портов - регист-
ров много, а адрес один. Что именно
в данный момент подключено по ад-
ресу 05И - определяется содержимым
управляющего регистра. Его формат
- в
таблице 6.
Таблица 5
Бит регистра
Назначение
7
Не используется
6
Не используется
5
Разрешить сигнал прерывания от порта “в целом”
4
Лог.1 - “Автоинкремент”
3
Лог.1 - добраться до подрегистра, номер которого задан ниже
2
Номер подрегистра: 011 =3, 100 = 4 и т.д. до 111 = 7 включительно
1
0
Таблица 6
Бит регистра
Назначение
7
Счетчик числа необработанных прерываний
(о нем можно с чистой совестью забыть)
6
5
4
Лрг. 0 - по адресу 05Ь подключен регистр конфигурации.
Лог. 1 - по адресу 05Ь подключен регистр интервала
3
Лог. 0 - по адресу 05Ь подключено то, что указано а бите 4.
Лог. 1 - по адресу 05Ь подключен счетный регистр
2
Лог. 0 - по адресу 056 подключена младшая часть регистра
(для 16-битных).
Лог. 1 - по адресу 05И подключена старшая часть регистра
(для 16-битных)
1
Лог. 1 - разрешить прерывания от таймера
0
Лог. 1 - сбросить таймер и запустить отсчет.
Лог. 0 - остановка отсчета
1 27
Радиолюбитель - 05/2005 |
предыдущая страница 23 Радиолюбитель 2005-05 читать онлайн следующая страница 25 Радиолюбитель 2005-05 читать онлайн Домой Выключить/включить текст