www.diagram.com.ua
www.diagram.com.ua

Русский: Русская версия English: English version

Translate it!

+ Поиск по всему сайту
+ Поиск по журналам
+ Поиск по статьям сайта
+ Поиск по каталогу схем
+ Поиск по схемам СССР
+ Поиск по Библиотеке

ВСЕ СТАТЬИ А-Я

БЕСПЛАТНАЯ БИБЛИОТЕКА
ЭНЦИКЛОПЕДИЯ РАДИОЭЛЕКТРОНИКИ И ЭЛЕКТРОТЕХНИКИ
СПРАВОЧНИК
АРХИВ СТАТЕЙ

НОВОСТИ НАУКИ И ТЕХНИКИ, НОВИНКИ ЭЛЕКТРОНИКИ

ФОРУМЫ
ВАШИ ИСТОРИИ ИЗ ЖИЗНИ
ОБРАТНАЯ СВЯЗЬ
ОТЗЫВЫ О САЙТЕ

КАРТА САЙТА

Бесплатная техническая библиотека РАЗДЕЛЫ БЕСПЛАТНОЙ ТЕХНИЧЕСКОЙ БИБЛИОТЕКИ:
Архив и лента новостей
Книги и сборники
Технические журналы
Архив статей и поиск
Схемы и сервис-мануалы
Электронные справочники
Русские инструкции
Радиоэлектронные и электротехнические устройства

СКАЧАЙТЕ БЕСПЛАТНО:

ЭНЦИКЛОПЕДИЯ РАДИОЭЛЕКТРОНИКИ И ЭЛЕКТРОТЕХНИКИ БЕСПЛАТНО:
Автомобиль
Автомобильные электронные устройства
Аккумуляторы, зарядные устройства
Акустические системы
Альтернативные источники энергии
Антенны
Антенны КВ
Антенны телевизионные
Антенны УКВ
Антенные усилители
Аудио и видеонаблюдение
Аудиотехника
Блоки питания
Бытовая электроника
Бытовые электроприборы
Видеотехника
ВЧ усилители мощности
Галогенные лампы
Генераторы, гетеродины
Гирлянды
Гражданская радиосвязь
Детекторы напряженности поля
Дозиметры
Дом, приусадебное хозяйство, хобби
Зажигание автомобиля
Заземление и зануление
Зарядные устройства, аккумуляторы, батарейки
Защита электроаппаратуры
Звонки и аудио-имитаторы
Измерения, настройка, согласование антенн
Измерительная техника
Индикаторы, датчики, детекторы
Инструмент электрика
Инфракрасная техника
Кварцевые фильтры
Компьютерные интерфейсы
Компьютерные устройства
Компьютерный модинг
Компьютеры
Личная безопасность
Люминесцентные лампы
Медицина
Металлоискатели
Микроконтроллеры
Микрофоны, радиомикрофоны
Мобильная связь
Модернизация радиостанций
Модуляторы
Молниезащита
Музыканту
Начинающему радиолюбителю
Ограничители сигнала, компрессоры
Освещение
Освещение. Схемы управления
Охрана и безопасность
Охрана и сигнализация автомобиля
Охрана и сигнализация через мобильную связь
Охранные устройства и сигнализация объектов
Переговорные устройства
Передатчики
Передача данных
Предварительные усилители
Преобразователи напряжения, выпрямители, инверторы
Применение микросхем
Пускорегулирующие аппараты люминесцентных ламп
Работа с CAD-программами
Радиолюбительские расчеты
Радиолюбителю-конструктору
Радиоприем
Радиостанции портативные
Радиостанции, трансиверы
Радиоуправление
Разная бытовая электроника
Разные компьютерные устройства
Разные узлы радиолюбительской техники
Разные устройства гражданской радиосвязи
Разные электронные устройства
Разные электроустройства
Регуляторы мощности, термометры, термостабилизаторы
Регуляторы тембра, громкости
Регуляторы тока, напряжения, мощности
Сварочное оборудование
Светодиоды
Синтезаторы частоты
Смесители, преобразователи частоты
Спидометры и тахометры
Справочник электрика
Справочные материалы
Стабилизаторы напряжения
Студенту на заметку
Телевидение
Телефония
Теория антенн
Техника QRP
Технологии радиолюбителя
Технология антенн
Трансвертеры
Узлы радиолюбительской техники
Усилители мощности
Усилители мощности автомобильные
Усилители мощности ламповые
Усилители мощности транзисторные
Усилители низкой частоты
Устройства защитного отключения
Фильтры и согласующие устройства
Цветомузыкальные установки
Цифровая техника
Часы, таймеры, реле, коммутаторы нагрузки
Электрику
Электрику. ПТЭ
Электрику. ПУЭ
Электрические схемы автомобилей
Электрические счетчики
Электричество для начинающих
Электробезопасность, пожаробезопасность
Электродвигатели
Электромонтажные работы
Электронный впрыск топлива
Электропитание
Электроснабжение
Электротехнические материалы

