Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Untitled.FR10.docx
Скачиваний:
3
Добавлен:
22.11.2018
Размер:
4 Mб
Скачать

2.2.2 Последовательный (сдвигающий) rte.Puc.Mn

2.3 Дешифраторы и шифраторы

2.3.1 Схема одноступенчатого дешифратора 3x8(таблица истинности и УГО)

xi

х2

хз

уо

у1

72

уз

у 4

у5

у б

у 7

0

0

0

1

0

0

0

0

0

0

0

0

0

1

d

1

0

0

0

0

0

0

0

1

0

0

0

1

0

о

0

0

0

0

1

1

0

0

0

1

0

0

0

0

1

0

0

0

0

0

0

1

0

0

0

1

0

1

0

0

0

0

о

1

0

0

1

1

0

0

0

0

0

0

0

1

0

1

1

1

0

0

0

0

0

0

0

1

Адресные входы

Сигнал С

Выкод Q

А1

АО

*

#

0

0

0

0

1

DO

1

1

D1

1

о

1

D2

1

1

1

D3

2.5 Счетчики

2.5.1 Суммирующий счетчик и его таблица истинности

Кеч

Q1

02

Q3

Q4

Кеч

Q1

Q2

Q3

Q4

0

0

0

0

8

1

0

0

0

1

D

0

о

1

9

1

0

0

1

2

0

0

1

0

10

1

0

1

0

3

0

0

1

1

11

1

0

1

1

4

0

1

0

0

12

1

1

0

0

5

D

1

о

1

13

1

1

D

1

6

1

1

0

14

1

1

1

0

7

D

1

1

1

15

1

1

1

1

Q4'

1

Q3

1

Q2

1

Q1

Q4

Q3

Q2

Q1

десятичное преде тавление числа

0

0

0

0

0

0

О

0

D

0

0

0

0

0

1

1

0

0

0

0

0

0

1

0

2

0

0

0

0

1

0

0

1

9

0

0

0

1

о

0

0

10

0

0

0

1

0

0

0

1

11

0

0

1

0

0

0

0

0

20

1

0

0

1

1

0

0

1

99

Приложение 3

Программирование на микроконтроллерах MCS-51

Примерный шаблон программы, которого необходимо придерживаться начинающим программистам Приложение 3.1

; ТЕКСТ КОММЕНТАРИЯ К ПРОГРАММЕ

Текст комментария может быть написан, а может быть и нет, но во всяком случае .перед комментарием необходимо ставить символ ;.

Комментарий можно записывать при помощи букв кириллицы. Весь текст программы стоящий после символа «;» и до конца строки компилятором не читается.

НЕ ИСПОЛЬЗОВАНИЕ КОММЕНТАРИЕВ СЧИТАЕТСЯ ПЛОХИМ СТИЛЕМ ПРОГРАММИРОВАНИЯ Т. К. ПРИВО­ДИТ К ТОМУ, ЧТО ЗАЧАСТУЮ САМ АВТОР ПРОГРАММЫ НЕ МОЖЕТ РАЗОБРАТЬСЯ В СВОЕЙ ПРОГРАММЕ, НЕ ГО­ВОРЯ УЖЕ 0 ДРУГИХ ПОЛЬЗОВАТЕЛЯХ.

$MOD51

Директива ассемблера определяет тип используемого микрокон­троллера.

Директива - команда ассемблеру, которая не соответствует ко­мандам процессора или микроконтроллера.

Непременный атрибут программы для микроконтроллера.

PEREMENNAJA 12 DATA 031Н

Peremennaja 13 DATA 032Н @GHF$-123 DATA 033H

Блок определения переменных.

Данные записи означают, что переменная Peremennaja_12 ставит­ся в соответствие байту с адресом 03lh в ОЗУ микроконтроллера. Адрес байта в ОЗУ задаётся шестнадцатеричным числом.

ORG 0000H

*

Директива ассемблера. При включении питания или при нажатии кнопки «Reset» начинают выполняться инструкции расположенные по адре­су OOOOh. По этому адресу рекомендуется поместить команду перехода на начало программы.

JMP START

Команда перехода к метке, указанной после команды (начало про­граммы). Здесь метка - Start.

ORG 0003H

Адрес обращения по внешнему прерыванию. Под вектора преры­ваний отведены ячейки памяти с 003h по 02Ah.

JMP LABO

Переход к подпрограмме обработке прерывания на метку LabO. В следующих строках могут описываться другие вектора прерываний.

ORG 01 ООН

Адрес начала основной части программы. Этот адрес должен быть не менее чем 02Bh.

START:

Метка, к которой передаётся управление программой при вклю­чении или при перезапуске стенда.

ТЕКСТ ПРОГРАММЫ

Сам текст программы состоит из команд микропроцессора, кото­рые будут описаны несколько позже.

END

Директива конца программы.

Система команд микроконтроллеров семейства MCS - 51 Приложение 3.2

Мнемоника

Описание

Действие

Арифметические операции

1.

ADD A,Rn

Сложение регистра с аккумулятором

ADD

(А)<—(A)+(Rn)

