- •Аналоговые и цифровые устройства автоматики
- •Глава 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
В блоке основной программы происходит инициализация системы, разрешение прерываний, а затем выполняется основная программа.
В подпрограмме обслуживания прерывания выполняется задержка для устранения “дребезга контакта”, и далее определяется, какая клавиша была нажата. Если код совпал, то выполняется функция, соответствующая этой клавише. Затем осуществляется выход из прерывания.
Рис. 27. Прямое подключение клавиатуры к разрядам порта МК
Рис. 28. Алгоритм выполнения основной программы
Рассмотрим программу, реализующую работу клавиатуры по схеме. Инициализация системы заключается в разрешении прерываний (шаг 4), установке вида прерывания на входе INT0 по переходу из “1” в “0” (шаг 5) и разрешении всех установленных прерываний (шаг 6). Далее процессор переходит к выполнению основного блока программы.
При нажатии на клавишу формируется аппаратный запрос на входе INT0, процессор МК завершает выполнение основной программы, адрес возврата в основную программу сохраняется в стеке, в счетчик команд записывается адрес 0003Н. Команда JMP INT_KLAV должна обязательно располагаться по этому адресу (шаг 3). Далее осуществляется переход на подпрограмму обслуживания прерывания. Поскольку конденсатор сглаживает переходный процесс в течение некоторого времени необходимо сделать временную задержку до момента начала опроса разрядов порта Р2 (шаг 9). Надежное окончание процесса наступает через 50 мС. После временной задержки необходимо определить, какая клавиша была нажата (шаги 10 - 17). После идентификации клавиши происходит переход на процедуру выполнения соответствующей функции, и далее осуществляется выход из прерывания (шаги 18 -19).
Рис. 29. Алгоритм работы системы в режиме прерывания по входу INT0
< 1 > ORG 0000H ; Начало программы с адреса 0000Н.
< 2 > JMP START ; Переход на начало инициализации.
< 3 > JMP INT_KLAV ; Вектор прерывания
< 4 >START: MOV IE,#01H ; Разрешение прерывания от аппаратного запроса по входу INT0.
< 5 > SETB IT0 ; Установка прерывания по спаду (1-0) импульса.
< 6 > SETB EA ; Разрешение всех установленных прерываний.
< 7 >MAIN: ; Тело основной программы
< 8 > JMP MAIN ;Зацикливание основной программы.
< 9 > INT_KLAV: CALL DELAY_50 ; Вызов подпрограммы задержки.
< 10 > JNB P2.0,SB1 ; Проверка нажатия на клавишу SB1.
< 11 > JNB P2.1,SB2 ; Проверка нажатия на клавишу SB2.
< 12 > JNB P2.2,SB3 ; Проверка нажатия на клавишу SB3.
< 13 > JNB P2.3,SB4 ; Проверка нажатия на клавишу SB4.
< 14 > JNB P2.4,SB5 ; Проверка нажатия на клавишу SB5.
< 15 > JNB P2.5,SB6 ; Проверка нажатия на клавишу SB6.
< 16 > JNB P2.6,SB7 ; Проверка нажатия на клавишу SB7.
< 17 > JNB P2.7,SB8 ; Проверка нажатия на клавишу SB8.
< 18 >END_INT: NOP
< 19 > RETI ; Выход из прерывания.
< 20 >SB1: ;Выполнение функции при нажатии на клавишу SB1.
< 21 > JMP END_INT ;
< 22 >SB2: ; Выполнение функции при нажатии на клавишу SB2.
< 23 > JMP END_INT ;
< 24 >SB3: ;Выполнение функции при нажатии на клавишу SB3.
< 25 > JMP END_INT ;
< 26 >SB4: ;Выполнение функции при нажатии на клавишу SB4.
< 27 > JMP END_INT ;
< 28 >SB5: ;Выполнение функции при нажатии на клавишу SB5.
< 29 > JMP END_INT ;
< 30 >SB6: ;Выполнение функции при нажатии на клавишу SB6.
< 31 > JMP END_INT ;
< 32 >SB7: ; Выполнение функции при нажатии на клавишу SB7.
< 33 > JMP END_INT ;
< 34 >SB8: ;Выполнение функции при нажатии на клавишу SB8.
< 35 > JMP END_INT ;
< 36 >DELAY_50: Программная задержка на 50 мС (текст
<37> RET; не приводится).