СТАТЬИ БЕСПЛАТНО:
Батарейки и аккумуляторы
Большая энциклопедия для детей и взрослых
Биографии великих ученых
Важнейшие научные открытия
Детская научная лаборатория
Должностные инструкции
Домашняя мастерская
Жизнь замечательных физиков
Заводские технологии на дому - простые рецепты
Инструменты и механизмы для сельского хозяйства
Искусство аудио
Искусство видео
История техники, технологии, предметов вокруг нас
И тут появился изобретатель
Конспекты лекций, шпаргалки
Личный транспорт: наземный, водный, воздушный
Любителям путешествовать - советы туристу
Мобильные телефоны
Моделирование
Опыты по физике
Опыты по химии
Нормативная документация по охране труда
Основы безопасной жизнедеятельности (ОБЖД)
Основы первой медицинской помощи (ОПМП)
Охрана труда
Параметры, аналоги, маркировка радиодеталей
Радио - начинающим
Секреты ремонта
Советы радиолюбителям
Строителю, домашнему мастеру
Справочная информация
Типовые инструкции по охране труда (ТОИ)
Функциональный состав импортных ТВ
Функциональный состав, пульты, шасси, эквиваленты импортных телевизоров
Чудеса природы. Увлекательное путешествие вокруг земного шара
Шпионские штучки
Электрик в доме
Эффектные фокусы и их разгадки

ЖУРНАЛЫ БЕСПЛАТНО:
Блокнот Радиоаматора
Домашний компьютер
Домашний ПК
КВ журнал
КВ и УКВ
Квант
Компьютерра
Конструктор
Левша
Моделист-конструктор
М-Хобби
Наука и жизнь
Новости электроники
Новый Радиоежегодник
Популярная механика
Радио
Радио Телевизия Електроника
Радиоаматор
Радиодело
Радиодизайн
Радиокомпоненты
Радиоконструктор
Радиолюбитель
Радиомир
Радиосхема
Радиохобби
Ремонт и сервис
Ремонт электронной техники
Сам
Сервисный центр
Силовые машины
Схемотехника
Техника - молодежи
Химия и жизнь
ЭКиС
Электрик
Электроника
Юный техник
Юный техник для умелых рук
Я - электрик
A Radio. Prakticka Elektronika
Amaterske Radio
Chip
Circuit Cellar
Electronique et Loisirs
Electronique Pratique
Elektor Electronics
Elektronika dla Wszystkich
Elektronika Praktyczna
Everyday Practical Electronics
Evil Genius
Funkamateur
Nuts And Volts
QEX
QST
Radiotechnika Evkonyve
Servo
Stereophile

КНИГИ СЕРИЙНЫЕ БЕСПЛАТНО:
Библиотека по автоматике
Библиотека электромонтера
Библиотечка Квант
Библиотечка электротехника
Знай и умей
Массовая радиобиблиотека

