642.40K
Категория: ПрограммированиеПрограммирование

Проектирование АЦП последовательного счёта на базе микроконтроллера AT89C2051

1.

ЛР1: Проектирование АЦП
последовательного счёта на
базе микроконтроллера
AT89C2051
курс «Микропроцессорные устройства управления
робототехнических систем»

2.

Процесс сдачи лабораторной работы
Для сдачи потребуется:
• Отчет с реализацией своей программы(см. текст лабораторной
работы)
• Устный, адекватный ответ на контрольные вопросы в конце лабы.
1 вопрос 25
2 вопроса 35
3 вопроса 45
Моделирование процесса работы устройства 50 (Proteus 8 или другие)

3.

Цель работы:
Изучить структуру аналого-цифрового преобразователя
последовательного счёта, а также разработать и
смоделировать его, взяв в качестве центрального
управляющего устройства микроконтроллер AT89C2051.

4.

Что такое АЦП?
Аналого-цифровой
преобразователь(АЦП,
Analog-to-digital
converter, ADC) — устройство, преобразующее входной аналоговый
сигнал в цифровой сигнал (двоичный код).
Напряжение
Код
5.0[В]
111111

0.1[В]
000001
0.0[В]
000000

5.

Виды АЦП

6.

АЦП последовательного счета
Напряжение
Сущность метода заключается в последовательном во
времени сравнении измеряемой величины с
известной однородной мерой.
Плюсы:
Простота
Минусы:
Долго измеряет
Шаг
дискретизации
Ошибка
измерения
Переходное
состояние
Границы диапазона измерений
Время

7.

АЦП последовательного приближения
Сущность метода заключается в последовательном
приближении к измеряемой величине путем
деления области интереса на две равные части и
выбор той области, где находится измеряемое
значение.
Плюсы:
Быстрее последовательного счета
Минусы:
Требуется дополнительное преобразование кода

8.

Что такое микроконтроллер?
Компаратор
• Микроконтроллер
по
сути
является
микросхемой, который состоит из:
• Центрального процессора. В него входят блок
управления,
регистры,
ПЗУ
(постоянное
запоминающее устройство).
• Периферии, которая включает порты вводавывода, контроллеры прерываний, таймеры,
генераторы различных импульсов, аналоговые
преобразователи и подобные элементы.
• Зачастую
микроконтроллер
называют
микропроцессором. Но это не совсем так.
Последний осуществляет только определенные
математические и логические операции. А в
состав
микроконтроллера
входит
и
микропроцессор с другими элементами,
являясь лишь частью МК.

9.

Еще о микроконтроллерах
В данной лабораторной работе будет использоваться микроконтроллер:
AT89C2051. Это микроконтроллер семейства MCS-51(Intel 8051)

10.

Схема АЦП

11.

Ассемблер
Для программирования микроконтроллера необходимо записывать
машинные коды в его flash-память. Для удобства написания
программ
были
разработаны
специальные
языки
программирования (Ассеблер, Си, Фортран). Посредством
программы-компилятора файлы с текстом на данном языке
преобразуются в машинные коды для устройств. В данной лабе
будет использоваться язык ассемблер.

12.

Компилятор Ассемблера
Компилятор работает с исходными файлами, содержащими инструкции,
метки и директивы. Инструкции и директивы, как правило, имеют один
или несколько операндов.
Любая строка может начинаться с метки, которая является набором
символов заканчивающимся двоеточием. Метки используются для
указания места, в которое передаётся управление при переходах, а
также для задания имён переменных.
Входная строка может иметь одну из четырёх форм:
[метка:] директива [операнды] [;Комментарий]
[метка:] инструкция [операнды] [;Комментарий]
;Комментарий
Пустая строка
Пример: loop: add r0, r1 ;после этого символа идет комментарий

13.

Ассемблер
Инструкции в микроконтроллерах семейства MCS-51 можно
разбить на пять групп:
Арифметические команды;
Логические команды;
Команды передачи данных;
Команды битового процессора;
Команды ветвления и передачи управления.
Так же еще у компилятора есть:
Директивы – дополнительные команды для упрощения написания
управляющих программ.

14.

Арифметические команды
В наборе команд микроконтроллера имеются следующие арифметические операции:
• сложение ADD,
• сложение с учетом флага переноса ADDC,
• вычитание с заемом SUBB,
• инкрементирование (увеличение на 1) INC,
• декрементирование (уменьшение на 1) DEC,
• десятичная коррекция DA,
• умножение MUL
• деление DIV.
Действия производятся над целыми числами без знака.
При операции умножения содержимое аккумулятора A умножается на содержимое регистра
B, и результат размещается следующим образом: младший байт в регистре B, старший - в
регистре А.
В случае выполнения операции деления целое от деления помещается в аккумулятор A,
остаток - в регистр В.

