Порты ввода/вывода. Система управления МКЭВМ. Автономное использование МК-48. БИС расширителя ввода/вывода, страница 13

Скорость передачи фиксирована и может быть 2-х видов:

1. 

2. 

Режим 3.

Аналогичен режиму 2, но скорость передачи может изменяться и определяется работой таймера-счетчика Т/С1.

Порт может работать одновременно и как передатчик, и как приемник.

Параллельные данные поступают из регистра SBUF.

MOV  SBUF,A

После приема последовательных данных и их обработки выставляется флаг прерывания от приемника.

Устройство управления и синхронизации в МК51.

Частота внутреннего тактового генератора fCLK равна частоте синхронизации в отличие от МК48, где

fCLK=1..12 МГц

Возможны 3 способа синхронизации тактового генератора:

1

2

3

Если имеется внешний источник

Каждая команда выполняется за 1 или 2 машинных цикла, а каждый цикл содержит 12 периодов тактовой частоты.

Начальная установка.

Для реализации:

Начальная установка:

1.  Устанавливается в 0 РС ß 0000H

2.  Сбрасываются в 0 все РСФ, кроме портов Р0..Р3, регистра SBUF и указателя стека SP.

3.  В регистры защелки портов Р0..Р3 записываются единицы, в указатель стека записываются (SP)ß07H (для согласования с МК48)

4.  Запрещаются все прерывания, работа таймеров-счетчиков и последовательного порта.

5.  Выбирается нулевой банк регистров.

Система команд МК51.

Команды:

·  1-байтные;

·  2-байтные;

·  3-байтные;

Способы адресации:

1.  Прямая регистровая

MOV A,R1

2.  Косвенная регистровая

MOV A,@R1

3.  Непосредственная адресация

MOV A,#25H

4.  Прямая адресация

MOV A,25H à ячейка памяти данных.

Все команды делят на:

1.  пересылки и обмена;

2.  арифметические;

3.  логические;

4.  передачи управления;

5.  операций с битом

Команды пересылки.

MOV A,Rn

(A)ß(Rn) n=0..7

MOV A,ad

(A)ß(ad)

MOV A,@Ri

(A)ß((Ri))

MOV A,#d

(A)ßd

MOV Rn,A

(Rn)ß(A)

MOV Rn,ad

(Rn)ß(ad)

MOV Rn,#d

(Rn)ßd

MOV ad,A

(ad)ß(A)

MOV ad,Rn

(ad)ß(Rn)

MOV add,ads

(add)ß(ads)

MOV ad,@Ri

(ad)ß((Ri))

MOV ad,#d

(ad)ßd

MOV @Ri,A

((Ri))ß(A)

MOV @Ri,ad

((Ri))ß(ad)

MOV @Ri,#d

((Ri))ß(d)

MOV R1,R2

Команда не существует

MOV DPTR,#d16

Мнемокод

Комментарии

MOV

DPTR,#1000H

или

MOV

DPL,#00H

MOV

DPH,#10H

Можно прочитать ПК (2 варианта):

a)  MOVC A,@A+DPTR;           (A)ß((A)+DPTR)

суммарное число является содержимым ПК;

Пример:

Допустим в памяти, начиная с ячейки 1000Н, хранятся данные:

1000H

55H

1001H

44H

1002H

33H

1003H

22H

.

.

.

Нам необходимо прочитать их и переслать в регистры:

Мнемокод

Комментарии

MOV

DPTR,#1000H

MOV

A,#00H

MOVC

A,@A+DPTR

MOV

R1,A

INC

A

MOVC

A,@A+DPTR

MOV

R2,A

...

b)  MOVC A,@A+PC;    (A)ß((A)+PC)

PC – содержание РС в данный момент времени.

Имеется возможность работы с внешней ПД.