Последовательность программирования обмена и сигналы управления
Операции программирования ПСА | Входные сигналы | |||||
RESET | ||||||
1 .Установка схемы в исходное состояние: либо аппаратный сброс; либо запись команды IR(в слове CI D6=1), если ранее обмен уже был запрограммирован; 2. Запись инструкции режима (слова MI). 3. Запись одного или двух синхрослов (только в синхронном режиме). 4. Запись инструкций команд (слова CI). 5. Чтение слова состояния (слова SW). 6. Запись данных. 7. Чтение данных. 8. Отключение ПСА от шины данных. | ´ ´ ´ ´ 1 1 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 0 0 ´ ´ ´ 1 0 | |||||
В ПСА имеются вспомогательные управляющие выводы. Сигналы на этих выводах можно использовать для организации взаимодействия адаптера с ЦП и с ПУ. Рассмотрим основные сигналы этой группы.
На выводе T´RDY формируется сигнал готовности передатчика ПСА принять данные от МП для передачи их в последовательный канал. Этот сигнал применяется в МС при аппаратно - управляемом обмене, например, может использоваться в качестве сигнала запроса на прерывание МП, либо сигнала включения режима МП “Ожидание”. Сигнал T´RDY сбрасывается по срезу сигнала шины при записи данных.
На выводе R´RDY формируется сигнал готовности приемника ПСА передать в МП принятые из последовательного канала данные. Этот сигнал применяется в МС при аппаратно - управляемом обмене, например, может использоваться в качестве сигнала запроса на прерывание МП, либо сигнала включения режима МП “Ожидание”. Сигнал RxRDY сбрасывается по срезу при чтении данных.
На выводе T´END (в слове состояния SW бит T´E) формируется сигнал конец передачи. Сигнал передается из ПСА в МС и сигнализирует об отсутствии процесса передачи данных в последовательный канал.
Рассмотрим примеры программ передачи и приема информации с помощью ПСА.
Пример 1.Составить программу, обеспечивающую асинхронную передачу информации из ПСА со скоростью 1/16 от тактовой частоты синхронизации, длиной кода данных 8 бит, контролем на четность и длительностью стопового сигнала 2 бита. Информация для передачи представляет собой блок из 16 байт, хранящийся памяти ОЗУ МС, начиная с ячейки ADR1. Базовый адрес ПСА – 60H.
;Программа OUT_USART асинхронной передачи из ПСА
MVI A,40H ;загрузка в аккумулятор инструкции команды
;программного сброса ПСА
OUT 61H ;засылка инструкции команды сброса в ПСА
MVI A,0FEH ;непосредственная загрузка в аккумулятор ;инструкции режима асинхронного приема или ;передачи
OUT 61H ;засылка инструкции режима в ПСА
MVI A, 21H ;загрузка в аккумулятор инструкции команды ;передачи (D0=1; D5=1)
OUT 61H ;засылка инструкции команды передачи в ПСА
LXI H, ADR1 ;загрузка в регистровую пару HL начального
;адреса блока данных
MVI B, 10H ;начальная установка счетчика байтов, ;организованного в регистре В
L1: IN 61H ;чтение слова состояния ПСА
ANI 01H ;выделение бита D0 слова состояния ПСА –
;сигнала готовности передатчика к передаче ;очередного байта данных
JZ L1 ;возврат к L1 при D0= 0 (передатчик не готов)
MOV A, M ;пересылка в аккумулятор из косвенно
;адресуемой ячейки памяти очередного байта ;данных
OUT 60H ;вывод байта данных в ПСА
INX H ;вычисление адреса следующей ячейки памяти
DCR B ;декремент счетчика передаваемых байтов
JNZ L1 ;возврат к L1, если передан не весь блок данных
MVI A, 08H ;загрузка в аккумулятор инструкции команды
;конца передачи (D3=1)
OUT 61H ;засылка инструкции команды в ПСА
HLT ;конец программы
Пример 2.Составить программу, обеспечивающую асинхронный прием из ПСА с характеристиками, указанными в примере 1, и обработку блока информации из 16 байт. Каждый принятый байт необходимо обработать в МС программой PROG, записанной в ПЗУ, после чего результат, имеющий формат одного байта, записать в ОЗУ, начиная с ячейки ADR1. Базовый адрес ПСА – 70H.
;Программа IN_USART асинхронного приема из ПСА
MVI A,40H ;загрузка в аккумулятор инструкции команды
;программного сброса ПСА
OUT 71H ;засылка инструкции команды сброса в ПСА
MVI A, 0FEH ;непосредственная загрузка в аккумулятор ;инструкции режима асинхронного приема или ;передачи
OUT 71H ;засылка инструкции режима в ПСА
MVI A, 06 ;непосредственная загрузка в аккумулятор ;инструкции команды приема (D2=1, D1=1)
OUT 71H ;засылка инструкции команды приема в ПСА
LXI H, ADR1 ;загрузка в регистровую память HL начального ;адреса ADR1 ячейки памяти
MVI B, 10H ;начальная установка счетчика принимаемых ;байтов, организованного в регистре В
К1: IN 71H ;чтение слова состояния ПСА
ANI 02 ;выделение бита D1 слова состояния ПСА –
;сигнала готовности приемника ПСА - очередной ;байт данных принят и может быть считан из ;буферного регистра ПСА в аккумулятор МП
JZ K1 ;возврат к К1 при D1=0 (приемник не готов – байт ;еще полностью не принят из линии связи)
IN 70H ;ввод байта данных из ПСА в аккумулятор МП
CALL PROG ;обработка принятого слова подпрограммой ;PROG
MOV M, A ;пересылка результата обработки в косвенно – ;адресуемую ячейку памяти
INX H ;вычисление адреса следующей ячейки памяти
DCR B ;декремент счетчика байтов
JNZ K1 ;возврат к К1, если принят не весь блок
;информации
MVI A, 08H ;непосредственная загрузка в аккумулятор ;инструкции команды конца приема
OUT 71H ;засылка инструкции команды в ПСА
HLT ;конец программы
PROG: …………… …;подпрограмма обработки принимаемой
………………..;информации
Дата добавления: 2016-06-13; просмотров: 565;