КНИГИ ПО РАДИОТЕХНИКЕ И ЭЛЕКТРОНИКЕ БЕСПЛАТНО:
Автомобиль
Аппаратура СВЧ
Запись и воспроизведение звука
Ламповая аппаратура
Начинающему радиолюбителю
Охрана и безопасность
Радиолокация, навигация
Радиотехнические технологии
Радиоуправление, моделизм
Робототехника
Схемотехника
Теоретическая электроника, радиотехника
Усилители
Цифровая обработка сигналов
Электроника в быту
Электроника в медицине
Электроника в науке
Электроника для музыканта

КНИГИ ПО РЕМОНТУ БЕСПЛАТНО:
Ремонт аудиотехники
Ремонт бытовая техники
Ремонт видеотехники
Ремонт телевизоров ламповых
Ремонт телевизоров полупроводниковых
Ремонт мониторов
Ремонт оргтехники
Ремонт радиоприемников
Ремонт телефонов и факсов
Спутниковое телевидение
Теория телевидения
Теория ремонта электроники

КНИГИ ПО ИЗМЕРЕНИЯМ БЕСПЛАТНО:
Измерения и метрология
Измерительная аппаратура
Измерительная техника. Схемы и описания

КНИГИ ПО СВЯЗИ БЕСПЛАТНО:
Антенны
Аппаратура любительской радиосвязи
Линии связи, передача данных
Мобильные телефоны
Теория и практика радиосвязи

КНИГИ ПО ЭЛЕКТРИКЕ БЕСПЛАТНО:
Автоматика, автоматизация, управление
Аккумуляторы, элементы питания, зарядные устройства
Альтернативные источники энергии
Источники питания, стабилизаторы, преобразователи
Молниезащита
Осветительная аппаратура
Охрана труда, электробезопасность, пожаробезопасность
Релейная защита
Сварка, сварочное оборудование
Теория электротехники
Устройства телемеханики
Электрику, электромонтажнику, электромеханику
Электрические сети, воздушные и кабельные линии
Электродвигатели
Электрооборудование
Электропривод
Электростанции, подстанции
Электротехнические справочники
Энергетика, электроснабжение

СБОРНИКИ БЕСПЛАТНО:
В помощь радиолюбителю
Радиоаматор-лучшее
Радиоежегодник

СПРАВОЧНИКИ БЕСПЛАТНО:
Зарубежные микросхемы и транзисторы
Измерительная техника. Схемы и описания
Медицинская аппаратура
Механизмы импортной аудио и видеоаппаратуры
Прошивки зарубежной аппаратуры
Пульты ДУ импортных телевизоров
Радиокомпоненты Atmel
Радиокомпоненты Cirrus Logic
Радиокомпоненты Maxim
Радиокомпоненты Microchip
Радиокомпоненты Mitsubishi
Радиокомпоненты Motorola
Радиокомпоненты National Semiconductor
Радиокомпоненты Panasonic
Радиокомпоненты Philips
Радиокомпоненты Rohm
Радиокомпоненты Samsung
Радиокомпоненты Sharp
Радиокомпоненты Sony
Радиокомпоненты Toshiba
Соответствие моделей и шасси телевизоров
Строчные трансформаторы HR
Строчные трансформаторы Konig

СХЕМЫ И СЕРВИС-МАНУАЛЫ БЕСПЛАТНО:
Бытовая техника Beko
Бытовая техника Braun
Бытовая техника Candy
Бытовая техника Elenberg
Бытовая техника Elica
Бытовая техника Gorenje
Бытовая техника Hansa
Бытовая техника Merloni
Бытовая техника SEB
Бытовая техника Snaige
Бытовая техника Stinol
Бытовая техника Universal
Бытовая техника Whirpool

Зарубежные DVD-плееры
Зарубежные автомагнитолы
Зарубежная аудиоаппаратура
Зарубежные видеокамеры
Зарубежные видеомагнитофоны и видеоплееры
Зарубежные мониторы
Зарубежные моноблоки
Зарубежные телевизоры
Зарубежные телефоны
Зарубежные факсы

