Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы микропроцессорной техники.Вариант 12..doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
592.9 Кб
Скачать

Inc r0 ; увеличиваем указатель ячейки памяти на 1

; проверка счетчика элементов массива

DJNZ R2, M0 ; уменьшаем счетчик количества элементов

; проверяем – все ли элементы заполнены

;

M1: SJMP M1 ; окончание программы – бесконечный цикл

2. Программа, перемещающая 8 элементов, из первого массива, начиная с адреса 50H, во второй массив, начиная с адреса 60H.

Блок-схема алгоритма.

Текст программы.

; начальная настройка

MOV R0, #50H ; в R0 – указатель на текущую ячейку первого массива

; первая ячейка имеет адрес 050H

MOV R1, #60H ; в R1 – указатель на текущую ячейку второго массива

; первая ячейка имеет адрес 060H

MOV R2, #8H ; в R2- счетчик количества элементов = 8

M0:

; перенос содержимого текущей ячейки первого массива в текущую ячейку второго массива

MOV A, @R0 ; переносим содержимое текущей ячейки

; первого массива в аккумулятор

MOV @R1, A ; переносим содержимое аккумулятора

; в текущую ячейку второго массива

; переход к следующей ячейке массива

Inc r0 ; увеличиваем указатель ячейки памяти

; первого массива на 1

Inc r1 ; увеличиваем указатель ячейки памяти

; второго массива на 1

; проверка счетчика элементов массива

DJNZ R2, M0 ; уменьшаем счетчик количества элементов

; проверяем – все ли элементы заполнены

M1: SJMP M1 ; окончание программы – бесконечный цикл

3. Программа, находящая сумму 8 элементов массива с удвоенной точностью. Сумма накапливается в регистрах A (младший байт) и B (старший байт).

Блок-схема алгоритма.

Текст программы.

; начальная настройка

MOV A, #000H ; сброс младшего байт суммы

MOV B, #000H ; сброс старшего байта суммы

MOV R0, #50H ; в R0 – указатель на текущую ячейку первого массива

; первая ячейка имеет адрес 050H

MOV R2, #8H ; в R2 – счетчик количества элементов = 8

M0:

; сложение текущего элемента массива с суммой

ADD A, @R0 ; складываем содержимое текущей ячейки

; с младшим байтом суммы

JNC M1 ; проверка – есть ли перенос после сложения

; если нет – переход к метке M1

Inc b ; учитываем перенос в старшем байте суммы

M1:

; переход к следующей ячейке массива

Inc r0 ; увеличиваем указатель ячейки памяти

; первого массива на 1

; проверка счетчика элементов массива

DJNZ R2, M0 ; уменьшаем счетчик количества элементов

; проверяем – все ли элементы заполнены

M2: SJMP M2 ; окончание программы – бесконечный цикл

Задание №4. Работа с портами ввода-вывода.

Разработать программы, выполняющие следующие действия (для каждого действия, разрабатывается отдельная программа):

        1. К линиям порта подключено 4 входных сигнала PI1, PI2, PI3, PI4. Требуется реализовать вычисление логической функции в зависимости от состояния входных сигналов. Результат вычисления выводить на линию порта PO1. Номера конкретных линий для PI1, PI2, PI3, PI4 и PO и логическая функция выбираются из таблицы 4.1.

        2. К линиям порта подключено два входных сигнала PI1, PI2 и один выходной PO1. Требуется реализовать диаграмму работы. Конкретные номера битов и номер варианта диаграммы приведены в таблице 4.1. Варианты диаграмм выбираются из таблицы 4.2.

Таблица 4.1. Варианты для задания №4

Номер варианта

Сигнал PI1

Сигнал

PI2

Сигнал PI3

Сигнал

PI4

Выходной сигнал PO1

Логическая функция

Номер диаг-раммы

1

P0.0

P0.1

P0.2

P0.3

P3.0

1

2

P0.1

P0.2

P0.3

P0.4

P3.1

2

3

P0.2

P0.3

P0.4

P0.5

P3.2

3

4

P0.3

P0.4

P0.5

P0.6

P3.3

4

5

P0.4

P0.5

P0.6

P0.7

P3.4

5

6

P1.0

P1.1

P1.2

P1.3

P2.0

1

7

P1.1

P1.2

P1.3

P1.4

P2.1

2

8

P1.2

P1.3

P1.4

P1.5

P2.2

3

9

P1.3

P1.4

P1.5

P1.6

P2.3

4

10

P1.4

P1.5

P1.6

P1.7

P2.4

5

11

P2.0

P2.1

P2.2

P2.3

P1.0

1

12

P2.1

P2.2

P2.3

P2.4

P1.1

2

13

