- •Аналоговые и цифровые устройства автоматики
- •Глава 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
3.3. Логические операции
Логические команды позволяют проводить различные операции с битами, можно сбрасывать биты в ноль (функция “И”), устанавливать биты в единичное состояние (функция “ИЛИ”) или инвертировать их (функция “или исключающее“). Рассмотрим несколько примеров.
Пример 1. Пусть к разрядам порта Р1.0, Р1.1, Р1.2 подключены три позиционных датчика. Требуется выделить эти разряды.
<1> MOV A,P1 ; Опрос состояния порта Р1
<2> ANL A,#07H ; Выделение разрядов позиционных датчиков
Вторая команда вычисляет логическую функцию “И” над байтом, поступившим из порта Р1. Все биты со старшего до Р1.3 включительно сбрасываются в ноль. Результат в аккумуляторе определяет, в каком состоянии находятся датчики. Если они все разомкнуты, то А = 07Н, если замкнут Д1, то А = 06Н, если замкнут Д2, то А = 05Н, если замкнут Д3, то А = 03Н. Возможны комбинации, когда включены одновременно несколько датчиков. Проанализируйте результат, получаемый в аккумуляторе для этих ситуаций.
Пример 2. Выбрать нулевой банк регистров.
ANL PSW,#11100111B
Пример 3. Требуется установить разряды с 0 по 3 порта Р1. Для этого используем команду, выполняющую логическое “ИЛИ”.
ORL P1,#00001111B
Пример 4. Проинвертировать биты с 4 по 7 порта Р3. Для этого используем команду “ ИЛИ ИСКЛЮЧАЮЩЕЕ ”.
XRL P1,#11110000B
Пример 5. Проинвертировать содержимое регистра R7. Используем функцию “НЕ”.
<1> MOV A,R7
<2> CPL A
<3> MOV R7,A
З а д а н и е д л я с а м о с т о я т е л ь н о й р а б о т ы
1. Разработайте фрагменты программы, реализующие следующие алгоритмы:
(A) 0Fh [20h] 08h
(B) 05h [21h] 14h
[30h] (A) (B) (A) 05h
[31h] (A) (B) (B) НЕ([21h]/2)
[32h] (A) (B) [25h] (A) [20h]
[33h] НЕ((A) + (B)) [26h] (B) [25h]
[34h] [33h] – НЕ([32h]) [27h] (A) [20h]
3.4. Операции с битами
Процессор однокристальных МК семейства MCS51 называют битовым процессором / 4 /. Он как нельзя лучше подходит для задач управления технологическим оборудованием. Рассмотрим примеры.
Пример 1. Требуется передать информационный байт через разряд Р1.0 в последовательном формате.
В примере применяется сдвиг вправо содержимого аккумулятора, таким образом, младший бит аккумулятора попадает в бит переноса.
<1> TRANSMIT: MOV R5,#08H ; Загрузка счетчика циклов
<2>SDVIG: RRC A ; Сдвиг вправо через перенос
<3> MOV P1.0,C ; Передача бита в Р1.0
<4> DJNZ R5,SDVIG ; Если не все, то продолжить
Пример 2. Сформировать 10 прямоугольных импульсов в разряде Р3.0.
<1> IMPULS: CLR P3.0 ; Сброс бита Р3.0 (P3.0=0)
<2> MOV R3,#20; Загрузка счетчика фронтов в серии импульсов
<3>AGAIN: CPL P3.0 ; Формирование текущего фронта импульса
<4> CALL DELAY ; Вызов задержки, определяющей частоту
<5> DJNZ R3,AGAIN; Если не все, то продолжить
Каждый прямоугольный импульс имеет два фронта, поэтому в регистр R3 загружается число 20. В каждом цикле происходит инвертирование разряда Р3.0. Задержка DELAY определяет частоту следования импульсов.
Пример 3. Установить второй банк регистров.
<1> CLR RS0
<2> SETB RS1
Пример 4. Вычислить логическую функцию трех переменных
Y = (X1 X2) (X3 X1)
Переменные A, B, D поступают соответственно с линий порта Р3.0, Р3.1, Р3.2. Результат необходимо отправить в разряд Р2.0.
<1> X1 bit P3.0 ; Обозначение битов портов
<2> X2 bit P3.1 ;
<3> X3 bit P3.2 ;
<4> Y bit P2.0 ;
<5> MOV C,X1 ; Ввод бита Х1
<6> ORL C,X2 ; Выполнение Х1 OR X2
<7> MOV F0,C ; Сохранить результат во флаге пользователя
<8> MOV C,X3 ; Ввод бита Х3
<9> ORL C,X1 ; Выполнение Х3 OR Х1
<10> ANL C,F0 ; (Х1 OR X2) AND (Х3 OR Х1)
<11> MOV Y,C ; Вывод результата
З а д а н и я д л я с а м о с т о я т е л ь н о й р а б о т ы
Вычислить логическую функцию трех переменных
Y = (X1X2X3) (X1X3).
Вычислить логическую функцию трех переменных
Y = (X1 X2) (X1 X3).
Примечание: Функция “ИЛИ исключающее” реализуется следующим образом [(Х1 /X2) (/X1 X2)], знак “ / ” означает инверсию сигнала.
Проанализируйте следующие фрагменты и определите содержимое аккумулятора: ( первоначально C=0):
MOV A,#15 MOV A,#20
SETB ACC.7 CPL ACC.2
CPL ACC.0 CPL A
CPL A CLR ACC.7
MOV C,ACC.5 SETB 20H.0
ANL C,ACC.3 MOV C,20H.0
ORL C,ACC.4 MOV ACC.3,C
CPL A CPL ACC.6
A = ? С=? A = ? С=?