Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
02.09.2005, 09:30
|
|
Прохожий
Регистрация: 02.09.2005
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Intel 8051
Нужно разработать схему, позволяющую реализовать 8-векторную схему прерываний с использованием Intel 8051. Помогите, пожалуйста.
|
|
|
|
02.09.2005, 15:36
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,948
Сказали Спасибо 1,327 раз(а) в 578 сообщении(ях)
|
Re: Intel 8051
Сообщение от micha
|
Нужно разработать схему, позволяющую реализовать 8-векторную схему прерываний с использованием Intel 8051. Помогите, пожалуйста.
|
Вопрос - а зачем это? Я не сильно большой спец в схемотехнике, но тут кажется парой корпусов логики не обойдешься. Не проще ли взять другой микроконтроллер, у которого достаточно векторов, или хотя бы МК, у которого есть возможность получить прерывания по изменению состояния порта - пусть вектор один, далее прочитав порт - передать управление куда надо...
|
|
|
|
04.09.2005, 09:16
|
|
Гость
|
Конечно проще, но я хочу разобраться с этой задачей и понять как это делается.
|
|
|
|
04.09.2005, 10:40
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,948
Сказали Спасибо 1,327 раз(а) в 578 сообщении(ях)
|
Сообщение от Anonymous
|
Конечно проще, но я хочу разобраться с этой задаче и понять как это делается.
|
Ну, полноценные вектора получить, ессно, не удастся.
То есть - прерывание будет одно, а уж в обработчике надо принять решение- что вызвало.
Если примитивно - то свести 8 линий в одну по ИЛИ и дать возможность те 8 линий процессору читать (завести на порт). Но тут будет куча вопросов... Например, короткий импульс - прерывание вызвал, а пока процессор дошел до чтения порта - его уже нет. Или, например, появление за это время еще одного сигнала.
Тут не так все просто, как на первый взгляд. Не зря в свое время была специальная микросхема - ВТ37, кажется - контроллер прерываний, которая все это делала.
|
|
|
|
04.09.2005, 10:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.03.2005
Сообщений: 1,056
Сказал спасибо: 1
Сказали Спасибо 250 раз(а) в 174 сообщении(ях)
|
контроллер прерываний
Был такой контроллер прерываний КР580ВН59, его (или его аналог) можно наверно задействовать вместе с 51.
|
|
|
|
11.09.2005, 10:41
|
|
Гость
|
ожно попробовать после получения прерывания первым делом считать содержимое порта а потом уже разбираться с ним контроллер прерываний намного надежнее при этом можно иметь вариации с системой прерываний. один вопрос а зачем нужно столько линий прерывания?
|
|
|
|
12.09.2005, 00:01
|
|
Гражданин KAZUS.RU
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
|
А разве в 51-м не векторная система прерываний?
???
|
|
|
|
12.09.2005, 10:09
|
|
Гость
|
да по поводу контроллера прерываний он не будет работать с этим камнем т.к. вещь привязана к 580 и 1810 изначально. он генерирует код команды call и адрес перехода на пп обработки прерывания. см описание у Шахнова и ко.
|
|
|
|
12.09.2005, 11:56
|
|
Прописка
Регистрация: 17.03.2005
Сообщений: 122
Сказал спасибо: 1
Сказали Спасибо 33 раз(а) в 7 сообщении(ях)
|
Контроллер прерываний 580Вн59, а так же 1810Вн59 будет работать с 8051 на 100%. Ни какой код команды call эти контроллеры не генерируют. Они выставляют однобайтный код команды RSTx, где х - номер вектора прерываний в таблице векторов, аналогично как у 8051. Только в 8051 каждый вектор отвечает, за какое то внутреннее устройство (напимер от счетчика, или от приемопередатчика USART), в 8080 (он же русский 580ВМ80 ) же все переходы (8 штук) в таблице переходов равнозначны, а процессор имеет всего один вход запроса на прерывание. В начале старта 8080 программирует внешний контроллер прерываний, в плане приоритета векторов и срабатывания по уровню, или переходу внещних прерывающих сигналов. Во время возникновения прерывания, на специальном выходе контроллера возникает сигнал прерывания. Этот сигнал необходимо завести на один из входов внешнего прерывания 8051. После считывания номера вектора прерывания (не кода команды call ), 8051 обрабатывает этот номер и переходит на подпрограмму обработки. Т.о достаточно для 8051 написать обработчик внешнего прерывания, напримерн INT0, который будет считывать вектор прерывания из ВН59 и переходить на подпрограмму обработки.
|
|
|
|
12.09.2005, 12:04
|
|
Прописка
Регистрация: 17.03.2005
Сообщений: 122
Сказал спасибо: 1
Сказали Спасибо 33 раз(а) в 7 сообщении(ях)
|
Да, чуть не забыл, после того как МК обработает прерывание, по специальному сигналу подать сигнал "прерывание обработано", чтобы контроллер прерываний мог хромать дальше.
Вобщем для подцепления 8259 (так контроллер прерываний маркируется у INTEL) к микроконтроллеру с архитектурой 8051, да и к любому другому МК, достаточно 10 линий ввода-вывода. 8 линий (полностью порт) для организации шины данных между МК и контроллером прерываний, линия для подтверждения обработки прерывания, и линия для обнаружения прерывания. В идеале эта линия должна быть линией внешнего прерыания для МК, но пожно использовать и простую линию ввода-вывода. Но в этом случае МК должен циклически опроашивать эту линию для своевременного обнаружения прерыания.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Intel Hex
|
poluska |
Микроконтроллеры, АЦП, память и т.д |
1 |
29.07.2009 16:38 |
сопряжение intel 8051 и PC через шину ISA
|
Skobl |
Микроконтроллеры, АЦП, память и т.д |
0 |
28.05.2006 23:25 |
Помогите с HSO.0 на МК 8ХС196KC(Intel)
|
Константин |
Микроконтроллеры, АЦП, память и т.д |
0 |
07.05.2005 19:21 |
Вопрос по микроконтроллеру intel 80c51.
|
макс |
Микроконтроллеры, АЦП, память и т.д |
8 |
23.02.2005 19:04 |
процессор intel 80960ka/kb
|
alexgeo |
Микроконтроллеры, АЦП, память и т.д |
0 |
29.05.2003 08:42 |
Часовой пояс GMT +4, время: 04:05.
|
|