иводTRISB, 6STATUS, RP0; Встановлюємо сторінку пам'яті 1
; Динамічна індикація вмісту RAZR0, RAZR1, RAZR2.0; Відображаємо розряд 0I, 0
BTFSS STATUS, ZL2B'10000000 '
ANDWF PORTB, 1; Очищаємо розряди порту, підключені до індікаторуRAZR0, 0PORTB, 1; Виводимо отображаемую ціфруPA, 0; Включаємо відповідний розряд індикатора
MOVF PA, 0PORTAL4
L2 MOVLW.1; Відображаємо розряд 1I, 0
BTFSS STATUS, ZL3B'10000000 '
ANDWF PORTB, 1; Очищаємо розряди порту, підключені до індікаторуRAZR1, 0PORTB, 1; Виводимо отображаемую цифру
BSF PA, 1
BTFSC FLAGS, 6
BCF PA, 4
BTFSS FLAGS, 6PA, 4PA, 0PORTAL4MOVLW B'10000000'PORTB, 1; Очищаємо розряди порту, підключені до індікаторуRAZR2, 0PORTB, 1; Виводимо отображаемую ціфруPA, 2PA, 0PORTA
L4 INCF I, 1.3; Обнулити лічильник розрядів, якщо досяг 3
SUBWF I, 0STATUS, ZI
; Завершення обробки переривання від таймераBCF INTCON, RTIF; Скидання прапора переривання від таймераBACKUPS, 0STATUSBACKUPW, 0; Відновлення робочого регістраINTCON, GIE; Дозвіл переривань; Повернення з обробки переривання
; ****** Продовження початкової ініціалізації ***************** _PROGB'01000011 '; Підключаємо визначник до таймера і встановлюємо коеффіціентOPTION_REG; поділки 1 : 16, сигнал на таймер від внутрішнього генератораSTATUS, RP0; Встановлюємо сторінку пам'яті 0
CLRF PORTBB'00000111'PA
MOVF PA, 0PORTAI; Ініціалізіруем використовуються в програмі
CLRF FLAGS; переменныеSTART_DSTMR0TEMP_READLTEMP_READHLEEPROM0x02DT_ALARMTIME0TIME2TMR0
MOVLW B'10100000 '; Дозволяємо переривання від переповнення таймера
MOVWF INTCON
BCF FLAGS, 5
BCF FLAGS, 3B'10111111 '; (три тире при старті)
MOVWF RAZR0
MOVWF RAZR1
MOVWF RAZR2START_DS
; Пауза до отримання першого достовірного результату вимірювання температури
L0 BTFSS FLAGS, 5L0START_DS
BCF FLAGS, 5BTFSS FLAGS, 5
GOTO L00
; ****** Основний цикл програми ******
L10 CLRWDTBTFSS FLAGS, 0
GOTO L12; Необхідно відображення температуриFLAGS, 2L10FLAGS, 2FLAGS, 6; Відключення запятойT_ALARM, 7; Обчислення цілої частіL70; Температура нижче нуляT_ALARM, 0
MOVWF NumLL71MOVLW 0xFFNumLT_ALARM, 0NumL, 1CLRF NumHConvertOnes, 0DS7SEGRAZR0Tens, 0DS7SEGRAZR1Hund, 0DS7SE...