D, # 00100001b; настройка ТС1 TH1, # 0FDh; запис числа в старші байти ТС
mov TL1, # 0FDh; запис числа в молодші байти ТС
mov SCON, # 01010000b; режим UART, передача 9 бітного пакету
mov PCON, # 10000000b; подвоєння швидкості
mov TCON, # 01000000b; включення ТС1
nabor:
mov R0, # 0
mov DPTR, # prer1
string:
mov A, R0; записуємо значення з R0 в акумулятор
movc A, @ A + DPTR; завантажуємо байт в акумулятор з DPTR
mov SBUF, A; записуємо значення з А в буфер
again:
JNB TFI, again; розгалуження за адресою, поки прапор таймера не переповнені
clr TFI
inc R0; збільшення значення регістра R0 на 1
mov R4, # 0; прапор для переривання від ТС0, який ще не включено
cjne A, # 9, string PRIEM; повинні прийняти" start
CJNE A, # «s», naborPRIEM A, # «t», nabor
LCALL PRIEM
CJNE A, # «a», nabor
LCALL PRIEM
CJNE A, # «r», nabor
LCALL PRIEM
CJNE A, # «t», nabor; якщо прийшов start, то починається виконання операції
mov N, 1; Кількість спроб запуску двигуна
Dvigatel:
CMP P1.1, # 0, Dvigatel; Порівнювання D і 0 (двигун заглушений)
JZ Korobka; Перехід до перевірки Korobka
Dvigatel: RETI; вихід з циклу
Korobka:
CMP P1.2, # 1, Korobka; Порівнювання KP і 0 (коштує нейтральна передача)
JZ Ruchnik; Перехід до перевірки Ruchnik
Korobka: RETI; вихід з циклу
Ruchnik:
CMP P1.3, # 1, Ruchnik; Порівнювання RT і 1 (ручне гальмо включений)
JZ Run; Перехід до Run
Ruchnik: RETI; вихід з циклу
Run:
mov P1.7, # 1h; Подача найвищого рівня для запуску двигуна
CMP P1.1, 1, Dvigatel; Порівнювання D і 1 (двигун запущений)
JZ Answer_true; Перехід на мітку з позитивним звітом
inc N; збільшення N на одиницю, для підрахунку спроб
PRIEM: R4, # 0, vyhod RI, PRIEM; Чекаємо поки прийде символ, і в регістр R1 встановиться 1
mov A, SBUF; Записуємо в акумулятор прийшов символ з буфера
CLR RI
vyhod: RETI:
inc R2R2, # 70, ret_1R2, # 0 R4, # 1; затримка на 5 секунд
ret_1: RETI
mov P1.7, # 0h; скасування запуску реле
CMP N, 3; перевірка кількості спроб
JBE Run
Dvigatel: RETI
JMP Answer_false; Перехід на мітку з негативним звітом
Answer_true :: mov R0, # 0; передача команди «AT + CMGS=8922...