Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Описание работы программыПрограммное управление двигателями осуществляется записью в порт P1 констант. Программное управление передатчиком ИК излучения производится записью некоторого числа в порт P3 МК. Если младший бит (P3.0) этого числа равен 0, светодиод VD2 погашен, а если он равен 1 — включен. Последовательная смена значений этого бита приводит к возникновению впереди модели пульсирующего уровня освещенности в ИК части спектра. Уровень отраженного излучения фиксируется фотодатчиком, и при его возрастании делается предположение о наличии впереди препятствия. Особенность программы в том, что алгоритм управления размещен в обработчике таймера МК. Обусловлено это тем, что переключать излучающий светодиод необходимо с некоторой постоянной частотой, и для упрощения программы алгоритм управления помещен там же. После подачи сигнала сброса в момент включения питания МК начинает выполнять программу с отметки START. В этой части программы производится начальная инициализация стека, регистров, портов ввода/вывода P1 и P3, аналогового компаратора, 16-разрядного таймера 0, устанавливаются частота следования импульсов на таймер, равная СК/12 (СК — тактовая частота, равная 12 МГц), и обработчик прерывания по переполнению таймера 0. Поскольку переполнение таймера происходит каждый раз после поступления 256 импульсов, обработчик прерывания вызывается 3906 раз в секунду. В результате излучающий светодиод переключается с частотой примерно 1953 Гц. Анализ же принятого отраженного сигнала производится один раз за 20 циклов таймера, т. е. с частотой 195 Гц. Алгоритм управления работает следующим образом. Регистр R1 используется как счетчик с диапазоном значений от 0 до 240. При каждой проверке, если есть препятствие и значение счетчика меньше 240, оно увеличивается на 1, а если препятствия нет, уменьшается на такую же величину, пока не станет равным 0. Далее при значении счетчика от 0 до 16 выдается команда на движение вперед, от 17 до 31 — на остановку, а от 32 до 240 — на разворот. Такой алгоритм позволяет избежать ложных срабатываний и повышает вероятность полного объезда препятствия (разворот модели продолжается некоторое время и после его пропадания). На регистре R2 организован счетчик разворотов, по которому каждый второй разворот делается в противоположную предыдущему сторону, а на регистре R0 — счетчик алгоритма управления электродвигателями. Он последовательно принимает значения от 0 до 3 с каждым вызовом прерывания. При 0 выключается правый двигатель, а при 2 — левый. Таким образом, снижается ток, потребляемый от батареи питания, благодаря чему возрастает время автономной работы модели от одной зарядки аккумуляторов до другой.
|