Управление барокамерой
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
---------------
;СЧЕТЧИК ЕДИНИЦ СЕКУНДSEC_L,F;ИНКРЕМЕНТИРОВАТЬ МЛАДШИЙ СЧЕТЧИК СЕКУНДSEC_L,W;СЧЕТЧИК ДОСЧИТАЛ ДО 100x0ASTATUS,ZCURR_TIME;НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
;ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮSEC_L;ДА - ОЧИСТИТЬ МЛАДШИЙ СЧЕТЧИК СЕКУНД
;----------------------------------------------------------------
;СЧЕТЧИК ДЕСЯТКОВ СЕКУНДSEC_H,F;ИНКРЕМЕНТИРОВАТЬ СТАРШИЙ СЧЕТЧИК СЕКУНДSTATUS,ZSEC_H,W;СЧЕТЧИК ДОСЧИТАЛ ДО 60x06STATUS,ZCURR_TIME;НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
;ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮSEC_H;ДА - ОЧИСТИТЬ СТАРШИЙ СЧЕТЧИК СЕКУНД
;-----------------------------------------------------------------
;СЧЕТЧИК ЕДИНИЦ МИНУТMIN_L,F;ИНКРЕМЕНТИРОВАТЬ МЛАДШИЙ СЧЕТЧИК МИНУТSTATUS,ZMIN_L,W;СЧЕТЧИК ДОСЧИТАЛ ДО 100x0ASTATUS,ZCURR_TIME;НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
;ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮMIN_L;ДА - ОЧИСТИТЬ МЛАДШИЙ СЧЕТЧИК МИНУТ
;----------------------------------------------------------------
;СЧЕТЧИК ДЕСЯТКОВ МИНУТMIN_H,F;ИНКРЕМЕНТИРОВАТЬ СТАРШИЙ СЧЕТЧИК МИНУТSTATUS,ZMIN_H,W;СЧЕТЧИК ДОСЧИТАЛ ДО 6
XORLW0x06
BTFSSSTATUS,ZCURR_TIME;НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
;ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮMIN_H;ДА - ОЧИСТИТЬ СТАРШИЙ СЧЕТЧИК МИНУТ
;-----------------------------------------------------------------
;СЧЕТЧИКИ ЧАСОВHOUR_L,F;ИНКРЕМЕНТИРОВАТЬ МЛАДШИЙ СЧЕТЧИК ЧАСОВSTATUS,ZHOUR_H,W;СТАРШИЙ СЧЕТЧИК ДОСЧИТАЛ ДО 20x02STATUS,ZM3;НЕТ - ПЕРЕХОД НА ПРОВЕРКУ МЛАДШЕГО СЧЕТЧИКА
BCFSTATUS,ZHOUR_L,W0x04STATUS,ZM3STATUS,ZHOUR_L;ДА - ОЧИСТИТЬ МЛАДШИЙ СЧЕТЧИК ЧАСОВ
CLRFHOUR_HCURR_TIME;ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
;ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮHOUR_L,W0x0A;СЧЕТЧИК ДОСЧИТАЛ ДО 10STATUS,ZCURR_TIME;НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
;ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКАЦИЮHOUR_L;ДА - ОЧИСТИТЬ МЛАДШИЙ СЧЕТЧИК ЧАСОВHOUR_H;ИНКРЕМЕНТИРОВАТЬ СТАРШИЙ СЧЕТЧИК ЧАСОВ
;-----------------------------------------------------------------_TIME;ПОДПРОГРАММА УПРАВЛЕНИЯ ВЫВОДОМ ТЕКУЩЕГО
;ВРЕМЕНИ НА ИНДИКАЦИЮ
;-----------------------------------------------------------------
;ВКЛЮЧЕНИЕ/ВЫКЛЮЧЕНИЕ РЕЖИМА ПОДДЕРЖАНИЯ ТЕМПЕРАТУРЫ
BCFSTATUS,ZSTART_ML,WMIN_L,WSTATUS,ZM4
STATUS,ZSTART_MH,WMIN_H,WSTATUS,ZM4
STATUS,ZSTART_HL,WHOUR_L,WSTATUS,ZM4
STATUS,ZSTART_HH,WHOUR_H,WSTATUS,ZM4
FLAG_R1,0STATUS,ZSTOP_ML,WMIN_L,WSTATUS,ZM5
STATUS,ZSTOP_MH,WMIN_H,WSTATUS,ZM5
STATUS,ZSTOP_HL,WHOUR_L,WSTATUS,ZM5
STATUS,ZSTOP_HH,WHOUR_H,WSTATUS,ZM5
FLAG_R1,0
;-----------------------------------------------------------------FLAG_R,6;ВКЛЮЧЕН РЕЖИМ ОТОБРАЖЕНИЯ ТЕКУЩЕГО ВРЕМЕНИINT_SOURCE;НЕТ - ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-----------------------------------------------------------------
;ВКЛЮЧЕНИЕ/ВЫКЛЮЧЕНИЕ РАЗДЕЛЯЮЩЕЙ ТОЧКИPOINT,2POINT,1;ДЕЦИМАЛЬНАЯ ТОЧКА ВКЛЮЧЕНА$+3POINT,1;ДА - ВЫКЛЮЧИТЬ ТОЧКУ$+2POINT,1;НЕТ - ВКЛЮЧИТЬ ТОЧКУ
;-----------------------------------------------------------------
MOVFMIN_L,WIND_0MIN_H,WIND_1HOUR_L,WIND_2HOUR_H,WIND_3
GOTOINT_SOURCE;НЕТ - ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;-----------------------------------------------------------------
2.10.4 Подпрограмма обработки прерываний от таймера TMR2
Данная подпрограмма осуществляет опрос состояния кнопок +1 и -1 через промежутки времени, определяемые таймером TMR2. Если нажата и удерживается одна из кнопок +1 и -1, происходит инкрементирование или декрементирование соответствующих регистров с частотой прерываний от таймера TMR2. При кратковременном нажатии происходит однократное изменение значений регистров.
Если ни одна из кнопок +1 и -1 не нажата, то таймер TMR2 выключается.
Листинг подпрограммы приведен ниже.
;-----------------------------------------------------------------_TMR2;ОБРАБОТЧИК ПРЕРЫВАНИЙ ОТ TMR2PIR1,TMR2IF;СБРОСИТЬ ФЛАГ ПРЕРЫВАНИЯ ОТ ТАЙМЕРА TMR2
BCFSTATUS,ZCOUNTER,WCOUNTSTATUS,Z;СЧЕТЧИК ЗАКОНЧИЛ СЧЕТ
GOTODOWN_BUTT;ДА - ПЕРЕХОД К ПРОВЕРКЕ СОСТОЯНИЙ КНОПОКCOUNTER,F;НЕТ - ИНКРЕМЕНТИРОВАНИЕ СЧЕТЧИКАINT_SOURCE;ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
_BUTT;ПРОВЕРКА СОСТОЯНИЙ КНОПОК
;--------------------------------------------------------------------------FLAG_R,0;РЕЖИМ УСТАНОВКИ ТЕМПЕРАТУРЫ ВКЛЮЧЕНSTART_TIME;НЕТ - ПЕРЕХОД К УСТАНОВКЕ ВРЕМЕНИ ВКЛЮЧЕНИЯ
PORTB,6;НАЖАТА КНОПКА "+1"M6;НЕТ - ПЕРЕХОД К ПРОВЕРКЕ НАЖАТИЯ КНОПКИ "-1"MAX_TL;ИНКРЕМЕНТИРОВАТЬ РЕГИСТР MAX_TL
MOVFMAX_TH,WMAX_THMAX_TH,FMAX_TH,F;ПРИБАВИТЬ К РЕГИСТРУ MAX_TH ФЛАГ ПЕРЕНОСА
STATUS,ZMAX_TL,WTEMP_MAXL;ЗНАЧЕНИЕ В MAX_TL ДОСТИГЛО TEMP_MAXL
BTFSSSTATUS,ZM6;НЕТ - ПЕРЕХОД К ПРОВЕРКЕ НАЖАТИЯ КНОПКИ "-1"
BCFSTATUS,ZMAX_TH,WTEMP_MAXH;ЗНАЧЕНИЕ В MAX_TH ДОСТИГЛО TEMP_MAXH
BTFSSSTATUS,ZM6;НЕТ - ПЕРЕХОД К ПРОВЕРКЕ НАЖАТИЯ КНОПКИ "-1"STATUS,ZMAX_TH;ДА - ОБНУЛИТЬ РЕГИСТРЫ MAX_TH И MAX_TL
CLRFMAX_TLCALL_BIN_DECPORTB,7;НАЖАТА КНОПКА "-1"
GOTOSTOP_TMR2;НЕТ - ПЕРЕХОД К ОСТАНОВКЕ TMR2MAX_TL;ДЕКРЕМЕНТИРОВАТЬ РЕГИСТР MAX_TL
STATUS,C;ЕСЛИ БЫЛ ЗАЕМMAX_TH,W;ДЕКРЕМЕНТИРОВАТЬ РЕГИСТР MAX_TH
BCFSTATUS,C
STATUS,Z
MOVFMAX_TL,F;ЗНАЧЕНИЕ В MAX_TL ДОСТИГЛО 0STATUS,ZSTOP_TMR2;НЕТ - ПЕРЕХОД К ОСТАНОВКЕ TMR2STATUS,ZMAX_TH,F;ЗНАЧЕНИЕ В MAX_TH ДОСТИГЛО 0STATUS,ZSTOP_TMR2;НЕТ - ПЕРЕХОД К ОСТАНОВКЕ TMR2
BCFSTATUS,ZTEMP_MAXLMAX_TLTEMP_MAXHMAX_TH
_BIN_DECMAX_TL,WTEMP_TLMAX_TH,WTEMP_TH
CALLBIN_DEC;ВЫЗОВ ПОДПРОГРАММЫ ДВОИЧНО-ДЕСЯТИЧНОЙ КОРРЕКЦИИ_TMR2T2CON,TMR2ON;ОСТАНОВКА ТАЙМЕРА TMR2INT_SOURCE;ВЕРНУТЬСЯ К ПОИСКУ ИСТОЧНИКОВ ПРЕРЫВАНИЙ
;------------------------------------------------------------------_TIME;УСТАНОВКА ВРЕМЕНИ ВКЛЮЧЕНИЯFLAG_R,1;РЕЖИМ УСТАНОВКИ ВРЕМЕНИ ВКЛЮЧЕНИЯ ВКЛЮЧЕНSTOP_TIME;НЕТ - ПЕРЕХОД К УСТАНОВКЕ ВРЕМЕНИ ВЫКЛЮЧЕНИЯ
FLAG_R,5;РЕЖИМ УСТАНОВКИ МИНУТ ВКЛЮЧЕНSET_HOUR;НЕТ - ПЕРЕХОД К УСТАНОВКЕ ЧАСОВ
PORTB,6;НАЖАТА КНОПКА "+1"M7;НЕТ - ПЕРЕХОД К ПРОВЕРКЕ НАЖАТИЯ КНОПКИ "-1"
;-----------------------------------------------------------------
;СЧЕТЧИК ЕДИНИЦ МИНУТSTART_ML,F;ИНКРЕМЕНТИРОВАТЬ МЛАДШИЙ СЧЕТЧИК МИНУТSTATUS,ZSTART_ML,W;СЧЕТЧИК ДОСЧИТАЛ ДО 100x0ASTATUS,ZSET_REG_LCD;НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
;ВРЕМЕНИ ВКЛЮЧЕНИЯ НА ИНДИКАЦИЮSTART_ML;ДА - ОЧИСТИТЬ МЛАДШИЙ СЧЕТЧИК МИНУТ
;----------------------------------------------------------------
;СЧЕТЧИК ДЕСЯТКОВ МИНУТSTART_MH,F;ИНКРЕМЕНТИРОВАТЬ СТАРШИЙ СЧЕТЧИК МИНУТSTATUS,ZSTART_MH,W;СЧЕТЧИК ДОСЧИТАЛ ДО 6
XORLW0x06
BTFSSSTATUS,ZSET_REG_LCD;НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ
;ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКА