- •Аналоговые и цифровые устройства автоматики
- •Глава 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
Ozu_org xdata 0800h; Адрес начала области внешнего озу.
OZU_END XDATA 0FFFH; Адрес конца области внешнего ОЗУ.
2.4.2. Директивы резервирования и инициализации памяти
Эти директивы используются для резервирования и инициализации слов, байтов или битов. В абсолютном сегменте зарезервированное пространство начинается с текущего адреса. В перемещаемом сегменте зарезервированное пространство начинается с текущего смещения. Указатель расположения поддерживается отдельно для каждого сегмента, к нему можно обращаться, используя символ ($).
DB Заносит в память программ байтовую константу.
Директива имеет следующий формат: label: DB expression , expression …,
где label: - метка, адрес инициализированной памяти, expression - значение байта, которое может быть символом, символьной строкой или выражением.
Директива DB может быть определена только внутри сегмента кода. Если директива используется в другом сегменте, ассемблер генерирует сообщение об ошибке.
Пример: TABLE: DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH
DBIT Резервирует пространство в битовом сегменте (20Н – 2FH).
Директива имеет следующий формат: Метка: DBIT выражение.
Здесь метка указывает адрес зарезервированной памяти, а выражение - число зарезервированных битов.
Пример:
ON_FLAG: DBIT 1 ;резервируется 1 бит.
OFF_FLAG: DBIT 1
DS Резервирует пространство памяти в текущем сегменте.
Директива имеет следующий формат: label: DS expression,
где label: - метка, присвоенная адресу зарезервированной памяти, expression - количество зарезервированных байтов.
Директива резервирует пространство в текущем сегменте по текущему адресу. Затем текущий адрес увеличивается на значение выражения. Сумма счётчика адреса и значения выражения не может превышать границу текущего адресного пространства.
Пример: TIME: DS 8
DW Инициализирует память значением слова.
Директива DW инициализирует память программ 16-разрядными значениями слова. Директива имеет следующий формат:
label: DW expression , expression …,
где label: - метка, присвоенная адресу зарезервированной памяти, expression - выражения - данные, которые могут содержать символ, символьную строку или выражение.
Директива может быть определена только внутри сегмента кода. Если директива используется в другом сегменте, ассемблер генерирует сообщение об ошибке.
Пример: TABLE: DW 3F06H, 5B4FH, 666DH, 7D07H,7F6FH
2.4.3. Директивы управления состоянием ассемблера
Эти директивы используются для того, чтобы сообщить о конце трансляции программы, выбрать начальный адрес или смещение для сегмента, определить используемый банк регистров.
END Сообщает о конце транслируемого модуля.
Директива END сообщает о конце ассемблерного модуля. Любой текст в ассемблерном файле, который появляется после этой директивы, игнорируется. Директива требуется в каждом исходном ассемблерном файле. Если директива отсутствует, ассемблер генерирует сообщение о фатальной ошибке.
Пример: ORG 0100H
.
END
ORG Изменяет значение ассемблерного счётчика адреса текущего сегмента программы.
Директива ORG ( начало) имеет следующий формат: ORG выражение.
Значением выражения является допустимый шестнадцатиразрядный адрес, определяющий ячейку, в которую будет загружаться первый байт прикладной программы или байт данных. Если в самом начале программы директива отсутствует, то по умолчанию программа начинается с адреса 0000Н. В программе может быть несколько директив ORG.
Пример: ORG 0000H ; Стартовый адрес прикладной программы
JMP START ;
ORG 000BH ; Адрес - вектор прерывания при переполнении JMP INT_TIMER0 ; таймера счетчика 0.
USING Выбирает номер банка регистров общего назначения.
Формат директивы: USING expression,
где expression - № банка регистров.
Пример: USING 1 ; Использование первого банка регистров.
В о п р о с ы д л я з а к р е п л е н и я м а т е р и а л а
Объясните, что такое регистровая адресация операндов.
Объясните суть прямой адресации операндов.
Чем характеризуется косвенно-регистровая адресация?
В чем особенность непосредственной адресации?
Объясните суть косвенной регистровой адресации по сумме базового и индексного регистров.
В чем особенность команд CJNE ?
Что будет находиться в А после выполнения команд (ранее в А = 03):
MOV R0,#20H
MOV @R0,#02H
ADD A,R0
ANL A,@R0
CPL A
8. В чем суть команд DJNZ ?
9. Какова дальность действия команд ветвлений?
10. В чем отличие команд LCALL и LJMP?
11. Объясните, как работает команда MOVC A,@A+DPTR.
12. Где размещается результат выполнения команды MUL AB, если он больше 255?
13. Какие команды позволяют загружать данные в стек и выгружать их из стека?
14. В чем отличие команд RL A и RLC A?
15. Проанализируйте фрагмент программы (С=1, A=05):
MOV R0,#20H
MOV @R0,#03H
SUBB A,@R0
CPL ACC.0
SWAP A
XCH A,@R0
XRL A,@R0
A = ?