Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная 21

.doc
Скачиваний:
10
Добавлен:
01.05.2014
Размер:
57.86 Кб
Скачать

1. Аглоритм

Цикл:

  1. считываем байт с порта Р3

  2. сравниваем 3 и 7 биты

  3. если они равны, обнуляем весь байт

  4. отправляем байт на порт Р1

конец цикла

Обработчик прерываний: В начале исполнения выдается нулевой код. При каждом следующем вызове к педыдущему значению прибавляется +3, а результат инвертируется

2. Блок-схема

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

jmp start

org 100H

start:

mov R6,#5

mov R7,#0

mov R5,#0

REP:

mov A,P3

mov R3,A

subb A,R7

jnz PROG

jmp REP

PROG:

setb IE.7

setb IE.0

setb TCON.0

mov A,R3

mov R2,A

mov C,acc.7

mov acc.3,C

subb A,R2

jnz NULL

mov R2,#0

NULL:

mov A,R2

mov P1,A

djnz R6,REP

ORG 03

mov A,R5

add A,#3

cpl A

mov R5,A

clp IE.0

clp TCON.0

reti

3. Таблица трассировки

команда

действие

mov R6, #5

R6:=5

mov R7,#0

R6:=0

mov R5,#0

R5:=0

mov A,P3

A:=P3

mov R3,A

R3:=A

subb A,R7

A-R7

setb IE.7

IE:=1xxxxxxx

setb IE.0

IE:=xxxxxxx1

setb TCON.0

TCON:=xxxxxxx1

mov A,R3

A:=R3

mov R2,A

R2:=A

mov C,acc.7

C:=B7

mov acc.3,C

B3:=C

subb A,R2

A-R2

mov R1,A

R1:=A

mov R2,#0

R2:=00000000

mov A,R2

A:=R2

mov P1,A

P1:=A

Обработчик прерываний

mov A,R5

A:=R5

add A,#3

A:=A+3

cpl A

mov R5,A

R5:=A

cpl IE.0

cpl TCON.0

reti

Возврат из подпрограммы прерывания

4. Текст входного и выходного файлов

вход выход

1. AA (10101010) 1. 00 (00000000)

2. B3 (10110011) 2. 00 (00000000)

3. C2 (11000010) 3. C2 (11000010)

4. D8 (11011000) 4. D8 (11011000)

5. E5 (11100101) 5. E5 (11100101)