- •Теоретична частина
- •Цифрові частотоміри
- •Магнітоелектричні вольтметри
- •Цифровий вольтметр частотного перетворення.
- •Розрахункова частина
- •2.1 Складання структурної схеми приладу.
- •2.2.6 Синтез схеми управління
- •2.3.2 Визначення наказів таймера, адаптера і вихідних кодів лічильників
- •2.3.3 Розподіл адрес озу, пзу і підпрограм
- •2.3.4 Складання блок-схеми програми
- •2.4. Аналіз похибки
2.3.3 Розподіл адрес озу, пзу і підпрограм
ПЗУ: 6041 – початок основної програми;
6201 – початок підпрограми обчислення Ucp;
6301 – початок підпрограми обчислення f.
ОЗУ: 6925 – адреса початкового масива даних;
6F83 – адреса вершини стека (SP);
6880, 6881 – адреси пам’яти для запису значень Nx при читанні з
лічильника;
6882, 6883 – адреси пам’яти для запису значень m при читанні з
лічильника;
6884, 6885 – адреси пам’яти для запису результату обчислень за
допомогою підпрограм.
2.3.4 Складання блок-схеми програми
Блок-схема представлена на рисунку 2.4.
Рисунок 2.4- Блок-схема
2.3.5 Програма на мові Ассемблера
Адреса |
Код |
Мнемокод |
Команда |
Коментарій |
6041 |
3Е |
MVI 35 |
A35 |
введення наказів для Лч 0 таймера |
6042 |
35 |
|||
6043 |
D3 |
OUT 4F |
AP[4F] |
введення наказів для Лч 0 таймера |
6044 |
4F |
|||
6045 |
3E |
MVI 70 |
A70 |
введення наказів для Лч 1 таймера |
6046 |
70 |
|||
6047 |
D3 |
OUT 4F |
AP[4F] |
введення наказів для Лч 1 таймера |
6048 |
4F |
|||
6049 |
3E |
MVI B0 |
AB0 |
введення наказів для Лч 2 таймера |
604А |
B0 |
|||
604В |
D3 |
OUT 4F |
AP[4F] |
введення наказів для Лч 2 таймера |
604С |
4F |
|||
604D |
3E |
MVI 9B |
A9B |
введення наказів адаптера 2 |
604E |
9B |
|||
604F |
D3 |
OUT F7 |
AP[F7] |
введення наказів адаптера 2 |
6050 |
F7 |
|||
6051 |
3E |
MVI 88 |
A88 |
введення наказів адаптера 1 |
6052 |
88 |
|||
6053 |
D3 |
OUT 5F |
AP[5F] |
введення наказів адаптера 1 |
6054 |
5F |
|||
6055 |
31 |
LXI SP |
SP6F83 |
введення вершини стека |
6056 |
83 |
|||
6057 |
6F |
|||
6058 |
3E |
MVI 04 |
A04 |
|
6059 |
04 |
введення в Лч 0 КДЧ = 4 |
||
|
|
|
|
|
|
|
|
|
|
605A |
D3 |
OUT 4C |
AP[4C] |
|
605B |
4C |
|
||
605C |
3E |
MVI 00 |
A00 |
|
605D |
00 |
|||
605E |
D3 |
OUT 4C |
AP[4C] |
|
605F |
4C |
|||
6060 |
D3 |
OUT 4D |
AP[4D] |
введення мл. б. в Лч 1 |
6061 |
4D |
|||
6062 |
D3 |
OUT 4D |
AP[4D] |
введення ст. б. в Лч 1 |
6063 |
4D |
|||
6064 |
D3 |
OUT 4Е |
AP[4Е] |
введення мл. б. в Лч 2 |
6065 |
4E |
|||
6066 |
D3 |
OUT 4Е |
AP[4Е] |
введення Ст. б. в Лч 2 |
6067 |
4E |
|||
6068 |
21 |
LXI HL |
HL6925 |
введення в HL адреси масива даних |
6069 |
25 |
|||
606A |
69 |
|||
606B |
DB |
IN 2E |
AP[5E] |
опитування стану кнопки |
606C |
2E |
|||
606D |
E6 |
ANI |
A80A |
Маскування |
606E |
80 |
|||
606F |
СА |
JZ |
PC7 = 0 |
умовний перехід |
6070 |
6B |
|||
6071 |
60 |
|||
6072 |
3Е |
MVI 01 |
A01 |
видача ИЗ’ |
6073 |
01 |
|||
6074 |
D3 |
OUT 2Е |
AP[2Е] |
|
6075 |
2E |
|||
6076 |
DB |
IN 2E |
AP[5E] |
опитування появи ИГ |
6077 |
2E |
|||
078 |
E6 |
ANI |
A20A |
Маскування |
6079 |
20 |
JZ |
PC5 = 0 |
умовний перехід |
607A |
CA |
|||
607B |
60 |
IN C4 |
AP[C4] |
введення мл. байта АЦП U |
607C |
76 |
|||
607D |
DB |
|||
607E |
C4 |
MOV M[HL] |
A M[HL] |
M[6925] |
607F |
77 |
|||
6080 |
25 |
INX HL |
HL+1 |
інкремент HL |
6081 |
DB |
IN C6 |
AP[C6] |
опитування появи ИK |
6082 |
C6 |
MOV M[HL] |
A M[HL] |
M[6926] |
6083 |
77 |
|||
6084 |
25 |
INX HL |
HL+1 |
інкремент HL |
6085 |
DB |
IN 2E |
AP[5E] |
опитування Nx |
6086 |
2E |
ANI |
A10A |
Маскування |
6087 |
E6 |
|||
6088 |
10 |
JZ |
PC4 = 0 |
умовний перехід |
6089 |
CA |
|||
608A |
76 |
IN 4D |
AP[4D] |
читання мл. байта з Nx Лч 1 таймера |
608B |
60 |
|||
608C |
DB |
|||
608D |
4D |
STA |
A M[6880] |
запис мл. байта Nx |
608E |
32 |
|||
608F |
80 |
IN 4D |
AP[4D] |
читання ст. байта из Nx Лч 1 таймера |
6090 |
68 |
|||
6091 |
DB |
|||
|
|
|
|
|
|
|
|
|
|
6092 |
4D |
STA |
A M[6881] |
запис ст. байта Nx
|
6093 |
32 |
|||
6094 |
81 |
IN 4D |
AP[4D] |
читання мл. байта m из Лч 2 таймера |
6095 |
68 |
|||
6096 |
|
|||
6097 |
DB |
STA |
A M[6882] |
запис мл. байта m |
6098 |
4D |
IN 4D |
AP[4D] |
читання ст. байта m из Лч 2 таймера |
6099 |
32 |
|||
609A |
82 |
STA |
A M[6882] |
запис ст. байта m |
609B |
68 |
|||
609C |
DB |
|||
609D |
4D |
IN C6 |
AP[C6] |
опитування роду вимірюваної величини |
609E |
32 |
|||
609F |
83 |
ANI |
A40A |
Маскування |
60A0 |
68 |
|||
60A1 |
DB |
|||
60A2 |
C6 |
JZ |
PC6 = 0 |
умовний перехід |
60A3 |
Е6 |
|||
60A4 |
40 |
CALL |
|
виклик п/п вичислення fx |
60A5 |
CA |
|||
60A6 |
B7 |
LDA |
AM[6884] |
читання мл. байта результату обчислення |
60A7 |
60 |
|||
60A8 |
CD |
|||
60A9 |
01 |
OUT 2D |
AP[2D] |
пересилка мл. байта результату обчислення |
60AA |
63 |
|||
60AB |
3A |
|||
60AC |
84 |
LDA |
AM[6885] |
читання ст. байта результату обчислення |
60AD |
68 |
|||
60AE |
D3 |
|||
60AF |
2D |
OUT 2D |
AP[2D] |
пересилка ст. байта результату обчислення |
60B0 |
3A |
|||
60B1 |
85 |
JMP |
|
перехід до початку вимірювання |
60B2 |
68 |
|||
60B3 |
D3 |
|||
60B4 |
2C |
CALL |
|
виклик п/п обчислення Ux |
60B5 |
C3 |
|||
60B6 |
58 |
JMP |
|
перехід до запису результату вимірювання |
60В7 |
60 |
|||
60В8 |
CD |