Similar presentations:
Проектирование АЦП последовательного счёта на базе микроконтроллера 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