.
Після індикації таймери обнуляються і процес повторюється.
Загальний алгоритм керуючої програми представлений на малюнку 3.1.
Малюнок 3.1 - Загальний алгоритм керуючої програми
4. Розробка керуючої програми
5.05 TAHOMETR. ASM 1-26-2010 18:09:07 PAGE 1OBJECT CODE LINE SOURCE TEXT
# INCLUDE P16F886.INC
LIST
; P16F886.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
LIST
; ПІДРАХУНОК ІМПУЛЬСІВ З ПРОВОДИТЬСЯ 1 секунду.
; ЗА 1 ОБОРОТ ПРОХОДИТЬ 1 ІМПУЛЬС. ЗНАЧЕННЯ В лічильник буде
; N ЗА СЕКУНДУ. ЗА хвилин треба помножити НА 60. НА 10 МИ ДЕЛІМ,
; Прибравши РОЗРЯД ОДИНИЦЬ ІЗ ІНДИКАЦІЇ
; ОТРИМАЄМО: Nx60 => Nx6=n ОБ / ХВ. 1 СЕК. ОТРИМУЄМО З TMR0, С предделітеля К=32:
; ВИЗНАЧЕННЯ регістрі.
00009 INDF EQU 00h; ДОСТУП ДО ПАМ'ЯТІ ЧЕРЕЗ FSR.
00010 TMRO EQU 01H; TMR0.
00011 OPTION_REG EQU 81H; OPTION (RP0=1).
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; СТАРШИЙ РОЗРЯД.
A 00038 SEC EQU 01AH; СЕКУНДИ.
B 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,
0...