Управление барокамерой

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

---------------

;СЧЕТЧИК ЕДИНИЦ СЕКУНД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;НЕТ - ПЕРЕХОД НА ПОДПРОГРАММУ УПРАВЛЕНИЯ ВЫВОДОМ

;ТЕКУЩЕГО ВРЕМЕНИ НА ИНДИКА