Мобильники Benq-Siemens
Мобильники Eastcom
Мобильники Ericsson
Мобильники Fly Bird
Мобильники LG
Мобильники Maxon
Мобильники Mitsubishi
Мобильники Motorola
Мобильники Nokia
Мобильники Panasonic
Мобильники Pantech
Мобильники Samsung
Мобильники Sharp
Мобильники Siemens
Мобильники Sony-Ericsson
Мобильники TCL
Мобильники Voxtel

Отечественные телевизоры
Отечественная аудиоаппаратура

Справочники по вхождению в режим сервиса

Схемы блоков питания импортных телевизоров и видеотехники

Телевизоры Avest
Телевизоры Beko
Телевизоры, аудио, видеотехника Elenberg, Cameron, Cortland
Телевизоры Erisson
Телевизоры Rainford
Телевизоры Roadstar
Телевизоры Rolsen
Телевизоры Vestel
Телевизоры Витязь
Телевизоры Горизонт
Телевизоры Рекорд
Телевизоры Рубин

Станки металлообрабатывающие
Электроинструмент Bocsh
Электроинструмент Makita

БЕСПЛАТНЫЙ АРХИВ СТАТЕЙ
(150000 статей в Архиве)

АЛФАВИТНЫЙ УКАЗАТЕЛЬ СТАТЕЙ:
Библиотечка Квант указатель
Библиотека по автоматике указатель
Библиотека электромонтера указатель
Библиотечка электротехника указатель
Блокнот Радиоаматора указатель
В помощь радиолюбителю указатель
Знай и умей указатель
Массовая радиобиблиотека указатель
КВ и УКВ указатель
КВ журнал указатель
Квант указатель
Конструктор указатель
Моделист-конструктор указатель
Наука и жизнь указатель
Новости электроники указатель
Новый Радиоежегодник указатель
Популярная механика указатель
Радио указатель
Радиоаматор указатель
Радиоаматор-лучшее указатель
Радиоежегодник указатель
Радиодело указатель
Радиодизайн указатель
Радиокомпоненты указатель
Радиоконструктор указатель
Радиолюбитель указатель
Радиомир указатель
Радиосхема указатель
Радиохобби указатель
Ремонт и сервис указатель
Ремонт электронной техники указатель
Сам указатель
Сервисный центр указатель
Силовая электроника указатель
Схемотехника указатель
Техника - молодежи указатель
Химия и жизнь указатель
ЭКиС (Электронные компоненты и системы) указатель
Электрик указатель
Электроника указатель
Юный техник указатель
Я - электрик указатель

СПРАВОЧНИК БЕСПЛАТНО

ПАРАМЕТРЫ РАДИОДЕТАЛЕЙ БЕСПЛАТНО

ДАТАШИТЫ БЕСПЛАТНО

ПРОШИВКИ БЕСПЛАТНО

РУССКИЕ ИНСТРУКЦИИ БЕСПЛАТНО


Стол заказов СТОЛ ЗАКАЗОВ:

СХЕМЫ ПОД ЗАКАЗ:
Импортные DVD
Импортные автоаудио
Импортные аудио
Импортные видеокамеры
Импортные видеомагнитофоны
Импортные кондиционеры
Импортные мониторы
Импортные моноблоки
Импортные проекторы
Импортные СВЧ-печи
Импортная спутниковая аппаратура
Импортные стиральные машины
Импортные телевизоры
Импортные телефоны
Импортные факсы
Импортные фотоаппараты
Импортные холодильники

Отечественные автоаудио
Отечественные видеомагнитофоны
Отечественные магнитофоны
Отечественные мониторы
Отечественные приборы
Отечественные радиолы
Отечественные радиоприемники
Отечественные усилители
Отечественные цветные телевизоры
Отечественные черно-белые телевизоры
Отечественные электрофоны


