T
; ПІДРАХУНОК ІМПУЛЬСІВ З ПРОВОДИТЬСЯ 1 секунду.
; ЗА 1 ОБІГ ПРОХОДИТЬ 1 ІМПУЛЬС. ЗНАЧЕННЯ В лічильник буде
; N ЗА секунд. ЗА хвилин треба помножити НА 60. НА 10 МИ ДЕЛІМ,
; прибрали РОЗРЯД ОДИНИЦЬ ІЗ ІНДИКАЦІЇ
; ОТРИМАЄМО: Nx60 => Nx6 = n ОБ/ХВ. 1 СЕК. ОТРИМУЄМО З TMR0, З предделітеля К = 32:
; ВИЗНАЧЕННЯ регістрі.
00009 INDF EQU 00h; ДОСТУП ДО ПАМ'ЯТІ ЧЕРЕЗ FSR.
00000001 00010 TMRO EQU 01H; TMR0.
00011 OPTION_REG EQU 81H; OPTION (RP0 = 1).
00000002 00012 PC EQU 02H; СЧЕТЧИК КОМАНД.
00013 STATUS EQU 03H; РЕГІСТР СТАНУ АЛП.
00014 FSR EQU 04H; РЕГІСТР НЕПРЯМОЇ АДРЕСАЦІЇ.
00015 PORTA EQU 05H; ПОРТ А ВВЕДЕННЯ; ВИВЕДЕННЯ.
00016 PORTB EQU 06H; ПОРТ У ВВЕДЕННЯ; ВИВЕДЕННЯ.
00017 TRISA EQU 85H; НАПРЯМКИ ДАНИХ ПОРТУ А.
00018 TRISB EQU 86H; НАПРЯМКИ ДАНИХ ПОРТУ В.
B 00019 INTCON EQU 0BH; РЕГІСТР прапор переривання.
; ВИЗНАЧЕННЯ регістрів ІНДИКАЦІЇ.
00022 DESI EQU 010H; ДЕСЯТКИ ІНДИКАЦІЇ.
00023 SOTI EQU 011H; СОТНІ.
00024 TUSI EQU 012H; ТИСЯЧІ.
; РЕГІСТРИ ДЛЯ ОРГАНІЗАЦІЇ ІНДИКАЦІЇ.
00027 ANOD EQU 013H; АНОД.
00028 SEGD EQU 014H; СЕГМЕНТИ.
; ТИМЧАСОВІ, ДЛЯ ЗБЕРІГАННЯ при перериванні
00031 W_TEMP EQU 015H; БАЙТ ЗБЕРЕЖЕННЯ РЕГІСТРУ W при перериванні.
00032 STATUS_TEMP EQU 016H; БАЙТ ЗБЕРЕЖЕННЯ РЕГІСТРУ STATUS при перериванні.
00033 FSR_TEMP EQU 017H; ТИМЧАСОВИЙ ДЛЯ FSR.
; ВИЗНАЧЕННЯ реєстру рахунків.
00036 DES EQU 018H; МЛАДШИЙ РОЗРЯД РЕГІСТРУ РАХУНКУ.
00037 SOT EQU 019H; СТАРШИЙ РОЗРЯД.
0000001A 00038 SEC EQU 01AH; СЕКУНДИ.
0000001B 00039 SOTU EQU 01BH; ТИМЧАСОВИЙ РЕЄСТР.
; ОСНОВНА ПРОГРАМА.
00043 ORG 0
2805 00044 GOTO INIT
00045 ORG 4
2875 00046 GOTO CONST
; 1. ІНІЦІАЛІЗАЦІЯ
00049 INIT
1683 00050 BSF STATUS, 5; ПЕРЕХОДИМО В БАНК 1.
30C4 00051 MOVLW B'11000100 '; предделітеля ПЕРЕД ТАЙМЕРОМ, К = 32 ... 100,
0081 00052 MOVWF OPTION_REG ^ 80H; підтягує резистори вимкнув, ФРОНТ
; наростання.
30B0 00054 MOVLW B'10110000 '; ДОЗВІЛ ПЕРЕРИВАННЯ = ПРИ переповнення таймера
008B 00055 MOVWF INTCON; І зміна вхідного сигналу ПОРТУ В.
A 3018 00056 MOVLW B'00011000 '; RA0-RA2 НА ВИХІД, RA3, RA4-ВХІД.
B 0085 00057 MOVWF TRISA ^ 80H
C 3001 00058 MOVLW B'00000001 '; RB0 НА ВХІД, RBI-RB7-ВИХІД.
D 0086 00059 MOVWF TRISB ^ 80H
E 1283 00060 BCF STATUS, 5; ПЕРЕХОДИМО В БАНК 0.
F 0181 00061 CLRF TMR0; ВСЕ обнуляються І ВСТАНОВЛЮЄМО.
0010 0190 00062 CLRF DESI
0198 00063 CLRF DES
0191 00064 CLRF SOTI
0199 00065 CLRF SOT
019B 00066 CLRF SOTU
0192 00067 CLRF TUSI
0016 019A 00068 CLRF SEC
<...