реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Intel 8051, Разработка схемы
micha
сообщение Sep 2 2005, 06:02
Сообщение #1





Группа: Validating
Сообщений: 3
Регистрация: 2-09-05
Пользователь №: 8 167



Помогите разработать схему, позволяющую реализовать 8-векторную систему прерываний с использованием Intel 8051
Go to the top of the page
 
+Quote Post
sergey-sv
сообщение Sep 2 2005, 06:48
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 52
Регистрация: 5-06-04
Из: Moscow
Пользователь №: 28



Восемь линий запросов внешних прерываний вешаешь на любые свободные входы контроллера (например, на Р1.0...Р1.7), а также объединяешь их по схеме ИЛИ (т.е. суммируешь) и подаешь этот объединенный сигнал на вход INT0 (или INT1) контроллера.
А в подпрограмме обработки внешнего прерывания по INT0 (или INT1) сначала опрашиваешь входы контроллера, на которые заведены 8 линий запросов, и определяешь, по какой именно линии поступило прерывание, а потом пердаешь управление на соответствующую п/программу.
Если что-то непонятно, могу прислать схемку и примерный алгоритм.
Go to the top of the page
 
+Quote Post
sergey-sv
сообщение Sep 2 2005, 06:52
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 52
Регистрация: 5-06-04
Из: Moscow
Пользователь №: 28



P.S. Есть еще вариант с внешним контроллером прерываний (типа 8259, по-моему), но это будет по-сложнее, и действительно необходимо только в случае, если у вас очень короткий внешний импульс запроса прерывания ( менее ~(10...15) мкс при работе контроллера на такт.частоте 12МГц)
Go to the top of the page
 
+Quote Post
Roma_te
сообщение Dec 13 2005, 13:38
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 123
Регистрация: 13-12-05
Из: Украина, Тернополь
Пользователь №: 12 161



Цитата(sergey-sv @ Sep 2 2005, 10:48) *
Восемь линий запросов внешних прерываний вешаешь на любые свободные входы контроллера (например, на Р1.0...Р1.7), а также объединяешь их по схеме ИЛИ (т.е. суммируешь) и подаешь этот объединенный сигнал на вход INT0 (или INT1) контроллера.
А в подпрограмме обработки внешнего прерывания по INT0 (или INT1) сначала опрашиваешь входы контроллера, на которые заведены 8 линий запросов, и определяешь, по какой именно линии поступило прерывание, а потом пердаешь управление на соответствующую п/программу.
Если что-то непонятно, могу прислать схемку и примерный алгоритм.


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

Для устранения этих ограничений можна вместо логического элемента 8 ИЛИ-НЕ использовать схему на элементах ИСКЛЮЧАЮЩЕЕ-ИЛИ, которая детектирует изменение любого входа. При чем, для согласования с системой прерываний МСS51, необходимо предусмотреть дополнительный вход, жтого конторллера прерываний, для возвращения сигнала INT0 (или INT1) в начальное состояние после идентификации источника прерываний.
Go to the top of the page
 
+Quote Post
psL
сообщение Dec 14 2005, 07:15
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 5-08-05
Пользователь №: 7 390



Цитата(sergey-sv @ Sep 2 2005, 09:52) *
P.S. Есть еще вариант с внешним контроллером прерываний (типа 8259, по-моему), но это будет по-сложнее, и действительно необходимо только в случае, если у вас очень короткий внешний импульс запроса прерывания ( менее ~(10...15) мкс при работе контроллера на такт.частоте 12МГц)

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


В 51 всего 5 аппаратных векторов прерываний.
Может лучше ARM или MSP430?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 17:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01706 секунд с 7
ELECTRONIX ©2004-2016