Бонусы БОНУСЫ:

НА ДОСУГЕ:
Интерактивные флеш-игры
Игры он-лайн
Ваши истории
Знаете ли Вы, что...
Зрительные иллюзии
Веселые задачки
Каталог Вивасан
Палиндромы
Сборка кубика Рубика

ИСТОРИИ ИЗ ЖИЗНИ

ССЫЛКИ

ДОБАВИТЬ В ЗАКЛАДКИ

Оставить отзыв о сайте

ДИАГРАММА
© 2000-2017

Дизайн и поддержка:
Александр Кузнецов

Техническое обеспечение:
Михаил Булах

Программирование:
Данил Мончукин

Маркетинг:
Татьяна Анастасьева

Перевод:
Наталья Кузнецова

Контакты

При использовании материалов сайта обязательна ссылка на http://www.diagram.com.ua

сделано в Украине
сделано в Украине

Диаграмма. Бесплатная техническая библиотека

Бесплатная техническая библиотека Бесплатная техническая библиотека Как скачивать файлы с сайта? Как скачивать файлы с сайта? Добавить в закладки, оставить отзывДобавить в закладки, оставить отзыв

Энциклопедия радиоэлектроники и электротехники. Большая подборка статей со схемами, иллюстрациями, комментариями Энциклопедия радиоэлектроники и электротехники

Бесплатная библиотека / Схемы радиоэлектронных и электротехнических устройств

Модульное программирование систем управления на MCS48

Энциклопедия радиоэлектроники и электротехники / Микроконтроллеры

Комментарии к статье Комментарии к статье

Известно, что один и тот же микроконтроллер может управлять как сложным технологическим оборудованием, так и бытовой кофемолкой или электронными часами. Адаптация к конкретному объекту осуществляется изменением программы микроконтроллера, аппаратные средства почти не затрагиваются. Предлагаемая статья посвящена приемам программирования микроконтроллеров серии МСS48, широко используемых в системах управления различного назначения. Ее основные положения справедливы и для более современных приборов.

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

Этот принцип заложен в структуру многих языков высокого уровня (PASCAL, C++), и программист буквально вынужден ему следовать. К сожалению, АССЕМБЛЕРЫ (в том числе для МСS48), предоставляя программисту большую свободу выбора средств и методов решения задач, как правило, совсем не следят за соблюдением дисциплины программирования. Это нередко приводит к созданию настолько запутанных программ, что даже их авторы не могут спустя некоторое время разобраться в том, что было сделано, не говоря уже об использовании отлаженных фрагментов в других программах. Сознательное соблюдение общих модульных концепций значительно облегчает и ускоряет программирование микроконтроллеров. Пример типичной модульной программы для СУ приведен в таблице. Ее синтаксис соответствует табличному АССЕМБЛЕРУ ТАSМ в варианте для микропроцессора 8048.

Как видно, в начале текста программы директивами ЕQU константам даются имена и присваиваются значения. Пользоваться именованными константами всегда предпочтительнее, чем указывать числовые значения непосредственно в исполняемых командах процессора. Например, выдержка времени, реализуемая одной из рассматриваемых ниже подпрограмм, определяется тремя числами. Они заданы константами N1, N2 и N3. Если нужно изменить выдержку .достаточно в операторах ЕQU указать новые значения. В противном случае пришлось бы разыскивать во всей программе команды с операндами, равными этим числам, решать, относится ли каждая из них к выдержке времени, и в нужных случаях указывать новые значения.

Очевидно,такая работа требует много времени и часто не обходится без ошибок. Особенно усложняет ее то, что в некоторых командах может использоваться не число целиком, а, например, его старший или младший байт. АССЕМБЛЕР уже на этапе трансляции программы способен вычислить некоторые константы, исходя из значений других. Эту возможность иллюстрирует вычисление старшего (NЗН) и младшего (N3L) байтов числа N3.

