1.3 Программа
Таблица 2
Адрес |
Метка |
Ассемблер |
Такты |
Примечания |
|
0800 |
MVI B,00 |
7 |
1 |
||
0802 |
MVI C,6E |
7 |
|||
0804 |
M3 |
MVI H,09 |
7 |
2 3 |
|
0806 |
MVI L,00 |
7 |
|||
0808 |
M1 |
IN port B5 |
10 |
3 |
|
080A |
CPI 00 |
7 |
4 |
||
080C |
JZ M1 |
10 |
5 |
||
080F |
M2 |
INX H |
5 |
6 |
|
0811 |
IN port B5 |
10 |
7 |
||
0813 |
CPI 00 |
7 |
8 |
||
0815 |
JNZ M2 |
10 |
9 |
||
0818 |
MOV A,M |
5 |
10 |
||
0819 |
OUT port B6 |
10 |
11 |
||
081B |
DAD B |
10 |
12 |
||
081C |
MOV A,M |
5 |
13 |
||
081D |
OUT port B7 |
10 |
14 |
||
081F |
JMP M3 |
10 |
15 |
Работа программы (таблица 2):
Задание значения регистровой пары BC для ее дальнейшего сложения с регистровой парой HL
задание начального значения счетчика импульсов (сосчитанных микропроцессором за положительный полупериод (регистровая пара HL).
Чтение порта В5. Данные с него поступают на аккумулятор.
Сравнение данных из порта с значением нулем. Если значение данных порта изменилось с 0 на 1, то признак Z принимает значение 0.
Проверка признака Z. Если признак Z равен 1, то порт B5 опрашивается заново. Если признак Z равен 0, то программа выходит из цикла и выполняется следующая команда.
Инкремент счетчика импульсов, сосчитанных микропроцессором за положительный полупериод.
Чтение порта В5.
Сравнение новых данных порта с 0. При равенстве данных из порта 1 устанавливается признак Z=0.
Проверка признака Z. Пока данные порта равны единице (Z=0), импульс еще не завершился и надо инкрементировать счетчик.
Запись в аккумулятор данных с ячейки, адрес которой указан в регистровой паре HL для их дальнейшего вывода.
Вывод данных в порт В6, это и будут старшие разряды значения скорости.
Двойное сложение регистровых пар HL и BC , это действие совершается для выведения младших разрядов скорости.
Запись в аккумулятор данных с ячейки, адрес которой указан в регистровой паре HL для их дальнейшего вывода.
Вывод данных в порт В7, это младшие разряды значения скорости.
Переход на начало программы.
Также нужно отметить, что дискрета в программе составила 10+7+10+5=32 такта.
Кроме того, ниже представлена таблица 3, в которой показано, какие данные в какие ячейки памяти нужно занести, чтобы выводились определенные значения скорости в десятичной форме, соответствующие определенному количеству импульсов.
Таблица 3
k, раз |
Значения скорости, об./мин. |
Для старших разрядов |
Для младших разрядов |
|||
Адрес |
Содержимое |
Адрес |
Содержимое |
|||
100 |
1041 |
0964 |
10 |
0A32 |
41 |
|
101 |
1031 |
0965 |
10 |
0A33 |
31 |
|
102 |
1021 |
0966 |
10 |
0A34 |
21 |
|
103 |
1011 |
0967 |
10 |
0A35 |
11 |
|
104 |
1001 |
0968 |
10 |
0A36 |
01 |
|
105 |
992 |
0969 |
09 |
0A37 |
92 |
|
106 |
982 |
096A |
09 |
0A38 |
82 |
|
107 |
973 |
096B |
09 |
0A39 |
73 |
|
108 |
964 |
096C |
09 |
0A3A |
64 |
|
109 |
955 |
096D |
09 |
0A3B |
55 |
|
110 |
946 |
096E |
09 |
0A3C |
46 |
|
111 |
938 |
096F |
09 |
0A3D |
38 |
|
112 |
930 |
0970 |
09 |
0A3E |
30 |
|
113 |
921 |
0971 |
09 |
0A3F |
21 |
|
114 |
913 |
0972 |
09 |
0A40 |
13 |
|
115 |
905 |
0973 |
09 |
0A41 |
05 |
|
116 |
897 |
0974 |
08 |
0A42 |
97 |
|
117 |
890 |
0975 |
08 |
0A43 |
90 |
|
118 |
882 |
0976 |
08 |
0A44 |
82 |
|
119 |
875 |
0977 |
08 |
0A45 |
75 |
|
120 |
868 |
0978 |
08 |
0A46 |
68 |
|
121 |
860 |
0979 |
08 |
0A47 |
60 |
|
122 |
853 |
097A |
08 |
0A48 |
53 |
|
123 |
846 |
097B |
08 |
0A49 |
46 |
|
124 |
840 |
097C |
08 |
0A4A |
40 |
|
125 |
833 |
097D |
08 |
0A4B |
33 |
|
126 |
826 |
097E |
08 |
0A4C |
26 |
|
127 |
820 |
097F |
08 |
0A4D |
20 |
|
128 |
813 |
0980 |
08 |
0A4E |
13 |
|
129 |
807 |
0981 |
08 |
0A4F |
07 |
|
130 |
801 |
0982 |
08 |
0A50 |
01 |
|
131 |
795 |
0983 |
07 |
0A51 |
95 |
|
132 |
789 |
0984 |
07 |
0A52 |
89 |
|
133 |
783 |
0985 |
07 |
0A53 |
83 |
|
134 |
777 |
0986 |
07 |
0A54 |
77 |
|
135 |
771 |
0987 |
07 |
0A55 |
71 |
|
136 |
765 |
0988 |
07 |
0A56 |
65 |
|
137 |
760 |
0989 |
07 |
0A57 |
60 |
|
138 |
754 |
098A |
07 |
0A58 |
54 |
|
139 |
749 |
098B |
07 |
0A59 |
49 |
|
140 |
744 |
098C |
07 |
0A5A |
44 |
|
141 |
738 |
098D |
07 |
0A5B |
38 |
|
142 |
733 |
098E |
07 |
0A5C |
33 |
|
143 |
728 |
098F |
07 |
0A5D |
28 |
|
144 |
723 |
0990 |
07 |
0A5E |
23 |
|
145 |
718 |
0991 |
07 |
0A5F |
18 |
|
146 |
713 |
0992 |
07 |
0A60 |
13 |
|
147 |
708 |
0993 |
07 |
0A61 |
08 |
|
148 |
703 |
0994 |
07 |
0A62 |
03 |
|
149 |
699 |
0995 |
06 |
0A63 |
99 |
|
150 |
694 |
0996 |
06 |
0A64 |
94 |
|
151 |
689 |
0997 |
06 |
0A65 |
89 |
|
152 |
685 |
0998 |
06 |
0A66 |
85 |
|
153 |
680 |
0999 |
06 |
0A67 |
80 |
|
154 |
676 |
099A |
06 |
0A68 |
76 |
|
155 |
672 |
099B |
06 |
0A69 |
72 |
|
156 |
667 |
099C |
06 |
0A6A |
67 |
|
157 |
663 |
099D |
06 |
0A6B |
63 |
|
158 |
659 |
099E |
06 |
0A6C |
59 |
|
159 |
655 |
099F |
06 |
0A6D |
55 |
|
160 |
651 |
0A00 |
06 |
0A6E |
51 |
|
161 |
646 |
0A01 |
06 |
0A6F |
46 |
|
162 |
643 |
0A02 |
06 |
0A60 |
43 |
|
163 |
639 |
0A03 |
06 |
0A61 |
39 |
|
164 |
635 |
0A04 |
06 |
0A62 |
35 |
|
165 |
631 |
0A05 |
06 |
0A63 |
31 |
|
166 |
627 |
0A06 |
06 |
0A64 |
27 |
|
167 |
623 |
0A07 |
06 |
0A65 |
23 |
|
168 |
620 |
0A08 |
06 |
0A66 |
20 |
|
169 |
616 |
0A09 |
06 |
0A67 |
16 |
|
170 |
612 |
0A0A |
06 |
0A68 |
12 |
|
171 |
609 |
0A0B |
06 |
0A69 |
09 |
|
172 |
605 |
0A0C |
06 |
0A6A |
05 |
|
173 |
602 |
0A0D |
06 |
0A6B |
02 |
|
174 |
598 |
0A0E |
05 |
0A6C |
98 |
|
175 |
595 |
0A0F |
05 |
0A6D |
95 |
|
176 |
591 |
0A10 |
05 |
0A6E |
91 |
|
177 |
588 |
0A11 |
05 |
0A6F |
88 |
|
178 |
585 |
0A12 |
05 |
0A70 |
85 |
|
179 |
581 |
0A13 |
05 |
0A71 |
81 |
|
180 |
578 |
0A14 |
05 |
0A72 |
78 |
|
181 |
575 |
0A15 |
05 |
0A73 |
75 |
|
182 |
572 |
0A16 |
05 |
0A74 |
72 |
|
183 |
569 |
0A17 |
05 |
0A75 |
69 |
|
184 |
566 |
0A18 |
05 |
0A76 |
66 |
|
185 |
563 |
0A19 |
05 |
0A77 |
63 |
|
186 |
560 |
0A1A |
05 |
0A78 |
60 |
|
187 |
557 |
0A1B |
05 |
0A79 |
57 |
|
188 |
554 |
0A1C |
05 |
0A7A |
54 |
|
189 |
551 |
0A1D |
05 |
0A7B |
51 |
|
190 |
548 |
0A1E |
05 |
0A7C |
48 |
|
191 |
545 |
0A1F |
05 |
0A7D |
45 |
|
192 |
542 |
0A20 |
05 |
0A7E |
42 |
|
193 |
539 |
0A21 |
05 |
0A7F |
39 |
|
194 |
536 |
0A22 |
05 |
0A80 |
36 |
|
195 |
534 |
0A23 |
05 |
0A81 |
34 |
|
196 |
531 |
0A24 |
05 |
0A82 |
31 |
|
197 |
528 |
0A25 |
05 |
0A83 |
28 |
|
198 |
526 |
0A26 |
05 |
0A84 |
26 |
|
199 |
523 |
0A27 |
05 |
0A85 |
23 |
|
200 |
520 |
0A28 |
05 |
0A86 |
20 |
|
201 |
518 |
0A29 |
05 |
0A87 |
18 |
|
202 |
515 |
0A2A |
05 |
0A88 |
15 |
|
203 |
513 |
0A2B |
05 |
0A89 |
13 |
|
204 |
510 |
0A2C |
05 |
0A8A |
10 |
|
205 |
508 |
0A2D |
05 |
0A8B |
08 |
|
206 |
505 |
0A2E |
05 |
0A8C |
05 |
|
207 |
503 |
0A2F |
05 |
0A8D |
03 |
|
208 |
500 |
0A30 |
05 |
0A8E |
00 |
|
209 |
498 |
0A31 |
04 |
0A8F |
98 |