Разработка микропроцессорной системы для управления объектом. Составление карты распределения адресного пространства, страница 18

14.  Применение интегральных микросхем в электронной вычислительной технике: Справочник. Под ред. Б. Н. Файзуллаева, Б. В. Тарабрина – М.: Радио и связь, 1986. –384 с.

15.  Официальный веб-сайт компании Atmel [www.atmel.com].

ПРИЛОЖЕНИЕ А. Листинг программы для контроллера AT89S8252

; Инициализация контроллера AT89S8252

Q0          equ        1Fh                       ;задаем константу Q0

Q4_out  equ        R7                         ;задаем адрес Q4 для вывода на индикацию          

Q4          equ        R6                         ;задаем адрес Q4 для записи нового значения

K            equ        R8                         ;задаем адрес установки

CSEG    at            00h

Jmp        INIT

Org        03h                                      ; задаем адрес подпрограммы обработки прерывания

Jmp        INT1                                   ; от аварийного датчика

Org        0Bh                                     ; задаем адрес подпрограммы обработки прерывания

Jmp        END_OF_Y                       ; от таймера 0

Org        13h                                      ; задаем адрес подпрограммы обработки прерывания

Jmp        INT2                                   ; при отказе источника питания

Org        1Bh                                     ; задаем адрес подпрограммы обработки прерывания

Jmp        KBD_INT                           ; от счетчика 1

Org        2Bh                                     ; задаем адрес подпрограммы обработки прерывания

Jmp        Q4_OUT                            ; от таймера 2    

Org        30h                                      ; область определения констант

; Таблица констант для отображения цифр (активный низкий уровень)

;                  __A__

;              F |           | B

;                 |__G__|

;              E |           | C

;                 |__D __|   <> H

TABLE :              db          11000000b,         ;"0"

11111001b,         ;"1"

10100100b,         ;"2"

10110000b,         ;"3"

10011001b,         ;"4"

10010010b,         ;"5"

10000010b           ;"6"

11111000b,         ;"7"

10000000b,         ;"8"

10010000b          ;"9"

IS_INSTALLMODE:        DBIT     1

NO_INTETR:                    DBIT     1

;"клавишные" константы

BREAK_KEY     EQU      23

OUTPUT_KEY   EQU      22

INSTALL_KEY  EQU      21

;--------------------------------------------------------------------------------------------------------------------org         100h                                                 

INIT:

Mov       R8, #0                                                ; задаем начальное значение уставки, равное 0

CLR      IS_INSTALLMODE

CLR      NO_INTETR

; настраиваем таймеры/счетчики

mov       TCON, #00000101b                        ; прерывания по спаду сигналов

mov       TMOD, #1010001b                          ; настройка таймера 0 и счетчика 1 на режим 1

mov       T2CON, #00000000b                      ; настраиваем таймер 2

mov       T2MOD, #00000010b                     ; настройка таймера 2 на счет вверх

mov       IE, #10101111b                                ; разрешаем все прерывания (кроме последовательного Вв/Выв)

; устанавливаем приоритеты прерываний

; Приоритет 1 (высший): от аварийного датчика (прерывание 1 на входе INT0)

; Приоритет 2: от таймера 0 (конец управляющих сигналов)

; Приоритет 3: при отказе источника питания (прерывание 2 на входе INT1)

; Приоритет 4: от счетчика 1 (прерывание от клавиатуры)

; Приоритет 5: от таймера 2 (вывод Q4)

mov       IP, #00000000b

;--------------------------------------------------------------------------------------------------------------------; Основной цикл управления

MAIN:

; Формируем условия для внешнего прерывания через счетчик 1