GOTOCOXPN;
MOVFWDST1N;ТО ПРОВЕРИМ ДЕСЯТЫЕ.
SUBWFDST1,0;ЕСЛИ МЕНЬШЕ
BTFSCSTATUS,0;ИЛИ РАВНО,
GOTOBDIN1;
GOTOCOXPN;ТО СОХРАНИМ.
;=======================================
; 27. ПЕРЕКОДИРОВКА 1 ИЗ 2-ГО В 2_10.
;=======================================
BDIN1
CALLPERZAP;ПЕРЕПИШЕМ ТЕКУЩИЕ ЗНАЧЕНИЯ.
MOVFWLSB;ПЕРЕКОДИРУЕМ
GOTOBZT1;
BDIN2
CALLPERZAP;ПЕРЕПИШЕМ ТЕКУЩИЕ ЗНАЧЕНИЯ.
MOVFWLSB;ПЕРЕКОДИРУЕМ
GOTOBZT2;
PERZAP
MOVFWHOU1X;ТЕКУЩИЕ ЗНАЧЕНИЯ
MOVWFHOUZ1X;В РЕГИСТРЫ ИНДИКАЦИИ.
MOVFWMIN1X
MOVWFMINZ1X
MOVFWHOU1N
MOVWFHOUZ1N
MOVFWMIN1N
MOVWFMINZ1N
MOVFWHOU2X
MOVWFHOUZ2X
MOVFWMIN2X
MOVWFMINZ2X
MOVFWHOU2N
MOVWFHOUZ2N
MOVFWMIN2N
MOVWFMINZ2N
MOVFWLSB1X
MOVWFLSBZ1X
MOVFWDST1X
MOVWFDSTZ1X
MOVFWLSB1N
MOVWFLSBZ1N
MOVFWDST1N
MOVWFDSTZ1N
MOVFWLSB2X
MOVWFLSBZ2X
MOVFWDST2X
MOVWFDSTZ2X
MOVFWLSB2N
MOVWFLSBZ2N
MOVFWDST2N
MOVWFDSTZ2N
RETURN
BDINZ1
BTFSCFLAG1,1;ЕСЛИ ИНДИКАЦИЯ 2 ДАТЧИКА,
GOTOBDINZ2;ТО ИДЕМ НА 2 ДАТЧИК.
MOVFWLSBZ1X;ПО МАКСИМУМУ - 1 СТРОКА 1 ДАТЧИКА.
CALLBZT1;
MOVFWDSTZ1X;
MOVWFDST1;
MOVFWLSBZ1N;ПО МИНИМУМУ - 2 СТРОКА 1 ДАТЧИКА.
CALLBZT2;
MOVFWDSTZ1N;
MOVWFDST2;
MOVFWHOUZ1X;ЧАСЫ МАКСИМУМА 1.
CALLHZ67;
MOVFWMINZ1X;МИНУТЫ МАКСИМУМА 1.
CALLMZ910;
MOVFWSOT1X;ЗНАК.
MOVWFR12;
RETURN;
BDIN12
BTFSCFLAG1,1;ЕСЛИ ИНДИКАЦИЯ 2 СТРОКИ,
GOTOBDIN22;ТО ИДЕМ НА 2 СТРОКУ.
MOVFWHOUZ1N;ПЕРЕЗАПИСЬ 1 ДАТЧИКА 2 СТРОКИ.
CALLHZ67;ЧАСЫ МИНИМУМА 1.
MOVFWMINZ1N;МИНУТЫ МИНИМУМА 1.
CALLMZ910;
MOVFWSOT1N;ЗНАК.
MOVWFR12;
RETURN;
BDIN22
MOVFWHOUZ2N;ПЕРЕЗАПИСЬ 2 ДАТЧИКА 2 СТРОКИ.
CALLHZ67;ЧАСЫ МИНИМУМА 2.
MOVFWMINZ2N;МИНУТЫ МИНИМУМА 2.
CALLMZ910;
MOVFWSOT2N;ЗНАК.
MOVWFR12;
RETURN;
BDINZ2
MOVFWLSBZ2X;ПОДГОТОВКА К ИНДИКАЦИИ 2 ДАТЧИКА.
CALLBZT1;ПО МАКСИМУМУ - 1 СТРОКА.
MOVFWDSTZ2X;
MOVWFDST1;
MOVFWLSBZ2N;
CALLBZT2;ПО МИНИМУМУ - 2 СТРОКА
MOVFWDSTZ2N;
MOVWFDST2;
MOVFWHOUZ2X;ЧАСЫ МАКСИМУМА 2.
CALLHZ67;
MOVFWMINZ2X;МИНУТЫ МАКСИМУМА 2.
CALLMZ910;
MOVFWSOT2X;ЗНАК.
MOVWFR12;
RETURN;ПРОВЕРИМ КНОПКУ.
BZT1
MOVWFTEMP;ИЗ 2-ГО В 2_10-Е.
CALLBIDE;ТОЛЬКО ДО 99!
MOVWFDES1;ТЕМПЕРАТУРА В ПЕРВОЙ СТРОКЕ.
MOVFWTEMP;
MOVWFEDI1;
RETURN;
BZT2
MOVWFTEMP;ИЗ 2-ГО В 2_10-Е.
CALLBIDE;ТОЛЬКО ДО 99!
MOVWFDES2;ТЕМПЕРАТУРА ВО ВТОРОЙ СТРОКЕ.
MOVFWTEMP;
MOVWFEDI2;
RETURN;
HZ67
MOVWFTEMP;ИЗ 2-ГО В 2_10-Е.
CALLBIDE;ТОЛЬКО ДО 99!
MOVWFR6;6 И 7 РАЗРЯДЫ ИНДИКАТОРА.
MOVFWTEMP;ЧАСЫ.
MOVWFR7;
RETURN;
MZ910
MOVWFTEMP;ИЗ 2-ГО В 2_10-Е.
CALLBIDE;ТОЛЬКО ДО 99!
MOVWFR9;9 И 10 РАЗРЯДЫ ИНДИКАТОРА.
MOVFWTEMP;МИНУТЫ.
MOVWFR10;
RETURN;
;======================
; 28. ИНИЦИАЛИЗАЦИЯ МК.
;======================
INIT
BCFSTATUS,6;
BSFSTATUS,5;ПЕРЕХОДИМ В БАНК 1.
MOVLWB'00000011';ПРЕДДЕЛИТЕЛЬ ПЕРЕД ТАЙМЕРОМ, К=16 ...11,
MOVWFOPTION_REG^80H;ПОДТЯГИВАЮЩИЕ РЕЗИСТОРЫ ВКЛЮЧЕНЫ.
MOVLWB'10100000';РАЗРЕШЕНИЕ ПРЕРЫВАНИЯ ПРИ ПЕРЕПОЛНЕНИИ ТАЙМЕРА.
MOVWFINTCON;
MOVLWB'00100000';RA5 - НА ВХОД.
MOVWFTRISA^80H
MOVLWB'00000011';RB0, RB1 - НА ВХОД.
MOVWFTRISB^80H
CLRFVRCON^80H;ИОН ВЫКЛЮЧЕН.
CLRFPIE1^80H;
BCFSTATUS,5;ПЕРЕХОДИМ В БАНК 0.
CLRFPORTA;ВСЕ ОБНУЛЯЕМ И УСТАНАВЛИВАЕМ
CLRFPORTB
CLRFT1CON;
CLRFT2CON;
MOVLW7
MOVWFCMCON;КОМПАРАТОРЫ ВЫКЛЮЧЕНЫ.
CLRFTMR0
CLRFFLAG
CLRFFLAG1
CLRFFLAG2
BSFFLAG2,0;ИНДИКАЦИЯ ТЕКУЩАЯ,
CLRFCEK
CLRFMIN
CLRFHOU
CLRFHOUL
CLRFHOUH
CLRFMINL
CLRFMINH
CLRFREID
CLRFKYPC
CLRFCOUN
CLRFCOUZ
CLRFCOUE
CLRFCOYC
CLRFMCK;МИЛЛИСЕКУНД.
CLRFEDI2;ЕДИНИЦЫ 2.
CLRFDES2;ДЕСЯТКИ 2.
CLRFDST2;ДЕСЯТЫЕ 2.
CLRFEDI1;ЕДИНИЦЫ 1.
CLRFDES1;ДЕСЯТКИ 1.
CLRFDST1;ДЕСЯТЫЕ 1.
CLRFMECDI;ДЕСЯТКИ МЕСЯЦА ИНДИКАЦИИ.
CLRFDHUDI;ДЕСЯТКИ ДНЕЙ ИНДИКАЦИИ.
CLRFMECD;ДЕСЯТКИ МЕСЯЦА.
CLRFDHUD;ДЕСЯТКИ ДНЕЙ.
MOVLW.253;-
MOVWFSOT1;ЗНАК 1.
MOVWFSOT2;ЗНАК 2.
MOVWFSOT2X;ЗНАК 2 MAX.
MOVWFSOT1X;ЗНАК 1 MAX.
MOVLW.251;+
MOVWFSOT1N;ЗНАК 1 MIN.
MOVWFSOT2N;ЗНАК 2 MIN.
MOVLW.1
MOVWFDHU;ДНИ ДВОИЧНЫЕ.
MOVWFDHUE;ЕДИНИЦЫ ДНЕЙ.
MOVWFMEC;МЕСЯЦ ДВОИЧНЫЙ.
MOVWFMECE;ЕДИНИЦЫ МЕСЯЦА.
MOVWFMECEI;ЕДИНИЦЫ МЕСЯЦА ИНДИКАЦИИ.
MOVWFMECZ;ДВОИЧНЫЙ МЕСЯЦ ЗАПИСИ/СЧИТЫВАНИЯ.
MOVWFDHUEI;ЕДИНИЦЫ ДНЕЙ ИНДИКАЦИИ.
MOVWFDHUZ;ДВОИЧНЫЕ ДНИ ЗАПИСИ/СЧИТЫВАНИЯ.
CALLPOLNO;УСТАНОВКА МАКСИМАЛЬНЫХ ЗНАЧЕНИЙ.
GOTOJEKINI;НА ИНИЦИАЛИЗАЦИЮ ИНДИКАТОРА.
;=======================================
; 29. УСТАНОВКА ЧАСОВ, ДАТЫ.
;=======================================
YC0
INCFHOUH,1;УВЕЛИЧИМ ДЕСЯТКИ ЧАСОВ.
MOVLW.3;НЕ БОЛЕЕ 2.
SUBWFHOUH,0;
SKPNC;
CLRFHOUH;ЕСЛИ БОЛЬШЕ, ТО ОБНУЛИМ.
MOVFWHOUH;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ
CALLDEBIN;КОД ДЕСЯТКИ.
ADDWFHOUL,0;ПРИБАВИМ ЕДИНИЦЫ
MOVWFHOU;И ПОЛУЧИМ ДВОИЧНОЕ ЧИСЛО.
RETURN;ВЕРНЕМСЯ.
YC1
INCFHOUL,1;УВЕЛИЧИМ ЕДИНИЦЫ ЧАСОВ.
MOVLW.10;НЕ БОЛЕЕ 9.
SUBWFHOUL,0;
SKPNC;
CLRFHOUL;ЕСЛИ БОЛЬШЕ, ТО ОБНУЛИМ.
MOVFWHOUH;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ
CALLDEBIN;КОД ДЕСЯТКИ.
ADDWFHOUL,0;ПРИБАВИМ ЕДИНИЦЫ
MOVWFHOU;ДВОИЧНОЕ ЗНАЧЕНИЕ НЕ ДОЛЖНО
ADDLW-18H;ПРЕВЫШАТЬ - 24.
SKPC;ЕСЛИ БОЛЬШЕ ИЛИ РАВНО 24,
RETURN
CLRFHOU;ТО ОБНУЛИМ ЧАСЫ ДВОИЧНЫЕ
CLRFHOUL;И РАЗРЯДЫ СТАРШИЙ
CLRFHOUH;И МЛАДШИЙ.
RETURN
YC2
INCFMINH,1;УВЕЛИЧИМ ДЕСЯТКИ МИНУТ.
MOVLW.6;НЕ БОЛЕЕ 5.
SUBWFMINH,0;
SKPNC;ЕСЛИ БОЛЬШЕ ИЛИ РАВНО 6,
CLRFMINH;ТО ОБНУЛИМ.
MOVFWMINH;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ
CALLDEBIN;КОД ДЕСЯТКИ.
ADDWFMINL,0;ПРИБАВИМ ЕДИНИЦЫ И
MOVWFMIN;ЗАПИШЕМ В ДВОИЧНОМ КОДЕ.
RETURN
YC3
INCFMINL,1;УВЕЛИЧИМ ЕДИНИЦЫ МИНУТ.
MOVLW.10;НЕ БОЛЕЕ 9.
SUBWFMINL,0;
SKPNC;ЕСЛИ БОЛЬШЕ ИЛИ РАВНО 10,
CLRFMINL;ТО ОБНУЛИМ.
MOVFWMINH;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ
CALLDEBIN;КОД ДЕСЯТКИ.
ADDWFMINL,0;ПРИБАВИМ ЕДИНИЦЫ И
MOVWFMIN;ЗАПИШЕМ В ДВОИЧНОМ КОДЕ.
RETURN
YC4
INCFDHUD,1;УВЕЛИЧИМ ДЕСЯТКИ ТЕКУЩИХ ДНЕЙ.
MOVLW.4;НЕ БОЛЕЕ 3.
SUBWFDHUD,0;
SKPNC;
CLRFDHUD;ЕСЛИ БОЛЬШЕ, ТО ОБНУЛИМ.
MOVFWDHUD;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ
CALLDEBIN;КОД ДЕСЯТКИ.
ADDWFDHUE,0;ПРИБАВИМ ЕДИНИЦЫ
MOVWFDHU;И ПОЛУЧИМ ДВОИЧНОЕ ЧИСЛО.
MOVFWMEC;ЕСЛИ В ТЕКУЩЕМ МЕСЯЦЕ
CALLDAYMON;МЕНЬШЕ ДНЕЙ,
SUBWFDHU,0;
SKPC;
GOTO$+4;
MOVLW.1;
MOVWFDHUE;ТО УСТАНОВИМ ЕДИНИЦЫ
GOTO$-0x0B;И ЕЩЕ РАЗ ПРОВЕРИМ СУММУ.
TSTFDHU;ЕСЛИ СУММА ДНЕЙ НУЛЕВАЯ,
BZ$-5;ТО СНОВА УСТАНОВИМ.
MOVFWDHUD;ПЕРЕПИШЕМ В РЕГИСТРЫ
MOVWFDHUDI;ИНДИКАЦИИ.
MOVFWDHUE;
MOVWFDHUEI;
RETURN;ВЕРНЕМСЯ.
YC5
INCFDHUE,1;УВЕЛИЧИМ ЕДИНИЦЫ ДНЕЙ.
MOVLW.10;НЕ БОЛЕЕ 9.
SUBWFDHUE,0;
SKPNC;
CLRFDHUE;ЕСЛИ БОЛЬШЕ, ТО ОБНУЛИМ.
MOVFWDHUD;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ
CALLDEBIN;КОД ДЕСЯТКИ.
ADDWFDHUE,0;ПРИБАВИМ ЕДИНИЦЫ
MOVWFDHU;И ПОЛУЧИМ ДВОИЧНОЕ ЧИСЛО.
MOVFWMEC;ЕСЛИ В ТЕКУЩЕМ МЕСЯЦЕ
CALLDAYMON;МЕНЬШЕ ДНЕЙ,
SUBWFDHU,0;
SKPC;
GOTO$+5;
CLRFDHUD;ТО ОБНУЛИМ ДЕСЯТКИ ДНЕЙ,
MOVLW.1;УСТАНОВИМ ЕДИНИЦЫ
MOVWFDHUE;ДНЕЙ
GOTO$-0x0C;И ЕЩЕ РАЗ ПРОВЕРИМ СУММУ.
TSTFDHU;ЕСЛИ СУММА ДНЕЙ НУЛЕВАЯ,
BZ$-5;А НУЛЕВОГО ДНЯ НЕТ, ТО СНОВА УСТАНОВИМ.
MOVFWDHUD;ПЕРЕПИШЕМ В РЕГИСТРЫ
MOVWFDHUDI;ИНДИКАЦИИ.
MOVFWDHUE;
MOVWFDHUEI;
RETURN;ВЕРНЕМСЯ.
YC6
INCFMECD,1;УВЕЛИЧИМ ДЕСЯТКИ МЕСЯЦА.
MOVLW.2;НЕ БОЛЕЕ 1.
SUBWFMECD,0;
SKPNC;
CLRFMECD;ЕСЛИ БОЛЬШЕ, ТО ОБНУЛИМ.
MOVFWMECD;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ
CALLDEBIN;КОД ДЕСЯТКИ.
ADDWFMECE,0;ПРИБАВИМ ЕДИНИЦЫ
MOVWFMEC;И ПОЛУЧИМ ДВОИЧНОЕ ЧИСЛО.
MOVLW.13;НЕ БОЛЕЕ 12.
SUBWFMEC,0;
SKPC;
GOTO$+5;
CLRFMECD;ЕСЛИ БОЛЬШЕ, ТО ОБНУЛИМ.
MOVLW.1;УСТАНОВИМ ПЕРВЫЙ МЕСЯЦ.
MOVWFMECE;
GOTO$-0x0C;
TSTFMEC;ЕСЛИ МЕСЯЦ НУЛЕВОЙ,
BZ$-5;ТО УСТАНОВИМ.
MOVFWMECD;ПЕРЕПИШЕМ В РЕГИСТРЫ
MOVWFMECDI;ИНДИКАЦИИ.
MOVFWMECE;
MOVWFMECEI;
RETURN;ВЕРНЕМСЯ.
YC7
INCFMECE,1;УВЕЛИЧИМ ЕДИНИЦЫ МЕСЯЦА.
MOVLW.10;НЕ БОЛЕЕ 9.
SUBWFMECE,0;
SKPNC;
CLRFMECE;ЕСЛИ БОЛЬШЕ, ТО ОБНУЛИМ.
MOVFWMECD;ПЕРЕКОДИРУЕМ В ДВОИЧНЫЙ
CALLDEBIN;КОД ДЕСЯТКИ.
ADDWFMECE,0;ПРИБАВИМ ЕДИНИЦЫ
MOVWFMEC;И ПОЛУЧИМ ДВОИЧНОЕ ЧИСЛО.
MOVLW.13;НЕ БОЛЕЕ 12.
SUBWFMEC,0;
SKPC;
GOTO$+5;
CLRFMECD;ЕСЛИ БОЛЬШЕ, ТО ОБНУЛИМ.
MOVLW.1;УСТАНОВИМ ПЕРВЫЙ МЕСЯЦ.
MOVWFMECE;
GOTO$-0x0C;
TSTFMEC;ЕСЛИ МЕСЯЦ НУЛЕВОЙ,
BZ$-5;ТО УСТАНОВИМ.
MOVFWMECD;ПЕРЕПИШЕМ В РЕГИСТРЫ
MOVWFMECDI;ИНДИКАЦИИ.
MOVFWMECE;
MOVWFMECEI;
RETURN;ВЕРНЕМСЯ.
YC8M
DECFDHUEI,1;УМЕНЬШИМ ЕДИНИЦЫ ДНЕЙ ПРОСМОТРА.
MOVLW.255;ЕСЛИ ПЕРЕХОД ЧЕРЕЗ 0,
SUBWFDHUEI,0;
BNC$+8;
MOVLW.9;ТО УСТАНОВИМ 9.
MOVWFDHUEI;
DECFDHUDI,1;УМЕНЬШИМ ДЕСЯТКИ ДНЕЙ
MOVLW.255;ЕСЛИ НЕТ ПЕРЕХОДА ЧЕРЕЗ 0,
SUBWFDHUDI,0;
SKPC;
GOTOYC8COY;ТО УСТАНОВИМ СЧЕТЧИК ДНЕЙ.
MOVFWDHUEI;ЕСЛИ СУММА ДНЕЙ
ADDWFDHUDI,0;НЕ РАВНА НУЛЮ,
SKPZ
GOTOYC8COY;ТО УСТАНОВИМ СЧЕТЧИК ДНЕЙ.
DECFMECZ,1;ИНАЧЕ УМЕНЬШИМ МЕСЯЦ.
SKPZ;ЕСЛИ МЕСЯЦ НУЛЕВОЙ,
GOTO$+3;
MOVLW.12;ТО УСТАНОВИМ ДЕКАБРЬ.
MOVWFMECZ;
MOVFWMECZ;ПРОВЕРИМ ЧИСЛО ДНЕЙ В МЕСЯЦЕ.
CALLDAYMON;
MOVWFDHUDI;ПЕРЕКОДИРУЕМ ДНИ.
MOVWFTEMP;ИЗ 2-ГО В 2_10-Е.
CALLBIDE;ТОЛЬКО ДО 99!
MOVWFDHUDI;
MOVFWTEMP;
MOVWFDHUEI;
MOVFWMECZ;ПЕРЕКОДИРУЕМ МЕСЯЦ.
MOVWFTEMP;ИЗ 2-ГО В 2_10-Е.
CALLBIDE;ТОЛЬКО ДО 99!
MOVWFMECDI;
MOVFWTEMP;
MOVWFMECEI;ДНЕЙ В ТАБЛИЦЕ МЕСЯЦА НА 1 БОЛЬШЕ,
GOTOYC8M;ПОЭТОМУ ПОВТОРИМ.
YC8COY
INCFCOYC,1;УМЕНЬШИМ СЧЕТЧИК ДНЕЙ.
MOVLW.8;НЕ БОЛЕЕ 7.
SUBWFCOYC,0;
SKPC;
GOTOYC8COU;НА УСТАНОВКУ СЧЕТЧИКА СЧИТЫВАНИЯ.
CLRFCOYC;ОБНУЛИМ СЧЕТЧИК.
CALLREGIN;ЗАГРУЗИМ ТЕКУЩИЙ ДЕНЬ.
BCFFLAG2,6;СБРОСИМ ФЛАГ СЧЕТЧИКА ДНЕЙ.
GOTOYC8M;УСТАНОВИМ ВЧЕРАШНИЙ ДЕНЬ.
YC8COU
BSFFLAG2,5;УСТАНОВИМ ФЛАГ ВЫПОЛНЕННОЙ УСТАНОВКИ МИНУС.
BTFSCFLAG2,6;ЕСЛИ ФЛАГ НУЛЕВОЙ,
GOTO$+0x09;
CLRFCOYC;
MOVLW.16;ТО УСТАНОВИМ СЧЕТЧИК СЧИТЫВАНИЯ.
SUBWFCOUZ,0;АДРЕС ЧТЕНИЯ РАВЕН АДРЕСУ ЗАПИСИ
MOVWFCOUE;МИНУС 16.
BNC$+7;ЕСЛИ ПЕРЕХОД ЧЕРЕЗ 0, ТО УСТАНОВИМ .112.
BSFFLAG2,6;УСТАНОВКА ВЫПОЛНЕНА.
RETURN;ВЕРНЕМСЯ.
MOVLW.16;СЛЕДУЮЩИЙ АДРЕС ЧТЕНИЯ
SUBWFCOUE,1;РАВЕН ТЕКУЩЕМУ МИНУС 16.
SKPNC;ЕСЛИ ПЕРЕХОД ЧЕРЕЗ 0,
RETURN
MOVLW.112;ТО УСТАНОВИМ .112.
MOVWFCOUE;
BSFFLAG2,6;УСТАНОВКА ВЫПОЛНЕНА.
RETURN
YC00
CLRFMIN;ОБНУЛЕНИЕ РЕГИСТРОВ
CLRFMINL;МИНУТ И СЕКУНД
CLRFMINH;ПРИ УСТАНОВКЕ ПО СИГНАЛАМ
CLRFCEK;ТОЧНОГО ВРЕМЕНИ.
RETURN
;======================================================
; 30. ВОССТАНОВЛЕНИЕ ТЕКУЩИХ РЕГИСТРОВ ИНДИКАЦИИ ПОСЛЕ ПРОСМОТРА.
;======================================================
REGIN
MOVFWMECD;
MOVWFMECDI;
MOVFWMECE;
MOVWFMECEI;
MOVFWDHUD;
MOVWFDHUDI;
MOVFWDHUE;
MOVWFDHUEI;
MOVFWMEC;
MOVWFMECZ;
RETURN
;=============================================
; 31. ПРЕДЕЛЬНЫЕ УСТАНОВКИ MAX, MIN В ПОЛНОЧЬ.
;=============================================
POLNO
MOVLW.253;-
MOVWFSOT1X;ЗНАК 1 MAX.
MOVWFSOT2X;ЗНАК 2 MAX.
MOVLW.55;-55.
MOVWFLSB1X;СОХРАНЕННОЕ МАКСИМАЛЬНОЕ 1 ДАТЧИКА.
MOVWFLSB2X;-"- 2 ДАТЧИКА.
CLRFDST1X;СОХРАНЕННОЕ МАКСИМАЛЬНОЕ ДЕСЯТЫХ 1 ДАТЧИКА.
CLRFDST2X;-"- 2 ДАТЧИКА.
MOVLW.251;+
MOVWFSOT1N;ЗНАК 1 MIN.
MOVWFSOT2N;ЗНАК 2 MIN.
MOVLW.99;+99.
MOVWFLSB1N;СОХРАНЕННОЕ МИНИМАЛЬНОЕ 1 ДАТЧИКА.40
MOVWFLSB2N;-"- 2 ДАТЧИКА.
MOVLW.9;0,9
MOVWFDST1N;СОХРАНЕННОЕ МИНИМАЛЬНОЕ ДЕСЯТЫХ 1 ДАТЧИКА.
MOVWFDST2N;-"- 2 ДАТЧИКА.
RETURN
;=========================================
; 32. ИНИЦИАЛИЗАЦИЯ ЖКИ.
;=========================================
JEKINI
MOVLW03;
CALLJEKOM;
CALLSTROB;
MOVLW03;
CALLJEKOM;
CALLSTROB;
MOVLW03;
CALLJEKOM;
CALLSTROB;
MOVLW03;
CALLJEKOM;
CALLSTROB;
MOVLW10;ВЫКЛЮЧЕНИЕДИСПЛЕЯ.
CALLJEKOM;
CALLSTROB;
MOVLW06;СМЕЩЕНИЕКУРСОРА.
CALLJEKOM;
CALLSTROB;
MOVLW01;СТИРАНИЕПАМЯТИДИСПЛЕЯ.
CALLJEKOM;
CALLSTROB;
MOVLW28;ФОРМАТОБМЕНА: 4 РАЗР., 5х7, 2 СТРОКИ.
CALLJEKOM;
CALLSTROB;
MOVLW0C;ВКЛЮЧЕНИЕДИСПЛЕЯ, ЗАПРЕТКУРСОРА.