Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Laby_MP / Отчет_№9_(вывод аналоговой инф-ии)

.doc
Скачиваний:
17
Добавлен:
06.02.2015
Размер:
164.86 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФГОУ ВПО «Чувашский государственный университет

имени И. Н. Ульянова»

Факультет энергетики и электротехники

Кафедра электрических и электронных аппаратов

Лабораторная работа №9

Вывод аналоговой информации

Вариант 2

Выполнили студенты

гр. ЭТ-21-10

Гаврилов А.Ю.

Шоглев Р.Г.

Проверил:

Никифоров И.К.

Чебоксары 2014

Лабораторная работа 9

Вывод аналоговой информации

Цель работы: Исследование методов вывода аналоговой информации в ADuC812.

Задание: разработать программу получения на выходе ЦАП напряжения заданной формы по рисунку 1. Убедиться, в том, что напряжение на выходе ЦАП изменяется по заданному закону.

Общие сведения

Для вывода аналоговой информации ADuC812 содержит два 12-разрядных ЦАП, обозначенных как DAC0 и DAC1. 12-разрядный двоичный код в регистрах DAC0L (DAC1L) и DAC0H (DAC1H) преобразуется в выходное напряжение. Диапазон выходного напряжения устанавливается в регистре управления DACCON и составляет 0…АVdd (напряжение аналогового питания) или 0…Vref (опорное напряжение), т.е. выходной сигнал может быть только положительным.

Перед началом работы ЦАП необходимо установить режимы его работы с помощью регистра управления DACCON.

В регистр DACхL записываются 8 младших разрядов данных ЦАП, а в регистр DACхН записываются 4 младших разряда данных ЦАП (здесь х=0 для ЦАП0 и х=1 для ЦАП1). Запись сначала должна выполняться в регистр DACхН, а затем в регистр DACхL, причем напряжение на выходе ЦАП модифицируется только после записи в младший регистр DACхL.

Как уже упоминалось ранее, работа ЦАП управляется и контролируется регистром DАCCON. Ниже приводится описание этого регистра.

DАCCON

MODE

RNG1

RNG0

CLR1

CLR0

SYNC

PD1

PD0

Адрес DАCCON: FDH

Значение ADCCON1 при включении питания: 04H

Наличие битовой адресации: нет

Назначение разрядов регистра DACCON

Таблица 9.1

Биты

регистра

Мнемоника

Описание

DACCON7

MODE

Бит устанавливает режим работы обоих ЦАП.

Если бит=1, то режим 8-разрядный (запись восьми бит в регистр DACхL).

Если бит=0, то режим 12-разрядный (запись в регистры DACхН и DACхL).

DACCON6

RNG1

Бит выбора диапазона ЦАП1.

Если бит=1, то диапазон ЦАП1 равен 0…AVdd.

Если бит=0, то диапазон ЦАП1 равен 0…Vref.

DACCON5

RNG0

Бит выбора диапазона ЦАП0.

Если бит=1, то диапазон ЦАП0 равен 0…AVdd.

Если бит=0, то диапазон ЦАП0 равен 0…Vref.

DACCON4

CLR1

Бит очистки ЦАП1.

Если бит=1, то выход ЦАП1 соответствует коду.

Если бит=0, то выход ЦАП1 равен 0 В.

DACCON3

CLR0

Бит очистки ЦАП0.

Если бит=1, то выход ЦАП0 соответствует коду.

Если бит=0, то выход ЦАП0 равен 0 В.

DACCON2

SYNC

Бит синхронизации ЦАП0/1.

Если бит=1, то выходы ЦАП изменяются одновременно, как только данные попадают в регистры DACхL. Можно одновременно обновить данные обоих ЦАП путем предварительной записи данных в DACхL/H при SYNC=0.

Выходы данных одновременно обновятся теперь при установке SYNC=1.

DACCON1

PD1

Бит включения ЦАП1.

Если бит=1, то ЦАП1 включен.

Если бит=0, то ЦАП1 выключен.

DACCON0

PD0

Бит включения ЦАП0.

Если бит=1, то ЦАП0 включен.

Если бит=0, то ЦАП0 выключен.

Рисунок 1. Форма сигнала АЦП

Таблица 1.

0

1

2

3

4

5

6

7

8

9

10

Uвых, В, расчет

1

0,6

0,2

0

0

0

0

0

0,2

0,6

1

Вход, DEC

820

492

164

0

0

0

0

0

164

492

820

Вход, HEX

0334

01EC

00A4

0000

0000

0000

0000

0000

00A4

01EC

0334

Uвых, В, опыт

1,01

0,6

0,2

0

0

0

0

0

0,2

0,6

1,01

Программа

$MOD812 {присоединение модуля ADuС812}

N EQU 11 {число значений напряжения на выходе ЦАП1}

CSEG

ORG 0000 {начальный адрес программы}

MOV R1,#N {число значений напряжений}

MOV R0,#30H {адрес внутреннего ОЗУ}

{Установка режимов работы ЦАП1 12 бит, диапазон (0-5)В, выход ЦАП0 соответствует входному коду, ЦАП1 включен, ЦАП0 выключен}

MOV DACCON,#76H {DACCON =01110110}

MOV DAC1H,#00

MOV DAC1L,#00 {DAC1 = начальное напряжение ЦАП равное 0}

MOV DPTR,#TABLE {DPTR = адрес начала таблицы TABLE=100Н }

STEP:

CLR A {Acc=0}

MOVC A,@A+DPTR {чтение старшего байта напряжения из таблицы }

MOV DAC1H,A {и пересылка его в старший регистр ЦАП1}

MOV @R0,A {пересылка ст. байта напряжения в ОЗУ}

INC R0

INC DPTR {адрес мл.байта напряжения}

CLR A {Acc=0}

MOVC A,@A+DPTR {чтение младшего байта напряжения из таблицы }

MOV DAC1L,A {и пересылка его в DAC1L }

MOV @R0,A {пересылка мл.байта напряжения в ОЗУ}

INC R0

INC DPTR {DPTR=адрес ст.байта следующего значения

напряжения из таблицы}

LCALL DELAY {вызов ПП задержки 1 с}

DJNZ R1,STEP {пока не выведены все значения напряжения повторять

цикл}

LJMP KONEZ

DELAY: MOV R5,#10 {ПП задержки 1 с}

DLY: MOV R7,#200

DLY1: MOV R6,#230

DJNZ R6,$

DJNZ R7,DLY1

DJNZ R5,DLY

RET

ORG 100H {Таблица значений напряжения. Сначала записан

старший байт, затем младший. Таблица содержит 11 значений}

TABLE:

DB 03H,034H {1 В}

DB 01H,0ECH {0,6 В}

DB 00H,0A4H {0,2 В}

DB 00H,000H {0,0 В}

DB 00H,000H {0,0 В}

DB 00H,000H {0,0 В}

DB 00H,000H {0,0 В}

DB 00H,000H {0,0 В}

DB 00H,0A4H {0,2 В}

DB 01H,0ECH {0,6 В}

DB 03H,034H {1 В}

KONEZ: NOP

END {конец}