[an error occurred while processing this directive] [an error occurred while processing this directive]
8051 HELP
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Stolyarov Alexander 10 мая 2002 г. 17:24

Господа, помогите новичку!

Стоит следующая задача: "Управление грейфером"(на ТЭЦ кран с большим
ковшом). Т.е. есть 3 эл. двигателя, 3 концевых датчика
("вперед",Назад","Вверх"), а так же датчик тока (проверяет поднятие
ковша, если да, то закрыть ковш).

Система управления состоит в следующем:

Оператор нажимает, например, кнопку "Вперед" - тележка с ковшом едет
вперед то тех пор, пока не достигнет концевого датчика (обычный
контакт) или же, пока оператор не нажмет кнопку "стоп" или любую
другую.
Аналогично с командой "назад".

Затем, когда требуется зачерпнуть уголь, оператор нажимает вниз,
тележка с ковшом останавливается, и ковш плавно спускается вниз,
загребает уголь и, когда оператор даст команду "вверх", запускается
двигатель начинает поднимать ковш. Датчик тока, естественно,
срабатывает (т.к. ток в обмотке двигателя подъемника возрос) и
микроконтроллер дает команду на закрытие ковша, т.е. на 3-й
двигатель.

Собственно, вот такая задача.

Мое предположительное решение:

Все датчики и кнопки управления посадить на 2 порта, и, объединив их
элементом "ИЛИ" кинуть на вывод микроконтроллера "INT"

В программе организовать цикл до тех пор, пока не поступит сигнал на
INT, затем, после поступления сигнала, передать управление обработчику
прерывания, который в свою очередь опросит порты и установит, что
именно было нажато (какой датчик сработает). Потом, в зависимости от
того что было нажато, например кнопка "вперед" выдать в один из
свободных портов сигнал ШИМ.

Вот тут вопрос, а во время выполнения подпрограммы ШИМ, будут ли
обрабатываться внешние прерывания?

Слабо представляю, как работать (программно) с прерываниями. Ткните примером
или URL. Я думаю, что есть уже подобные готовые решения. Если не тяжело,
поделитесь исходниками на ассемблере. Либо, подскажите, на правильном
ли пути я стою?

Заранее спасибо!

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru