- •Раздел 1. Микропроцессорные системы управления.
- •Раздел 2. Микроконтроллерные системы управления.
- •Раздел 3. Вопросы эксплуатации микропроцессорных устройств.
- •1. Микропроцессорные системы управления
- •1.1. Принципы построения и основы работы
- •Вопросы и задания
- •1.2. Элементная база мпсу
- •Вопросы и задания
- •1.3. Оперативные запоминающие устройства.
- •Вопросы и задания
- •1.4. Постоянные запоминающие устройства.
- •Вопросы и задания
- •1.5. Архитектура микропроцессора типа кр580вм80
- •Вопросы и задания
- •1.6. Типы машинных циклов и слово состояния
- •Вопросы и задания
- •1.7. Командные циклы чтения/записи
- •Вопросы и задания
- •1.8. Командный цикл подтверждения прерывания.
- •1.9. Принципиальные электрические схемы
- •Вопросы и задания
- •1.10. Интерфейс мпсу с изолированной системой шин
- •Вопросы и задания
- •1.11. Интерфейс мпсу с общей системой шин
- •1.12. Организация обслуживания запросов прерывания
- •Вопросы и задания
- •1.13. Программируемый контроллер
- •Вопросы и задания
- •1.14. Программируемый контроллер прерываний
- •Вопросы и задания
- •1.15. Программируемый интервальный таймер
- •Вопросы и задания
- •1.16. Мпсу с вводом-выводом аналоговой информации
- •Вопросы и задания
- •1.17. Выходные каскады мпсу
- •Вопросы и задания
- •2. Микроконтроллерные системы управления
- •2.1. Архитектура микроконтроллера к1816ве51
- •Вопросы и задания
- •2.2. Принципиальная электрическая схема порта
- •2.3. Схемы подключения внешней памяти к мк51
- •Вопросы и задания
- •2.4. Интерфейс мк51 с большим числом
- •Вопросы и задания
- •2.5. Таймер/счетчики мк51.
- •Вопросы и задания
- •2.6. Система прерываний мк51. Использование прерываний в программах
- •Вопросы и задания
- •2.7. Основы организации
- •Допустимые различия скорости приемо-передачи
- •2.8. Организация мультиконтроллерных систем
- •Программы инициализации станции и абонентов
- •Программы станции и абонента в сеансе "станция→абонент"
- •2.9. Микроконтроллерная система управления
- •3. Вопросы эксплуатации микропроцессорных устройств
- •3.1. Отладка аппаратных средств мпсу
- •Вопросы и задания
- •3.2. Отладка программного обеспечения мпсу
- •Вопросы и задания
- •3.3. Методы обеспечения помехоустойчивости мпсу
- •Вопросы и задания
- •1. Группа команд пересылок
- •2. Группа команд инкремента-декремента
- •3. Группа арифметических команд
- •4. Группа логических команд
- •5. Группа команд сдвига
- •6. Группа команд передачи управления
- •7. Группа команд работы со стеком
- •8. Группа команд ввода-вывода и управления микропроцессором
- •1. Группа команд пересылок
- •2. Группа команд арифметических операций
- •3. Группа команд логических операций
- •4. Группа команд операций с битами
- •5. Группа команд передачи управления
- •Дворак Николай Маркович микропроцессорные устройства
- •В высших учебных заведениях 3-4 уровней
- •98309, Г. Керчь, ул. Орджоникидзе, 82
- •98309, Г. Керчь, ул. Орджоникидзе, 82
Вопросы и задания
1. Приведите и поясните схемы использования ИМС шинных формирователей в качестве выходных блоков МПСУ.
2. Поясните работу транзисторного каскада инверсного типа на постоянном токе.
3. Поясните работу транзисторного каскада на постоянном токе без инверсии сигнала.
4. Поясните работу транзисторного каскада на переменном токе.
5. Поясните работу твердотельных реле постоянного и переменного тока.
2. Микроконтроллерные системы управления
2.1. Архитектура микроконтроллера к1816ве51
(МК51). Организация памяти МК51
Микропроцессоры являются универсальными устройствами, которые могут применяться как в схемах компьютеров, так и в системах автоматики. Однако основная область их применения – компьютеры. Рассмотрение схем МПСУ показало, что для эффективного решения задач автоматики кроме МП нужен целый набор интерфейсных схем, в основном - ИМС программируемого параллельного интерфейса (ППИ), программируемого контроллера прерываний (ПКП), программируемого интервального таймера (ПИТ). Для МПСУ характерно также то, что объемы используемой оперативной памяти чрезвычайно малы и, поэтому, ИМС ОЗУ, входящие в состав МЭВМ, используются всего на несколько процентов.
Микроконтроллер (МК) представляет собой объединенные в одном корпусе МЭВМ и интерфейсные блоки, а схема и система команд МК ориентированы на простое и эффективное применение МК в системах автоматики. У разных типов МК есть много общего:
- встроенное ОЗУ емкостью 64…512 байт;
- ПЗУ, как правило, встроенное, емкостью несколько килобайт (для 8-разрядных МК) или несколько килослов (для 16-разрядных МК);
- большое число линий ввода/вывода (около 80% ножек на корпусе МК);
- встроенные блоки параллельного и последовательного интерфейсов, блоки прерываний, таймеры;
- специальная система команд, максимально приближенная к программированию задач автоматики, в основной массе состоящих из команд обмена информацией с внешними устройствами;
- встроенные АЦП и ЦАП;
- средства защиты программ от взлома;
- энергосберегающие режимы работы МК;
- встроенные стандартные функции управления типовыми объектами, например, выпрямителями, инверторами.
Ниже рассмотрен МК типа КР1816ВЕ51, который является полным аналогом МК типа I8051 фирмы Intel. МК является базовым для всех его последующих модификаций. Идеи, реализованные в МК КР1816ВЕ51, присущи микроконтроллерам других типов.
Функциональная схема МК типа КР1816ВЕ51 (сокращенно – МК51) приведена на рис.2.1. Ядром МК51 является микропроцессор, обрабатывающий данные размером 1 байт. Тактовый генератор встроенный. Для его запуска нужно к выводам Х1, Х2 подключить кварцевый резонатор или RC-цепочки. Номинальная частота МК51 равна 12 МГц.
РПП – резидентная (встроенная) память программ емкостью 4 Кбайта. РПП является ПЗУ.
РПД – резидентная память данных, состоящая из оперативной памяти данных (ОПД) емкостью 128 байт и блока из 21 регистров специальных функций (РСФ). РПД является ОЗУ.
РСФ служат, в основном, для инициализации УАПП, Т/С, КП. К РСФ относятся также порты Р0…Р3. Полный состав РСФ приведен на рис.18.4. Работа с РСФ и с ОПД производится одинаковыми командами.
Р 0, Р1, Р2 и Р3 – двунаправленные порты ввода/вывода. Емкость каждого порта 8 линий. При 40-выводном корпусе ИМС на ввод/вывод задействовано 32 физических вывода, что составляет 80% от общего числа выводов. Порт Р0 трехстабильный, остальные порты двухстабильные. Только порт Р1 используется для простого ввода/вывода. Остальные порты кроме простого ввода/вывода используются в альтернативных режимах. Настройка портов на ввод или вывод осуществляется по битам и независимо друг от друга.
УАПП – универсальный асинхронный приемопередатчик. Обслуживает обмен с ВУ в последовательном коде.
Т/С – таймер/счетчики (два Т/С). Служат для создания выдержек времени и подсчета числа импульсов, подводимых к МК.
КП – контроллер прерываний. Обеспечивает обслуживание запросов прерываний с пятью уровнями приоритетов.
RST – сброс общий, активный уровень 1.
ALE – выходной импульс активного уровня 1, которым стробируется запись младшего байта адреса при обращении к внешней памяти.
- выходной сигнал разрешения работы с внешней памятью программ, активный уровень 0.
- входной сигнал, при значении которого равном 0, отключается резидентная память программ.
Две составляющие памяти МК51 – резидентная память программ (РПП) и резидентная память данных (РПД) – различаются не только функциональным назначением, но и имеют раздельные шины адреса, данных и сигналов управления. Поэтому машинные циклы и такты работы с каждой памятью могут выполняться одновременно. Во исполнение многих команд происходят обращения не только к РПП, откуда считывается КОП и операнд, но и к РПД и за счет одновременности работы с РПП и РПД сокращается до минимума количество машинных циклов команды и время выполнения команды. Однако это преимущество организации памяти МК полностью утрачивается, когда используются блоки внешней памяти программ (ВПП) и внешней памяти данных (ВПД). С этими блоками памяти используются общие шины адреса и данных.
На рис.2.2 приведена структура памяти программ (ПП), которая состоит из РПП и ВПП. Основная информация ПП – команды. При считывании КОП команды используется адрес, взятый из счетчика команд, а после дешифрации КОП – количество обращений к ПП зависит от количества байт операндов. В ПП могут также располагаться символьные константы, например, тексты, математические и физические постоянные, таблицы функций и т.п. Для чтения символьной информации из ПП имеются 2 команды: MOVC A, @A+DPTR и MOVC A, @A+РС (МК51 содержит всего 111 базовых команд, приведенных в приложении Б). Существует 3 варианта использования ПП:
1). Только РПП. Это вариант реализуется при одновременном выполнении двух условий: =1 и программа и символьные константы располагаются в пределах адресного пространства РПП – от 0000Н до 0FFFH.
2 ). РПП+ВПП-II. Этот вариант реализуется при условии =1, причем при работе с адресами от 0000Н до 0FFFH обращение происходит к РПП, а при работе с адресами от 1000Н до FFFFH обращение происходит к ВПП-II. При обращении к ВПП-II активизируются сигналы ALE и . Область ВПП-I, имеющая те же адреса, что и РПП, недоступна.
3). Только ВПП. Это вариант реализуется при активном сигнале отключения РПП: =0. Доступны ячейки всей ВПП в диапазоне адресов от 0000Н до FFFFH.
Память данных (ПД) состоит из РПД и ВПД. Объем ВПД равен 64 Кбайта, адреса от 0000Н до FFFFH. РПД имеет адреса от 00Н до FFH.
Для РСФ отведено адресное пространство размером 128 байт (от 80Н до FFH), однако фактически используется только 21 адрес. По остальным адресам не существует физических ячеек памяти и запись по таким адресам бесполезна, а считывание дает случайный код. Адресные пространства РПД и ВПД-I совпадают по диапазону адресов (от 00Н до FFH), однако обращение к ним осуществляется различными командами. Ситуация, когда различные оперативные данные имеет одинаковые адреса, но отличаются их принадлежностью либо к РПД, либо к ВПД-I, является допустимой. Поэтому во всех трех вариантах использования ПД всегда допускается работа с РПД:
1). Только РПД. Это вариант реализуется при использовании любых команд, кроме команд типа MOVX.
2). РПД+ВПД-I. Для работы с ВПД-I используются 2 команды: MOVХ A, @Rm и MOVХ @Rm, A.
3). РПД+ВПД (ВПД= ВПД-I+ ВПД-II). Для работы с ВПД используются 2 команды: MOVХ A, @ DPTR и MOVХ @ DPTR, A.
Структура ОПД приведена на рис.2.3. Размер всех ячеек ОПД – 1 байт. Адреса ячеек - от 00Н до 7FН. В программах все ячейки адресуются как байты. У 16 ячеек ОПД с адресами от 20Н до 2FН допускается адресация отдельных бит. У прямо адресуемых бит имеются адреса от 00Н до 7FН. Для обращения к ячейкам ОПД как к байтам и обращения к битам ячеек ОПД используются разные команды. Поэтому допустимы одинаковые адреса как байт, так и у бит ячеек ОПД.
7FH |
|
Адресация байтами |
|
Адрес |
Номер бита |
Обознач. |
||||||||||||||
… |
|
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
||||||||||
30H |
|
|
F0H |
F7 |
F6 |
F5 |
F4 |
F3 |
F2 |
F1 |
F0 |
B |
||||||||
2FH |
7F |
7E |
7D |
7C |
7B |
7A |
79 |
78 |
Адресация как байтами, так и отдельными битами |
|
E0H |
E7 |
E6 |
E5 |
E4 |
E3 |
E2 |
E1 |
E0 |
A |
2EH |
77 |
76 |
75 |
74 |
73 |
72 |
71 |
70 |
|
D0H |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
PSW |
|
2DH |
6F |
6E |
6D |
6C |
6B |
6A |
69 |
68 |
|
B8H |
- |
- |
- |
BC |
BB |
BA |
B9 |
B8 |
IP |
|
2CH |
67 |
66 |
65 |
64 |
63 |
62 |
61 |
60 |
|
B0H |
B7 |
B6 |
B5 |
B4 |
B3 |
B2 |
B1 |
B0 |
P3 |
|
2BH |
5F |
5E |
5D |
5C |
5B |
5A |
59 |
58 |
|
A8H |
AF |
- |
- |
AC |
AB |
AA |
A9 |
A8 |
IE |
|
2AH |
57 |
56 |
55 |
54 |
53 |
52 |
51 |
50 |
|
A0H |
A7 |
A6 |
A5 |
A4 |
A3 |
A2 |
A1 |
A0 |
P2 |
|
29H |
4F |
4E |
4D |
4C |
4B |
4A |
49 |
48 |
|
99Н |
|
|
|
|
|
|
|
|
SBUF |
|
28H |
47 |
46 |
45 |
44 |
43 |
42 |
41 |
40 |
|
98H |
9F |
9E |
9D |
9C |
9B |
9A |
99 |
98 |
SCON |
|
27H |
3F |
3E |
3D |
3C |
3B |
3A |
39 |
38 |
|
90H |
97 |
96 |
95 |
94 |
93 |
92 |
91 |
90 |
P1 |
|
26H |
37 |
36 |
35 |
34 |
33 |
32 |
31 |
30 |
|
8DH |
|
|
|
|
|
|
|
|
TH1 |
|
25H |
2F |
2E |
2D |
2C |
2B |
2A |
29 |
28 |
|
8CH |
|
|
|
|
|
|
|
|
TH0 |
|
24H |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
|
8BH |
|
|
|
|
|
|
|
|
TL1 |
|
23H |
1F |
1E |
1D |
1C |
1B |
1A |
19 |
18 |
|
8AH |
|
|
|
|
|
|
|
|
TL0 |
|
22H |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
|
89H |
|
|
|
|
|
|
|
|
TMOD |
|
21H |
0F |
0E |
0D |
0C |
0B |
0A |
09 |
08 |
|
88H |
8F |
8E |
8D |
8C |
8B |
8A |
89 |
88 |
TCON |
|
20H |
07 |
06 |
05 |
04 |
03 |
02 |
01 |
00 |
|
87H |
|
|
|
|
|
|
|
|
PCON |
|
1FH … 18H |
Банк 3 |
Адресация байтами |
|
83H |
|
|
|
|
|
|
|
|
DPH |
|||||||
|
82H |
|
|
|
|
|
|
|
|
DPL |
||||||||||
|
81H |
|
|
|
|
|
|
|
|
SP |
||||||||||
17H … 10H |
Банк 2 |
|
80H |
87 |
86 |
85 |
84 |
83 |
82 |
81 |
80 |
P0 |
||||||||
|
SBUF – буфер приемопередатчика |
|||||||||||||||||||
|
TH1,TL1 – старший и младший байты Т/С1 |
|||||||||||||||||||
0FH … 08H |
Банк 1 |
|
TH0,TL0 – старший и младший байты Т/С0 |
|||||||||||||||||
|
PCON – регистр управления мощностью |
|||||||||||||||||||
|
SP – регистр указатель стека |
|||||||||||||||||||
07H … 00H |
Банк 0 (по умолчанию) Адрес 07 – дно стека по умолчанию |
|
DPH, DPL - старший и младший байты регистра указателя данных DPTR |
|||||||||||||||||
|
||||||||||||||||||||
|
||||||||||||||||||||
Рис.2.3. Оперативная память данных |
|
Рис.2.4.Регистры специальных функций |
Группа из 32 ячеек с адресами от 00Н до 1FН образует 4 банка регистров общего назначения, каждый из которых содержит по 8 регистров. Регистры всех банков обозначаются одинаково: R0, R1,…,R7, но имеют разные адреса в пространстве адресов ОПД. Так, например, регистр R0 имеет адреса 00Н, 08Н, 10Н и 18Н в банках, соответственно, 0, 1, 2 и 3. В любой момент времени активен только один банк регистров. По умолчанию, т.е. после включения питания микроконтроллера, или после сброса сигналом RST, активным устанавливается банк 0. Сменить банк регистров можно программно с использованием одного из регистров специальных функций – регистра PSW слова состояния программы (рис.2.4), содержание бит которого приведено на рис.2.5.
-
Бит
Обознач.
Назначение
7
С
Флаг переноса (из 7-го бита аккумулятора А)
6
АС
Флаг вспомогательного переноса (из 3-го бита А)
5
F0
Флаг пользователя
4
RS1
0
0
1
1
Выбор рабочего банка регистров
3
RS0
0
1
0
1
Банк №:
0
1
2
3
2
OV
Флаг переполнения
1
Не используется
0
Р
Флаг четности
Рис.2.5. PSW – слово состояния программы
Организация нижней части ОПД в виде банков регистров дает следующие преимущества:
1). Большое число регистров позволяет активно применять в программах команды регистровых операций. Эти команды занимают меньше места в памяти и быстрее выполняются. Например, запись константы #F5 в ячейку ОПД с адресом 02Н, которая является также ячейкой регистра R2 банка 0, можно выполнить двумя способами (рис.2.7). Регистровая команда выполняется вдвое быстрее и занимает в 1,5 раза меньше памяти, чем команда записи по адресу.
Для активизации, например, банка 2 нужно выполнить следующую программу из двух команд:
Мнемокод |
Комментарии |
SETB RS1 |
RS1←1. Установить бит RS1, адрес которого равен D4 (рис.2.4 и 2.5) |
CLR RS0 |
RS0←0. Сбросить бит RS0, адрес которого равен D3 (рис.2.4 и 2.5) |
Рис.2.6. Программа активизации банка 2 |
2). В основных программах и подпрограммах, вызываемых либо командой CALL, либо прерыванием, могут активно применяться регистровые команды с использованием одних и тех же регистров по обозначению. Например, пусть в основной программе используется регистровая команда работы с регистром R2 банка 0. Если случилось прерывание и в подпрограмме обслуживания прерывания используется тот же регистр R2, то чтобы во время выполнения подпрограммы не изменилось содержимое регистра R2 основной программы, достаточно в начале подпрограммы переключиться на банк 2 (рис.2.6), а при выходе из нее снова переключиться на банк 0. Вариант сохранения содержимого регистров в стеке экономичнее (короче программа и быстрее выполняется) варианта переключения банков только при использовании в основной программе и в подпрограмме одного общего регистра, а во всех других случаях экономичнее переключение банков.
Мнемокод |
Код |
Байт |
Циклов |
Комментарии |
MOV 02, #F5 |
75 02 F5 |
3 |
2 |
Запись по адресу ячейки |
MOV R2, #F5 |
7A F5 |
2 |
1 |
Запись в регистр |
Рис.2.7. Программа записи константы в ячейку ОПД с адресом 02Н |
В ОПД располагается стек. Начальный адрес стека или дно стека устанавливается по умолчанию равным 07Н. При необходимости адрес дна стека можно изменить, загрузив желаемый адрес в ячейку указателя стека SP (рис.2.4). Перед записью в стек по командам PUSH, CALL и по прерыванию содержимое SP инкрементируется, а после считывания по командам POP, RET и RETI – декрементируется.
Блок РСФ (рис.2.4) содержит регистры аккумулятора А, регистр В, используемый в операциях умножения и деления двух байт, регистр PSW, регистры портов Р0…Р3, регистры TL0, TH0, TL1 и TH1 двух таймеров, регистр указатель стека SP, регистр указатель данных DPTR и регистры IP, IE, SBUF, SCON, TMOD, TCON, PCON инициализации блоков МК51. Ко всем регистрам можно обратиться по адресу, указанному на рис.2.4. У некоторых регистров возможно обращение к битам, адрес которых указан на рис.2.4.