gn="justify"> MOV R2, @ 0x45hR3, @ 0x46hR4, @ 0x47hDIV_FP; OUT - R2 R3 R4
; ----------------------------------------------
; множення Th / Tl на 751
; завантаження множника Th / Tl
MOV R5, R2R6, R3
MOV R7, R4
; завантаження множника 751R3, # 00000010bR4, # 11101111bW_TO_FP; переклад в 754 з W в FP
LCALL MUL_FP; OUT - R2 R3 R4
; запис результату як вичітательR5, R2
MOV R6, R3R7, R4
; віднімання
; завантаження від'ємника 421R3, # 00000001b
MOV R4, # 10100101bW_TO_FP; переклад 421 з W в FPSUB_FP; OUT - R2 R3 R4 у форматі FP
LCALL CREAT_MAIN_OST; виклик підпрограми обчислення цілої
частини; значення Тх і дес.остатка у форматі W
; -----------------------------------------------
; -----------------------------------------------
; підпрограма обчислення цілої частини і десяткового залишку Tx з FP
в W
; вхідні параметри:
; R2, R3, R4 - ЧИСЛО Tx У ФОРМАТІ FP
; вихідні параметри:
; 0X40 - адреса комірки, де зберігатися ціле значення температури
; 0x41 - адреса комірки де зберігається десятковий залишок
; вихідні параметри передаються у форматі W
; ----------------------------------------------
; створення делітеля_MAINOST: R0, R2B, # 10; ПРОМІЖНИЙ ДЕЛІТЕЛЬA, # 1; ОСНОВНИЙ дільник
LOOP1: MUL AB
DJNZ R0, LOOP1R6, # 0R7, AR5, # 1DIV8; OUT - R5, R3 R4
MOV @ 0x40, R5R0, # 5; СЧЕТЧИК
LOOP2: MOV R1, R5R6, # 0R7, # 10A, R3R5, R4: MOV R3, AR4, R5R5, # 1DIV8R5, # 0, LOOP2R0, LOOP3 @ 0x41, R1
RETI
; ========================================= ============
; підпрограма обробки переривання порту Р1
; визначає яка кнопка натиснута і залежно від цього, згідно
алгоритмом,
; виробляє подальший скан клавіатури для зчитування уставок або
фіксує; номер датчика для якого треба вивести Tx або викликає
П / П помилки введення; даних,
; якщо двічі натиснута кома
; ========================================= ============ _PRER:
USING 2FLAG1, # 0dFLAG2, # 0, d
; початок сканування клавіатури через порт Р1
MOV P1, # 01110000bR2, P1
; перевірка чи натиснута кнопка TEMPR2, # 01110001b, NOTEMP
; кнопка TEMP натиснута, перевірка яка кнопка (номер датчика) натиснута
; відповідно з цим запис в регістри r0-r3 даних про Nh і Nl
щоб
; потім викликати П / П обчислення Tx
D1: MOV R2, P1R2, # 01111000, NO1R0, @ 0X47h; adress high TH byte D1R1, @ 0X48h; adress high T...