Смекни!
smekni.com

Разработка микропроцессорной системы цифрового термометра на базе микроконтроллера (стр. 7 из 9)

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;ВКЛЮЧЕНИЕДИСПЛЕЯ, ЗАПРЕТКУРСОРА.