Листинг программы

GOTO L88PA, 3PA, 0PORTA L31

L2D MOVF DT_ALARM, 0 ;Добавим 2 град. гистерезиса, чтобы выключить нагреватель

ADDWF NumL, 1 ;на 2 град.выше

RETURN

L2E MOVF DT_ALARM, 0 ;Вычтем 2 град. гистерезиса, чтобы выключить нагревательNumL, 1 ;на 2 град.выше, при отрицательной температуре.

RETURNBSF PA, 3PA, 0

MOVWF PORTA

;Запись полученного значения температуры в экранный буферBTFSS TEMP_READH, 7L36 ;Температура выше нуля

MOVF TH, 0.19STATUS, C

GOTO L36 ;Температура выше минус 19 градусов

;при температуре меньше -19.9TH, 0 ;Занесение значения температуры в экранный буфер

MOVWF NumLNumHConvertOnes, 0DS7SEGRAZR0Tens, 0DS7SEGRAZR10x0ADS7SEGRAZR2

BCF RAZR2, 6 ;Включение знака минус при отрицательной температуреFLAGS, 6 ;Отключить вывод десятичной точки

RETURNMOVF TH, 0.99

BTFSC STATUS, CL37 ;Температура выше плюс 99 градусовTH, 0 ;Занесение значения температуры в экранный буфер

MOVWF NumLNumHConvertOnes, 0DS7SEGRAZR0Tens, 0DS7SEGRAZR1Hund, 0DS7SEGRAZR2

BCF FLAGS, 6 ;Отключить вывод десятичной точки

;при температуре от -19.9 до 99.9MOVF TL, 0 ;Занесение значения температуры в экранный буфер

MOVWF NumLNumHConvertOnes, 0DS7SEGRAZR0

MOVF TH, 0 ;Занесение значения температуры в экранный буфер

MOVWF NumLNumHConvertOnes, 0DS7SEGRAZR1Tens, 0DS7SEGRAZR2

BTFSC TEMP_READH, 7 ;Включение знака минус при отрицательной температуреRAZR2, 6FLAGS, 6 ;Включить вывод десятичной точки

;Процедура считывает данные об измеренной температуре из DS18В20

READ_T CALL INIT0xCC ;Skip ROMO_BYTEOUT_BYTE0xBE ;Read ScratchpadO_BYTEOUT_BYTE

;Прием данныхIN_BYTETEMP_READL ;0IN_BYTETEMP_READH ;1IN_BYTE ;2IN_BYTE ;3IN_BYTE ;4IN_BYTE ;5IN_BYTE ;6IN_BYTE ;7IN_BYTE ;8

;Подсчет и сравнение контрольной суммы пропущено0xFF

;Процедура выдает команду на старт измерения температуры для датчика DS18В20

START_DSINIT0xCC ;Skip ROMO_BYTEOUT_BYTE0x44 ;Convert TO_BYTEOUT_BYTE0xFF

; The following are common 1-Wire routines used in all applications: CALL PIN_HIPIN_LO.50 ; 500 us delayDELAY_10USECPIN_HI.50 ; 500 usec delayDELAY_10USEC_BYTE: ; returns byte in W.8_NI_BYTE_BYTE_1:PIN_LO ; momentary low on DATA_PINPIN_HIPORTB, W ; 7 usecs later, fetch from DATA_PINTEMPTEMP, DATA_PINSTATUS, C ; its a zeroTEMP, DATA_PINSTATUS, C ; its a oneI_BYTE, F.6 ; now delay 60 usecsDELAY_10USEC_N, FIN_BYTE_1I_BYTE, 0 ; return the result in W_BYTE:.8_N_BYTE_1:O_BYTE, FSTATUS, COUT_0OUT_1_BYTE_2:_N, FOUT_BYTE_1_0: CALL PIN_LO ; bring DATA_PIN low.6 ; for 60 usecsDELAY_10USECPIN_HIOUT_BYTE_2_1: CALL PIN_LO ; momentary lowPIN_HI.6DELAY_10USECOUT_BYTE_2_HI: BCF INTCON, GIESTATUS, RP0TRISB, DATA_PIN ; high impedanceSTATUS, RP0INTCON, GIE_LO: BCF INTCON, GIEPORTB, DATA_PINSTATUS, RP0TRISB, DATA_PIN ; low impedance zeroSTATUS, RP0INTCON, GIE_LONG.250 ; 250 msec delayLOOP1_N_MS:MOVLW.110 ; close to 1.0 msec delay when set to.110LOOP2NOPLOOP2, F ; decrement and leave result in LOOP2INNER ; skip next statement if zeroLOOP1, FOUTTER_10USEC: ; provides a delay equal to W * 10 usecsLOOP1_100USEC_1:LOOP1, F

GOTO DELAY_100USEC_1

;*******************************************************

;Процедура сохраняет значение переменной T_ALARM

;в энергонезависимой памяти данныхMOVLW.50

MOVWF EEADRT_ALARM, 0L21MOVWF EEDATA ;Подпрограмма записи EEROM

BCF INTCON, GIE ;Запрещение всех прерыванийSTATUS, RP0 ;Устанавливаем страницу памяти 1EECON1, WREN ;Разрешаем запись в EEROM0x55 ;Даем набор команд для записи

MOVWF EECON20xAAEECON2

BSF EECON1, WRNOP ;Ожидаем завершения записиEECON1, WRL20EECON1, WREN ;Запрещаем запись в EEROMSTATUS, RP0 ;Устанавливаем страницу памяти 0INTCON, GIE ;Разрешение всех прерыванийEEADR, 1

;Процедура загружает значение переменной T_ALARM

;из энергонезависимой памяти данныхMOVLW.50

MOVWF EEADRRROMT_ALARM

RETURN

;Подпрограмма считывания данных из EEROMBSF STATUS, RP0 ;Устанавливаем страницу памяти 1EECON1, RD ;Команда на чтение EEROMSTATUS, RP0 ;Устанавливаем страницу памяти 0

INCF EEADR, 1

Перейти на страницу: 1 2 3 4

Прочтите также:

Вычисление параметров случайного цифрового сигнала и определение его информационных параметров цифрового сигнала
Связь - быстро развивающаяся отрасль техники. Так как мы существуем в эпоху информатизации, то и объемы информации возрастают пропорционально. Поэтому требования к связи предъявляются с ...

Разработка контроллера управляющего работой холодильника
Развитие микроэлектроники и широкое применение ее изделий в промышленном производстве, в устройствах и системах управления самыми разнообразными объектами и процессами является в настоящ ...

Расчет усилительного устройства
Усилителем называют устройство, предназначенное для повышения мощности входного сигнала. Превышение мощности, выделяемой в нагрузке усилителя, над мощностью источника входного сигна ...

Основные разделы

2020 © Все права защищены! >> www.techeducator.ru