Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пинк.doc
Скачиваний:
9
Добавлен:
03.11.2018
Размер:
1.08 Mб
Скачать

Тема 12 Аналого-цифровые и цифро-аналоговые преобразователи

Отличительная особенность многих современных 8-разрядных МК – интегрированный на кристалл МК модуль многоканального аналого-цифрового преобразователя (АЦП). Модуль АЦП предназначен для ввода в МК аналоговых сигналов с датчиков физических величин и преобразования этих сигналов в двоичный код с целью последующей программной обработки. Структурная схема типового модуля АЦП представлена на рисунке. Многоканальный аналоговый коммутатор служит для подключения одного из источников аналоговых сигналов (РТх0...РТх7) ко входу АЦП. Выбор источника сигнала для измерения осуществляется посредством записи номера канала коммутатора в соответствующие разряды регистра управления АЦП. Заметим, что в модулях АЦП 8-разрядных МК предусмотрена только программная установка номера канала, режим автоматического последовательного сканирования каналов с записью результата измерения каждого канала в индивидуальную ячейку памяти не реализуется.

Диапазон измеряемых значений напряжения аналоговых входов определяется опорным напряжением UОП. Разрешающая способность АЦП составляет UОП/2n, где n – число двоичных разрядов в слове результата. Максимальное значение опорного напряжения, как правило, равно напряжению питания МК. Два вывода модуля АЦП используются для задания опорного напряжения: VREFH – верхний предел UОП, VREFL – нижний предел. Разность потенциалов на входах VREFH и VREFL и составляет UОП. Если измеряемое напряжение UИЗМ ≥ VREFH, то результат преобразования будет равен $FF, код $00 соответствует напряжениям UИЗМ ≤ VREFL. Для достижения максимальной точности измерения следует выбрать максимально допустимое значение UОП. В этом случае напряжение смещения нуля входного буфера и нелинейность передаточной характеристики АЦП будут вносить относительно малые погрешности.

Тема 12 .Этапы разработки программного обеспечения в симуляторе adsim812

Разработка программного обеспечения включает следующие этапы:

1.Подготовка программы на входном языке с использованием текстового редактора.

2.Трансляция программы в объектный код.

3.Отладка программы с помощью программного отладчика (симулятора), в качестве

которого в курсовой работе используется симулятор ADSIM812, рассмотренный

далее.

4.Загрузка объектного кода в память микроконтроллера.

5.Проверка правильности работы программы при выполнении ее непосредственно микроконтроллером.

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

Для трансляции исходного текста программы в объектный код используется ассемблер ASM51.EXE. На этапе трансляции выявляются и должны быть исправлены синтаксические ошибки в исходном тексте. После трансляции исходного файла программы FILE.ASM формируются два типа файлов: исполняемый FILE.HEX и файл листинга FILE.LST.

Язык инструкций имеет стандартный формат операторов ассемблера:

[<метка>:] <операция> [<операнд(ы)>] [;<комментарий>].

Здесь и далее в квадратных скобках указываются необязательные элементы синтаксических конструкций.

Поле метки содержит символическое имя ячейки памяти, в которой хранится отмеченная команда или операнд. Метка представляет собой символьную комбинацию, начинающуюся с буквы и содержащую не более 13 символов. Метка должна отделяться от поля операнда двоеточием. В поле операции записывается мнемоническое обозначение команды, например MOV - пересылка, ADD - сложение и т. д.

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

MOV R0,28H - используется мнемоническое обозначение регистра R0 и числовое значение адреса ячейки в памяти данных;

ADD A,SUM - используется мнемоническое обозначение аккумулятора и символическое обозначение адреса операнда в памяти данных.

Признаком косвенной адресации служит префикс @. Например, команда MOV @R0,A пересылает содержимое аккумулятора в ячейку резидентной памяти данных РПД, адресуемую содержимым регистра R0 (косвенная адресация РПД осуществляется с использованием регистров R0 и R1 текущего банка, а внешней памяти данных (ВПД) - с использованием регистра-указателя данных DPTR).

Непосредственный операнд представляется числом или символическим именем с обязательным префиксом #. Например, MOV R6,#15 или ADDC A,#OP1. Задаваемые числами адреса и непосредственные значения должны содержать суффикс указания системы счисления: B - двоичная, D - десятичная и Н - шестнадцатеричная. Число без суффикса по умолчанию считается десятичным. Если шестнадцатеричная константа начинается с буквы, ей должен предшествовать нуль, например: 0A4H, 0D7H.

В результате трансляции создается объектный файл в абсолютном двоичном формате - <имя_файла>.HEX и файл листинга - <имя_файла>.LST, в котором содержатся указания на ошибки, выявленные в процессе трансляции.

После исправления всех синтаксических ошибок (если таковые имелись) необходимо загрузить полученный объектный файл в симулятор для пошаговой отладки алгоритма.

Используемый в курсовой работе полноэкранный отладчик ADSIM812 позволяет:

  • загрузить для отладки сгенерированные ассемблером объектные файлы;

  • просмотреть на экране дизассемблированный текст загруженной программы, включая адреса и коды команд, содержимое всех регистров ОМК, область памяти программ, резидентной и внешней памяти данных;

  • выполнить загружаемую программу по шагам с просмотром результата после каждого шага и в непрерывном режиме с остановом по достижении задаваемых пользователем адресов;

  • внести изменения в загружаемую программу в мнемонических обозначениях ассемблера, а также в машинных кодах;

  • внести изменения в содержимое регистров, флагов и памяти в командном режиме и в режиме полноэкранного редактирования;

  • получить трассировку программы;

  • определить время выполнения загружаемой программы и её частей по встроенному счетчику.