
- •1. Архитектура семейства mcs51.
- •1.1 Общие характеристики.
- •1.2 Структурная схема.
- •1.3 Назначение выводов микроконтроллера 8051.
- •3.4 Организация памяти.
- •1.4.1 Память программ (пзу).
- •1.4.2 Память данных (озу).
- •1.4.3 Регистры специальных функций.
- •1.4.4 Регистр флагов (psw).
- •1.5 Устройство управления и синхронизации.
- •1.6 Организация портов ввода вывода
- •1.6.1 Общие сведения.
- •1.6.2 Альтернативные функции.
- •1.7 Таймеры / счетчики микроконтроллеров семейства 8051.
- •1.7.1 Регистр режима работы таймера/счетчика tmod
- •1.7.2.Регистр управления/статуса таймера tcon.
- •1.7.3 Режимы работы таймеров-счетчиков.
- •1.8 Последовательный порт.
- •1.9 Регистр управления/статуса приемопередатчика scon.
- •1.9.1 Функциональное назначение бит регистра управления/статуса приемопередатчика scon
- •1.9.2 Скорость приема/передачи информации через последовательный порт.
- •1.9.3 Регистр управления мощностью pcon.
- •1.10 Система прерываний.
- •1.10.1 Регистр масок прерывания (ie).
- •1.10.2 Регистр приоритетов прерываний (ip).
- •1.10.3 Выполнение подпрограммы прерывания.
- •2. Особенности элементов структуры 80c51 gb
- •2 .1 Функциональные особенности кристаллов 8xc51gb
- •3.2 Порты I/o p0-p5
- •Альтернативные функции выводов портов 0-5
- •3.3 Система прерываний 8xc51gb
- •Вектора прерываний
- •Регистр iе
- •Регистр iеа
- •Регистр ip
- •Регистр iрн кристаллов 8xc51gb
- •Регистр ipа кристалла 8xc51gb
- •Регистр iрна кристаллов 8xc51gb
- •Регистр exicon
- •3.4 Узел ацп Функциональная схема ацп
- •Регистр результата сравнения асмр
- •Регистр управления ацп acon
- •3.5 Аппаратный сторожевой таймер
- •3.6 Обнаружение сбоя тактового генератора
- •3.7 Матрица программируемых счётчиков рса
- •Регистр управления рса - ccon
- •Режимы работы модулей сравнения/фиксации
- •16-Битный режим фиксации.
- •16-Битный режим фиксации рса
- •16-Битный режим сравнения: программный таймер и высокоскоростной выход
- •Режим сторожевого таймера
- •Режим широтно-импульсного модулятора
- •Соответствие имён регистров и битов узлов рса и рса1
- •3.8 Расширенный последовательный порт
- •Режимы работы порта sep
- •Регистр управления sepcon
- •Регистр состояния sepstat
- •3.9 Таймеры/счетчики
- •4. Основы программирования mk 8051gb
- •4.1 Программная модель
- •4.2 Типы данных
- •Память данных (озу)
- •4.3 Способы адресации данных
- •4.4 Система команд
- •4.4.1 Общая характеристика
- •4.4.2 Типы команд
- •Типы команд
- •4.4.3 Типы операндов
- •4.4.4 Группы команд
- •4.4.5 Oбозначения, используемые при описании команд
- •4.4.6 Команды пересылки данных микроконтроллера
- •4.4.7 Команды арифметических операций 8051
- •4.4.8 Команды логических операций микроконтроллера 8051
- •4.4.9 Команды операций над битами микроконтроллера 8051
- •4.4.10. Команды передачи управления микроконтроллера 8051
- •5. Язык программирования asm-51.
- •5.1 Отладка программ.
- •5.2 Запись текста программы на языке программирования asm-51.
- •5.3 Алфавит языка.
- •5.4 Идентификаторы.
- •5.5 Числа.
- •5.6 Директивы языка программирования asm-51.
- •5.7 Реализация подпрограмм на языке asm51.
- •5.7.1 Реализация подпрограмм-процедур на языке asm51.
- •5.7.2 Передача переменных-параметров в подпрограмму.
- •5.7.3 Реализация подпрограмм-функций на языке asm51.
- •5.7.4 Реализация подпрограмм обработки прерываний на языке asm51.
- •5.8 Структурное программирование на языке asm-51.
- •5.9 Многомодульные программы.
- •5.10 Использование сегментов в языке программирования ассемблер.
- •5.10.1 Абсолютные сегменты памяти.
- •5.10.2 Перемещаемые сегменты памяти.
- •6. Язык программирования с-51.
- •6.1 Применение.
- •6.2 Отладка программ.
- •6.3 Структура программ с-51.
- •6.4. Символы языка программирования с-51.
- •6.4.1 Лексические единицы, разделители и использование пробелов.
- •6.4.2 Идентификаторы.
- •6.4.3 Ключевые слова.
- •6.4.4 Константы.
- •6.5 Выражения в операторах языка программирования c-51.
- •6.6 Приоритеты выполнения операций.
- •6.7 Операторы языка программирования c-51.
- •6.7.1 Операторы объявления.
- •6.7.2 Исполняемые операторы.
- •6.7.3 Оператор присваивания.
- •6.7.4 Условный оператор.
- •6.7.5 Структурный оператор {}.
- •6.7.6 Оператор цикла for.
- •6.7.7 Оператор цикла с проверкой условия до тела цикла while.
- •6.7.8 Оператор цикла с проверкой условия после тела цикла do while.
- •6.7.9 Оператор break.
- •6.7.10 Оператор continue.
- •6.7.11 Оператор выбора switch.
- •6.7.12 Оператор безусловного перехода goto.
- •6.7.13 Оператор выражение.
- •6.7.14 Оператор возвращения из подпрограммы return.
- •6.7.15 Пустой оператор.
- •6.8 Объявление переменных в языке программирования c-51.
- •6.8.1 Категории типов данных.
- •6.8.2 Целые типы данных.
- •6.8.3 Числа с плавающей запятой.
- •6.8.4 Переменные перечислимого типа.
- •6.9 Объявление массивов в языке программирования c-51.
- •6.10 Структуры.
- •6.10.1 Поля битов.
- •6.11 Объединения (смеси).
- •6.12 Объявление указателей в языке программирования c-51.
- •6.12.1 Нетипизированные указатели.
- •6.12.2 Память зависимые указатели.
- •6.13. Объявление новых типов переменных.
- •6.14. Инициализация данных.
- •6.15. Использование подпрограмм в языке программирования с-51.
- •6.15.1 Определение подпрограмм.
- •6.15.2 Параметры подпрограмм.
- •6.15.3 Предварительное объявление подпрограмм.
- •6.15.4 Вызов подпрограмм.
- •6.15.5 Рекурсивный вызов подпрограмм.
- •6.15.6 Подпрограммы обработки прерываний.
- •6.15.7 Области действия переменных и подпрограмм.
- •6.16. Многомодульные программы.
- •7. Подготовка программ
- •7.1 Пример создания проекта на языке ассемблера для учебного контроллера в интегрированной среде разработки Keil μVision2.
- •7.2 Пример создания проекта на языке c для учебного контроллера в интегрированной среде разработки Keil μVision2.
- •8. Описание стенда
- •8.1. Структура контроллера
- •8.2 Структура по
- •8.3 Адресное пространство
- •8.4 Внешняя память
- •8.5 Внутренняя память данных
- •8.6 Регистры специальных функций
- •Передняя панель
- •Задняя панель
- •9. Лабораторные работы мк-51
- •10. Отчет по лабораторной работе
- •1. Введение
- •2. Архитектура семейства mcs51.
- •3. Особенности элементов структуры 80c51 gb
- •4. Основы программирования mk 8051gb
- •5. Язык программирования asm-51.
- •6. Язык программирования с-51.
- •7. Подготовка программ
- •8. Описание стенда
- •9. Лабораторные работы мк-51
- •10. Отчет по лабораторной работе
Регистр управления ацп acon
MSB LSB
-
-
-
AIF
АСЕ
ACS1
ACS0
AIM
АТМ
Бит |
Поз. |
Функция присвоения приоритета прерывания |
- |
ACON.7 |
Зарезервирован для дальнейшего использования |
- |
ACON.6 |
Зарезервирован для дальнейшего использования |
AIF |
ACON.5 |
Флаг прерывания. Устанавливается в "1" по окончании преобразования в 7-м канале. Будет вызывать прерывание в случае разрешения прерывания от данного источника |
АСЕ |
ACON.4 |
Бит разрешения преобразования. При установке в "0" - прекращаются все преобразования |
ACS1 |
ACON.3 |
Бит 1 выбора канала |
ACS0 |
ACON.2 |
Бит 0 выбора канала |
AIM |
ACON.1 |
Бит режима входа АЦП: 0-режим сканирования 1-режим выбора канала |
АТМ |
ACON.0 |
Бит режима запуска АЦП: 0-режим внутреннего запуска 1-режим внешнего запуска |
-
ACS1
ACS0
Выбранный канал
0
0
Канал АСН0
0
1
Канал АСН1
1
0
Канал АСН2
1
1
Канал АСНЗ
Режим сравнения АЦП
Этот режим всегда активен и используется для сравнения напряжений на входах АСН0-АСН7 с опорным напряжением, подаваемым на вход COMPREF микросхемы. Всякий раз при запуске аналогово-цифрового преобразования, состояние каждого бита регистра АСМР устанавливается в новое состояние, начиная с канала 0, независимо от типа установленного режима опроса каналов. Режим позволяет быстро осуществить сравнение типа "больше-меньше" двух аналоговых сигналов аппаратным методом, что заметно упрощает и уменьшает объём требуемого программного кода. В случае если режим не используется, то на вход COMPREF может подаваться напряжение от Vss до Vcc.
Режим запуска АЦП
Запуск аналого-цифрового преобразования может происходить как от внешнего, так и от внутреннего источника.
Для установки режима внутреннего запуска бит AТМ регистра управления ACON должен находиться в состоянии логического “0”. В этом режиме преобразование начинается с нулевого канала, в машинном цикле следующем затем, в котором был установлен бит АСЕ. Флаг прерывания AIF устанавливается после завершения преобразования на 7-м канале. Данный флаг вызывает прерывание по вектору АЦП в случае, если оно разрешено. Новый цикл преобразования может начинаться только после того, как завершён предыдущий. При раздельном преобразовании по каждому из каналов - флаг АСЕ должен быть установлен в "0", что прекращает все преобразования. Начало нового цикла преобразования перезаписывает все значения старых.
В режиме внешнего запуска преобразование начинается по отрицательному уровню на входе TRIGIN. На этом входе отсутствует схема определения перепада уровня и состояние входа определяется путём опроса каждый машинный цикл. То есть, на входе TRIGIN должен установиться высокий уровень длительностью не менее 1-го машинного цикла, и вслед за ним - низкий с не меньшей продолжительностью. После запуска цикла состояние входного триггера игнорируется и преобразование осуществляется так же, как и в режиме внутреннего запуска. После завершения преобразования на 7-м канале цикл завершается и АЦП переходит в состояние останова до нового импульса на входе TRIGIN или установки бита АСЕ.
Режим входа АЦП
Микросхема имеет 2 режима входа АЦП - сканирования (Scan Mode) и выбранного канала (Select Mode). Очистка бита AIM переводит АЦП в режим сканирования. При этом преобразование происходит в порядке: АСН0,АСН1...АСН7. Результат преобразования помещается соответственно в регистры AD0,AD1...AD7.
Установка бита AIM в "1" переводит АЦП в режим выбранного канала. Здесь происходят последовательные 4 преобразования на одном из первых 4-х каналов АСН0-АСН3, конкретный номер которого определяется установкой битов ACS0/ACS1 регистра ACON. Результаты помещаются в первые 4 регистра результата AD0-AD3. После завершения этих преобразований АЦП производит опрос каналов АСН4-АСН7, как и в режиме сканирования. Результаты заносятся в регистры AD4-AD7.
Использование АЦП для меньшего количества каналов
Имеется несколько вариантов использования АЦП для количества каналов, меньшего, чем исходные 8. В простейшем случае, если время преобразования не критично, то можно просто ожидать прихода прерывания по завершению преобразования на 7-м канале и считывать результат только из необходимых каналов. Если пользовательская программа должна получить результат преобразования сразу после его завершения на конкретном канале, то можно, исходя из известного времени каждого преобразования, произвести отсчёт нужного интервала (от начала цикла до чтения значения АЦП), используя таймер и его прерывание. Второй способ ускорения получения результата - периодическое сравнение значения в регистре результата заданного канала с предыдущим значением. Изменение содержимого этого регистра укажет на то, что произошло новое преобразование. Однако использование режима выбранного канала не уменьшает время, требуемое для завершения цикла преобразований, а лишь увеличивает частоту преобразований конкретного канала.
Ниже приведён фрагмент программы, осуществляющей одноканальное аналогово-цифровое преобразование. Поскольку, как уже говорилось выше, АЦП микросхемы не имеет средств для определения готовности по каждому из каналов, поэтому он определяется по истечению известного времени, требуемого для завершения операции. Необходимый временной интервал отмеряется с помощью таймера/счётчика РСА. При частоте тактирования микросхемы - 12МГц, время преобразования по 1-му каналу будет составлять 26мкс. По прошествии этого интервала генерируется прерывание по переполнению таймера/счётчика РСА, обработчик которого останавливает АЦП, РСА и передаёт управление процедуре чтения и обработки полученного значения.
Обработчик прерывания от РСА: | ||
ORG 0033h |
|
|
ANL |
ACON,#11101111b |
;остановка АЦП |
CLR |
CR |
;остановка таймера РСА |
JMP |
Service_A2D |
;переход к обработке знач. AD0 |
; Процедура запуска измерения | ||
Timer_0_Init: |
|
|
SETB |
EA |
;разрешить все прерывания |
MOV |
CMOD,#1 |
;генерация прерывания от таймера |
|
|
;РСА |
SETB |
EC |
разрешение прерывания от РСА |
MOV |
CH,#0FFh |
;устаиовка временного интервала |
MOV |
CL,#0E0h |
|
SETB |
CR |
;запуск таймера РСА |
ORL |
ACON,#00010000b |
;запуск A/D |
RET |
|
|
АЦП в режиме микропотребления.
В состав АЦП микросхемы входит цепь, ограничивающая энергопотребление этого узла во время режима микропотребления до значения тока утечки. Для полноценного функционирования этой цепи на вывод AVREF микросхемы подаётся уровень VCC. В течение режима микропотребления, при соблюдении этого условия, напряжение питания кристалла может быть уменьшено до минимального значения.