Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 2 / Лабораторная работа N 2.doc
Скачиваний:
22
Добавлен:
01.05.2014
Размер:
619.01 Кб
Скачать

Булевый процессор.

При реализации булевых (битовых) операций в качестве источников/приемников операндов используются булевый аккумулятор (разряд С регистра PSW) и непосредственно адресуемые биты, находящиеся в резидентной памяти данных DATA. Для адресации к конкретному биту используется его номер (адрес в битовом пространстве памяти).

Команды манипуляции с битами позволяют:

устанавливать, сбpасывать, инвертировать отдельные биты; совершать условные переходы по установленному/сброшенному биту;

обменивать содержимое битов с содержимым аккумулятора С;

производить операции "И" и "ИЛИ" с содержимым разряда С и отдельных битов с записью результата этих операций в разряд С.

Предварительная подготовка к работе

1.Повторить последовательность и назначение этапов подготовки программного обеспечения с использованием кросс-средств. Повторить синтаксис директив ассемблера ASM51, команды и режимы адресации OMK P89LPC932.

2.В соответствии с вариантом задания (таблица 2.4) подготовить программу на языке ассемблера, выполняющую пересылку массива констант (8 чисел) из памяти программ Code Memory (ПП) в резидентную память данных IDATA (РПД), затем осуществить вывод в цикле массива констант из РПД на индикацию с интервалом 0,5 сек. Для этого использовать подпрограмму DELAY из первой лабораторной работы.. В программе необходимо предусмотреть инициализацию указанной области ПП константами с помощью директивы DB.

Считывание данных из памяти программ выполняется командой

MOVC A,@A+DPTR.

Двухбайтовый регистр-указатель DPTR в начале программы должен быть инициализирован командой

MOV DPTR,#addr1,

аddr1 – базовый адрес массива констант в ПП (адрес первой константы), а в аккумулятор необходимо заносить значение смещения пересылаемой константы относительно базового адреса массива.

Пересылку констант в ячейки РПД целесообразно выполнять в цикле командой

MOV @Ri,A, i=0,1.

Предварительно регистр Ri должен инициализироваться командой

MOV Ri,#addr2,

где addr2 - адрес первой константы в РПД, а затем инкрементироваться при каждом проходе цикла

INC Ri.

Кроме того, для подсчета числа пересылок необходим счетчик цикла (например, регистр Rj). Для организации цикла удобно использовать команду

DJNZ Rj, L,

которая декрементирует содержимое Rj и в случае его неравенства нулю передает управление на метку L (начало цикла).

Таблица 2.4

№ вар.

Нач. адрес массива в Code Memory

Нач. адрес массива в IDATA

№ банка рег.

№ сектора

№ стр. в секторе

1

0

3

20h

3

2

1

2

30h

2

3

2

0

40h

1

4

3

4

50h

0

5

4

8

60h

3

6

5

6

70h

2

7

6

5

80h

1

8

7

0

90h

0

9

0

5

A0h

3

10

1

6

B0h

2

11

2

7

C0h

1

12

3

0

D0h

0

13

4

2

E0h

3

14

5

1

F0h

2

15

6

3

38h

1

3.В соответствии с вариантом задания (таблица 2.5) подготовить на языке ассемблера программу, копирующую в ячейки РПД содержимое регистров специальных функций, а затем осуществить вывод этих значений в цикле из РПД на индикацию с интервалом 0,5 сек. Для этого использовать подпрограмму DELAY из первой лабораторной работы.. В программе предварительно необходимо выполнить инициализацию регистров SFR константами.

Для выполнения пересылок использовать команду

MOV @Ri,ad, i=0,1.

где ad - адрес источника, который необходимо определить по таблице 2.2.

№ вар.

SFR

Нач. адрес массива в IDATA

№ банка рег. для косв. ад-ресации.

1

DPL, DPH, ICRAL, IP0

F0h

0

2

DEEDAT, TL0, TH0, B

E0h

1

3

DEEADR, ICRAH, TL1, TH1

D0h

2

4

ICRBH, DPL, DPH, IP0

C8h

3

5

ICRBL, ICRAL, TL0, TH0

C0h

0

6

SBUF, DPL, DPH, DEEDAT

B0h

1

7

SP, DEEADR, TL1, TH1

A0h

2

8

SPDAT, DEEADR, IP0, B

90h

3

9

TMOD, ICRAL, TL1, TH1

80h

0

10

I2DAT, DEEDAT, TL0, TH0

70h

1

11

DEEDAT, TL1, TH1, B

60h

2

12

DEEADR, DPL, DPH, IP0

50h

3

13

ICRAL, TL1, TH1, B

40h

0

14

DEEDAT, TL0, TH0, IP0

30h

1

15

DEEADR, ICRAL, DPL, DPH

20h

2

4. В соответствии с вариантом задания (таблица 2.6) подготовить программу для обработки измерительной информации. Исходные данные хранятся в добавочной памяти данных AUX RAM в виде массива (8 чисел, необходимо программно сформировать этот массив). Найти среднее значение Xср, сравнить его с уставками - двумя константами Qmax и Qmin, хранящимися в памяти программ. При нахождении среднего значения деление выполнять путем сдвига суммы на 3 разряда вправо. По результатам сравнения сформировать признак p и вывести его на индикацию:

Xср >= Qmax, p=11;

Qmax > Xср > Qmin, p=10;

Xср <= Qmin, p=00;

№ вар.

Числа

№ вар.

Числа

1

01h, F2h, A5h, EDh, 06h, 9Ahh, 09, 07h

9

98h, 64h, 82h, FEh, B0h, 57h, AAh, D8h

2

B6h, 52h, C9h, 04h, D1h, 0Ah, C5h, A4h

10

4Ah, 28h, 9Eh, 5Fh, 55h, 97h, BAh, 03h,

3

78h, BDh, FFh, 58h, 03h, AFh, 87h, 91h

11

77h, 5Fh, 7Ah, 82h, B9h, 05h, BBh, 67h

4

E4h, 83h, 09h, B1h, AEh, 22h, 18h, 45h

12

68h, 9Ah, 61h, 02h, B8h, 28h, C4h, 8Eh

5

E5h, B8h, 23h, 64h, A4h, 5Fh, 55h, FAh

13

58h, B0h, F4h, 3Ah, 67h, 51h, 1Fh, 72h

6

0Ah, 5Ah, 66h, E8h, 82h, 0Bh, 69h, 5Fh

14

25h, 87h, F3h, 6Ah, 72h, 94h, BFh, 4Eh

7

34h, D8h, 0Ch, 5Fh, 76h, 09h, Ech, 61h

15

84h, 34h, AEh, 5Dh, 73h, B4h, 1Eh, F9h

8

04h, 55h, F1h, 67h, ACh, E8h, 2Fh, 58h

Соседние файлы в папке Лабораторная работа 2