2, # 11111111bPOPAL2: CJNE P1, # 10110100b, NEE5R5, # 5dP2, # 00110101bP0.7P0.7P2, # 11111111bPOPAL2: CJNE P1, # 10110010b, NEE6R5, 6d
MOV P2, # 00110110bP0.7P0.7P2, # 11111111bPOPAL2: MOV P1, # 11010000bP1, # 11011000b, NEE7R5, # 7dP2, # 00110111bP0.7P0.7P2, # 11111111bPOPAL2: CJNE P1, # 11010100b , NEE8R5, # 8dP2, # 00111000bP0.7P0.7P2, # 11111111bPOPAL2: CJNE P1, # 11010010, NEE9R5, # 9dP2, # 00111001bP0.7P0.7P2, # 11111111bPOPAL2: MOV P1, # 11100000bP1, # 11101000b, NEE0R5, # 0dP2 , # 00110000bP0.7P0.7P2, # 11111111bPOPAL2: CJNE P1, # 11100100b, NEEPERROR_DPOINR; виклик П / П виведення помилки на
; дисплей (двічі натиснута кнопка коми)
JMP ENDSKAN: CLR KBFWAIT: CJNE R4, # FFh, NOTPR6, R5: MOV P1, # 00010000bR2, P1R2, # 00010001b, WAIT2A, FLAG2F2E1_2FLAG2, # 1bE1_2: MOV FLAG2, # 0, b
JMP ENDUST
; перехід по мітці означає що введена друга / третя цифра цілого
числа
; уставки і треба сформувати нове число, тобто було A, СТАЛО (або було AB; СТАЛО ABC)
NOTP: MOV A, R7B, # 00001010bABB, R6ABR7, AR0R0, FROMR3: MOV P1, # 00010000bR2, P1R2, # 00010001b, WAIT3A, FLAG2F2E1_3FLAG2, # 1bE1_3: MOV FLAG2, # 0, bENDUST: LCALL SET_USTR0R0, # 6d, FROM3: MOV P1, # 11010000bR2, P1R2, # 11010001b, NORSTPCON; ПЕРЕЗАГРУЗКА МК (ЗБІР ПРАПОРА POF в регістрі) PCON, 00010000bENDSKAN: MOV P1, # 11100000bR2, P1R2, # 11100010b, SKAN_PADCLR_DISP; виклик П / П очищення дисплея внаслідок; натискання
кнопки CLR: USING 0KBF
; ========================================= ======
; П / П збереження вуст?? Вок в пам'ять
; викликається 10 разів, кожного разу за викликом зберігає набір уставок (2
байта; r7.r6 уставки в пам'ять)
; вхідні змінні:
; r0 - лічильник вказує номер датчика, для якого вводиться В
або Н; уставка
; flag2 - мінлива-прапор, якщо=0 то Н уставка, якщо=1 то В уставка
; вихідні змінні відсутні
; результат виконання ПП - дані в пам'яті
; ========================================= ====== _UST: CJNE R0, # 1d, NOD1A, FLAG2NODL1 @ 0X67h, R7 @ 0X68h, R6: MOV @ 0X69h, R7 @ 0X70h, R6: CJNE R0, # 1d, NOD2A, FLAG2NODL2 @ 0X71h, R7 @ 0X72h, R6: MOV @ 0X73h, R7 @ 0X74h, R6: CJNE R0, # 1d, NOD3A, FLAG2NODL2 @ 0X75h, R7 @ 0X76h, R6: MOV @ 0X77h, R7 @ 0X78h, R6: CJNE R0, # 1d, NOD4A, FLAG2NODL2 @ 0X78h, R7 @ 0X79h, R6: MOV @ 0X80h, R7 @ 0X81h, R6: MOV A, FLAG2NODL2 @ 0X78h, R7 @ 0X79h, R6: MOV @ 0X80h, R7 @ 0X81h, R6
RETI
; ========================================= ===========
; П / П виведення на дисплей повідомлення «ERROR DOUBLE POINT»
; ========================================= =========== _DPOINT: USING 5P2, # 01000101b; EP0.7P0.7P2, # 11111111bP2, # 01010010b; RP0.7P0.7P2, # 11111111bP2, # 01010010b; RP0.7P0.7P2, # 11111111bP2, # 01000101b; OP0.7P0.7P2, # 11111111bP2, # 01000101b; RP0.7P0.7P2, # 11111111bP2, # 000000001b; PROBELP0.7P0.7P2, # 11111111bP2, # 01000100b; DP0.7P0.7P2, # 11111111bP2, # 01001111b; OP0.7P0.7P2, # 11111111bP2, # 01010110b; UP0....