Изучение особенностей функционирования микропроцессора при выполнении команд ввода и вывода информации. Программное управление клавиатурой и дисплеем УМК

Страницы работы

9 страниц (Word-файл)

Содержание работы

Российский государственный профессионально-педагогический университет

Кафедра микропроцессорной управляющей вычислительной техники

Лабораторная работа № 3

Изучение временных диаграмм выполнения команд ввода и вывода информации

                                                                               Выполнили: Величко В.С.       

                                                                           Проверил: Мешков В.В.

Екатеринбург 2008

Цель работы: изучение особенностей функционирования микропроцессора при выполнении команд ввода и вывода информации, приобретение навыков программного управления клавиатурой и дисплеем УМК.

Команды ввода и выводы информации

Мнемоника команд

Число байт

Выполняемые действия

Состав машинных циклов/количество тактов в циклах

Команды ввода информации в аккумулятор из порта ввода

IN<В2>

2

(А)←port<В2>

1/4,2/3,6/3

Команды вывода информации в порт вывода из аккумулятора

OUT<В2>

2

Port<В2>←(А)

1/4,2/3,7/3

Временные диаграммы:

IN<B2>

OUT<B2>

Задание: Составить программу выдачи на дисплей название своей группы (программу составить  в виде процедуры выдачи на дисплей существующего массива с заранее подготовленными кодами).

Листинг:

адрес  

код

мнемоника

комментарий

0800

7F

7F

Семисегментный код “B”

0801

78

78

Семисегментный код “t”

0802

40

40

Семисегментный код “-“

0803

66

66

Семисегментный код “4”

0804

3F

3F

Семисегментный код “0”

0805

07

07

Семисегментный код “7”

0810

01

01

Номер разряда дисплея

0811

02

02

Номер разряда дисплея

0812

04

04

Номер разряда дисплея

0813

08

08

Номер разряда дисплея

0814

10

10

Номер разряда дисплея

0815

20

20

Номер разряда дисплея

0820

01

LXI B, data8

BC←0800

0821

00

00

0822

08

08

0823

11

LXI D, data16

DE←0810

0824

10

10

0825

08

08

0826

26

MVI H, data8

H←06

0827

06

06

0828

0A

LDAX B

A←M(BC)

0829

D3

OUT port

F9←A

082A

F9

F9

082B

1A

LDAX D

A←M(DE)

082C

D3

OUT port

F8←A

082D

F8

F8

082E

13

INX D

DE=DE+1

082F

03

INX B

BC=BC+1

0830

25

DCR H

H=H-1

0831

3E

MVI A, data8

A←00

0832

00

00

0833

D3

OUT port

F8←A

0834

F8

F8

0835

C2

JNZ addr

Перейти в 0828

0836

28

28

0837

08

08

0838

C3

JMP addr

Перейти в 0820

0839

20

20

083A

08

08

083B

76

HLT

Остановка


          Задание: Составить программу выдачи на какой либо разряд дисплея результатов опроса какой-либо линейки клавиш.

Листинг:

0800

00

00

Сохраняем данные после опроса клавиатуры

0801

64

64

Строка №1

0802

06

3F

Семисегментный код “0”

0803

34

34

Строка №2

0804

5B

66

Семисегментный код “4”

0805

54

54

Строка №3

0806

4F

7F

Семисегментный код “8”

0807

70

70

Строка №4

0808

66

39

Семисегментный код “C”

080A

21

LXI H, data 16

HL←0801

080B

01

01

080C

08

08

080D

3E

MVI A, data

A←04

F8←A

080E

04

04

080F

D3

OUT port

0810

F8

F8

0811

DB

IN port

A←FA

0812

FA

FA

0813

32

STA addr

0800←A

0814

00

00

0815

08

08

0816

0E

MVI C, data

C←04

0817

04

04

0818

CD

CALL addr

Вызов подпрограммы по адресу 0822

0819

22

22

081A

08

08

081B

0D

DCR C

C=C-1

081C

C2

JNZ addr

Если счетчик C≠0, то перейти в 0818

081D

18

18

081E

08

08

081F

C3

JMP addr

Переход в начало программы

080A

0820

0A

0A

0821

08

08

0822

7E

MOV A, M

А←M(HL)

0823

32

STA addr

0830←A

0824

30

30

0825

08

08

0826

23

INX H

HL=HL+1

0827

7E

MOV A, M

А←M(HL)

0828

32

STA addr

0835←A

0829

35

35

082A

08

08

082B

23

INX H

HL=HL+1

082C

3A

LDA addr

A←0800

082D

00

00

082E

08

08

083F

D6

SUI data

A←A-Byte 2

0830

00

Byte 2

0831

C2

JNZ addr

Если результат вычитания не равен нулю, то перейти в 0838

0832

38

38

0833

08

08

0834

3E

MVI A, data

А←Byte 2

0835

00

Byte 2

0836

D3

OUT port

F9←A

0837

F9

F9

0838

C9

RET

Выход из подпрограммы


          Задание: Модифицировать предыдущую программу таким образом, чтобы на четыре разряда дисплея последовательно выдавались результаты опроса клавиш выбранной линейки клавиатуры в порядке нажатия клавиш.

Листинг:

Похожие материалы

Информация о работе