Далее в программе выделяют память для переменных. Делают это теми же самыми директивами ЕQU, но в отличие от описаний констант задают не числовые значения переменных, а адреса занимаемых ими ячеек памяти.

Модульное программирование систем управления на MCS48

(нажмите для увеличения)

Если позволяет АССЕМБЛЕР, не следует пренебрегать возможностью использования макрокоманд. Каждая из них представляет собой как бы новую команду, выполняющую операцию, прямо не предусмотренную системой команд процессора. Описывая макрокоманду, программист дает ей имя (конечно, не совпадающее с именем ни одной из "настоящих" команд) и задает требуемые действия в виде Последовательности машинных команд. Каждый раз, встретив макрокоманду в программе, АССЕМБЛЕР заменит ее указанной последовательностью. В рассматриваемом примере Используются две макрокоманды. Одна из них пересылает содержимое аккумулятора в заданную параметром макрокоманды ячейку памяти данных, а другая - обратно.

После включения питания (или подачи сигнала сброса) микроконтроллер начинает выполнять программу с нулевого адреса. По этому адресу обычно записывают команду безусловного перехода на действительную точку начала программы (в данном случае, на метку START). Это необходимо потому что аппаратные прерывания всегда передают управление по фиксированным адресам 3 и 7 (у микроконтроллеров других типов адреса могут быть иными, но все равно они расположены в начале памяти программ). Находящиеся по этим адресам команды безусловного перехода на подпрограммы обслуживания соответствующих прерываний основная программа должна "обойти".

Следующий этап-установка режимов работы контроллера (например, выбор банков памяти и регистров), инициализация переменных и внешних устройств. Типичная ошибка начинающих программистов - считать, что сразу после пуска программы переменные уже имеют какие-то определенные значения. Укреплению этого заблуждения способствует предусмотренное в некоторых языках высокого уровня (например, в BASIC) автоматическое присвоение всем переменным начального нулевого значения. В программах на языке АССЕМБЛЕРа (и многих других языках) программист должен сам позаботиться, чтобы до первого считывания значения переменной в отведенную ей ячейку памяти уже было что-нибудь записано. Хороший стиль программирования требует, чтобы начальные значения были присвоены переменным в самом начале работы программы. В данном случае это делает подпрограмма 1INIT.

Раздел инициализации внешних устройств обычно выглядит как поочередный вызов подпрограмм, каждая из которых приводит в исходное состояние одно из них (аналого-цифровой преобразователь, светодиодный индикатор, кнопочный пульт и т. п.) и может быть легко заменена при доработке и совершенствовании системы. Нередко эти же подпрограммы проверяют работоспособность устройств.

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

Таким образом, программа, построенная по модульному принципу,представля-от собой набор подпрограмм. Если в новой СУ применена, например, иная клавиатура, достаточно будет заменить подпрограмму BUTT. Для того чтобы такая замена была простой и безболезненной, следует выработать и всегда соблюдать определенные правила. Подпрограммы, по возможности, должны сохранять содержимое всех регистров контроллера, получать исходные данные и выдавать результаты работы в одних и тех же регистрах и ячейках памяти, пользоваться одной и той же кодировкой символов и т. п.

Следует бороться с естественным (особенно для программистов, преодолевших первые трудности и начинающих чувствовать себя профессионалами) стремлением упростить программу за счет отхода от строгих правил и применения нестандартных приемов. Кажущееся, на первый взгляд.неоправданным усложнение вполне окупится облегчением отладки и переработки программы в целом.

Рассмотрим некоторые особенности подпрограмм. I NCREM и DЕСRЕМ выполняют требуемые во многих случаях операции увеличения или уменьшения на заданную величину 16-разрядного двоичного числа (его старший и младший байты находятся соответственно в регистрах R6 и R5). Константы, задающие величину приращения, описаны в начале программы.

