Laby_MP / Отчет_№9_(вывод аналоговой инф-ии)
.docМИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФГОУ ВПО «Чувашский государственный университет
имени И. Н. Ульянова»
Факультет энергетики и электротехники
Кафедра электрических и электронных аппаратов
Лабораторная работа №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
Адрес DАCCON: FDH Значение ADCCON1 при включении питания: 04H Наличие битовой адресации: нет
Назначение разрядов регистра DACCON
Рисунок 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 {конец}