Курсовая работа: Разработка системы управления аппарата по розливу воды в стаканчики
MOVDPTR, #TL_PUMP;загружаем адрес ячейки с временем работы насоса
CLR A;очищаем аккумулятор
MOVC A,@A+DPTR;в аккумуляторе время работы насосы
MOVTL0, A;загружаем время в TL0
CALLTIMER;вызов процедуры опроса таймера
CLRP1.3;выключить насос
Происходит учёт заполненного стаканчика, регистр R0 инкрементируется. Выжидается небольшая пауза с помощью процедуры таймера и происходит переход на следующую итерацию заполнения следующего стаканчика.
INCR0;инкремент количества заполненных стаканчиков
MOVDPTR, #TH_PAUSE;загружаем адрес ячейки с временем паузы
CLR A;очищаем аккумулятор
MOVC A,@A+DPTR;в аккумуляторе время паузы
MOVTH0, A;загружаем время паузы в TH0
MOVDPTR, #TL_PAUSE;загружаем адрес ячейки с временем паузы
CLR A;очищаем аккумулятор
MOVC A,@A+DPTR;в аккумуляторе время паузы
MOVTL0, A;загружаем время паузы в TL0
CALLTIMER;вызов процедуры опроса таймера
JMPNEXT_GLASS;переходим к заполнению следующего стаканчика
Функция таймера производит запуск установкой бита TR0. Далее опрашивает бит переполнения TF0, и если это бит устанавливается, работа таймера завершается.
TIMER:;процедура опроса таймера
SETBTR0;запускаем таймер
TIMER_STEP:
JBTF0, TIMER_STEP;ждем переполнения таймера
CLRTR0;выключаем таймер
RET;выход из процедуры
Процедура мигания светодиода, отвечающего за уровень воды. Заключается в выполнении включения или выключения светодиода через некоторые промежутки времени.
LED_WINK:;процедура мигания светодиода
JNBP1.2, SET_WINK;если светодиод - выключен, включим
SETBP1.2;выключить светодиод