Од. – суммарное количество тактов команд, выполняющихся однократно при формировании временной задержки;
Мн. – суммарное количество тактов команд, выполняющихся в цикле;
Pov – количество повторений цикла.
2200000 – количество тактов в 1 секунде (для тактовой частоты 2,2 МГц)
Од. = 191 такт.
Мн. = 79 тактов.
Pov = (2200000-Од)/Мн.
Pov=(2000000-191)/79=25638,58
В качестве Pov берется целое число проходов 25639 – количество повторов для задержки на 1 секунду.
3. Листинг.
Кросс – ассемблер 80/85 ### Файл листинга sl4.lst
Входной файл > sl4.asm
Обьектный файл > sl4.obj
1 проход
2 проход
1 PORTA EQU 80H
2 PORTB EQU 81H
3 PORTC EQU 82H
4 PORCRL EQU 83H
5 POVDR EQU 250
6 POV EQU 25638
7 KODK EQU 30H
8 ;********************************
9 ORG 800H
10 0800 31 40 09 LXI SP,940H
11 0803 3E 89 MVI A,89H
12 0805 D3 83 OUT PORCRL
13 0807 06 00 MVI B,0H
14 0809 1E 05 MVI E,5H
15 080B 0E FA INPUT: MVI C,POVDR
16 080D DB 82 REPT: IN PORTC
17 080F E6 0F ANI 0FH
18 0811 CA 0B 08 JZ INPUT
19 0814 0D DCR C
20 0815 C2 0D 08 JNZ REPT
21 0818 DB 82 IN PORTC
22 081A 21 30 08 LXI H,KLAV
23 081D 77 MOV M,A
24 081E 0E FA RESET1: MVI C,POVDR
25 0820 DB 82 REPT1: IN PORTC
26 0822 A7 ANA A
27 0823 C2 1E 08 JNZ RESET1
28 0826 0D DCR C
29 0827 C2 20 08 JNZ REPT1
30 082A CD 13 09 CALL OBRAB
31 082D C3 0B 08 JMP INPUT
32 ;********************************
33 0830 00 KLAV: DB 0
34 ;********************************
35 0831 3E EC SHLUZ: MVI A,0ECH
36 0833 D3 80 OUT PORTA
37 0835 3E EC MVI A,0ECH
38 0837 D3 81 OUT PORTB
39 0839 53 MOV D,E
40 083A CD B3 08 CALL MET
41 083D 3E E0 MVI A,0E0H
42 083F D3 80 OUT PORTA
43 0841 53 MOV D,E
44 0842 CD B3 08 CALL MET
45 0845 3E E2 MVI A,0E2H
46 0847 B0 ORA B
47 0848 D3 80 OUT PORTA
48 084A 53 MOV D,E
49 084B CD B3 08 CALL MET
50 084E 3E EE MVI A,0EEH
51 0850 B0 ORA B
52 0851 D3 80 OUT PORTA
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.