Разработка аппаратных средств МПС. Разработка структурной схемы МПС. Разработка микропроцессорного блока, страница 11

CO/STB

SH

N строки

N столбца

D7

D6

D5

D4

D3

D2

D1

D0

При одновременном замыкании 2-х и более клавиш, ни одна из них не заносится в ОЗУ.

Для отображения на информации на индикаторе используются индикаторы, воспроизводящие десятичные цифры, в соответствии с двоичным кодом, подаваемым на соответствующие входы. Таким образом, можем использовать режим вывода на дисплей слева.

Т.к. используется 4 линии сканирования клавиатуры и лишь два индикатора, будем использовать режим дешифрированного сканирования. Для этого необходимо следующее управляющее слово:

00000010b = 02h. То есть вывод слева, клавиатура в режиме одиночного нажатия, сканирование в режиме инверсного дешифратора.

Кроме того необходимо задать опорную частоту для ККД. Так как необходимо получить , а частота сигнала ALE , таким образом, управляющее слово будет иметь вид: 00110100b=34h.

Так как аварийный сигнал по заданию должен формироваться аппаратно, то используем встроенный в ОМЭВМ таймер Т0. На выходе таймера необходимо получить частоту 500 Гц. Максимальная частота таймера , рассчитаем число, которое должно быть загружено в регистр таймера:

;

таким образом, чтобы получить необходимою частоту сигнала надо загрузить в таймер число К=2000, отсюда видно, что необходимо использовать для таймера режим 1 – 16-разрядный таймер. Так как этот режим не перезапускаемый, то также необходимо обрабатывать прерывание от таймера, чтобы можно было запустить его снова.

Тогда, управляющие слова будут:

TMOD =# 00000001b

TL0=#11010000b

TH0=#00000111b

Настройка контроллера прерываний заключается в установке регистра разрешения прерываний IE, регистра приоритетов IP и управляющего регистра TCON.

1)  В систему могут приходить 2 сигнала прерывания: от внешних устройств INT1, INT2, INT3 и от таймера TF0, поэтому значение IE будет таким: IE=#10000011b.

2)  Приоритет установим, таким образом, что IP=#00000001b, то есть приоритет внешних источников выше.

3)  Установим обработку сигналов прерывания по уровню. Для этого TCON=#00000000b.

Помимо настройки контроллера прерываний, необходимо расположить в ПЗУ соответствующие вектора прерываний.

0003h         jmp addr_int

По стартовому адресу 0000h в ПЗУ расположим команду безусловного перехода на стартовый адрес программы:

0000h  jmp start

По адресу 0050h расположим константу A0 = 0,125 = 00100000b

0050 A0: db 00100000b.

По адресу 0051h расположим константу A1 = 0,17 = 00101011b

0051 A1: db 0010101b.

По адресу 0052h расположим константу Q0 = 0,5 = 10000000b

0052  Q0: db 10000000b.

Текст программы инициализации:

0000       jmp start

0050       A0: db 00100000b

0051       A1 db 00101011b

0052       Q0: db 10000000b

0053       TBL: db 37h, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h, 7fh, 6fh

1000       start:

; Инициализация БИС ВВ79

mov  DPTR,#FF0Ch; Адрес управляющего канала ККД

mov AL,02h         ; Управляющее слово

movx @DPTR,AL         ; RUS ¬ AL

mov AL,34h         ; Управляющее слово

movx @DPTR,AL         ; RUS ¬ AL

; Инициализация таймера

mov TMOD, # 00000001b; Таймер 0, в режиме 1, 16 разр.                                    

mov TL0, #11010000b

mov TH0,#00000111b

; Инициализация контроллера прерываний

mov IE,#0; запрет всех прерываний

mov TCON,#0;

mov IP,#00000001b;

mov IE,#10000011b;

mov A,0h   ;  Отключение индикации

mov DPTR,FF00h  ; Начальные значения X1 – X4, и

;выключенная аварийная сигнализация 

movx @DPTR,A

mov A,#0

mov 0071h,A       ; Начальное значение Q4

mov 0072h,A       ; Начальное значение уставки К

clr P3.1

3.2.2. Разработка блока формирования Y1