Курсовая работа: Схема електрична принципова Луноходу з мікроконтролерним управлінням
movr31,00001011b; установлюємо на виході РВ3 лог.1,
outportB,r31; що зумовлює ввімкнення правого двигуна
movr31,00001010b; установлюємо на виходіРВ0 лог.0,
outportb,r31; що і гасить світлодіод
scan:
inr31,portB; читаємо стан порту В
testr31,01000000b; перевіряємо чи натиснута права кнопка
jzleft; якщо натиснута, переходимо на мітку left
testr31,00100000b; перевіряємо чи натиснута ліва кнопка
jzright; якщо натиснута, переходимо на мітку right
jmpscan; якщо ні одна кнопка не натиснена, повторяємо цикл перевірки стану кнопок
left:
movr30,63h; записуємо в регістр r30 код повороту наліво, який буде виводиться в порт в
callstop; визиваємо підпрограму stop
jmpstart; повертаємося на мітку start
right:
movr30,69h; записуємо в регістр r30 код повороту направо, який буде виводиться в порт в
callstop; визиваємо підпрограму stop
jmpstart; повертаємся на мітку start
; підпрограма stop, задача якої - ввімкнення потрібного маневру (відїзд, повороти направо та наліво)
stopproc
movr31,00001000b; установлюємо на виході РВ1 лог.0,
outportB,r31; що зумовлює вимкнення лівого двигуна
movr31,00000000b; установлюємо на виході РВ3 лог.0,
outportB,r31; що зумовлює вимкнення правого двигуна
movr31,pause1; записати в регістр r31 значення паузи перед зміною направлення руху
callpause; викликаємо підпрограму pause
movr31,00000100b; встановлюємо на виході РВ2 лог.1,
outportB,r31; що заставляє лівий двигун крутитися в іншу сторону