- •«Вычислительная техника»
- •1806 «Техническая эксплуатация, обслуживание и ремонт электрического и электротехнического оборудования», 2101 «Автоматизация технологических процессов и
- •Выводы по проделанной работе: Контрольные вопросы:
- •Лабораторная работа № 3 Реализация логической функции 3-х переменных
- •2.3. Анализ полученных результатов. Проанализируйте схемы:
- •3. Как реализовать схему мультиплексора 2x1 с управляющим входом на элементах
- •3.3 По логической схеме запишите аналитическое выражение функции:
- •Выводы о проделанной работе
- •Лабораторная работа № 10 Изучение системы параллельного ввода-вывода
- •Лабораторная работа № 11 Система прерываний микроконтроллеров семейства mcs-51
- •Лабораторная работа № 12 Программирование таймеров-счетчш :ов
- •2.2.2 Последовательный (сдвигающий) rte.Puc.Mn
2.2.2 Последовательный (сдвигающий) rte.Puc.Mn
2.3 Дешифраторы и шифраторы
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.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 |
Программирование на микроконтроллерах 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Е
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