2.

ADD A,direct

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

ADD

(A)<-(A)+(direct)

3.

ADD A,@Ri

Сложение косвенно адресуемой ячейки внутренней памяти данных с аккумулято­ром.

ADD

(A)<-(A)+((Ri))

4.

ADD A,#data

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

ADD

(A)<—(A)+#data

5.

SUBB A,Rn

Вычитание регистра из аккумулятора с уче­том заёма.

SUBB

(A)<—(A)-(C)-(Rn)

6.

SUBB A,direct

Вычитание ячейки внутренней памяти дан­ных из аккумулятора с учетом заёма

SUBB

(A)<—(A)-(C)-(direct)

7.

SUBB A,@Ri

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

SUBB

(A)<-(A)-(CH(Ri))

8.

SUBB A,#data

Вычитание непосредственного байта данных из аккумулятора с учетом заёма.

SUBB

(A)<—(A)-(C)-#data

9.

MUL AB

Умножение А на В.

MUL

(A)7_o<-(A)*(B); (ВЫ

10.

DIV AB

Деление А на В.

DIV

(A)i5-8<—(A)/(B); (B)7.0

Логические операции

11.

ANL A,Rn

AND регистра и аккумулятора.

ANL

(A)<—(А) л (Rn)

12.

ANL A,direct

AND ячейки внутренней памяти данных и аккумуляторах

ANL

(A)<—(А) л (direct)

13.

ANL A,@Ri

AND косвенно адресуемой ячейки внутрен­ней памяти данных и аккумулятора

ANL

(А)<—(А) л ((Ri))

14.

ANL A,#data

AND непосредственного байта данных и ак­кумулятора

ANL

(А)<-(А) Adata

15.

ORL A,Rn

OR регистра и аккумулятора

ORL

(А)<-(А) v (Rn)

16.

ORL A,direct

OR ячейки внутренней памяти данных и ак­кумулятора

ORL

(A)<—(A) v (direct)

17.

ORL A,@Ri

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

ORL

(A)<-(A) v ((Ri))

18.

ORL A,#data

OR непосредственного байта данных и ак­кумулятора

ORL

(A)<-(A) v #data

19.

XRL A,Rn

XOR регистра и аккумулятора

XRL

(A) <- (A) V (Rn)

20.

XRL A,direct

XOR ячейки внутренней памяти данных и аккумулятора

XRL

(A) (A) V (direct)

21.

XRL A,@Ri

XOR косвенно адресуемой ячейки внутрен­ней памяти данных и аккумулятора

XRL

(A) <— (A) V ((Ri))

22.

XRL A,#data

XOR непосредственного байта данных и ак­кумулятора

XRL

(A) <- (A) V #data

23.

CLR A

Очистка аккумулятора

CLR (A) 0

Пересылка данных

24.

MOV A,Rn

Пересылка из регистра в аккумулятор

MOV

(A) <- (Rn)

25.

MOV A,direct

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

MOV

(A) (direct)

26.

MOV A,@Ri

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

MOV

(A) ((Ri))

27.

MOV A,#data

Пересылка непосредственного байта данных в аккумулятор

MOV

(A) #data

28.

MOV direct,#data

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

MOV

(direct) <- # data

Операции с булевыми переменными

29.

CLR bit

Очистка бита

CLR

(bit) 0

30.

SETB bit

Установка бита

SETB (bit) <- 1

31.

JNC rel

Переход если флаг переноса не установлен

JNC

(PC) (PC)+2 IF (C)=0 THEN

32.

JC rel

Переход если флаг переноса установлен

JC

(PC) <- (PC)+2 IF (C)=l THEN

Передача управления

33.

RET

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

RET

(PC 15-18) <~ ((SP)) (SP) <- (SP)-l

(РСу-о)<- ((SP)) (SP) (SP)-l

34.

JMP A+DPTR

Переход относительно DPTR

JMP

(PC) (A)+(DPTR)

35.

JZrel

Переход если аккумулятор равен нулю

JZ

(PC) <- (PC)+2 IF (A)=0 THEN (PC) <-

36.

JNZ rel

Переход если аккумулятор не равен нулю

JNZ

(PC) <- (PC)+2 IF (A)*0 THEN (PC)

Соответствие кодов в двоичном и шестнадцатеричном представлении и цифрами, зажигаемыми на семисегментном индикаторе

Приложение 3. 3

Код генерируемый портом Р2

В двоичном виде

В шестна­дцатерич­ном виде

Сегменты индикатора

h g

f

е

d

с

b

а

Цифра, которую необхо­димо зажечь на индика­торе

0

0

0

1

1

1

1

1

1

3F

1

0

0

0

0

0

0

1

1

03

2

0

1

1

0

1

1

1

6D

3

0

1

1

0

0

1

1

1

67

4

0

1

0

1

0

1

1

53

5

0

1

1

1

0

1

1

0

76

6

0

1

1

1

1

1

1

0

7

0

0

0

1

0

1

1

23

8

0

1

1

1

1

1

1

1

7F

9

0

1

1

1

0

1

1

1

77

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]