ВУЗ:
Составители:
Рубрика:
16.2 Программирование ввода и вывода
16.2.1 ВВОД И ВЫВОД ДАННЫХ (ПОДПРОГРАММА)
Если 3-й разряд порта Р1 находится в 0, то 1-й разряд порта Р2 установить
в состояние 1; и наоборот: если 3-й разряд порта Р1 находится в 1, то 1-й
разряд порта Р2 установить в состояние 0.
Составляем программу:
IOD: IN A,P1
; Ввод байта с порта Р1
ANL #04
; и выделение 3-го бита (остальные в 0).
JNZ M1
; Если результат не ноль (D3 равен 1), то перейти на М1.
ORL P2
,
#02
;Установить бит 1 по
р
та Р2 в 1
(
остальные
RET
; биты без изменения) и выйти из подпрограммы.
M1: ANL P2
,
#FD
;Установить бит 1 порта Р2 в 0 (остальные биты
RET
; без изменения) и выйти из подпрограммы.
16.2.2 ОРГАНИЗАЦИЯ ЗАДЕРЖКИ ПРИ ВВОДЕ И ВЫВОДЕ ДАННЫХ В
ВИДЕ ПОДПРОГРАММЫ
Очень часто приходится с помощью программных средств – особенно при
операциях ввода/вывода – осуществлять формирование задержек. Например,
необходимо сформировать интервал времени Т
И
= 1/F, где F=4800 бит/с –
скорость передачи/приема в последовательной линии связи. Пусть тактовая
частота ОЭВМ F
CLK
= 2016000 Гц.
Для организации подпрограммы задержки используем команды: MOV
R,#data; DJNZ R,address; RET. Каждая команда занимает 2 машинных цикла
(таблица 15.1), каждый машинный цикл занимает 5 тактов (раздел 14).
Следовательно, каждая команда будет занимать время Т
К
=2×5×1/ F
CLK
. При
этом число повторения команд должно равняться N = Т
И
/Т
К
=
(1/4800)/(10/2016000) = 42. Разобьем их следующим образом:
R,#data – 1 повтор,
DJNZ R, address – 40 (28h) повторов,
RET – 1 повтор.
16.2 Программирование ввода и вывода
16.2.1 ВВОД И ВЫВОД ДАННЫХ (ПОДПРОГРАММА)
Если 3-й разряд порта Р1 находится в 0, то 1-й разряд порта Р2 установить
в состояние 1; и наоборот: если 3-й разряд порта Р1 находится в 1, то 1-й
разряд порта Р2 установить в состояние 0.
Составляем программу:
IOD: IN A,P1 ; Ввод байта с порта Р1
ANL #04 ; и выделение 3-го бита (остальные в 0).
JNZ M1 ; Если результат не ноль (D3 равен 1), то перейти на М1.
ORL P2,#02 ;Установить бит 1 порта Р2 в 1 (остальные
RET ; биты без изменения) и выйти из подпрограммы.
M1: ANL P2,#FD ;Установить бит 1 порта Р2 в 0 (остальные биты
RET ; без изменения) и выйти из подпрограммы.
16.2.2 ОРГАНИЗАЦИЯ ЗАДЕРЖКИ ПРИ ВВОДЕ И ВЫВОДЕ ДАННЫХ В
ВИДЕ ПОДПРОГРАММЫ
Очень часто приходится с помощью программных средств – особенно при
операциях ввода/вывода – осуществлять формирование задержек. Например,
необходимо сформировать интервал времени ТИ = 1/F, где F=4800 бит/с –
скорость передачи/приема в последовательной линии связи. Пусть тактовая
частота ОЭВМ FCLK = 2016000 Гц.
Для организации подпрограммы задержки используем команды: MOV
R,#data; DJNZ R,address; RET. Каждая команда занимает 2 машинных цикла
(таблица 15.1), каждый машинный цикл занимает 5 тактов (раздел 14).
Следовательно, каждая команда будет занимать время ТК=2×5×1/ FCLK. При
этом число повторения команд должно равняться N = ТИ/ТК =
(1/4800)/(10/2016000) = 42. Разобьем их следующим образом:
R,#data – 1 повтор,
DJNZ R, address – 40 (28h) повторов,
RET – 1 повтор.
Страницы
- « первая
- ‹ предыдущая
- …
- 192
- 193
- 194
- 195
- 196
- …
- следующая ›
- последняя »
