- •Аналоговые и цифровые устройства автоматики
- •Глава 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
Применение шифратора для организации клавиатуры
На рис. 30 показана функциональная схема организации клавиатуры с использованием приоритетного шифратора (8 х 3) К555ИВ1.
Рис. 30. Организация клавиатуры с применением приоритетного
Шифратора
Микросхема принимает напряжение низкого уровня на один из восьми параллельных инверсных входов I0 – I7. На инверсных выходах А0 – А2 появляется двоичный код, пропорциональный номеру входа, оказавшегося активным. Приоритет в том случае, если несколько входов получили активные уровни, будет иметь старший среди них по номеру. Таким образом, вход I7 имеет наивысший приоритет. Активный сигнал на входе Е разрешает работу микросхемы. Рассмотрим табл.19 состояний К555ИВ1.
Таблица 19
-
В х о д ы
В ы х о д ы
Е
I0
I1
I2
I3
I4
I5
I6
I7
G
A0
A1
A2
E0
1
Х
Х
Х
Х
Х
Х
Х
Х
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
Активный (нулевой) сигнал на выходе G свидетельствует о наличии хотя бы одного активного сигнала на входах II. Таким образом, сигнал на выходе G можно использовать в качестве сигнала запроса на прерывание однокристального МК, поэтому выход G соединен с входом INT0. ЕО – выходной сигнал разрешения, свидетельствующий об отсутствии активных входов II. Поскольку шифратор имеет 8 входов, максимально можно подключить 8 клавиш. Используя совместно выход ЕО и вход Е, можно строить многоразрядные приоритетные шифраторы, а следовательно, и подключать большее количество клавиш. Эффект “дребезга контакта” устраняется аппаратно, для этого применяется микросхема К561ТР2, содержащая четыре RS триггера. Алгоритм работы аналогичен вышерассмотренному, программа имеет следующий вид:
<1> ORG 0000H
<2> JMP START ; Переход на начало инициализации системы.
<3> JMP INT_KLAV ; Вектор прерывания при нажатии на клавишу клавиатуры.
<4> START: MOV IE,#01H ; Разрешение прерывания от аппаратного запроса по входу INT0.
<5> SETB IT0 ; Установка прерывания по фронту импульса.
<6> SETB EA ; Разрешение всех установленных прерываний.
<7>MAIN: ; Тело основной программы
<8> JMP MAIN ;Зацикливание основной программы.
<9>INT_KLAV: MOV A,P1 ;Получение кода нажатой клавиши.
<10> CPL A ; Инвертирование для получения прямого кода.
<11> ANL A,#07H ; Выделение младших 3 битов.
<12> MOV R0,A ; Сохранение кода в регистре R0.
<13> XRL A,#00H ; Проверка на нажатие клавиши SB1.
<14> JZ SB1;Если SB1 нажата, то перейти на выполнение функции.
<15> MOV A,R0 ; Восстановление кода в А.
<16> XRL A,#01H ; Проверка на нажатие клавиши SB2.
<17> JZ SB2;Если SB2 нажата, то перейти на выполнение функции.
<18> MOV A,R0 ; Восстановление кода в А.
<19> XRL A,#02H ; Проверка на нажатие клавиши SB3.
<20>JZ SB3 ;Если SB3 нажата, то перейти на выполнение функции.
<21> MOV A,R0 ; Восстановление кода в А.
<22> XRL A,#03H ; Проверка на нажатие клавиши SB4.
<23> JZ SB4;Если SB4 нажата, то перейти на выполнение функции.
<24> END_INT: NOP
<25> RETI ; Выход из прерывания.
<26> SB1: ; Выполнение функции при нажатии на клавишу SB1.
<27> JMP END_INT ;
<28> SB2: ; Выполнение функции при нажатии на клавишу SB2.
<29> JMP END_INT ;
<30>SB3: ; Выполнение функции при нажатии на клавишу SB3.
<31> JMP END_INT ;
<32>SB4: ; Выполнение функции при нажатии на клавишу SB4.
<33> JMP END_INT ;
<34> END
Отличием от программы, описанной выше, является то, что не используется подпрограмма задержки при входе в подпрограмму обслуживания прерывания, поскольку “дребезг” устраняется аппаратно. Предварительно необходимо выделить три младших разряда (шаг 11). Идентификация нажатой клавиши осуществляется посредством команды “ИЛИ ИСКЛЮЧАЮЩЕЕ” содержимого А и проверочных кодов ( шаги 13, 16, 19, 22). Перед каждой проверкой необходимо восстанавливать содержимое аккумулятора (шаги 15, 18, 21). После идентификации клавиши осуществляется переход на процедуру выполнения соответствующей функции.