1.66M
Category: electronicselectronics

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

1.

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

2.

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

3.

Процесс сдачи лабораторной работы
Эпическая задача с реальной платой mcu8051!!

4.

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

5.

Виды сигналов в технике
Цифровой сигнал — сигнал, который можно представить в виде
последовательности дискретных (цифровых) значений.
Аналоговый сигнал — сигнал, у которого каждый из представляющих параметров описывается
функцией времени и непрерывным множеством возможных значений.

6.

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

0.1[В]
000001
0.0[В]
000000

7.

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

8.

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

9.

Прочие виды АЦП

10.

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

11.

Принцип работы компаратора
• Компаратор аналоговых сигналов— сравнивающее устройство
принимающее на свои входы два аналоговых сигнала и
выдающее сигнал высокого уровня (логическая единица), если
сигнал на неинвертирующем входе («+») больше, чем на
инвертирующем (инверсном) входе («−»), и сигнал низкого
уровня (логический ноль), если сигнал на неинвертирующем
входе меньше, чем на инверсном входе.
• Vout = 1 Если ( V+ > V- )
• Vout = 0 Если ( V+ < V- )

12.

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

13.

Схема АЦП
Микроконтроллер
Мультиплексор
ЦАП

14.

Мультиплексор
Микроконтроллер
Мультиплексор
A0
A1
A2
Выход
0
0
0
Вх. 1
0
0
1
Вх. 2
0
1
0
Вх. 3
0
1
1
Вх. 4
1
0
0
Вх. 5
1
0
1
Вх. 6
1
1
0
Вх. 7
1
1
1
Вх. 8

15.

ЦАП
Регистр + набор резисторов + транзистор = ЦАП
Транзистор
Микроконтроллер
Регистр

16.

2 режима работы
Микроконтроллер
Мультиплексор
ЦАП

17.

2 режима работы
Микроконтроллер
Мультиплексор
ЦАП

18.

19.

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

20.

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

21.

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

22.

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

23.

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

24.

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

25.

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

26.

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

27.

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

28.

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

29.

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

30.

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

31.

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

32.

Доп. Слайды
На случай если потребуется объяснять как
работают микроконтроллеры архитектуры mcs-51

33.

Структура микроконтроллера intel 8051
Встроенное ОЗУ — 128 байт (Памяти данных)
Встроенное ПЗУ — 4 КБ (Памяти программ)
Четыре порта ввода-вывода
Последовательный интерфейс UART (Универсальный
асинхронный приёмопередатчик)
• Два 16-битных таймера
• Два уровня приоритета прерываний

34.

Написание управляющих программ для
микроконтроллеров
• Большинство
современных
микроконтроллеров
имеют Гарвардскую архитектуру и содержат 3
вида памяти:
• память программ FLASH;
• оперативная память (ОЗУ) SRAM (Static RAM);
• Энергонезависимую память EEPROM

35.

Гарвардская архитектура
В
Гарвардской
архитектуре
принципиально
различаются два вида памяти микропроцессора:
• Память
программ(команд)
(для
хранения
инструкций микропроцессора)
• Память данных (для временного хранения и
обработки переменных)
В
Гарвардской
архитектуре
принципиально
невозможно осуществить операцию записи в
память программ, что исключает возможность
случайного разрушения управляющей программы в
случае ошибки программы при работе с данными
или атаки третьих лиц. Кроме того, для работы с
памятью программ и с памятью данных
организуются отдельные шины обмена данными
(системные шины)

36.

Память микроконтроллера
Внутренняя ОЗУ
128 байт
Внутренняя память
программ
4 кб
Внутренняя ОЗУ
Регистры спец.
Назначения 128 байт
Внешняя
ОЗУ
Внешняя память программ
64 кб

37.

Память программ
• Распределение памяти программ микроконтроллера
intel 8051 представлено ниже:

38.

ОЗУ

39.

Спец. Регистры
Регистры
общего
назначения
Х4
Регистры
АЛУ
Статус
программы
R0
R1
R2
R3

R7
ACC
B
PSW
Регистры
Портов
ввода-вывода
P0
P1
P2
P3
Регистры
прерываний
IE
IP
Регистры
асинхронного
порта
SBUF
SCONF
Регистры
таймеров
TMOD
TCON
TL0
TL1
TH0
TH1
English     Русский Rules