○регистр старшего байта данных в делителе на M1i
○регистр младшего байта данных в делителе на M1 j
○регистр старшего байта данных в делителе на M1 j
○триггер знака x2 ;
○контроллер клавиатуры;
○дисплей.
Таблица 3.12
Адреса схем памяти
|
|
|
|
|
Адрес |
|
A15– A14 |
|
A13–A11 |
|
A10 – A8 |
|
A7 – A0 |
A15–0 |
||||
|
|
|
ПЗУ |
|
|
AB |
00 |
|
000 |
|
000 |
|
00000000 |
0000h |
||||
|
|
CS00 |
|
|
|
|
|
|
|
|
|
11111111 |
|
|||||
|
|
|
AE |
00 |
|
000 |
|
111 |
|
07FFh |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00000000 |
|
|
|
|
|
ОЗУ |
|
|
AB |
00 |
|
001 |
|
000 |
|
0800h |
|||||
|
|
CS08 |
|
|
|
|
|
|
|
|
|
11111111 |
|
|||||
|
|
|
AE |
00 |
|
001 |
|
111 |
|
0FFFh |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00000000 |
|
|
|
|
|
SP = AE + 1 |
00 |
|
010 |
|
000 |
|
1000h |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 3.13 |
|
|
|
|||
|
|
|
|
|
|
|
|
Адресация внешних устройств |
|
|
|
|
|
|||||
Сигнал |
|
Адрес |
|
Селектируемое устройство |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
20h–27h |
|
Дисплей |
|
|
|
|
|
|
|
|||
|
CS20 |
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
28h–2Fh |
|
Клавиатура |
|
|
|
|
|
|
|
|||
|
CS28 |
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
2Ch/2Dh |
|
Регистр мл. байта счетчика M1i |
|
|
|
|
|
|||||
|
CS30 |
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
38h–3Fh |
|
Регистр ст. байта счетчика M1i |
|
|
|
|
|
|||||
|
CS38 |
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
68h–6Fh |
|
Триггер X2 |
|
|
|
|
|
|
|
|||
|
CS68 |
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
70h–77h |
|
Регистр мл. байта счетчика M1j |
|
|
|
|
|
|||||
|
CS70 |
|
|
|
Рис. 3.22. Дешифратор |
|||||||||||||
|
|
|
|
|
|
|
78h–7Fh |
|
Регистр ст. байта счетчика M1j |
|
|
|||||||
|
|
CS78 |
|
|
|
|
адресов внешних устройств |
|||||||||||
Для создания схемы дешифратора адресов внешних устройств, обязанной обеспечить заданный адрес 28h, выбираем значения разрешающих адресных сигналов BA7 = 0, BA5 = 1, а на адресные входы С, B и A подаем сиг-
налы BA6, BA4 и BA3 (сигналы BA2–0 не поступают на схему). Таблица 3.13 показывает адреса и названия внешних устройств, селектируемых дешифратором. На рис. 3.22 показана схема дешифратора адресов внешних устройств.
3.9. Организация памяти
Принципиальная схема памяти изображена на рис. 3.23: 573РФ2 – ПЗУ объемом 2 K 8 бит, 537РУ10 – ОЗУ объемом 2K 8 бит. Выбор ПЗУ производится значением сигнала CS00 = 0, а выбор ОЗУ – значением сигнала
- 31 -
CS08 = 0. Адресные сигналы BA10–0 подаются непосредственно на адресные входы БИС и обеспечивают адресацию 2K 8-разрядных ячеек памяти от адреса 0000h до адреса 07FFh для ПЗУ и от адреса 0800h до адреса 0FFFh для ОЗУ (см. табл. 3.12). Чтение ПЗУ и ОЗУ производится значением сигнала MEMR = 0, а запись данных в ОЗУ – сигналом MEMW = 0. Обычно под стек
Рис. 3.23. Схема подключения памяти
отводится часть ОЗУ, занимающая старшие адреса, поэтому инициализацию стека следует производить командой LXI SP,1000h.
Данные D7–0 должны подаваться с системной шины данных BD7–0 через приемопередатчик (см. рис. 1.3). При обращении CPU к другим устройствам (пульт управления, плата расширения системы) этот приемопередатчик должен быть выключен, поэтому следует правильно определить управляющий приемопередатчиком сигнал OE .
3.10. Дисплей
Пульт управления (ПУ) состоит из клавиатуры и дисплея. Значения параметров Ti и vj задаются с клавиатуры. Дисплей выполняется на базе 5-разрядного 7-сегментного светодиодного индикатора АЛС328В (рис. 3.24, а–г). Cхема контроллера дисплея приведена на рис. 3.24, д.
разряд 1 – индикация числа i 1, 2, 3, 4 (период Ti),
- 32 -
Рис. 3.24. Контроллер 5-разрядного 7-сегментного дисплея
разряды 2 и 3 – индикация направления b/F («–» – back, «+» – Forward) и числа j 0,1, ..., 7 (скорость vj* ),
разряды 4 и 5 – индикация направления b/F и числа j 0,1, ..., 7 (ско-
рость vj),
- 33 -
где vj*– предыдущее значение скорости цели, vj – текущее значение скорости.
Постоянный прямой ток через сегментImax = 10 мА.
Принципиальная схема и схема подключения дисплея изображены на рис. 3.24. Управление дисплеем производится при помощи специализированной микро-
Вход |
|
Значение |
|||
MODE |
1 |
– HEX код |
|||
Z-состояние – код B |
|||||
|
|
|
0 |
– дисплей погашен |
|
|
|
|
0 |
– загрузка |
|
WR |
|||||
1 |
– нет загрузки |
||||
|
|
|
|||
схемы ICM7218C [4] как обычным внешним устройством. Для конфигурации схемы драйвера необходимо на вход MODE подать одно из трех логических состояний (см.
табл. 3.14).
Таблица 3.15 Коды управляющих катодов светоизлучающих диодов
Порт |
|
|
Линии |
|
Унитарный |
Номер |
|
внешнего |
|
данных |
|
код |
разряда |
||
устройства |
DA2 |
|
DA1 |
|
DA0 |
Dig[7..0] |
|
20h |
0 |
|
0 |
|
0 |
00000001 |
D1 |
21h |
0 |
|
0 |
|
1 |
00000010 |
D2 |
22h |
0 |
|
1 |
|
0 |
00000100 |
D3 |
23h |
0 |
|
1 |
|
1 |
00001000 |
D4 |
24h |
1 |
|
0 |
|
0 |
00010000 |
D5 |
25h |
1 |
|
0 |
|
1 |
00100000 |
D6 |
26h |
1 |
|
1 |
|
0 |
01000000 |
D7 |
27h |
1 |
|
1 |
|
1 |
10000000 |
D8 |
Управление драйвером дисплея происходит согласно сигналам кода данных ID и адреса разряда DA (см. табл. 3.15– 3.16).
Например, на пятый разряд необходимо вывести число 3. Для этого на шину DA2 0 запи-
сывается код пятого разряда 100, а на шину
ID3 0 код числа «3» – 0011.
MVI A, 0011b OUT 24h
Переменные: TN = 1, 2, 3, 4 (период зондирующих импульсов);
–VS1 = b/F (знак предыдущей скорости);
–VN1 = 0, 1, .., 7 (модуль предыдущей скорости);
–VS2 = b/F (знак текущей скорости);
–VN2 = 0, 1, ..., 7 (модуль текущей скорости);
–DN = 0, 1, 2, 3, 4 (номер разряда дисплея).
Для хранения значений кодов предыдущего направления и скорости в ОЗУ резервируются 2 ячейки памяти. Первая ячейка (с адресом 0803h) соответствует предыдущему направлению, вторая (с адресом 0804h) – предыдущей скорости.
- 34 -
DN1 |
DN2 |
DN3 |
DN4 |
DN5 |
|
TN |
VS1 |
VN1 |
VS2 |
VN2 |
|
20h |
21h |
22h |
23h |
24h |
– катоды (OUT port) |
|
|
|
803h |
804h |
– адрес ячейки памяти |
Процесс вычисления значения разряда дисплея происходит следующим образом: если нажата клавиша скорости, значение которой лежит в пределах 0…7, то код нажатой клавиши отправляется непосредственно по адресу требуемого разряда дисплея.
LDA |
804h |
; извлечение кода предыдущего значения скорости |
OUT |
22h |
; выводзначенияпредыдущегозначенияскоростинадисплее |
MOV |
A,C |
; запись нового значения скорости |
STA |
804h |
|
OUT |
24h |
|
Если была нажата клавиша периода (1100…1111), то значение кода клавиши необходимо уменьшить на 11, чтобы отобразились на дисплее символы от «1» до «4».
MOV A,C
SUI 11 OUT 20h
Если же нажата клавиша направления «–»(код 1000), то для отображения символа «b» ( ID3 0 =1011) необходимо приба-
вить 3 к коду клавиши. Если была нажата клавиша «+» (код 1001), то для отображения «F» ( ID3 0 =1111)
к коду нажатой клавиши необходимо прибавить 6.
Таблица 3.16 Таблица преобразования значений данных
в код символа
|
Код символа |
|
Символ |
||
ID3 |
ID2 |
ID1 |
ID0 |
HEX |
Код B |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
2 |
2 |
0 |
0 |
1 |
1 |
3 |
3 |
0 |
1 |
0 |
0 |
4 |
4 |
0 |
1 |
0 |
1 |
5 |
5 |
0 |
1 |
1 |
0 |
6 |
6 |
0 |
1 |
1 |
1 |
7 |
7 |
1 |
0 |
0 |
0 |
8 |
8 |
1 |
0 |
0 |
1 |
9 |
9 |
1 |
0 |
1 |
0 |
A |
– |
1 |
0 |
1 |
1 |
b |
E |
1 |
1 |
0 |
0 |
C |
H |
1 |
1 |
0 |
1 |
d |
L |
1 |
1 |
1 |
0 |
E |
P |
1 |
1 |
1 |
1 |
F |
<пустой> |
|
LDA |
803h |
; извлечение кода предыдущего направления |
|
OUT |
21h |
; выводзначенияпредыдущегонаправлениянадисплее |
|
MOV |
A,C |
; модификация значения текущего направления |
|
CPI |
8h |
|
|
JZ |
L1 |
|
|
ADI |
6h |
; была нажата клавиша «+» |
|
JMP |
L2 |
|
L1: |
ADI |
3h |
; была нажата клавиша «–» |
L2: |
STA |
803h |
|
|
OUT |
23h |
; вывод символа на дисплей |
- 35 -