15.

Логические команды с байтовыми
переменными
Система команд рассматриваемого микроконтроллера позволяет реализовать
логические операции
• И (ANL),
• ИЛИ (ORL),
• ИСКЛЮЧАЮЩЕЕ ИЛИ (XRL).
Логические операции выполняются над аккумулятором или непосредственно над
портами ввода/вывода.
Существуют логические операции, которые выполняются только на аккумуляторе:
• сброс всех восьми разрядов A ( CLR A);
• инвертирование всех восьми разрядов A ( CPL A );
• циклический сдвиг влево и вправо без учета флага переноса ( RR A; RL A);
• циклический сдвиг влево и вправо с учетом флага переноса ( RRC A; RLC A);
• обмен местами старшей и младшей тетрад внутри аккумулятора ( SWAP A).

16.

Команды передачи данных
Как было рассмотрено ранее, арифметические и логические команды могут
быть выполнены только над содержимым регистра аккумулятора, поэтому
исключительно важное значение в системе команд приобретают команды
пересылки данных. С помощью этих команд можно скопировать содержимое
любой ячейки памяти в регистр-аккумулятор или наоборот скопировать
содержимое аккумулятора в любую ячейку памяти. Так как в
микроконтроллере присутствует три независимых области памяти, то для
обращения к ним введены различные команды:
• копирование данных во внутреннем ОЗУ: MOV;
• обмен данными аккумулятора с внутренним ОЗУ: XCH, XCHD
• копирование из внешней памяти данных: MOVX
• копирование данных из памяти программ: MOVC

17.

Битовые команды
Каждый бит из битового пространства внутренней памяти может быть установлен
в 1, сброшен в 0, или инвертирован:
• установить бит (записать логическую единицу) SETB;
• сбросить бит (записать логический ноль) CLR;
• проинвертировать значение бита (изменить на прямо противоположное) CPL;
• бит может быть записан во флаг переноса или считан из флага переноса MOV.
Могут быть реализованы переходы:
•если бит установлен (содержит логическую 1) JB;
•если бит не установлен (содержит логический 0) JNB;
•переход, если бит установлен со сбросом этого бита после выполнения команды
(запись в этот бит 0) JBC;
Между любым битом из битового пространства внутренней памяти
и флагом переноса могут быть произведены логические операции "И" или "ИЛИ".
•И ( ANL),
•ИЛИ ( ORL)

18.

Команды ветвления и передачи
управления
• Команды
ветвления
позволяют
реализовывать
условные
операторы и операторы циклов. В микроконтроллерах семейства MCS51 доступны следующие команды:
• безусловный переход: LJMP, AJMP, SJMP
• Вызов и возврат из подпрограммы: LCALL, ACALL, RET, RETI
• проверка содержимого аккумулятора: JZ, JNZ, CJNE, JMP
• проверка флага переноса С: JC, JNC
• проверка содержимого любого бита в битовом
пространстве: JB, JNB, JBC
• Команды
16-разрядных
безусловных
переходов
и
вызовов подпрограмм позволяют осуществить переход в любую точку
адресного пространства памяти программ

19.

Директивы компилятора
Директива EQU присваивает метке значение, которое определяется
как результат целочисленного выражения в правой части.
Результатом этого выражения может быть целое число, адрес или
любая строка символов:
Синтаксис:
<symbol> EQU <value>
Примеры:
mySurperVar123 EQU 0x8 ;присваиваем метке значение
mySurperVar456 EQU label + 8 ;присваиваем метке значение
;операции

20.

Установка KEIL uVision5
Для установки KEIL uVision5 необходимо перейти по ссылке:
https://www.keil.com/demo/eval/c51.htm
Перед скачиванием необходимо
будет заполнить следующую форму:

21.

Установка KEIL uVision5
Далее появится окно установки:
Скачиваем и устанавливаем exe файл.

22.

Создание проекта в KEIL uVision5
После установки откройте программу. Внешний вид программы
представлен на рисунке:
Для создания проекта необходимо открыть:
Project -> New uVision project

23.

Создание проекта в KEIL uVision5
Далее в вводим название файла проекта.
После этого, открывается окно с выбором целевого устройства.
В строку поиска вводим: AT89C2051 и нажимаем кнопку «ok».
English     Русский Правила