Элементы и узлы информационных и управляющих систем (Основы теории и синтеза). Булатов В.Н. - 194 стр.

UptoLike

Составители: 

Рубрика: 

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 повтор.