Приветствую Вас ГостьСуббота, 21.12.2024, 15:27

Лаборатория технического творчества молодёжи


Проект 2. Назад. Задержка. Остановка

А сейчас давайте попробуем научиться программировать движение нашего РОБОТА назад, делать задержку и останавливаться

Наша новая программа будет состоять из четырёх блоков. Первый блок - старый, он обеспечивает движение РОБОТА вперёд. Как это делается мы рассмотрели в нашем первом проекте. Движение назад и остановку мы прописываем во втором блоке и здесь есть новые команды, а также изменены данные пинов порта В. 

Итак второй блок начинается с команды rcall, которая обеспечивает вызов подпрограммы delay, обеспечивающей задержку движения РОБОТА. Сама подпрограмма delay дана в третьем блоке. Её можно не набирать, а просто скопировать и вставить, используя специальную программу, которую можно скачать по этой ссылке на нашем сайте. Время задержки можно ставить любое. Как это можно сделать, смотрите на страничке ПОМОЩЬ ЗАДЕРЖКА

Просмотрим как всё это работает. Итак наша РОБОТ начинает движение вперёд по коду первого блока и делает это ровно столько, сколько задано командой rcall delay но уже во втором блоке, а дальше происходит перенастройка пинов порта В (строчка ldi temp  , 0b00000101)  на движение назад. Снова программный код доходит до строчки rcall delay и начинается движение назад на время задержки, определяемое подпрограммой delay. Всё, теперь будем останавливать движение нашего РОБОТА. Для этого делаем метку m 1 в программном коде. В строчках ldi temp и следующей - out port B четвертого блока выводим на все  пины порта В   нули. (0b00000000). Это будет означать остановку всех двигателей РОБОТА. Команда rjmp m1 возвращает выполнение программного кода к метке m1, и делает это бесконечное количество раз, обеспечивая остановку двигателей тележки.  Программный код нашей программы завершается командой ret.   

 

 

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Вход на сайт
Поиск
Календарь
«  Декабрь 2024  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
3031
Друзья сайта