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