Задание: Модифицировать предыдущую программу таким образом, чтобы на четыре разряда дисплея последовательно выдавались результаты опроса клавиш выбранной линейки клавиатуры в порядке нажатия клавиш.
Листинг программы
0800 |
00 |
00 |
|
0801 |
MVI A |
3E |
Выбрать второй индикатор и вторую линейку клавиатуры |
0802 |
02 |
02 |
|
0803 |
OUT |
D3 |
|
0804 |
F8 |
F8 |
|
0805 |
IN |
DB |
Опросить клавиатуру |
0806 |
FA |
FA |
|
0807 |
STA |
32 |
Записать в ячейку 0800 |
0808 |
00 |
00 |
|
0809 |
08 |
08 |
|
080A |
SUI |
D6 |
Вычесть |
080B |
64 |
64 |
|
080C |
JNZ |
C2 |
Перейти если не равно нулю |
080D |
16 |
16 |
|
080E |
08 |
08 |
|
080F |
MVI A |
3E |
Выдать цифру 1 на семисигментный индикатор |
0810 |
06 |
06 |
|
0811 |
OUT |
D3 |
|
0812 |
F9 |
F9 |
|
0813 |
CALL |
CD |
Вызвать подпрограмму задержки |
0814 |
60 |
60 |
|
0815 |
08 |
08 |
|
0816 |
LDA |
3A |
Загрузить содержимое ячейки в аккумулятор |
0817 |
00 |
00 |
|
0818 |
08 |
08 |
|
0819 |
SUI |
D6 |
Вычесть |
081A |
34 |
34 |
|
081B |
JNZ |
C2 |
Перейти если не равно нулю |
081C |
25 |
25 |
|
081D |
08 |
08 |
|
081E |
MVI A |
3E |
Выдать цифру 2 на семисигментный индикатор |
081F |
57 |
57 |
|
0820 |
OUT |
D3 |
|
0821 |
F9 |
F9 |
|
0822 |
CALL |
CD |
Вызвать подпрограмму задержки |
0823 |
60 |
60 |
|
0824 |
08 |
08 |
|
0825 |
LDA |
3A |
Загрузить содержимое ячейки в аккумулятор |
0826 |
00 |
00 |
|
0827 |
08 |
08 |
|
0828 |
SUI |
D6 |
Вычесть |
0829 |
54 |
54 |
|
082A |
JNZ |
C2 |
Перейти если не равно нулю |
082B |
34 |
34 |
|
082C |
08 |
08 |
|
082D |
MVI A |
3E |
Выдать цифру 3 на семисигментный индикатор |
082E |
4F |
4F |
|
082F |
OUT |
D3 |
|
0830 |
F9 |
F9 |
|
0831 |
CALL |
CD |
Вызвать подпрограмму задержки |
0832 |
60 |
60 |
|
0833 |
08 |
08 |
|
0834 |
LDA |
3A |
Загрузить содержимое ячейки в аккумулятор |
0835 |
00 |
00 |
|
0836 |
08 |
08 |
|
0837 |
SUI |
D6 |
Вычесть |
0838 |
70 |
70 |
|
0839 |
JNZ |
C2 |
Перейти если не равно нулю |
083A |
01 |
01 |
|
083B |
08 |
08 |
|
083C |
MVI A |
3E |
Выдать цифру 4 на семисигментный индикатор |
083D |
66 |
66 |
|
083E |
OUT |
D3 |
|
083F |
F9 |
F9 |
|
0840 |
CALL |
CD |
Вызвать подпрограмму задержки |
0841 |
60 |
60 |
|
0842 |
08 |
08 |
|
0843 |
RET |
C9 |
Выйти из подпрограммы |
0860 |
Задержка |
||
… |
|||
086С |
|||
0900 |
MVI B |
||
0901 |
01 |
||
0902 |
MOV A B |
||
0903 |
OUT |
||
0904 |
F8 |
||
0905 |
LDA |
Загрузить содержимое ячейки в аккумулятор |
|
0906 |
00 |
||
0907 |
08 |
||
0908 |
MOV C A |
В регистр С поместить содерж А |
|
0909 |
CALL |
Вызвать подпрограмму опроса клавиш |
|
090A |
01 |
||
090B |
08 |
||
090C |
LDA |
Загрузить содержимое ячейки в аккумулятор |
|
090D |
00 |
||
090E |
08 |
||
090F |
SUB C |
А = А - С |
|
0910 |
JZ |
Перейти если А = 0 |
|
0911 |
00 |
||
0912 |
09 |
||
0913 |
MOV A B |
||
0914 |
RLC |
Сдвиг влево |
|
0915 |
MOV B A |
||
0916 |
SUI |
||
0917 |
10 |
||
0918 |
JZ |
||
0919 |
00 |
||
091A |
09 |
||
091B |
JMP |
||
091C |
02 |
||
091D |
09 |
||
091E |
Вывод: в ходе выполнения работы Мы изучили особенности функционирования микропроцессора при выполнении команд ввода и вывода информации, приобрели навыки программного управления клавиатурой и дисплеем УМК.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.