- •Аналоговые и цифровые устройства автоматики
- •Глава 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
2.3.4. Комментарий
Поле комментария может быть использовано программистом для текстового или символьного пояснения логической организации прикладной программы. Поле комментария полностью игнорируется ассемблером, а потому в нём допустимо использовать любые символы. По правилам языка ассемблера поле комментария начинается с точки с запятой “ ; “ .
2.4. Директивы ассемблера
Ассемблер транслирует исходную программу в объектные коды. Хотя он берет на себя многие из рутинных задач программиста, такие как, присвоение действительных адресов, преобразование чисел, присвоение действительных значений символьным переменным и т.п., программист всё же должен указать ей некоторые параметры: начальный адрес прикладной программы, конец ассемблируемой программы, форматы данных и т.п. Всю эту информацию программист вставляет в исходный текст прикладной программы в виде директив, которые только управляют процессом трансляции и не преобразуются в коды прикладной программы.
Ассемблер поддерживает ряд директив, которые позволяют дать символическое определение переменным, резервируют и инициализируют пространство памяти, определяют расположение сгенерированного объектного кода в памяти. За исключением DB и DW директивы не производят объектный код. Директивы используются, чтобы изменить состояние ассемблера, определить объекты и добавить информацию к объектному файлу.
Рассмотрим основные наиболее часто употребляемые директивы ассемблера.
2.4.1. Директивы символических определений
Директивы символических определений могут быть использованы для того, чтобы резервировать пространство памяти, поставить в соответствие символическим именам определённые числовые значения, регистры процессора и сегменты. Эти директивы требуют, чтобы имя символа было определено наряду с адресом, числовым значением, регистром или типом сегмента.
Директива Описание
BIT Определяет символическое имя, ссылающееся на адрес бита.
Формат директивы: symbol BIT bit-address,
где symbol - символическое имя, bit-address - адрес бита в резидентной памяти данных.
Символические имена, определенные директивой BIT, не могут быть изменены или переопределены.
Пример:
ALARM BIT P1.0 ;бит включения сигнализации;
IM1 BIT ALARM+1 ;бит включения первого испол-
;нительного механизма P1.1.
DATA Определяет символическое имя, ссылающееся на адрес резидентной памяти данных.
Формат директивы: symbol DATA address,
где symbol - символическое имя, которое может использоваться во всей программе, address - адрес резидентной памяти данных, должен находиться в диапазоне от 0 до 255.
Символические имена, определенные этой директивой, не могут быть изменены или переопределены.
Пример:
SERBUF DATA SBUF
RESULT DATA 40H
RESULT2 DATA RESULT + 2
PORT1 DATA 90H
EQU Назначает символическому имени числовое значение или имя регистра.
Формат директивы: Symbol EQU expression
symbol EQU register,
где symbol - символическое имя, которое заменяется на выражение или регистр во всей ассемблерной программе, expression - числовое выражение.
register - одно из следующих имен регистра: A, R0-R7.
Символические имена, определенные директивой, могут использоваться в операндах, выражениях или адресах. Символы, которые определены как имя регистра, могут использоваться во всех командах, работающих с регистрами. Символические имена, определенные директивой, не могут быть изменены или переопределены.
Пример:
BUF_DISPL EQU 20H
SERIAL EQU SBUF
COUNT EQU R5
IDATA Определяет символическое имя, ссылающееся на косвенно адресуемый адрес резидентной памяти данных.
Формат директивы: symbol IDATA expression,
symbol - символическое имя, которое заменяется на выражение во всей ассемблерной программе, expression - числовое выражение.
Пример:
BUFFER IDATA 60H; Начало буфера
BUF_LEN EQU 20H; Длина буфера
BUF_END IDATA BUFFER + BUF_LEN – 1; Конечный адрес буфера.
SET Назначает символическое имя числовому значению или регистру. Имя может быть впоследствии изменено с помощью директивы SET.
Формат директивы: symbol SET expression
symbol SET register,
где symbol - символическое имя, которое заменяется на выражение или регистр во всей ассемблерной программе, expression - числовое выражение,
register - одно из следующих имен регистра: A, R0-R7.
Символические имена, определенные директивой, могут использоваться в операндах, выражениях или адресах. Символы, которые определены как имя регистра, могут использоваться во всех командах, работающих с регистрами. Имена, определенные директивой, могут быть изменены последующими директивами SET.
Пример:
COUNTER SET R1; Указание на регистр R1 для работы его в качестве счетчика.
XDATA Определяет символическое имя, ссылающееся на адрес внешней памяти данных.
Формат директивы: symbol XDATA address,
где symbol - символическое имя, которое может использоваться во всей программе, address - адрес внешней памяти данных, должен находиться в диапазоне от 0 до 65535.
Символические имена, определенные этой директивой, не могут быть изменены или переопределены.
Пример: