- •Аналоговые и цифровые устройства автоматики
- •Глава 1. Архитектура и устройство
- •1.1. Внутренняя организация мк
- •1.2. Назначение выводов микросхемы мк
- •1.3. Организация памяти в мк
- •1.4. Регистр состояния программы psw
- •1.5. Таймеры/счетчики, регистры tmod и tcon
- •1. 6. Режимы работы таймеров/счетчиков
- •Структура прерываний мк
- •1.8. Блок последовательного интерфейса мк
- •1.8.1. Последовательная передача информации
- •1.8.2. Последовательный порт однокристального мк
- •1.8.3. Регистр управления последовательным портом scon
- •1.8.4. Режимы работы последовательного порта
- •1.8.5. Асинхронный обмен (режимы 1,2,3) данными
- •1.8.6. Скорость приёма/передачи
- •1.8.7. Работа мк в локальной сети
- •1.9. Системный сброс однокристального мк
- •1.10. Режим пониженного энергопотребления мк
- •1.11. Нагрузочная способность портов ввода/вывода
- •1. 12. Расширение портов ввода/вывода
- •Глава 2. Система команд однокристальных мк семейства mcs51
- •Способы адресации операндов
- •2.2. Команды мк
- •2.3. Правила написания программ на языке assembler
- •Метка операция операнд(ы) комментарии
- •2.3.1. Метка
- •2.3.2. Операция
- •2.3.3. Операнды
- •2.3.4. Комментарий
- •2.4. Директивы ассемблера
- •2.4.1. Директивы символических определений
- •Пример:
- •Ozu_org xdata 0800h; Адрес начала области внешнего озу.
- •2.4.2. Директивы резервирования и инициализации памяти
- •2.4.3. Директивы управления состоянием ассемблера
- •Глава 3. Обработка данных в однокристальных микроконтроллерах
- •3.1. Обращение к внутренней, внешней памяти данных и памяти программ
- •3.2. Арифметические операции
- •3.3. Логические операции
- •3.4. Операции с битами
- •Глава 4. Взаимодействие однокристального мк с объектом управления
- •4.1. Программный опрос и ожидание срабатывания позиционных датчиков
- •4.2. Ожидание импульсного сигнала
- •4.3. Программирование таймеров/счетчиков и формирование дискретных управляющих сигналов
- •4.4. Программирование прерываний в микропроцессорном устройстве
- •4.5. Программирование последовательного порта
- •Глава 5. Аппаратные средства
- •5.1. Ввод информации с клавиатуры
- •5.1.1. Прямое подключение клавиш к разрядам порта мк
- •В блоке основной программы происходит инициализация системы, разрешение прерываний, а затем выполняется основная программа.
- •Применение шифратора для организации клавиатуры
- •Шифратора
- •5.1.3. Матричный способ подключения клавиатуры
- •5.1.4. Комбинированный способ организации клавиатуры
- •5.2. Отображение информации в микропроцессорном устройстве
- •5.2.1. Контроллер клавиатуры и дисплея к580вв79 ( intel 8279 )
- •5.2.2. Матричные светодиодные индикаторы
- •5.2.3. Жидкокристаллический дисплей
- •Ввод аналоговых сигналов в микропроцессорный контроллер
- •Ацп с параллельными цифровыми выходами
- •5.3.2. Применение ацп с последовательным выходом
- •5.3.3. Применение таблиц для вычисления функций
- •5.4. Формирование управляющих аналоговых сигналов
- •5.5. Построение ацп с использованием цап
- •5.6. Микропроцессорный контроллер как управляющее устройство в системах автоматического регулирования
- •Согласование дискретных датчиков и исполнительных механизмов с однокристальным мк
- •5.8. Контроль напряжения питания в микропроцессорных системах
- •Глава 6. Отладка программного обеспечения и программирование однокристальных мк
- •6.1. Интегрированная система отладки программного обеспечения для мк ProView
- •6.1.1. Оптимизирующий кросс - компилятор c51
- •6.1.2. Макроассемблер a51
- •6.1.4. Отладчик/симулятор WinSim51
- •6.2. Запуск ProView и создание файла проекта
- •Если в системе задействованы таймеры-счетчики, то удобно промоделировать их работу при разворачивании соответствующих окон Timer (рис.76).
- •В окне указаны источники и адреса векторов прерываний, их состояние и приоритет. Разрешенные прерывания отмечены словом Enable, неразрешенные - Not Enable.
- •Рассмотрим основные пункты раздела debug (отладка), представлены на рис. 84. Эти функции предназначены для выполнения процесса отладки прикладной программы пользователя.
- •6.3. Программирование однокристальных мк
- •Контрольные вопросы для закрепления материала
- •Заключение
- •Библиографический список
- •Глава 1. Архитектура и устройство однокристальных мк семейства mcs51………………………..6
- •Глава 6. Отладка программного обеспечения и программирование однокристальных мк ……….203
- •162600, Г.Череповец , пр. Луначарского, 5
Глава 1. Архитектура и устройство
ОДНОКРИСТАЛЬНЫХ МИКРОКОНТРОЛЛЕРОВ
СЕМЕЙСТВА MCS 51
1.1. Внутренняя организация мк
Рассмотрим архитектуру однокристального МК К1830ВЕ751, представленную на рис.1. МК не являются машинами классического “фон-неймановского” типа, поскольку память программ и память данных физически и логически разделена. Такая архитектура называется “гарвардской”. Рассматриваемый МК содержит все узлы, необходимые для автономной работы:
центральный восьмиразрядный процессор;
память программ объемом в 4 кбайта;
память данных объемом в 128 байт;
4 восьмиразрядных параллельных порта ввода-вывода;
2 шестнадцатиразрядных многорежимных таймера-счетчика;
систему прерываний с 5 векторами прерываний и двумя уровнями;
последовательный порт;
встроенный тактовый генератор.
АЛУ – 8 - разрядное арифметико-логичеcкое устройство позволяет выполнять арифметические операции сложения, вычитания, умножения и деления; логические операции “И”, “ИЛИ”, “исключающее ИЛИ”, “НЕ”, а также операции циклического сдвига. АЛУ содержит программно - недоступные регистры Т1 и Т2, предназначенные для временного хранения операндов. АЛУ может оперировать четырьмя видами информационных объектов: битами, тетрадами, байтами, шестнадцатиразрядными словами. Особенно важна способность АЛУ работать с битами. Семейство МК51 даже называют “битовым процессором”, что показывает направленность этих МК на решение задач управления объектами. Рассмотрим элементы архитектуры.
А (АСС)– аккумулятор представляет 8 - разрядный регистр, предназначенный для приема и хранения результата, полученного при выполнении арифметико-логических операций.
PSW – 8- разрядный регистр состояния, предназначен для хранения информации о состоянии результата текущей выполненной команды.
В – 8 - разрядный регистр, используемый во время операции умножения и деления, для других команд может рассматриваться как сверхоперативный регистр.
EPROM - 4 - килобайтное перепрограммируемое (стираемое ультрафиолетовыми лучами) постоянное запоминающее устройство, предназначено для долговременного хранения кодов программы и констант (таблиц перекодировок).
RAM - 128 - байтное оперативное запоминающее устройство, предназначено для временного хранения переменных в процессе выполнения прикладной программы.
PC – счетчик команд - шестнадцатиразрядный регистр, предназначен для хранения адреса следующей выполняемой команды прикладной программы.
DPTR – 16 - разрядный регистр, предназначен для хранения адреса ячейки внешней памяти. Этот регистр состоит из двух половинок DPL ( младший байт) и DPH (старший байт), которые программно - доступны и независимы.
OSC – внутренний генератор, который вырабатывает импульсы синхронизации.
Блок управления и синхронизации – предназначен для выработки управляющих сигналов, обеспечивающих координацию совместной работы блоков МК во всех режимах работы.
SP – восьмибитный регистр - указатель стека, предназначенный для хранения адреса вершины стека. При системном сбросе в указателе стека находится адрес 07H. Область стека в ОЗУ начинается с адреса 08Н. При необходимости программно можно переопределить адрес SP в ОЗУ.
RAR – восьмиразрядный регистр (программно недоступен), предназначенный для хранения адреса ячейки внутреннего ОЗУ.
Десятичный корректор – устройство, позволяющее проводить десятичную коррекцию результата, находящегося в аккумуляторе (имеется специальная команда DA A).
PCON – восьмиразрядный регистр, предназначенный для управления режимом пониженного энергопотребления.
IE – восьмиразрядный регистр разрешения или запрещения прерываний от соответствующих источников.
IP – восьмиразрядный регистр установки приоритетов прерываний.
TMOD – восьмиразрядный регистр для настройки таймеров-счетчиков на соответствующий режим.
TCON – восьмиразрядный регистр для управления таймерами-счетчиками, а также для хранения информации о состоянии системы прерываний МК.
Рис. 1. Архитектура однокристального МК К1830ВЕ751
TL0,TH0 (T/C0), TL1,TH1 (T/C1) – соответственно младшие и старшие байты регистра таймеров-счетчиков 0 и 1.
SCON – восьмиразрядный регистр предназначен для приема и хранения кода, управляющего последовательным портом МК.
SBUF - буферный восьмиразрядный регистр передатчика и приемника, предназначенный для временного хранения передаваемого или принимаемого информационного байта последовательного порта.
С целью оценки технических возможностей МК различных фирм кратко рассмотрим основные параметры табл. 1. Из таблицы видно, что некоторые МК не содержат на кристалле память программ. Для работы таких устройств требуется внешняя память, подключение которой будет рассмотрено позже. Некоторые МК содержат УФППЗУ - перепрограммируемое постоянное запоминающее устройство со стиранием ультрафиолетовыми лучами. На корпусе таких устройств имеется специальное окно, покрытое кварцевым стеклом, через которое видно кристалл микросхемы. Именно через это окно происходит облучение кристалла ультрафиолетовыми лучами в случае стирания записанной программатором прикладной программы. Такие микросхемы выгодны на этапе отладки программного обеспечения микропроцессорного устройства, поскольку программу можно записывать несколько раз. Отдельные микросхемы содержат память программ в виде ПЗУ. В такую память программа записывается единожды. Эти МК удобно использовать в серийном производстве контроллеров, когда программа отлажена и модифицироваться не будет.
В последнее время в качестве памяти программ используется FLASH память (AT89C55, AT89LV55, AT89S8252) / 2 /. FLASH технология позволяет многократно (1000 раз гарантировано) программировать память электрическими сигналами. Микросхема AT89S8252 содержит в дополнение к внутренней памяти данных 2 - килобайтное FLASH ОЗУ, число циклов стирания/записи которого составляет 100000. Размещенная на кристалле энергонезависимая внешняя память данных позволяет хранить константы, таблицы и другие данные, которые должны допускать возможность оперативного изменения в процессе работы без потери их при выключении напряжения питания. Микросхемы ATMEL, содержащие в маркировке букву S, имеют устройство SPI (Serial Peripheral Interface) - последовательный периферийный интерфейс, который может использоваться для программной загрузки.
Современные МК в дополнение к основным таймерам/счетчикам содержат так называемый сторожевой таймер (WATCH DOG). Он предназначен для исключения ситуаций, когда процессор “зависает”. С этой целью сторожевой таймер вырабатывает сигнал сброса по истечению определенного заданного интервала времени.
В настоящее время широкое распространение получили МК фирмы MICROCHIP, так называемые pic-контроллеры / 3 /. Эти устройства относятся к RISC виду, имеют упрощенную систему команд. Их отличает высокое быстродействие, высокая нагрузочная способность разрядов портов (25 мА), низкое потребление энергии (2мА при +5В и частоте 4мГц, в режиме SLEEP – 1 мкА), последовательный порт для PIC16C74 имеет режимы SPI и приборной, двухпроводной шины I2C.
Таблица 1
МК |
Объем внутренней памяти программ, байт |
Тип памяти программ |
Объем памяти данных, байт |
Тактовая частота, мГц |
Ток потребления, мА |
Особенности |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
INTEL 8035 (КР1816ВЕ35) |
Нет |
Внешняя |
64 |
6 |
135 |
|
INTEL 8748 (КР1816ВЕ48) |
1кБ |
УФППЗУ |
64 |
6 |
135 |
|
INTEL 8039 (КР1816ВЕ39) |
Нет |
Внешняя |
128 |
11 |
110 |
|
INTEL 8049 (КР1816ВЕ49) |
2кБ |
ПЗУ |
128 |
11 |
110 |
|
INTEL 80C35 (КР1830ВЕ35) |
Нет |
Внешняя |
64 |
6 |
8 |
|
INTEL 80C48 (КР1830ВЕ48) |
1кБ |
ПЗУ |
64 |
6 |
8 |
|
INTEL 8031AH (КР1816ВЕ31) |
Нет |
Внешняя |
128 |
12 |
150 |
|
INTEL 8051AH (КР1816ВЕ51) |
4кБ |
ПЗУ |
128 |
12 |
150 |
|
INTEL 8751H (К1816ВЕ751) |
4 кБ |
УФППЗУ |
128 |
12 |
220 |
|
INTEL 80C31BH (КР1830ВЕ31) |
Нет |
Внешняя |
128 |
12 |
18 |
|
INTEL 80C51BH (КР1830ВЕ51) |
4 кБ |
ПЗУ |
128 |
12 |
18 |
|
Окончание табл.1
1 |
2 |
3 |
4 |
5 |
6 |
7 |
INTEL 87C51GB |
8кБ |
УФППЗУ |
256 |
12,16 |
|
8-канальн., 8-бит. АЦП |
ATMEL AT89C55, AT89LV55 |
20 кБ |
FLASH |
256 |
12,16, 20, 24 |
25 |
|
ATMEL AT89S53
|
12кБ |
ПЗУ |
256 |
16,24,33 |
25 |
SPI, сторожевой таймер |
ATMEL AT89S8252 |
8кБ |
FLASH |
256 |
12, 16, 24, 33 |
20 |
SPI, 2кБ FLASH ОЗУ, сторожевой таймер |
MICROCHIP PIC16C54 PIC16C55 |
512*12 |
ПЗУ |
32 |
20 |
2 |
Сторожевой таймер, Iвых,раз.=20 мА |
MICROCHIP PIC16C56 PIC16C57 |
1кБ * 12 2кБ * 12 |
ПЗУ |
32 80 |
20 |
2 |
Сторожевой таймер, Iвых,раз.=20мА |
MICROCHIP PIC16C71
|
1кБ * 14 |
ПЗУ |
36 |
20 |
2 |
4 канал. АЦП, сторожевой таймер, Iвых,раз.=20мА |
MICROCHIP PIC16C74
|
4кБ * 14 |
ПЗУ |
192 |
20 |
2 |
8 канал. АЦП, сторожевой таймер, SPI, I2C, Iвых, раз.=25 мА, ШИМ. |