
- •Введение.
- •Функциональное проектирование
- •Структурное проектирование
- •Проектирование аппаратной части мпс
- •Программирование Адресное пространство
- •Модуль программы инициализации
- •Модуль программы измерения h-параметров
- •Модуль программы вывода результатов
- •Расчетное задание: время выполнения программы
- •Заключение
- •Литература
Модуль программы измерения h-параметров
Алгоритм процедуры измерения приведен на рис.7.
Подача выходного напряжения U2 на ЦАП2 (I1 =0)
Снятие входного напряжения U1 с АЦП2
Запись U1 в РОН МП
Вычисление h12 = U1 / U2 результат в ОЗУ
Вычисление h22 = I2 / U2 результат в ОЗУ
Следующий модуль 3
Рис.7. Блок-схема процедуры измерения h-параметров
Табл.4. Код программы измерения
№ |
Код |
Комментарии |
Кол-во тактов |
11 |
LD A, (1001H) |
Загрузка из ОЗУ в аккумулятор значения I1 |
13 |
12 |
LD (2000H), A |
Подача входного тока I1 на ЦАП1 |
13 |
13 |
LD B,A |
Запись значения I1 в рег.В для выполнения с ним операции деления |
4 |
14 |
LD A, (4000H) |
Измерение I2 с АЦП1 |
13 |
15 |
LD HL,A |
Помещение I2 в рег.HL |
4 |
16 |
CALL DIV |
Вызов подпрограммы деления |
17 |
17 |
LD (1006H),HL |
Запись h21 в ОЗУ |
16 |
18 |
LD A, (1001H) |
Восстановление значения I1 в рег.В для выполнения с ним операции деления |
13 |
19 |
LD B,A |
4 |
|
20 |
LD A, (5000H) |
Измерение U1 с АЦП2 |
13 |
21 |
LD HL,A |
Помещение U1 в рег.HL |
4 |
22 |
CALL DIV |
Вызов подпрограммы деления |
17 |
23 |
LD (1004H),HL |
Запись h11 в ОЗУ |
16 |
24 |
LD A, (1002H) |
Загрузка из ОЗУ в аккумулятор значения U2 |
13 |
25 |
LD (3000H), A |
Подача выходного напряжения U2 на ЦАП2 |
13 |
26 |
LD B,A |
Запись значения U2 в рег.В для выполнения с ним операции деления |
4 |
27 |
LD A, (4000H) |
Измерение I2 с АЦП1 |
13 |
28 |
LD HL,A |
Помещение I2 в рег.HL |
4 |
29 |
CALL DIV |
Вызов подпрограммы деления |
17 |
30 |
LD (1007H),HL |
Запись h22 в ОЗУ |
16 |
31 |
LD A, (1001H) |
Восстановление значения U2 в рег.В для выполнения с ним операции деления |
13 |
32 |
LD B,A |
4 |
|
33 |
LD A, (5000H) |
Измерение U1 с АЦП2 |
13 |
34 |
LD HL,A |
Помещение U1 в рег.HL |
4 |
35 |
CALL DIV |
Вызов подпрограммы деления |
17 |
36 |
LD (1005H),HL |
Запись h12 в ОЗУ |
16 |
|
|
|
|
Подпрограмма деления HL на B, результат деления в HL |
|||
37 |
DIV: XOR A |
Исключающее Или, результат в A |
4 |
38 |
LD DE,1 |
1→ DE |
10 |
39 |
DIV1: SLA L |
Cдвиг L влево (L x 2) |
8 |
40 |
RL H |
Циклический сдвиг H влево |
8 |
41 |
RLA |
Циклический сдвиг рег. A влево |
4 |
42 |
CP B |
|
4 |
43 |
JR C,ZR |
Переход по метке, если бит переноса С=1 |
12(7 при С=0) |
44 |
SUB B |
A - B→ A |
4 |
45 |
SLI E |
Сдвиг E |
12 |
46 |
RL D |
Циклический сдвиг рег. D влево |
8 |
47 |
JR NC,DIV1 |
Переход по метке, если бит переноса С=0 |
127 (при С=1) |
48 |
EX DE,HL |
Обмен данными между DE и HL |
4 |
49 |
RET |
Возврат из подпрограммы |
10 |
50 |
ZR: SLA E |
Cдвиг E влево (E x 2) |
8 |
51 |
RL D |
Циклический сдвиг рег. D влево |
8 |
52 |
JR NC,DIV1 |
Переход по метке, если бит переноса С=0 |
12(7 при С=1) |
53 |
EX DE,HL |
Обмен данными между DE и HL |
4 |
54 |
RET |
Возврат из подпрограммы |
10 |