Так как любой микроконтроллер работает значительно быстрее технологического оборудования, очень важно уметь организовывать в программе выдержку времени. В данном случае использован внутренний счетчик/таймер процессора. Он имеет ограниченную емкость и переполняется за время, измеряемое миллисекундами. Каждое переполнение генерирует запрос прерывания. Подпрограмма обслуживания прерываний от таймера (ТIМЕ) подсчитывает их и при достижении заданного числа присваивает единичное значение флагу истечения времени FLT. Всем подпрограммам,работа которых зависит от времени, остается анализировать состояние этого флага. Так удается реализовать выдержки в несколько секунд и даже минут.

Для того чтобы начать отсчет нового интервала, необходимо занести исходные значения в рабочие ячейки подпрограммы ТIМЕ и включить таймер. Подпрограмма SET2М, например, задает выдержку времени, равную 2 мин. Расчет исходных значений имеет несколько тонкостей.

Известно, что в микроконтроллерах серии МСS48 на вход внутреннего счетчика/таймера импульсы поступают с частотой, в 480 раз меньшей частоты кварцевого генератора. Например, при частоте кварцевого резонатора 7 МГц число, записанное в счетчик, изменяется каждые 480/7000000 = 0,00006857 с = 68,57 мкс. Так что счетчик переполнится (и будет сформирован запрос прерывания) через 68,57 -(256-N1) мкс, где N1 -число,первоначально записанное в счетчик. Если каждый раз начинать новый счет с этого числа, то за 0,1 с (минимальная выдержка времени) произойдет N2 = 0,1 · 7000000/[1480 · (256-N1)] переполнений.

Очевидно, одну и ту же выдержку времени можно получить при разных N1 и N2, но так как эти числа не могут быть дробными, она будет реализована с некоторой ошибкой. Задача состоит в подборе такой пары значений, при которых ошибка минимальна. В рассматриваемом случае наилучший вариант N1 = 13, N2 = 6, Выдержка времени, равная 2 мин, получается повторением описанной процедуры N3 = 1200 раз.

Часто бывает необходимо в разных режимах работы программы применять разные процедуры обработки одних и тех же аппаратных прерываний. Один из способов сделать это иллюстрирует подпрограмма INTER. Она анализирует код типа прерывания, занесенный основной программой в ячейку INTT,и в зависимости от его значения вызывает одну из подпрограмм обслуживания прерывания ISR1 или ISR2. Заметим, что обе они заканчиваются командой RЕТ,а не RETR. Число вариантов обработки нетрудно увеличить и даже сделать так, что при некотором значении кода будут вызываться одна за другой несколько различных подпрограмм.

Вовсе не обязательно записывать все необходимые подпрограммы в текстовый файл основной программы. Отлаженные и неоднократно использованные в разных программах модули могут находиться в отдельных файлах и подключаться к основной программе директивами INCLUDE. Каждый включаемый файл может содержать одну или несколько подпрограмм. Недостаток такого способа заключается в том, что имена переменных, констант и меток во всех используемых модулях не должны повторяться. Лишенный этого дефекта метод раздельной трансляции модулей с последующим объединением их на уровне объектного кода, к сожалению, не поддерживается АССЕМБЛЕРОМ ТАSМ.

Автор: Д.Рыжов, г.Владимир

Смотрите другие статьи раздела Микроконтроллеры.

Читайте и пишите полезные комментарии к этой статье.

Рекомендуем скачать в нашей Бесплатной технической библиотеке:

журналы Радиолюбитель 2007 (архив за год)

журналы Моделист-конструктор 1985 (архив за год)

книга Вентильные разрядники для электроустановок. Юриков П.А., 1975

книга Низковольтные индикаторы. Справочник. Лисицын Б.Л., 1985

статья Каковы размеры самого большого медведя?

статья Простой металлоискатель на микросхеме UCY7400

справочник Сервисные режимы телевизоров зарубежных телевизоров. Книга №11

Оставьте свой комментарий к этой статье:

Имя:

E-mail (не обязательно):

Комментарий:

[lol][;)][roll][oops][cry][up][down][!][?]