- •Аналоговые и цифровые устройства автоматики
- •Глава 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
Структура прерываний мк
Прерывание - это событие, при котором процессор прекращает выполнение основной программы (прерывается) и переходит к реализации подпрограммы, обслуживающей это прерывание. Режим прерываний удобен в тех случаях, когда возникновение событий имеет случайный (непредсказуемый) характер. Примером может служить работа клавиатуры. При использовании разработчиком режима прерываний МК не нужно постоянно сканировать состояние клавиш, таким образом, процессор освобожден от непроизводительной работы и может в это время выполнить что-то более интеллектуальное. При возникновении запроса, в случае нажатия клавиши, формируется аппаратный запрос на прерывание и МК переходит к выполнению подпрограммы определения кода нажатой клавиши. Механизм прерываний МК позволяет автоматически реагировать на внешние (аппаратные запросы по входам INT0 и INT1) и на внутренние события (переполнение таймеров-счетчиков; завершение обмена последовательного порта). За каждым источником прерывания жестко закреплен адрес вектора прерывания. Рассмотрим адреса векторов прерывания, представленные в табл. 7.
Таблица 7
Источник прерывания |
Адрес вектора прерывания |
Аппаратное (внешнее) прерывание INT0 |
0003H |
Переполнение таймера счетчика T/C0 |
000BH |
Аппаратное (внешнее) прерывание INT1 |
0013H |
Переполнение таймера счетчика T/C1 |
001BH |
Завершение обмена по последовательному порту |
0023Н |
Рассмотрим регистры, позволяющие управлять прерываниями МК.
Регистр разрешения прерываний IE.
Регистр предназначен для разрешения или запрещения прерываний от соответствующего источника. Рассмотрим биты IE, представленные в табл. 8.
Таблица 8
Биты |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Обозначение |
EA |
X |
Х |
ES |
ET1 |
EX1 |
ET0 |
EX0 |
ЕА – управление всеми источниками прерываний одновременно. Если ЕА = 0, то прерывания запрещены. Если ЕА = 1, то прерывания могут быть разрешены индивидуальными разрешениями.
Х – резервные разряды.
ES – управление прерыванием от последовательного порта.
ЕТ1 – управление прерыванием по переполнению таймера счетчика Т/С1.
ЕХ1 – управление прерыванием от внешнего источника по входу INT1.
ET0 - управление прерыванием по переполнению таймера счетчика Т/С0.
ЕХ0 - управление прерыванием от внешнего источника по входу INT0.
Для всех битов установка в единичное состояние означает, что прерывание разрешено; если бит сброшен, то прерывание запрещено.
Регистр приоритетов прерываний IP.
Регистр предназначен для установки уровня приоритета прерывания для каждого из пяти источников прерываний. Рассмотрим биты IP, представленные в табл. 9.
Таблица 9
Биты |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Обозначение |
Х |
Х |
Х |
РS |
РT1 |
РX1 |
РT0 |
РX0 |
PX0 – установка уровня приоритета прерывания от внешнего источника INT0.
PT0 – установка уровня приоритета прерывания от таймера/счетчика 0.
PX1 – установка уровня приоритета прерывания от внешнего источника INT1.
PT1 – установка уровня приоритета прерывания от таймера/счетчика 1.
PS - установка уровня приоритета прерывания от последовательного порта.
X - резервные разряды.
Наличие в разряде IP высокого единичного уровня устанавливает для соответствующего источника высокий уровень приоритета, наличие в разряде 0 – низкий уровень приоритета. Программисту запрещается запись в резервные биты 1, так как они зарезервированы для дальнейших разработок МК.
Поскольку система приоритетов прерываний МК двухуровневая, то возникает вопрос, как будут обрабатываться прерывания при наличии единиц в битах регистра IP и одновременно возникших запросах. При прочих равных условиях обработка будет проводиться последовательно в соответствии с рис. 12. Рассмотрим пример. Пусть все прерывания разрешены. Информация в IP = 00010010, запросы поступили одновременно. Вначале процессор выполнит подпрограмму обслуживания прерывания при переполнении таймера/счетчика 0, затем подпрограмму обслуживания последовательного порта, далее будет обработан запрос по входу INT0, затем по входу INT1, следующей выполнится подпрограмма обработки по переполнению таймера/счетчика 1. И наконец, процессор приступит к выполнению основной программы.
Рис. 12. Порядок выполнения подпрограмм обслуживания прерываний при равенстве приоритетов МК