Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Intel 8051
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
micha
Помогите разработать схему, позволяющую реализовать 8-векторную систему прерываний с использованием Intel 8051
sergey-sv
Восемь линий запросов внешних прерываний вешаешь на любые свободные входы контроллера (например, на Р1.0...Р1.7), а также объединяешь их по схеме ИЛИ (т.е. суммируешь) и подаешь этот объединенный сигнал на вход INT0 (или INT1) контроллера.
А в подпрограмме обработки внешнего прерывания по INT0 (или INT1) сначала опрашиваешь входы контроллера, на которые заведены 8 линий запросов, и определяешь, по какой именно линии поступило прерывание, а потом пердаешь управление на соответствующую п/программу.
Если что-то непонятно, могу прислать схемку и примерный алгоритм.
sergey-sv
P.S. Есть еще вариант с внешним контроллером прерываний (типа 8259, по-моему), но это будет по-сложнее, и действительно необходимо только в случае, если у вас очень короткий внешний импульс запроса прерывания ( менее ~(10...15) мкс при работе контроллера на такт.частоте 12МГц)
Roma_te
Цитата(sergey-sv @ Sep 2 2005, 10:48) *
Восемь линий запросов внешних прерываний вешаешь на любые свободные входы контроллера (например, на Р1.0...Р1.7), а также объединяешь их по схеме ИЛИ (т.е. суммируешь) и подаешь этот объединенный сигнал на вход INT0 (или INT1) контроллера.
А в подпрограмме обработки внешнего прерывания по INT0 (или INT1) сначала опрашиваешь входы контроллера, на которые заведены 8 линий запросов, и определяешь, по какой именно линии поступило прерывание, а потом пердаешь управление на соответствующую п/программу.
Если что-то непонятно, могу прислать схемку и примерный алгоритм.


Схема с элементом 8 ИЛИ-НЕ подходит только в случае когда:
1. Прерывание визывается нулем;
2. Не больше чем одно прерывание может быть активным в каждый момент времени.

Для устранения этих ограничений можна вместо логического элемента 8 ИЛИ-НЕ использовать схему на элементах ИСКЛЮЧАЮЩЕЕ-ИЛИ, которая детектирует изменение любого входа. При чем, для согласования с системой прерываний МСS51, необходимо предусмотреть дополнительный вход, жтого конторллера прерываний, для возвращения сигнала INT0 (или INT1) в начальное состояние после идентификации источника прерываний.
psL
Цитата(sergey-sv @ Sep 2 2005, 09:52) *
P.S. Есть еще вариант с внешним контроллером прерываний (типа 8259, по-моему), но это будет по-сложнее, и действительно необходимо только в случае, если у вас очень короткий внешний импульс запроса прерывания ( менее ~(10...15) мкс при работе контроллера на такт.частоте 12МГц)

угу. Долго ты ее к 51 прикручивать будешь, а после искать, где бы ее купить...


В 51 всего 5 аппаратных векторов прерываний.
Может лучше ARM или MSP430?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.