- ------------
K5 EQU # 5; дод. Коефіцієнт розподілу. для виведення
; на індикатор
; ---------- присвоювання імен внутрішніх регістрів процесора ---------
RAZ0 EQU 00H;
RAZ1 EQU 01H; - зберігають зображення символів
RAZ2 EQU 02H ;/ відповідних розрядів індикатора
CORN EQU 03H; відцифрованих значення напруги
; на виході АЦП
; ----------------------------------------- -----------------------------
ORG 0000H
JMP MAIN
; ---------------- ініціалізація портів і регістрів --------------------:
MOV PSW, # 0; Установка банку
MOV SCON, # 11110000B; Режім3 (9-бітна передача ,9-й біт = 0)
; --------------------- основна програма ------------------ -----------:
MOV 17H, # K5; завантаження в 2.R7 додаткового
; коефіцієнта ділення для індикатора
MOV 15H, # 1; установка в 2.R5 поточного розряду
; індикатора = 0
CALL ACP; Вимірюємо значення напруги на вході АЦП
CALL OUTCORN; Висновок кута на індикатор
MOV A, CORN; Передача результату вимірювання
CALL TRANS; АЦП по RS-232
JMP PROG; Перехід на PROG
; --------------------- підпрограма для АЦП ----------------- ---------:
MOV P0.4, # 0; Вибір вхідного каналу
MOV P3, # 10010000B; Включити АЦП
NOP; Очікування закінчення перетворення
JBC P0.3, $; Перехід, якщо біт Р0.3 встановлений
MOV A, P2;
MOVX @ DPTR, A;
MOV CORN, DPTR; Запам'ятати байт
RET
; ---------------------- висновок на індикатор ---------------- ----------- MOV R7, # K5; оновити коефіцієнт ділення
CJNE R5, # 4, OUTRAZ; підготовка поточного розряду
MOV R5, # 1MOV A, R5
MOV R6, A
CLR A
SETB C; підготовка до формування разрядаRLC A
DJNZ R6, NEXTRAZ; формування коду розряду
MOV P2, A; виставити розряд в порт
MOV A, # 2FH; маска для читання осередків індикатора
ADD A, R5; обчислити адресу осередки
; поточного розряду
MOV R0, A
MOV A, @ R0; рахувати вміст комірки розряду
CALL GETIMGE; отримати зображення симв...