 
        
        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 {конец}