P2.2

P2.3

P2.4

P2.5

P1.2

3

14

P2.3

P2.4

P2.5

P2.6

P1.3

4

15

P2.4

P2.5

P2.6

P2.7

P1.4

5

16

P3.0

P3.1

P3.2

P3.3

P0.0

1

17

P3.1

P3.2

P3.3

P3.4

P0.1

2

18

P3.2

P3.3

P3.4

P3.5

P0.2

3

19

P3.3

P3.4

P3.5

P3.6

P0.3

4

20

P3.4

P3.5

P3.6

P3.7

P0.4

5

Таблица 4.2. Варианты диаграмм

Варианты для N1

1

2

3

4

5

Пример выполнения задания №4

1. Программа, осуществляет вычисление логической функции в зависимости от состояния входных сигналов A, B, C, D. Номера битов PI1 – P2.3, PI2 – P2.4, PI3 – P2.5, PI4 – P2.6, PO1 – P0.0.

Текст программы

; начальная настройка

SETB P2.3 ; разрешение ввода с линии порта P2.3

SETB P2.4 ; разрешение ввода с линии порта P2.4

SETB P2.5 ; разрешение ввода с линии порта P2.5

SETB P2.6 ; разрешение ввода с линии порта P2.6

; Основной цикл программы

M0: MOV C, P2.3 ; загружаем состояние сигнала PI1

ORL C, P2.4 ; сложение с сигналом PI2, выполнено

CPL C ; инверсия результата, в результате

MOV F0, C ; результат временно сохраняем в F0

MOV C, P2.5 ; загружаем состояние сигнала PI3

ORL C, P2.4 ; сложение с сигналом PI4, выполнено

CPL C ; инверсия результата, в результате

ANL C, F0 ; осуществляем операцию умножения

;

MOV P0.0, C ; выводим результат на линию порта

SJMP M2 ; организуем бесконечный цикл

2. Программа, осуществляет реализацию функции заданную диаграммой. Номера битов PI1 – P2.3, PI2 – P2.4, PI3 – P2.5, PI4 – P2.6, PO1 – P0.0.

Реализуемая диаграмма

Текст программы

; Начальная настройка

SETB P2.3 ; разрешение ввода с линии порта P2.3

SETB P2.4 ; разрешение ввода с линии порта P2.4

CLR P0.0 ; начальное состояние выходного сигнала =0

; Основной цикл программы

M0: JNB P2.3, M0 ; ожидаем уровня сигнала PI1 =1

SETB P0.0 ; устанавливаем выходной сигнал PO1 =1

M1: JNB P2.4, M1 ; ожидаем уровня сигнала PI2 =1

CLR P0.0 ; устанавливаем выходной сигнал PO1 =0

M2: JB P2.4, M2 ; ожидаем уровня сигнала PI2 =0

M3: JB P2.3, M3 ; ожидаем уровня сигнала PI2 =0

SJMP M0 ; организуем бесконечный цикл

Приложения

Обозначение систем счисления

Наименование

Обозначение

Полное обозначение

Сокращенное обозначение

Двоичная

(2)

BIN

B

Восьмеричная

(8)

OCT

O

Десятичная

(10)

DEC

D или (.)

Шестнадцатеричная

(16)

HEX

H

Обозначение логических операций

Наименование

Полное обозначение

Сокращенное обозначение

Конъюнкция

AND

&&

Дизъюнкция

OR

||

Отрицание

NOT

!

Исключение

(исключающее ИЛИ)

XOR

^

Представление чисел в двоичной, восьмеричной и шестнадцатеричной системах счисления

DEC

BIN

OCT

0

000

0

1

001

1

2

010

2

3

011

3

4

100

4

5

101

5

6

110

6

7

111

7

DEC

BIN

HEX

0

0000

0

1

0001

1

2

0010

2

3

0011

3

4

0100

4

5

0101

5

6

0110

6

7

0111

7

8

1000

8

9

1001

9

10

1010

A

11

1011

B

12

1100

C

13

1101

D

14

1110

E

15

1111

F

Значение показателей степени 2

Номер бита

15

14

13

12

11

10

9

8

Степень 2

215

214

213

212

211

210

29

28

Значение

32768

16384

8192

4096

2048

1024

512

256

Номер бита

7

6

5

4

3

2

1

0

Степень 2

27

26

25

24

23

22

21

20

Значение

128

64

32

16

8

4

2

1

Зависимость результата логической операции от значения операндов

Логический оператор

A = 0

B = 0

A = 1

B = 0

A = 0

B = 1

A = 1

B = 1

A AND B

0

0

0

1

A OR B

0

1

1

1

NOT A

1

0

1

0

XOR

0

1

1

0