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
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.